My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
MonitorDisassembled  
Монитор Радио-86РК (версия 16КБ).
Featured
Updated Oct 16, 2009 by ade...@gmail.com

Монитор Радио-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
Powered by Google Project Hosting