-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBDOS.ASM
2178 lines (2175 loc) · 27.5 KB
/
BDOS.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
PUBLIC D_BASE,D_SIZE
EXTRN B_BASE
D_BASE:
L0000 EQU 00H
L0001 EQU 01H
L0002 EQU 02H
L0003 EQU 03H
L0009 EQU 09H
L000C EQU 0CH
L000D EQU 0DH
L000E EQU 0EH
L000F EQU 0FH
L0010 EQU 10H
L0011 EQU 11H
L0020 EQU 20H
L0021 EQU 21H
L0080 EQU 80H
LCA21 EQU 0CA21H
LCDCC EQU 0CDCCH
LFFEC EQU 0FFECH
LFFFF EQU 0FFFFH
JMP LCC11 ;0CC11H
LCC09: ;CC09
DW LCC99 ;0CC99H
LCC0B: ;CC0B
DW LCCA5 ;0CCA5H
LCC0D: ;CC0D
DW LCCAB ;0CCABH
LCC0F: ;CC0F
DW LCCB1 ;0CCB1H
LCC11: ;CC11
XCHG
SHLD LCF43 ;0CF43H
XCHG
MOV A,E
STA LD9D6 ;0D9D6H
LXI H,L0000 ;0
SHLD LCF45 ;0CF45H
DAD SP
SHLD LCF0F ;0CF0FH
LXI SP,LCF41 ;0CF41H
XRA A
STA LD9E0 ;0D9E0H
STA LD9DE ;0D9DEH
LXI H,LD974 ;0D974H
PUSH H
MOV A,C
CPI ')' ;29H
RNC
MOV C,E
LXI H,LCC47 ;0CC47H
MOV E,A
MVI D,0
DAD D
DAD D
MOV E,M
INX H
MOV D,M
LHLD LCF43 ;0CF43H
XCHG
PCHL
LCC47: ;CC47
DW B_BASE+03 ;0DA03H
DW LCEC8 ;0CEC8H
DW LCD90 ;0CD90H
DW LCECE ;0CECEH
DW B_BASE+12H ;0DA12H
DW B_BASE+0FH ;0DA0FH
DW LCED4 ;0CED4H
DW LCEED ;0CEEDH
DW LCEF3 ;0CEF3H
DW LCEF8 ;0CEF8H
DW LCDE1 ;0CDE1H
DW LCEFE ;0CEFEH
DW LD87E ;0D87EH
DW LD883 ;0D883H
DW LD845 ;0D845H
DW LD89C ;0D89CH
DW LD8A5 ;0D8A5H
DW LD8AB ;0D8ABH
DW LD8C8 ;0D8C8H
DW LD8D7 ;0D8D7H
DW LD8E0 ;0D8E0H
DW LD8E6 ;0D8E6H
DW LD8EC ;0D8ECH
DW LD8F5 ;0D8F5H
DW LD8FE ;0D8FEH
DW LD904 ;0D904H
DW LD90A ;0D90AH
DW LD911 ;0D911H
DW LD12C ;0D12CH
DW LD917 ;0D917H
DW LD91D ;0D91DH
DW LD926 ;0D926H
DW LD92D ;0D92DH
DW LD941 ;0D941H
DW LD947 ;0D947H
DW LD94D ;0D94DH
DW LD80E ;0D80EH
DW LD953 ;0D953H
DW LCF04 ;0CF04H
DW LCF04 ;0CF04H
DW LD99B ;0D99BH
LCC99: ;CC99
DW LCA21 ;0CA21H
DW LCDCC ;0CDCCH
DW LCCE5 ;0CCE5H
CPI 3
JZ L0000 ;0
RET
LCCA5: ;CCA5
LXI H,LCCD5 ;0CCD5H
JMP LCCB4 ;0CCB4H
LCCAB: ;CCAB
LXI H,LCCE1 ;0CCE1H
JMP LCCB4 ;0CCB4H
LCCB1: ;CCB1
LXI H,LCCDC ;0CCDCH
LCCB4: ;CCB4
CALL LCCE5 ;0CCE5H
JMP L0000 ;0
LCCBA: ;CCBA
DB 'BDOS ERR ON '
LCCC6: ;CCC6
DB ' : $BAD SECTOR$'
LCCD5: ;CCD5
DB 'SELECT$'
LCCDC: ;CCDC
DB 'FILE '
LCCE1: ;CCE1
DB 'R/O$'
LCCE5: ;CCE5
PUSH H
CALL LCDC9 ;0CDC9H
LDA LCF42 ;0CF42H
ADI 'A' ;41H
STA LCCC6 ;0CCC6H
LXI B,LCCBA ;0CCBAH
CALL LCDD3 ;0CDD3H
POP B
CALL LCDD3 ;0CDD3H
LCCFB: ;CCFB
LXI H,LCF0E ;0CF0EH
MOV A,M
MVI M,0
ORA A
RNZ
JMP B_BASE+09 ;0DA09H
LCD06: ;CD06
CALL LCCFB ;0CCFBH
CALL LCD14 ;0CD14H
RC
PUSH PSW
MOV C,A
CALL LCD90 ;0CD90H
POP PSW
RET
LCD14: ;CD14
CPI 0DH
RZ
CPI 0AH
RZ
CPI 9
RZ
CPI 8
RZ
CPI ' ' ;20H
RET
LCD23: ;CD23
LDA LCF0E ;0CF0EH
ORA A
JNZ LCD45 ;0CD45H
CALL B_BASE+06 ;0DA06H
ANI 1
RZ
CALL B_BASE+09 ;0DA09H
CPI 13H
JNZ LCD42 ;0CD42H
CALL B_BASE+09 ;0DA09H
CPI 3
JZ L0000 ;0
XRA A
RET
LCD42: ;CD42
STA LCF0E ;0CF0EH
LCD45: ;CD45
MVI A,1
RET
LCD48: ;CD48
LDA LCF0A ;0CF0AH
ORA A
JNZ LCD62 ;0CD62H
PUSH B
CALL LCD23 ;0CD23H
POP B
PUSH B
CALL B_BASE+0CH ;0DA0CH
POP B
PUSH B
LDA LCF0D ;0CF0DH
ORA A
CNZ B_BASE+0FH ;0DA0FH
POP B
LCD62: ;CD62
MOV A,C
LXI H,LCF0C ;0CF0CH
CPI 7FH
RZ
INR M
CPI ' ' ;20H
RNC
DCR M
MOV A,M
ORA A
RZ
MOV A,C
CPI 8
JNZ LCD79 ;0CD79H
DCR M
RET
LCD79: ;CD79
CPI 0AH
RNZ
MVI M,0
RET
LCD7F: ;CD7F
MOV A,C
CALL LCD14 ;0CD14H
JNC LCD90 ;0CD90H
PUSH PSW
MVI C,5EH
CALL LCD48 ;0CD48H
POP PSW
ORI '@' ;40H
MOV C,A
LCD90: ;CD90
MOV A,C
CPI 9
JNZ LCD48 ;0CD48H
LCD96: ;CD96
MVI C,' ' ;20H
CALL LCD48 ;0CD48H
LDA LCF0C ;0CF0CH
ANI 7
JNZ LCD96 ;0CD96H
RET
LCDA4: ;CDA4
CALL LCDAC ;0CDACH
MVI C,' ' ;20H
CALL B_BASE+0CH ;0DA0CH
LCDAC: ;CDAC
MVI C,8
JMP B_BASE+0CH ;0DA0CH
LCDB1: ;CDB1
MVI C,'#' ;23H
CALL LCD48 ;0CD48H
CALL LCDC9 ;0CDC9H
LCDB9: ;CDB9
LDA LCF0C ;0CF0CH
LXI H,LCF0B ;0CF0BH
CMP M
RNC
MVI C,' ' ;20H
CALL LCD48 ;0CD48H
JMP LCDB9 ;0CDB9H
LCDC9: ;CDC9
MVI C,0DH
CALL LCD48 ;0CD48H
MVI C,0AH
JMP LCD48 ;0CD48H
LCDD3: ;CDD3
LDAX B
CPI '$' ;24H
RZ
INX B
PUSH B
MOV C,A
CALL LCD90 ;0CD90H
POP B
JMP LCDD3 ;0CDD3H
LCDE1: ;CDE1
LDA LCF0C ;0CF0CH
STA LCF0B ;0CF0BH
LHLD LCF43 ;0CF43H
MOV C,M
INX H
PUSH H
MVI B,0
LCDEF: ;CDEF
PUSH B
PUSH H
LCDF1: ;CDF1
CALL LCCFB ;0CCFBH
ANI 7FH
POP H
POP B
CPI 0DH
JZ LCEC1 ;0CEC1H
CPI 0AH
JZ LCEC1 ;0CEC1H
CPI 8
JNZ LCE16 ;0CE16H
MOV A,B
ORA A
JZ LCDEF ;0CDEFH
DCR B
LDA LCF0C ;0CF0CH
STA LCF0A ;0CF0AH
JMP LCE70 ;0CE70H
LCE16: ;CE16
CPI 7FH
JNZ LCE26 ;0CE26H
MOV A,B
ORA A
JZ LCDEF ;0CDEFH
MOV A,M
DCR B
DCX H
JMP LCEA9 ;0CEA9H
LCE26: ;CE26
CPI 5
JNZ LCE37 ;0CE37H
PUSH B
PUSH H
CALL LCDC9 ;0CDC9H
XRA A
STA LCF0B ;0CF0BH
JMP LCDF1 ;0CDF1H
LCE37: ;CE37
CPI 10H
JNZ LCE48 ;0CE48H
PUSH H
LXI H,LCF0D ;0CF0DH
MVI A,1
SUB M
MOV M,A
POP H
JMP LCDEF ;0CDEFH
LCE48: ;CE48
CPI 18H
JNZ LCE5F ;0CE5FH
POP H
LCE4E: ;CE4E
LDA LCF0B ;0CF0BH
LXI H,LCF0C ;0CF0CH
CMP M
JNC LCDE1 ;0CDE1H
DCR M
CALL LCDA4 ;0CDA4H
JMP LCE4E ;0CE4EH
LCE5F: ;CE5F
CPI 15H
JNZ LCE6B ;0CE6BH
CALL LCDB1 ;0CDB1H
POP H
JMP LCDE1 ;0CDE1H
LCE6B: ;CE6B
CPI 12H
JNZ LCEA6 ;0CEA6H
LCE70: ;CE70
PUSH B
CALL LCDB1 ;0CDB1H
POP B
POP H
PUSH H
PUSH B
LCE78: ;CE78
MOV A,B
ORA A
JZ LCE8A ;0CE8AH
INX H
MOV C,M
DCR B
PUSH B
PUSH H
CALL LCD7F ;0CD7FH
POP H
POP B
JMP LCE78 ;0CE78H
LCE8A: ;CE8A
PUSH H
LDA LCF0A ;0CF0AH
ORA A
JZ LCDF1 ;0CDF1H
LXI H,LCF0C ;0CF0CH
SUB M
STA LCF0A ;0CF0AH
LCE99: ;CE99
CALL LCDA4 ;0CDA4H
LXI H,LCF0A ;0CF0AH
DCR M
JNZ LCE99 ;0CE99H
JMP LCDF1 ;0CDF1H
LCEA6: ;CEA6
INX H
MOV M,A
INR B
LCEA9: ;CEA9
PUSH B
PUSH H
MOV C,A
CALL LCD7F ;0CD7FH
POP H
POP B
MOV A,M
CPI 3
MOV A,B
JNZ LCEBD ;0CEBDH
CPI 1
JZ L0000 ;0
LCEBD: ;CEBD
CMP C
JC LCDEF ;0CDEFH
LCEC1: ;CEC1
POP H
MOV M,B
MVI C,0DH
JMP LCD48 ;0CD48H
LCEC8: ;CEC8
CALL LCD06 ;0CD06H
JMP LCF01 ;0CF01H
LCECE: ;CECE
CALL B_BASE+15H ;0DA15H
JMP LCF01 ;0CF01H
LCED4: ;CED4
MOV A,C
INR A
JZ LCEE0 ;0CEE0H
INR A
JZ B_BASE+06 ;0DA06H
JMP B_BASE+0CH ;0DA0CH
LCEE0: ;CEE0
CALL B_BASE+6 ;0DA06H
ORA A
JZ LD991 ;0D991H
CALL B_BASE+09 ;0DA09H
JMP LCF01 ;0CF01H
LCEED: ;CEED
LDA L0003 ;3
JMP LCF01 ;0CF01H
LCEF3: ;CEF3
LXI H,L0003 ;3
MOV M,C
RET
LCEF8: ;CEF8
XCHG
MOV C,L
MOV B,H
JMP LCDD3 ;0CDD3H
LCEFE: ;CEFE
CALL LCD23 ;0CD23H
LCF01: ;CF01
STA LCF45 ;0CF45H
LCF04: ;CF04
RET
LCF05: ;CF05
MVI A,1
JMP LCF01 ;0CF01H
LCF0A: ;CF0A
DB 0
LCF0B: ;CF0B
DB 1
LCF0C: ;CF0C
DB 0
LCF0D: ;CF0D
DB 0
LCF0E: ;CF0E
DB 0
LCF0F: ;CF0F
DB 0E7H,17H,0,0,0,0,0,0,0DH,0D5H
DB 15H,0FEH,3,0DFH,15H,0FEH,'T'
DB 0DFH,15H,0FEH,'<',0FDH,'F',18H
DB 'F',18H,5,0E0H,'F',0,0AH,0AH
DB '\',0E1H,8,0DCH,8DH,0DCH,'-'
DB 0DDH,15H,0FEH,0FEH,0CEH,'-',0CDH
DB 1,0CFH,'t',0D9H
LCF41: ;CF41
DB 0
LCF42: ;CF42
DB 0
LCF43: ;CF43
DB 'C',0CFH
LCF45: ;CF45
DB 0,0
LCF47: ;CF47
LXI H,LCC0B ;0CC0BH
LCF4A: ;CF4A
MOV E,M
INX H
MOV D,M
XCHG
PCHL
LCF4F: ;CF4F
INR C
LCF50: ;CF50
DCR C
RZ
LDAX D
MOV M,A
INX D
INX H
JMP LCF50 ;0CF50H
LCF59: ;CF59
LDA LCF42 ;0CF42H
MOV C,A
CALL B_BASE+1BH ;0DA1BH
MOV A,H
ORA L
RZ
MOV E,M
INX H
MOV D,M
INX H
SHLD LD9B3 ;0D9B3H
INX H
INX H
SHLD LD9B5 ;0D9B5H
INX H
INX H
SHLD LD9B7 ;0D9B7H
INX H
INX H
XCHG
SHLD LD9D0 ;0D9D0H
LXI H,LD9B9 ;0D9B9H
MVI C,8
CALL LCF4F ;0CF4FH
LHLD LD9BB ;0D9BBH
XCHG
LXI H,LD9C1 ;0D9C1H
MVI C,0FH
CALL LCF4F ;0CF4FH
LHLD LD9C6 ;0D9C6H
MOV A,H
LXI H,LD9DD ;0D9DDH
MVI M,0FFH
ORA A
JZ LCF9D ;0CF9DH
MVI M,0
LCF9D: ;CF9D
MVI A,0FFH
ORA A
RET
LCFA1: ;CFA1
CALL B_BASE+18H ;0DA18H
XRA A
LHLD LD9B5 ;0D9B5H
MOV M,A
INX H
MOV M,A
LHLD LD9B7 ;0D9B7H
MOV M,A
INX H
MOV M,A
RET
LCFB2: ;CFB2
CALL B_BASE+27H ;0DA27H
JMP LCFBB ;0CFBBH
LCFB8: ;CFB8
CALL B_BASE+2AH ;0DA2AH
LCFBB: ;CFBB
ORA A
RZ
LXI H,LCC09 ;0CC09H
JMP LCF4A ;0CF4AH
LCFC3: ;CFC3
LHLD LD9EA ;0D9EAH
MVI C,2
CALL LD0EA ;0D0EAH
SHLD LD9E5 ;0D9E5H
SHLD LD9EC ;0D9ECH
LCFD1: ;CFD1
LXI H,LD9E5 ;0D9E5H
MOV C,M
INX H
MOV B,M
LHLD LD9B7 ;0D9B7H
MOV E,M
INX H
MOV D,M
LHLD LD9B5 ;0D9B5H
MOV A,M
INX H
MOV H,M
MOV L,A
LCFE4: ;CFE4
MOV A,C
SUB E
MOV A,B
SBB D
JNC LCFFA ;0CFFAH
PUSH H
LHLD LD9C1 ;0D9C1H
MOV A,E
SUB L
MOV E,A
MOV A,D
SBB H
MOV D,A
POP H
DCX H
JMP LCFE4 ;0CFE4H
LCFFA: ;CFFA
PUSH H
LHLD LD9C1 ;0D9C1H
DAD D
JC LD00F ;0D00FH
MOV A,C
SUB L
MOV A,B
SBB H
JC LD00F ;0D00FH
XCHG
POP H
INX H
JMP LCFFA ;0CFFAH
LD00F: ;D00F
POP H
PUSH B
PUSH D
PUSH H
XCHG
LHLD LD9CE ;0D9CEH
DAD D
MOV B,H
MOV C,L
CALL B_BASE+1EH ;0DA1EH
POP D
LHLD LD9B5 ;0D9B5H
MOV M,E
INX H
MOV M,D
POP D
LHLD LD9B7 ;0D9B7H
MOV M,E
INX H
MOV M,D
POP B
MOV A,C
SUB E
MOV C,A
MOV A,B
SBB D
MOV B,A
LHLD LD9D0 ;0D9D0H
XCHG
CALL B_BASE+30H ;0DA30H
MOV C,L
MOV B,H
JMP B_BASE+21H ;0DA21H
LD03E: ;D03E
LXI H,LD9C3 ;0D9C3H
MOV C,M
LDA LD9E3 ;0D9E3H
LD045: ;D045
ORA A
RAR
DCR C
JNZ LD045 ;0D045H
MOV B,A
MVI A,8
SUB M
MOV C,A
LDA LD9E2 ;0D9E2H
LD053: ;D053
DCR C
JZ LD05C ;0D05CH
ORA A
RAL
JMP LD053 ;0D053H
LD05C: ;D05C
ADD B
RET
LD05E: ;D05E
LHLD LCF43 ;0CF43H
LXI D,L0010 ;10H
DAD D
DAD B
LDA LD9DD ;0D9DDH
ORA A
JZ LD071 ;0D071H
MOV L,M
MVI H,0
RET
LD071: ;D071
DAD B
MOV E,M
INX H
MOV D,M
XCHG
RET
LD077: ;D077
CALL LD03E ;0D03EH
MOV C,A
MVI B,0
CALL LD05E ;0D05EH
SHLD LD9E5 ;0D9E5H
RET
LD084: ;D084
LHLD LD9E5 ;0D9E5H
MOV A,L
ORA H
RET
LD08A: ;D08A
LDA LD9C3 ;0D9C3H
LHLD LD9E5 ;0D9E5H
LD090: ;D090
DAD H
DCR A
JNZ LD090 ;0D090H
SHLD LD9E7 ;0D9E7H
LDA LD9C4 ;0D9C4H
MOV C,A
LDA LD9E3 ;0D9E3H
ANA C
ORA L
MOV L,A
SHLD LD9E5 ;0D9E5H
RET
LD0A6: ;D0A6
LHLD LCF43 ;0CF43H
LXI D,L000C ;0CH
DAD D
RET
LD0AE: ;D0AE
LHLD LCF43 ;0CF43H
LXI D,L000F ;0FH
DAD D
XCHG
LXI H,L0011 ;11H
DAD D
RET
LD0BB: ;D0BB
CALL LD0AE ;0D0AEH
MOV A,M
STA LD9E3 ;0D9E3H
XCHG
MOV A,M
STA LD9E1 ;0D9E1H
CALL LD0A6 ;0D0A6H
LDA LD9C5 ;0D9C5H
ANA M
STA LD9E2 ;0D9E2H
RET
LD0D2: ;D0D2
CALL LD0AE ;0D0AEH
LDA LD9D5 ;0D9D5H
CPI 2
JNZ LD0DE ;0D0DEH
XRA A
LD0DE: ;D0DE
MOV C,A
LDA LD9E3 ;0D9E3H
ADD C
MOV M,A
XCHG
LDA LD9E1 ;0D9E1H
MOV M,A
RET
LD0EA: ;D0EA
INR C
LD0EB: ;D0EB
DCR C
RZ
MOV A,H
ORA A
RAR
MOV H,A
MOV A,L
RAR
MOV L,A
JMP LD0EB ;0D0EBH
LD0F7: ;D0F7
MVI C,80H
LHLD LD9B9 ;0D9B9H
XRA A
LD0FD: ;D0FD
ADD M
INX H
DCR C
JNZ LD0FD ;0D0FDH
RET
LD104: ;D104
INR C
LD105: ;D105
DCR C
RZ
DAD H
JMP LD105 ;0D105H
LD10B: ;D10B
PUSH B
LDA LCF42 ;0CF42H
MOV C,A
LXI H,L0001 ;1
CALL LD104 ;0D104H
POP B
MOV A,C
ORA L
MOV L,A
MOV A,B
ORA H
MOV H,A
RET
LD11E: ;D11E
LHLD LD9AD ;0D9ADH
LDA LCF42 ;0CF42H
MOV C,A
CALL LD0EA ;0D0EAH
MOV A,L
ANI 1
RET
LD12C: ;D12C
LXI H,LD9AD ;0D9ADH
MOV C,M
INX H
MOV B,M
CALL LD10B ;0D10BH
SHLD LD9AD ;0D9ADH
LHLD LD9C8 ;0D9C8H
INX H
XCHG
LHLD LD9B3 ;0D9B3H
MOV M,E
INX H
MOV M,D
RET
LD144: ;D144
CALL LD15E ;0D15EH
LD147: ;D147
LXI D,L0009 ;9
DAD D
MOV A,M
RAL
RNC
LXI H,LCC0F ;0CC0FH
JMP LCF4A ;0CF4AH
LD154: ;D154
CALL LD11E ;0D11EH
RZ
LXI H,LCC0D ;0CC0DH
JMP LCF4A ;0CF4AH
LD15E: ;D15E
LHLD LD9B9 ;0D9B9H
LDA LD9E9 ;0D9E9H
LD164: ;D164
ADD L
MOV L,A
RNC
INR H
RET
LD169: ;D169
LHLD LCF43 ;0CF43H
LXI D,L000E ;0EH
DAD D
MOV A,M
RET
LD172: ;D172
CALL LD169 ;0D169H
MVI M,0
RET
LD178: ;D178
CALL LD169 ;0D169H
ORI 80H
MOV M,A
RET
LD17F: ;D17F
LHLD LD9EA ;0D9EAH
XCHG
LHLD LD9B3 ;0D9B3H
MOV A,E
SUB M
INX H
MOV A,D
SBB M
RET
LD18C: ;D18C
CALL LD17F ;0D17FH
RC
INX D
MOV M,D
DCX H
MOV M,E
RET
LD195: ;D195
MOV A,E
SUB L
MOV L,A
MOV A,D
SBB H
MOV H,A
RET
LD19C: ;D19C
MVI C,0FFH
LD19E: ;D19E
LHLD LD9EC ;0D9ECH
XCHG
LHLD LD9CC ;0D9CCH
CALL LD195 ;0D195H
RNC
PUSH B
CALL LD0F7 ;0D0F7H
LHLD LD9BD ;0D9BDH
XCHG
LHLD LD9EC ;0D9ECH
DAD D
POP B
INR C
JZ LD1C4 ;0D1C4H
CMP M
RZ
CALL LD17F ;0D17FH
RNC
CALL LD12C ;0D12CH
RET
LD1C4: ;D1C4
MOV M,A
RET
LD1C6: ;D1C6
CALL LD19C ;0D19CH
CALL LD1E0 ;0D1E0H
MVI C,1
CALL LCFB8 ;0CFB8H
JMP LD1DA ;0D1DAH
LD1D4: ;D1D4
CALL LD1E0 ;0D1E0H
CALL LCFB2 ;0CFB2H
LD1DA: ;D1DA
LXI H,LD9B1 ;0D9B1H
JMP LD1E3 ;0D1E3H
LD1E0: ;D1E0
LXI H,LD9B9 ;0D9B9H
LD1E3: ;D1E3
MOV C,M
INX H
MOV B,M
JMP B_BASE+24H ;0DA24H
LD1E9: ;D1E9
LHLD LD9B9 ;0D9B9H
XCHG
LHLD LD9B1 ;0D9B1H
MVI C,80H
JMP LCF4F ;0CF4FH
LD1F5: ;D1F5
LXI H,LD9EA ;0D9EAH
MOV A,M
INX H
CMP M
RNZ
INR A
RET
LD1FE: ;D1FE
LXI H,LFFFF ;0FFFFH
SHLD LD9EA ;0D9EAH
RET
LD205: ;D205
LHLD LD9C8 ;0D9C8H
XCHG
LHLD LD9EA ;0D9EAH
INX H
SHLD LD9EA ;0D9EAH
CALL LD195 ;0D195H
JNC LD219 ;0D219H
JMP LD1FE ;0D1FEH
LD219: ;D219
LDA LD9EA ;0D9EAH
ANI 3
MVI B,5
LD220: ;D220
ADD A
DCR B
JNZ LD220 ;0D220H
STA LD9E9 ;0D9E9H
ORA A
RNZ
PUSH B
CALL LCFC3 ;0CFC3H
CALL LD1D4 ;0D1D4H
POP B
JMP LD19E ;0D19EH
LD235: ;D235
MOV A,C
ANI 7
INR A
MOV E,A
MOV D,A
MOV A,C
RRC
RRC
RRC
ANI 1FH
MOV C,A
MOV A,B
ADD A
ADD A
ADD A
ADD A
ADD A
ORA C