|
MonitorDisassembled
Монитор Радио-86РК (версия 16КБ).
Featured Монитор Радио-86РК (версия 16КБ)F800 ; File Name monitor.bin
F800 ; Format Binary
F800 ; Base Address: 0000h Range: F800h - 10000h Loaded length: 0800h
F800
F800 ; Processor: Intel 8080/8085
F800 ; Target assembler: Table Driven Assembler (TASM) by Speech Technology Inc.
F800
vid_mem .equ 36d0h
stack .equ 36CFh
monitor_area .equ 3600h
monitor_area_end .equ 365Fh
cursor_addr .equ 3600h
cursor_xy .equ 3602h
cursor_seq .equ 3604h
ruslat_flag .equ 3606h ; 0 - lat, ff - rus
stack_ptr .equ 361Ch
memlim .equ 3631h
kbd_buf .equ 3633h
F800
F800 ; segment 'seg000'
F800 .org 0F800h
F800
F800 ;----------------------------------------------------------------------------
F800
F800 start:
F800 jmp entry_start
F803 ;----------------------------------------------------------------------------
F803
F803 getc:
F803 jmp entry_getc
F806 ;----------------------------------------------------------------------------
F806
F806 inpb:
F806 jmp entry_inpb
F809 ;----------------------------------------------------------------------------
F809
F809 putc:
F809 jmp entry_putc
F80C ;----------------------------------------------------------------------------
F80C
F80C outb:
F80C jmp entry_outb
F80F ;----------------------------------------------------------------------------
F80F
F80F temp:
F80F jmp entry_putc
F812 ;----------------------------------------------------------------------------
F812
F812 kbhit:
F812 jmp entry_kbhit
F815 ;----------------------------------------------------------------------------
F815
F815 hexb:
F815 jmp entry_hexb
F818 ;----------------------------------------------------------------------------
F818
F818 puts:
F818 jmp entry_puts
F81B ;----------------------------------------------------------------------------
F81B
F81B scan_kbd:
F81B jmp entry_scan_kbd
F81E ;----------------------------------------------------------------------------
F81E
F81E getxy:
F81E jmp entry_getxy
F821 ;----------------------------------------------------------------------------
F821
F821 curc:
F821 jmp entry_curc
F824 ;----------------------------------------------------------------------------
F824
F824 inpblock:
F824 jmp entry_inpblock
F827 ;----------------------------------------------------------------------------
F827
F827 outblock:
F827 jmp entry_outblock
F82A ;----------------------------------------------------------------------------
F82A
F82A chksum:
F82A jmp entry_chksum
F82D ;----------------------------------------------------------------------------
F82D
F82D video:
F82D jmp entry_video
F830 ;----------------------------------------------------------------------------
F830
F830 getlim:
F830 jmp entry_getlim
F833 ;----------------------------------------------------------------------------
F833
F833 setlim:
F833 jmp entry_setlim
F836 ;----------------------------------------------------------------------------
F836
F836 entry_start:
F836 mvi a, 8Ah ; 'К' ; CODE XREF: F800j
F838 sta 8003h
F83B lxi sp, stack
F83E call entry_video
F841 lxi h, monitor_area
F844 lxi d, monitor_area_end
F847 mvi c, 0
F849 call fill_hl_de_c ; fill HL to DE by C
F84C lxi h, stack
F84F shld stack_ptr
F852 lxi h, Radio
F855 call entry_puts ; put title
F858 call entry_video
F85B lxi h, 35FFh
F85E shld memlim
F861 lxi h, 1D2Ah
F864 shld 362Fh
F867 mvi a, 0C3h
F869 sta 3626h
F86C
F86C prompt_loop:
F86C lxi sp, stack ; CODE XREF: F90Bj FAB3j FFC9j FFD0j
F86F lxi h, Prompt
F872 call entry_puts
F875 sta 8002h
F878 dcr a
F879 sta 0A002h
F87C call loc_0_F8EE
F87F lxi h, prompt_loop
F882 push h
F883 lxi h, kbd_buf
F886 mov a, m
F887 cpi 58h ; 'X'
F889 jz print_regs
F88C cpi 55h ; 'U'
F88E jz 0F000h ; !?
F891 push psw
F892 call loc_0_F92C
F895 lhld 362Bh
F898 mov c, l
F899 mov b, h
F89A lhld 3629h
F89D xchg
F89E lhld 3627h
F8A1 pop psw
F8A2 cpi 44h ; 'D'
F8A4 jz loc_0_F9C5
F8A7 cpi 43h ; 'C'
F8A9 jz loc_0_F9D7
F8AC cpi 46h ; 'F'
F8AE jz fill_hl_de_c
F8B1 cpi 53h ; 'S'
F8B3 jz loc_0_F9F4
F8B6 cpi 54h ; 'T'
F8B8 jz loc_0_F9FF
F8BB cpi 4Dh ; 'M'
F8BD jz loc_0_FA26
F8C0 cpi 47h ; 'G'
F8C2 jz loc_0_FA3F
F8C5 cpi 49h ; 'I'
F8C7 jz loc_0_FA86
F8CA cpi 4Fh ; 'O'
F8CC jz loc_0_FB2D
F8CF cpi 4Ch ; 'L'
F8D1 jz loc_0_FA08
F8D4 cpi 52h ; 'R'
F8D6 jz loc_0_FA68
F8D9 jmp 0F000h ; ?!
F8DC ;----------------------------------------------------------------------------
F8DC
F8DC back_kbd_buf:
F8DC mvi a, 33h ; '3' ; CODE XREF: F8F8j F8FDj
F8DE cmp l
F8DF jz loc_0_F8F1
F8E2 push h
F8E3 lxi h, BackClr
F8E6 call entry_puts
F8E9 pop h
F8EA dcx h
F8EB jmp kbd_buf_loop
F8EE ;----------------------------------------------------------------------------
F8EE
F8EE loc_0_F8EE:
F8EE lxi h, kbd_buf ; CODE XREF: F87Cp FA2Dp FFE7p
F8F1
F8F1 loc_0_F8F1:
F8F1 mvi b, 0 ; CODE XREF: F8DFj
F8F3
F8F3 kbd_buf_loop:
F8F3 call entry_getc ; CODE XREF: F8EBj F917j
F8F6 cpi 8 ; backspace ?
F8F8 jz back_kbd_buf
F8FB cpi 7Fh ; backspace ?
F8FD jz back_kbd_buf
F900 cnz loc_0_FCB9
F903 mov m, a
F904 cpi 0Dh
F906 jz loc_0_F91A
F909 cpi 2Eh ; '.'
F90B jz prompt_loop
F90E mvi b, 0FFh
F910 mvi a, 52h ; 'R'
F912 cmp l
F913 jz loc_0_FAAE
F916 inx h
F917 jmp kbd_buf_loop
F91A ;----------------------------------------------------------------------------
F91A
F91A loc_0_F91A:
F91A mov a, b ; CODE XREF: F906j
F91B ral
F91C lxi d, kbd_buf
F91F mvi b, 0
F921 ret
F922 ;----------------------------------------------------------------------------
F922
F922 entry_puts:
F922 mov a, m ; CODE XREF: F818j F855p F872p F8E6p F929j F9B4p FFD6p
F923 ana a
F924 rz
F925 call loc_0_FCB9
F928 inx h
F929 jmp entry_puts
F92C ;----------------------------------------------------------------------------
F92C
F92C loc_0_F92C:
F92C lxi h, 3627h ; CODE XREF: F892p
F92F lxi d, 362Dh
F932 mvi c, 0
F934 call fill_hl_de_c
F937 lxi d, 3634h
F93A call loc_0_F95A
F93D shld 3627h
F940 shld 3629h
F943 rc
F944 mvi a, 0FFh
F946 sta 362Dh
F949 call loc_0_F95A
F94C shld 3629h
F94F rc
F950 call loc_0_F95A
F953 shld 362Bh
F956 rc
F957 jmp loc_0_FAAE
F95A ;----------------------------------------------------------------------------
F95A
F95A loc_0_F95A:
F95A lxi h, 0 ; CODE XREF: F93Ap F949p F950p FA35p FFEDp
F95D
F95D loc_0_F95D:
F95D ldax d ; CODE XREF: F969j F98Bj
F95E inx d
F95F cpi 0Dh
F961 jz loc_0_F98E
F964 cpi 2Ch ; ','
F966 rz
F967 cpi 20h ; ' '
F969 jz loc_0_F95D
F96C sui 30h ; '0'
F96E jm loc_0_FAAE
F971 cpi 0Ah
F973 jm loc_0_F982
F976 cpi 11h
F978 jm loc_0_FAAE
F97B cpi 17h
F97D jp loc_0_FAAE
F980 sui 7
F982
F982 loc_0_F982:
F982 mov c, a ; CODE XREF: F973j
F983 dad h
F984 dad h
F985 dad h
F986 dad h
F987 jm loc_0_FAAE
F98A dad b
F98B jmp loc_0_F95D
F98E ;----------------------------------------------------------------------------
F98E
F98E loc_0_F98E:
F98E stc ; CODE XREF: F961j
F98F ret
F990 ;----------------------------------------------------------------------------
F990 ; cmp hl, de
; if hl=de -> zf=1, else -> zf=0
F990 ;----------------------------------------------------------------------------
F990 cmp_hl_de:
F990 mov a, h ; CODE XREF: F999p FA3Fp FAA6p FB1Dp FFC6p
F991 cmp d
F992 rnz
F993 mov a, l
F994 cmp e
F995 ret
F996 ;----------------------------------------------------------------------------
F996
F996 loc_0_F996:
F996 call loc_0_F9A4 ; CODE XREF: F9CBp F9E7p F9F9p FA1Ap
F999
F999 cmp_hl_de_loop:
F999 call cmp_hl_de ; CODE XREF: F9EEp FA02p FA75p FB10p FB27p FB8Ap
; hl=de ?
F99C jnz loc_0_F9A2 ; if not, then hl=hl+1 and ret
F99F
F99F loc_0_F99F: ; hl=de, great!
F99F inx sp ; CODE XREF: FB20j
F9A0 inx sp ; pop ret-addr and exit
F9A1 ret
F9A2
F9A2 loc_0_F9A2:
F9A2 inx h ; CODE XREF: F99Cj
F9A3 ret
F9A4 ;----------------------------------------------------------------------------
F9A4 ; Scan keyboard
F9A4 ;----------------------------------------------------------------------------
F9A4 loc_0_F9A4:
F9A4 call entry_scan_kbd ; CODE XREF: F996p
F9A7 cpi 3
F9A9 rnz
F9AA call entry_video
F9AD jmp loc_0_FAAE
F9B0 ;----------------------------------------------------------------------------
F9B0
F9B0 loc_0_F9B0:
F9B0 push h ; CODE XREF: FB79p
F9B1 lxi h, m_FF6C
F9B4 call entry_puts
F9B7 pop h
F9B8 ret
F9B9 ;----------------------------------------------------------------------------
F9B9
F9B9 loc_0_F9B9:
F9B9 mov a, m ; CODE XREF: F9C8p F9DFp FA29p
F9BA
F9BA loc_0_F9BA:
F9BA push b ; CODE XREF: F9E3p FB81p
F9BB call entry_hexb
F9BE mvi a, 20h ; ' '
F9C0 call loc_0_FCB9
F9C3 pop b
F9C4 ret
F9C5 ;----------------------------------------------------------------------------
F9C5
F9C5 loc_0_F9C5:
F9C5 call loc_0_FB78 ; CODE XREF: F8A4j F9D1j
F9C8
F9C8 loc_0_F9C8:
F9C8 call loc_0_F9B9 ; CODE XREF: F9D4j
F9CB call loc_0_F996
F9CE mov a, l
F9CF ani 0Fh
F9D1 jz loc_0_F9C5
F9D4 jmp loc_0_F9C8
F9D7 ;----------------------------------------------------------------------------
F9D7
F9D7 loc_0_F9D7:
F9D7 ldax b ; CODE XREF: F8A9j F9EAj
F9D8 cmp m
F9D9 jz loc_0_F9E6
F9DC call loc_0_FB78
F9DF call loc_0_F9B9
F9E2 ldax b
F9E3 call loc_0_F9BA
F9E6
F9E6 loc_0_F9E6:
F9E6 inx b ; CODE XREF: F9D9j
F9E7 call loc_0_F996
F9EA jmp loc_0_F9D7
F9ED ;----------------------------------------------------------------------------
F9ED
F9ED fill_hl_de_c:
F9ED mov m, c ; CODE XREF: F849p F8AEj F934p F9F1j
F9EE call cmp_hl_de_loop
F9F1 jmp fill_hl_de_c
F9F4 ;----------------------------------------------------------------------------
F9F4
F9F4 loc_0_F9F4:
F9F4 mov a, c ; CODE XREF: F8B3j F9FCj
F9F5 cmp m
F9F6 cz loc_0_FB78
F9F9 call loc_0_F996
F9FC jmp loc_0_F9F4
F9FF ;----------------------------------------------------------------------------
F9FF
F9FF loc_0_F9FF:
F9FF mov a, m ; CODE XREF: F8B8j FA05j
FA00 stax b
FA01 inx b
FA02 call cmp_hl_de_loop
FA05 jmp loc_0_F9FF
FA08 ;----------------------------------------------------------------------------
FA08
FA08 loc_0_FA08:
FA08 call loc_0_FB78 ; CODE XREF: F8D1j FA20j
FA0B
FA0B loc_0_FA0B:
FA0B mov a, m ; CODE XREF: FA23j
FA0C ora a
FA0D jm loc_0_FA15
FA10 cpi 20h ; ' '
FA12 jnc loc_0_FA17
FA15
FA15 loc_0_FA15:
FA15 mvi a, 2Eh ; '.' ; CODE XREF: FA0Dj
FA17
FA17 loc_0_FA17:
FA17 call loc_0_FCB9 ; CODE XREF: FA12j
FA1A call loc_0_F996
FA1D mov a, l
FA1E ani 0Fh
FA20 jz loc_0_FA08
FA23 jmp loc_0_FA0B
FA26 ;----------------------------------------------------------------------------
FA26
FA26 loc_0_FA26:
FA26 call loc_0_FB78 ; CODE XREF: F8BDj FA3Cj
FA29 call loc_0_F9B9
FA2C push h
FA2D call loc_0_F8EE
FA30 pop h
FA31 jnc loc_0_FA3B
FA34 push h
FA35 call loc_0_F95A
FA38 mov a, l
FA39 pop h
FA3A mov m, a
FA3B
FA3B loc_0_FA3B:
FA3B inx h ; CODE XREF: FA31j
FA3C jmp loc_0_FA26
FA3F ;----------------------------------------------------------------------------
FA3F
FA3F loc_0_FA3F:
FA3F call cmp_hl_de ; CODE XREF: F8C2j
FA42 jz loc_0_FA5A
FA45 xchg
FA46 shld 3623h
FA49 mov a, m
FA4A sta 3625h
FA4D mvi m, 0F7h
FA4F mvi a, 0C3h
FA51 sta 30h
FA54 lxi h, loc_0_FFA2h
FA57 shld 31h
FA5A
FA5A loc_0_FA5A:
FA5A lxi sp, 3618h ; CODE XREF: FA42j
FA5D pop b
FA5E pop d
FA5F pop h
FA60 pop psw
FA61 sphl
FA62 lhld 3616h
FA65 jmp 3626h
FA68 ;----------------------------------------------------------------------------
FA68
FA68 loc_0_FA68:
FA68 mvi a, 90h ; CODE XREF: F8D6j
FA6A sta 0A003h
FA6D
FA6D loc_0_FA6D:
FA6D shld 0A001h ; CODE XREF: FA78p
FA70 lda 0A000h
FA73 stax b
FA74 inx b
FA75 call cmp_hl_de_loop
FA78 call loc_0_FA6D
FA7B
FA7B entry_getxy:
FA7B lhld cursor_xy ; CODE XREF: F81Ej
FA7E ret
FA7F ;----------------------------------------------------------------------------
FA7F
FA7F entry_curc:
FA7F push h ; CODE XREF: F821j
FA80 lhld cursor_addr
FA83 mov a, m
FA84 pop h
FA85 ret
FA86 ;----------------------------------------------------------------------------
FA86
FA86 loc_0_FA86:
FA86 lda 362Dh ; CODE XREF: F8C7j
FA89 ora a
FA8A jz loc_0_FA91
FA8D mov a, e
FA8E sta 362Fh
FA91
FA91 loc_0_FA91:
FA91 call entry_inpblock ; CODE XREF: FA8Aj
FA94 call loc_0_FB78
FA97 xchg
FA98 call loc_0_FB78
FA9B xchg
FA9C push b
FA9D call entry_chksum
FAA0 mov h, b
FAA1 mov l, c
FAA2 call loc_0_FB78
FAA5 pop d
FAA6 call cmp_hl_de
FAA9 rz
FAAA xchg
FAAB call loc_0_FB78
FAAE
FAAE loc_0_FAAE:
FAAE mvi a, 3Fh ; '?' ; CODE XREF: F913j F957j F96Ej F978j F97Dj F987j F9ADj FC3Dj
FAB0 call loc_0_FCB9
FAB3 jmp prompt_loop
FAB6 ;----------------------------------------------------------------------------
FAB6 ; Input from tape : In : HL - offset
; Out: HL - start, DE - end, BC - chksum
;----------------------------------------------------------------------------
FAB6 entry_inpblock: ; CODE XREF: F824j FA91p
FAB6 mvi a, 0FFh
FAB8 call loc_0_FAFF ; input word to BC with
; sinc-byte before 1-st byte
; it is addr from tape
FABB push h
FABC dad b ; calc start addr:
; HL=tape addr + offset
FABD xchg ; DE=start addr
FABE call loc_0_FAFD ; input word to BC w/o sinc-byte
; it is end from tape
FAC1 pop h ; hl=offset
FAC2 dad b ; calc end addr:
; HL=tape addr + offset
FAC3 xchg ; hl=start addr, de=and addr
FAC4 push h
FAC5 call loc_0_FB0A ; input block from hl -> de
FAC8 mvi a, 0FFh ; input word to bc
FACA call loc_0_FAFF ; with sinc-byte
; it is a chksum from tape
FACD pop h ; hl=addr
FACE
FACE entry_video: ; -- start video
FACE push h ; CODE XREF: F82Dj F83Ep F858p F9AAp FB75j FC38p
FACF lxi h, 0C001h
FAD2 mvi m, 0
FAD4 dcx h
FAD5 mvi m, 4Dh
FAD7 mvi m, 1Dh
FAD9 mvi m, 99h
FADB mvi m, 93h
FADD inx h
FADE mvi m, 27h
FAE0 mov a, m
FAE1
FAE1 loc_0_FAE1:
FAE1 mov a, m ; CODE XREF: FAE4j
FAE2 ani 20h
FAE4 jz loc_0_FAE1 ; wait for start video
FAE7 lxi h, 0E008h
FAEA mvi m, 80h
FAEC mvi l, 4
FAEE mvi m, 0D0h
FAF0 mvi m, 36h
FAF2 inr l
FAF3 mvi m, 23h
FAF5 mvi m, 49h
FAF7 mvi l, 8
FAF9 mvi m, 0A4h
FAFB pop h
FAFC ret
FAFD ;----------------------------------------------------------------------------
FAFD ; Input word to BC
FAFD loc_0_FAFD: ; -- w/o sinc-byte
FAFD mvi a, 8 ; CODE XREF: FABEp
FAFF
FAFF loc_0_FAFF:
FAFF call entry_inpb ; CODE XREF: FAB8p FACAp
FB02 mov b, a
FB03 mvi a, 8
FB05
FB05 loc_0_FB05:
FB05 call entry_inpb ; CODE XREF: FB8Dj
FB08 mov c, a
FB09 ret
FB0A ;----------------------------------------------------------------------------
FB0A ; Input block while de!=hl
FB0A loc_0_FB0A: ; CODE XREF: FAC5p FB13j
FB0A mvi a, 8
FB0C call entry_inpb ; input byte to a w/o sinc-byte
FB0F mov m, a ; to mem it
FB10 call cmp_hl_de_loop ; check hl=de and
; if hl!=de -> hl=hl+1
; else -> ret to FAC0
FB13 jmp loc_0_FB0A ; while hl!=de
FB16 ;----------------------------------------------------------------------------
FB16 ; Calc chksum
FB16 ;----------------------------------------------------------------------------
FB16 entry_chksum:
FB16 lxi b, 0 ; CODE XREF: F82Aj FA9Dp FB36p
FB19
FB19 loc_0_FB19:
FB19 mov a, m ; get byte
FB1A add c ; lo part
FB1B mov c, a ; store
FB1C push psw ; save cf
FB1D call cmp_hl_de ; hl=de
FB20 jz loc_0_F99F ; yes, remove psw and exit
FB23 pop psw ; restore cf
FB24 mov a, b ; hi part
FB25 adc m
FB26 mov b, a ; store
FB27 call cmp_hl_de_loop ; while hl!=de -> hl++
; otherwise -> exit over stack
FB2A jmp loc_0_FB19 ; repeat until de!=hl
FB2D ;----------------------------------------------------------------------------
FB2D ; monitor 'O' command
;
FB2D loc_0_FB2D:
FB2D mov a, c ; CODE XREF: F8CCj
FB2E ora a
FB2F jz loc_0_FB35
FB32 sta 3630h
FB35
FB35 loc_0_FB35:
FB35 push h ; CODE XREF: FB2Fj
FB36 call entry_chksum
FB39 pop h
FB3A call loc_0_FB78
FB3D xchg
FB3E call loc_0_FB78
FB41 xchg
FB42 push h
FB43 mov h, b
FB44 mov l, c
FB45 call loc_0_FB78
FB48 pop h
FB49
; -- out block
FB49 entry_outblock: ; CODE XREF: F827j
FB49 push b ; save chksum
FB4A lxi b, 0
FB4D
FB4D loc_0_FB4D: ; make 256 zeros
FB4D call entry_outb ; out 0 byte
FB50 dcr b
FB51 xthl ; delay 18t
FB52 xthl ; delay 18t
FB53 jnz loc_0_FB4D
FB56 mvi c, 0E6h
FB58 call entry_outb ; out sinc-byte
FB5B call loc_0_FB90 ; out hl -- start addr
FB5E xchg
FB5F call loc_0_FB90 ; out de -- end addr
FB62 xchg
FB63 call loc_0_FB86 ; out block
FB66 lxi h, 0
FB69 call loc_0_FB90 ; out 0000
FB6C mvi c, 0E6h
FB6E call entry_outb ; out sync-byte
FB71 pop h ; restore chksum
FB72 call loc_0_FB90 ; out chksum
FB75 jmp entry_video
FB78 ;----------------------------------------------------------------------------
FB78
FB78 loc_0_FB78:
FB78 push b ; CODE XREF: F9C5p F9DCp F9F6p FA08p FA26p FA94p FA98p FAA2p FAABp FB3Ap FB3Ep FB45p
FB78 ; FFBFp FFE4p
FB79 call loc_0_F9B0
FB7C mov a, h
FB7D call entry_hexb ; out a in hex
FB80 mov a, l
FB81 call loc_0_F9BA
FB84 pop b
FB85 ret
FB86 ;----------------------------------------------------------------------------
FB86
FB86 loc_0_FB86:
FB86 mov c, m ; get current byte
FB87 call entry_outb
FB8A call cmp_hl_de_loop ; check hl=de and
; if hl!=de -> hl=hl+1
; else -> ret to FB66
FB8D jmp loc_0_FB86 ; out while hl!=de
FB90 ;----------------------------------------------------------------------------
FB90 ; Out hl to tape
FB90 loc_0_FB90: ; CODE XREF: FB5Bp FB5Fp FB69p FB72p
FB90 mov c, h
FB91 call entry_outb ; out h
FB94 mov c, l
FB95 jmp entry_outb ; out l and exit
FB98 ;----------------------------------------------------------------------------
FB98 ; Input byte
FB98 entry_inpb:
FB98 push h ; CODE XREF: FAFFp FB05p FB0Cp
FB99 push b
FB9A push d
FB9B mov d, a ; d = count, 'ff' for sinc-byte
FB9C
FB9C loc_0_FB9C:
FB9C mvi a, 80h ; CODE XREF: FC43j
FB9E sta 0E008h ; DMA ?!
FBA1 lxi h, 0
FBA4 dad sp ; hl=sp
FBA5 lxi sp, 0 ; sp=0
FBA8 shld 360Dh ; save sp
FBAB mvi c, 0
FBAD lda 8002h
FBB0 rrc
FBB1 rrc
FBB2 rrc
FBB3 rrc ; d0 -- get first state
FBB4 ani 1 ; mask other bits
FBB6 mov e, a ; e=d0
FBB7
FBB7 loc_0_FBB7:
FBB7 pop psw ; delay 11t
FBB8 mov a, c ; a = c (current byte)
FBB9 ani 7Fh ; d7=0
FBBB rlc ; clear d0 in c for next bit
FBBC mov c, a ; c = a
FBBD mvi h, 0
FBBF
FBBF loc_0_FBBF:
FBBF dcr h
FBC0 jz loc_0_FC34 ; -- wait for change bit
FBC3 pop psw ; delay 11t
FBC4 lda 8002h
FBC7 rrc
FBC8 rrc
FBC9 rrc
FBCA rrc ; d0 bit from tape
FBCB ani 1 ; mask another bits
FBCD cmp e ; d5 = prev d5 ?
FBCE jz loc_0_FBBF ; wait while '='
FBD1 ora c ;
FBD2 mov c, a ; c0=bit, current bit
FBD3 dcr d ; count--
FBD4 lda 362Fh ; a=input delay (2ah=42)
FBD7 jnz loc_0_FBDC ; if it is last bit ->
FBDA sui 12h ; dec delay
FBDC
FBDC loc_0_FBDC:
FBDC mov b, a ; b=input delay ( 5 ) -+ 1097
FBDD ; |
FBDD loc_0_FBDD: ; |
FBDD pop psw ; 11 -+ |
FBDE dcr b ; 5 | 26*42=1092 -+
FBDF jnz loc_0_FBDD ; 10 -+
FBE2 inr d ; count++, restore
FBE3 lda 8002h
FBE6 rrc
FBE7 rrc
FBE8 rrc
FBE9 rrc ; d0=bit
FBEA ani 1 ; mask other bits
FBEC mov e, a ; e=d0
FBED mov a, d ; count=ff ?
FBEE ora a ; we waits for sinc-byte ?
FBEF jp loc_0_FC0B ; if not -> goto to count--
FBF2 mov a, c ; a=current byte state
FBF3 cpi 0E6h ; ; a=sinc-byte ?
FBF5 jnz loc_0_FBFF ; if not -> goto
FBF8 xra a
FBF9 sta 362Eh ; [362E]=0
FBFC jmp loc_0_FC09
FBFF ;----------------------------------------------------------------------------
FBFF
FBFF loc_0_FBFF:
FBFF cpi 19h ; a=!sinc-byte ?
FC01 jnz loc_0_FBB7 ; if not -> goto
FC04 mvi a, 0FFh
FC06 sta 362Eh ; [362e]=FF
FC09
FC09 loc_0_FC09: ; sinc-byte or !sinc-byte inputed
FC09 mvi d, 9 ; start to input info byte
FC0B
FC0B loc_0_FC0B:
FC0B dcr d ; get another 9 sinc-bytes
FC0C jnz loc_0_FBB7
FC0F lxi h, 0E004h ; -+ DMA and VG ?!
FC12 mvi m, 0D0h ; |
FC14 mvi m, 36h ; |
FC16 inx h ; |
FC17 mvi m, 23h ; |
FC19 mvi m, 49h ; |
FC1B mvi a, 27h ; |
FC1D sta 0C001h ; |
FC20 mvi a, 0E0h ; |
FC22 sta 0C001h ; |
FC25 mvi l, 8 ; |
FC27 mvi m, 0A4h ; |
FC29 lhld 360Dh ; |
FC2C sphl ; -+
FC2D lda 362Eh ;
FC30 xra c
FC31 jmp loc_0_FCA1 ; exit
FC34 ;----------------------------------------------------------------------------
FC34
FC34 loc_0_FC34: ; time-out !
FC34 lhld 360Dh
FC37 sphl ; restore stack
FC38 call entry_video
FC3B mov a, d
FC3C ora a ; timeout in info-byte ?
FC3D jp loc_0_FAAE ; yes -> warm restart monitor
FC40 call loc_0_F9A4 ; test for keypressing
FC43 jmp loc_0_FB9C ; repeat input for sinc-byte
; again
FC46 ;----------------------------------------------------------------------------
FC46 ; Out byte from c
;
FC46 entry_outb:
FC46 push h ; CODE XREF: F80Cj FB4Dp FB58p FB6Ep FB87p FB91p FB95j
FC47 push b
FC48 push d
FC49 push psw
FC4A mvi a, 80h
FC4C sta 0E008h
FC4F lxi h, 0
FC52 dad sp
FC53 lxi sp, 0
FC56 mvi d, 8
FC58
FC58 loc_0_FC58:
FC58 pop psw ; CODE XREF: FC82j
FC59 mov a, c
FC5A rlc
FC5B mov c, a
FC5C mvi a, 1
FC5E xra c
FC5F sta 8002h
FC62 lda 3630h
FC65 mov b, a
FC66
FC66 loc_0_FC66:
FC66 pop psw ; CODE XREF: FC68j
FC67 dcr b
FC68 jnz loc_0_FC66
FC6B mvi a, 0
FC6D xra c
FC6E sta 8002h
FC71 dcr d
FC72 lda 3630h
FC75 jnz loc_0_FC7A
FC78 sui 0Eh
FC7A
FC7A loc_0_FC7A:
FC7A mov b, a
FC7B
FC7B loc_0_FC7B:
FC7B pop psw
FC7C dcr b
FC7D jnz loc_0_FC7B
FC80 inr d
FC81 dcr d
FC82 jnz loc_0_FC58
FC85 sphl
FC86 lxi h, 0E004h
FC89 mvi m, 0D0h
FC8B mvi m, 36h
FC8D inx h
FC8E mvi m, 23h
FC90 mvi m, 49h
FC92 mvi a, 27h
FC94 sta 0C001h
FC97 mvi a, 0E0h
FC99 sta 0C001h
FC9C mvi l, 8
FC9E mvi m, 0A4h
FCA0 pop psw
FCA1
FCA1 loc_0_FCA1:
FCA1 pop d ; CODE XREF: FC31j
FCA2 pop b
FCA3 pop h
FCA4 ret
FCA5 ;----------------------------------------------------------------------------
FCA5
FCA5 entry_hexb:
FCA5 push psw ; CODE XREF: F815j F9BBp FB7Dp
FCA6 rrc
FCA7 rrc
FCA8 rrc
FCA9 rrc
FCAA call hexb_tetr
FCAD pop psw
FCAE
FCAE hexb_tetr:
FCAE ani 0Fh ; CODE XREF: FCAAp
FCB0 cpi 0Ah
FCB2 jm hexb_make_sym
FCB5 adi 7
FCB7
FCB7 hexb_make_sym:
FCB7 adi 30h ; '0' ; CODE XREF: FCB2j
FCB9
FCB9 loc_0_FCB9:
FCB9 mov c, a ; CODE XREF: F900p F925p F9C0p FA17p FAB0p
FCBA
FCBA entry_putc:
FCBA push psw ; CODE XREF: F809j F80Fj
FCBB push b
FCBC push d
FCBD push h
FCBE call entry_kbhit ; kbhit ?
FCC1 lxi h, loc_0_FD85
FCC4 push h
FCC5 lhld cursor_xy
FCC8 xchg ; de=cursor pos
FCC9 lhld cursor_addr ; hl=cursor addr
FCCC lda cursor_seq
FCCF dcr a
FCD0 jm loc_0_FCEE
FCD3 jz loc_0_FD65
FCD6 jpo loc_0_FD73
FCD9 mov a, c
FCDA sui 20h ; ' '
FCDC mov c, a
FCDD
FCDD loc_0_FCDD:
FCDD dcr c ; CODE XREF: FCE6j
FCDE jm loc_0_FCE9 ;
FCE1 push b
FCE2 call loc_0_FDB9
FCE5 pop b
FCE6 jmp loc_0_FCDD
FCE9 ;----------------------------------------------------------------------------
FCE9
FCE9 loc_0_FCE9:
FCE9 xra a ; CODE XREF: FCDEj FD68j
FCEA
FCEA loc_0_FCEA:
FCEA sta cursor_seq ; CODE XREF: FD70j FD7Aj FDA0j
FCED ret
FCEE ;----------------------------------------------------------------------------
FCEE
FCEE loc_0_FCEE:
FCEE mov a, c
FCEF ani 7Fh
FCF1 mov c, a
FCF2 cpi 1Fh
FCF4 jz loc_0_FDA3
FCF7 cpi 0Ch
FCF9 jz loc_0_FDB2
FCFC cpi 0Dh
FCFE
FCFE locret_0_FCFE:
FCFE jz loc_0_FDF3 ; CODE XREF: FCD0j
FD01 cpi 0Ah
FD03
FD03 locret_0_FD03:
FD03 jz loc_0_FD47 ; CODE XREF: FD7Ep
FD06 cpi 8
FD08 jz loc_0_FDD6
FD0B cpi 18h
FD0D jz loc_0_FDB9
FD10 cpi 19h
FD12 jz loc_0_FDE2
FD15 cpi 1Ah
FD17 jz loc_0_FDC5
FD1A cpi 1Bh
FD1C jz loc_0_FD9E
FD1F cpi 7
FD21 jnz loc_0_FD38
FD24 lxi b, 5F0h
FD27
FD27 loc_0_FD27:
FD27 mov a, b ; CODE XREF: FD34j FE3Ap
FD28
FD28 loc_0_FD28:
FD28 ei ; CODE XREF: FD2Aj
FD29 dcr a
FD2A jnz loc_0_FD28
FD2D mov a, b
FD2E
FD2E loc_0_FD2E:
FD2E di ; CODE XREF: FD30j
FD2F dcr a
FD30 jnz loc_0_FD2E
FD33 dcr c
FD34 jnz loc_0_FD27
FD37 ret
FD38 ;----------------------------------------------------------------------------
FD38
FD38 loc_0_FD38:
FD38 mov m, c ; CODE XREF: FD21j
FD39 call loc_0_FDB9
FD3C mov a, d
FD3D cpi 3
FD3F rnz
FD40 mov a, e
FD41 cpi 8
FD43 rnz
FD44 call loc_0_FDE2
FD47
FD47 loc_0_FD47:
FD47 mov a, d ; CODE XREF: FD03j
FD48 cpi 1Bh
FD4A jnz loc_0_FDC5
FD4D push h
FD4E push d
FD4F lxi h, 37C2h
FD52 lxi d, 3810h
FD55 lxi b, 79Eh
FD58
FD58 loc_0_FD58:
FD58 ldax d ; CODE XREF: FD5Fj
FD59 mov m, a
FD5A inx h
FD5B inx d
FD5C dcx b
FD5D mov a, c
FD5E ora b
FD5F jnz loc_0_FD58
FD62 pop d
FD63 pop h
FD64 ret
FD65 ;----------------------------------------------------------------------------
FD65
FD65 loc_0_FD65:
FD65 mov a, c ; CODE XREF: FCD3j
FD66 cpi 59h ; 'Y'
FD68 jnz loc_0_FCE9
FD6B call loc_0_FDB2
FD6E mvi a, 2
FD70 jmp loc_0_FCEA
FD73 ;----------------------------------------------------------------------------
FD73
FD73 loc_0_FD73:
FD73 mov a, c ; CODE XREF: FCD6j
FD74 sui 20h ; ' '
FD76 mov c, a
FD77
FD77 loc_0_FD77:
FD77 dcr c ; CODE XREF: FD82j
FD78 mvi a, 4
FD7A jm loc_0_FCEA
FD7D push b
FD7E call loc_0_FDC5
FD81 pop b
FD82 jmp loc_0_FD77
FD85 ;----------------------------------------------------------------------------
FD85
FD85 loc_0_FD85:
FD85 shld cursor_addr
FD88 xchg
FD89 shld cursor_xy
FD8C mvi a, 80h
FD8E sta 0C001h
FD91 mov a, l
FD92 sta 0C000h
FD95 mov a, h
FD96
FD96 loc_0_FD96:
FD96 sta 0C000h ; CODE XREF: F806j
FD99 pop h
FD9A pop d
FD9B pop b
FD9C pop psw
FD9D ret
FD9E ;----------------------------------------------------------------------------
FD9E
FD9E loc_0_FD9E:
FD9E mvi a, 1 ; CODE XREF: FD1Cj
FDA0 jmp loc_0_FCEA
FDA3 ;----------------------------------------------------------------------------
FDA3
FDA3 loc_0_FDA3:
FDA3 lxi h, 3FF4h ; CODE XREF: FCF4j
FDA6 lxi d, 925h
FDA9
FDA9 loc_0_FDA9:
FDA9 xra a ; CODE XREF: FDAFj
FDAA mov m, a
FDAB dcx h
FDAC dcx d
FDAD mov a, e
FDAE ora d
FDAF jnz loc_0_FDA9
FDB2
FDB2 loc_0_FDB2:
FDB2 lxi d, 308h ; CODE XREF: FCF9j FD6Bp
FDB5 lxi h, 37C2h
FDB8 ret
FDB9 ;----------------------------------------------------------------------------
FDB9
FDB9 loc_0_FDB9:
FDB9 mov a, e ; CODE XREF: FCE2p FD0Dj FD39p
FDBA inx h
FDBB inr e
FDBC cpi 47h ; 'G'
FDBE rnz
FDBF mvi e, 8
FDC1 lxi b, 0FFC0h
FDC4 dad b
FDC5
FDC5 loc_0_FDC5:
FDC5 mov a, d ; CODE XREF: FD17j FD4Aj
FDC6 cpi 1Bh
FDC8 lxi b, 4Eh ; 'N'
FDCB jnz loc_0_FDD3
FDCE mvi d, 2
FDD0 lxi b, 0F8B0h
FDD3
FDD3 loc_0_FDD3:
FDD3 inr d ; CODE XREF: FDCBj
FDD4 dad b
FDD5 ret
FDD6 ;----------------------------------------------------------------------------
FDD6
FDD6 loc_0_FDD6:
FDD6 mov a, e ; CODE XREF: FD08j
FDD7 dcx h
FDD8 dcr e
FDD9 cpi 8
FDDB rnz
FDDC mvi e, 47h ; 'G'
FDDE lxi b, 40h ; '@'
FDE1 dad b
FDE2
FDE2 loc_0_FDE2:
FDE2 mov a, d ; CODE XREF: FD12j FD44p
FDE3 cpi 3
FDE5 lxi b, 0FFB2h
FDE8 jnz loc_0_FDF0
FDEB mvi d, 1Ch
FDED lxi b, 750h
FDF0
FDF0 loc_0_FDF0:
FDF0 dcr d ; CODE XREF: FDE8j
FDF1 dad b
FDF2 ret
FDF3 ;----------------------------------------------------------------------------
FDF3
FDF3 loc_0_FDF3:
FDF3 mov a, l ; CODE XREF: FCFEj
FDF4 sub e
FDF5 jnc loc_0_FDF9
FDF8 dcr h
FDF9
FDF9 loc_0_FDF9:
FDF9 mov l, a ; CODE XREF: FDF5j
FDFA mvi e, 8
FDFC lxi b, 8
FDFF dad b
FE00 ret
FE01 ;----------------------------------------------------------------------------
FE01
FE01 entry_kbhit:
FE01 lda 8002h ; CODE XREF: F812j FCBEp FE63p
FE04 ani 80h
FE06 jz loc_0_FE0E ; Repeat now ?
FE09 lda 3605h ; Get last key
FE0C ora a ; Check for 0 now
FE0D rnz
FE0E
FE0E loc_0_FE0E:
FE0E push h ; CODE XREF: FE06j
FE0F lhld 3609h
FE12 call entry_scan_kbd ; Scan -- FF - not
FE - rus/lat
xx - key
FE15 cmp l
FE16 mov l, a
FE17 jz loc_0_FE2A
FE1A
FE1A loc_0_FE1A:
FE1A mvi a, 1 ; CODE XREF: FE60j
FE1C sta 360Bh
FE1F mvi h, 15h
FE21
FE21 loc_0_FE21:
FE21 xra a ; CODE XREF: FE2Bj
FE22
FE22 loc_0_FE22:
FE22 shld 3609h ; CODE XREF: FE2Fj FE4Ej
FE25 pop h
FE26 sta 3605h
FE29 ret
FE2A ;----------------------------------------------------------------------------
FE2A
FE2A loc_0_FE2A:
FE2A dcr h ; CODE XREF: FE17j
FE2B jnz loc_0_FE21
FE2E inr a
FE2F jz loc_0_FE22
FE32 inr a
FE33 jz loc_0_FE51
FE36 push b
FE37 lxi b, 5003h
FE3A call loc_0_FD27
FE3D pop b
FE3E lda 360Bh
FE41 mvi h, 0E0h
FE43 dcr a
FE44 sta 360Bh
FE47 jz loc_0_FE4C
FE4A mvi h, 40h ; '@'
FE4C
FE4C loc_0_FE4C:
FE4C mvi a, 0FFh ; CODE XREF: FE47j
FE4E jmp loc_0_FE22
FE51 ;----------------------------------------------------------------------------
FE51
FE51 loc_0_FE51:
FE51 lda 8002h ; CODE XREF: FE33j FE56j
FE54 ani 80h
FE56 jz loc_0_FE51
FE59 lda ruslat_flag
FE5C cma
FE5D sta ruslat_flag
FE60 jmp loc_0_FE1A
FE63 ;----------------------------------------------------------------------------
FE63
FE63 entry_getc:
FE63 call entry_kbhit ; CODE XREF: F803j FE67j
FE66 ora a
FE67 jz entry_getc
FE6A xra a
FE6B sta 3605h
FE6E lda 3609h
FE71 ret
FE72 ;----------------------------------------------------------------------------
FE72
FE72 entry_scan_kbd:
FE72 lda 8002h ; CODE XREF: F81Bj F9A4p FE12p
FE75 ani 80h ; rus/lat ?
FE77 jnz loc_0_FE7D
FE7A mvi a, 0FEh ; yes
FE7C ret
FE7D ;----------------------------------------------------------------------------
FE7D
FE7D loc_0_FE7D:
FE7D xra a ; CODE XREF: FE77j
FE7E sta 8000h
FE81 sta 8002h
FE84 lda ruslat_flag
FE87 ani 1
FE89 ori 6
FE8B sta 8003h
FE8E lda 8001h
FE91 inr a
FE92 jnz loc_0_FE97
FE95 dcr a
FE96 ret
FE97 ;----------------------------------------------------------------------------
FE97
FE97 loc_0_FE97:
FE97 push h ; CODE XREF: FE92j
FE98 mvi l, 1 ; flying '1'
FE9A mvi h, 7 ; testing of 8 lines
; from 8 to 1
FE9C
FE9C loc_0_FE9C:
FE9C mov a, l ; CODE XREF: FEACj
FE9D rrc
FE9E mov l, a
FE9F cma
FEA0 sta 8000h
FEA3 lda 8001h
FEA6 cma
FEA7 ora a
FEA8 jnz loc_0_FEB3
FEAB dcr h
FEAC jp loc_0_FE9C
FEAF
FEAF loc_0_FEAF:
FEAF mvi a, 0FEh ; CODE XREF: FEBAj
FEB1 pop h
FEB2 ret
FEB3 ;----------------------------------------------------------------------------
FEB3
FEB3 loc_0_FEB3:
FEB3 mvi l, 20h ; ' ' ; CODE XREF: FEA8j
FEB5
FEB5 loc_0_FEB5:
FEB5 lda 8001h ; CODE XREF: FEBEj
FEB8 cma
FEB9 ora a
FEBA jz loc_0_FEAF
FEBD dcr l
FEBE jnz loc_0_FEB5
FEC1 mvi l, 8
FEC3
FEC3 loc_0_FEC3:
FEC3 dcr l ; CODE XREF: FEC5j
FEC4 rlc
FEC5 jnc loc_0_FEC3
FEC8 mov a, h
FEC9 mov h, l
FECA mov l, a
FECB cpi 1
FECD jz loc_0_FEFA
FED0 jc loc_0_FEF3
FED3 rlc
FED4 rlc
FED5 rlc
FED6 adi 20h ; ' '
FED8 ora h
FED9 cpi 5Fh ; '_'
FEDB jnz loc_0_FF06
FEDE mvi a, 20h ; ' '
FEE0 pop h
FEE1 ret
FEE1 ;----------------------------------------------------------------------------
FEE2 unk_0_FEE2: .db 9 ;
FEE3 .db 0Ah, 0Dh, 7Fh, 8, 19h, 18h, 1Ah
FEEA byte_0_FEEA: .db 0Ch, 1Fh, 1Bh
FEED .db 0, 1, 2, 3, 4, 5
FEF3 ;----------------------------------------------------------------------------
FEF3
FEF3 loc_0_FEF3:
FEF3 mov a, h ; CODE XREF: FED0j
FEF4 lxi h, byte_0_FEEA
FEF7 jmp loc_0_FEFE
FEFA ;----------------------------------------------------------------------------
FEFA
FEFA loc_0_FEFA:
FEFA mov a, h ; CODE XREF: FECDj
FEFB lxi h, unk_0_FEE2
FEFE
FEFE loc_0_FEFE:
FEFE add l ; CODE XREF: FEF7j
FEFF mov l, a
FF00 mov a, m
FF01 cpi 40h ; '@'
FF03 pop h
FF04 rc
FF05 push h
FF06
FF06 loc_0_FF06:
FF06 mov l, a ; CODE XREF: FEDBj
FF07 lda 8002h
FF0A mov h, a
FF0B ani 40h
FF0D jnz loc_0_FF1A
FF10 mov a, l
FF11 cpi 40h ; '@'
FF13 jm loc_0_FF3F
FF16 ani 1Fh
FF18 pop h
FF19 ret
FF1A ;----------------------------------------------------------------------------
FF1A
FF1A loc_0_FF1A:
FF1A lda ruslat_flag ; CODE XREF: FF0Dj
FF1D ora a
FF1E jz loc_0_FF2A
FF21 mov a, l
FF22 cpi 40h ; '@'
FF24 jm loc_0_FF2A
FF27 ori 20h
FF29 mov l, a
FF2A
FF2A loc_0_FF2A:
FF2A mov a, h ; CODE XREF: FF1Ej FF24j
FF2B ani 20h
FF2D jnz loc_0_FF3F
FF30 mov a, l
FF31 cpi 40h ; '@'
FF33 jm loc_0_FF3B
FF36 mov a, l
FF37 xri 20h
FF39 pop h
FF3A ret
FF3B ;----------------------------------------------------------------------------
FF3B
FF3B loc_0_FF3B:
FF3B mov a, l ; CODE XREF: FF33j
FF3C ani 2Fh
FF3E mov l, a
FF3F
FF3F loc_0_FF3F:
FF3F mov a, l ; CODE XREF: FF13j FF2Dj
FF40 cpi 40h ; '@'
FF42 pop h
FF43 rp
FF44 push h
FF45 mov l, a
FF46 ani 0Fh
FF48 cpi 0Ch
FF4A mov a, l
FF4B jm loc_0_FF50
FF4E cpi 10h
FF50
FF50 loc_0_FF50:
FF50 pop h ; CODE XREF: FF4Bj
FF51 ret
FF52 ;----------------------------------------------------------------------------
FF52
FF52 entry_getlim:
FF52 lhld memlim ; CODE XREF: F830j
FF55 ret
FF56 ;----------------------------------------------------------------------------
FF56
FF56 entry_setlim:
FF56 shld memlim ; CODE XREF: F833j
FF59 ret
FF59 ;----------------------------------------------------------------------------
FF5A Radio: .db 1Fh ;
FF5B m_Radio86rk: .text "radio-86rk" ; CODE XREF: F8F3p
FF5B .db 0
FF66 Prompt: .dw 0A0Dh
FF68 m_FF68: .text "-->"
FF68 .db 0
FF6C m_FF6C: .dw 0A0Dh
FF6E .db 18h, 18h, 18h, 18h, 0 ; -> -> -> ->
FF73 Regs: .dw 0A0Dh
FF75 m_Pc: .text " PC-"
FF79 .dw 0A0Dh
FF7B m_Hl: .text " HL-"
FF7F .dw 0A0Dh
FF81 m_Bc: .text " BC-"
FF85 .dw 0A0Dh
FF87 m_De: .text " DE-"
FF8B .dw 0D0Ah
FF8D m_Sp: .text " SP-"
FF91 .dw 0A0Dh
FF93 m_Af: .text " AF-"
FF97 .db 19h, 19h, 19h, 19h, 9, 19h, 19h
FF9E BackClr: .db 8, 20h, 8, 0
FFA2 ;----------------------------------------------------------------------------
FFA2
FFA2 loc_0_FFA2:
FFA2 shld 3616h
FFA5 push psw
FFA6 pop h
FFA7 shld 361Eh
FFAA pop h
FFAB dcx h
FFAC shld 3614h
FFAF lxi h, 0
FFB2 dad sp
FFB3 lxi sp, 361Eh
FFB6 push h
FFB7 push d
FFB8 push b
FFB9 lhld 3614h
FFBC lxi sp, stack
FFBF call loc_0_FB78
FFC2 xchg
FFC3 lhld 3623h
FFC6 call cmp_hl_de
FFC9 jnz prompt_loop
FFCC lda 3625h
FFCF mov m, a
FFD0 jmp prompt_loop
FFD3 ;----------------------------------------------------------------------------
FFD3
FFD3 print_regs:
FFD3 lxi h, Regs ; CODE XREF: F889j
FFD6 call entry_puts
FFD9 lxi h, 3614h
FFDC mvi b, 6
FFDE
FFDE loc_0_FFDE:
FFDE mov e, m ; CODE XREF: FFFAj
FFDF inx h
FFE0 mov d, m
FFE1 push b
FFE2 push h
FFE3 xchg
FFE4 call loc_0_FB78
FFE7 call loc_0_F8EE
FFEA jnc loc_0_FFF6
FFED call loc_0_F95A
FFF0 pop d
FFF1 push d
FFF2 xchg
FFF3 mov m, d
FFF4 dcx h
FFF5 mov m, e
FFF6
FFF6 loc_0_FFF6:
FFF6 pop h ; CODE XREF: FFEAj
FFF7 pop b
FFF8 dcr b
FFF9 inx h
FFFA jnz loc_0_FFDE
FFFD ret
FFFD ;----------------------------------------------------------------------------
FFFE .dw 89BBh ; junk
FFFE
FFFE ; end of 'seg000'
FFFE
FFFE
FFFE .end
|
► Sign in to add a comment