mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3820 lines
82 KiB
3820 lines
82 KiB
; rz (receive Zmodem) is a disassembly of CP/M 3 binaries by Wilfried Schmitten released in 1992.
|
|
; this file is an attempt to reconstruct the Z80 assembler source code which has been lost
|
|
; credit to Wilfried Schmitten for writing this program initially
|
|
|
|
;
|
|
; +-----------------------------------------------------------------+
|
|
; | This file is generated by The Interactive Disassembler (IDA) FW |
|
|
; | Copyright (c) 1997 by DataRescue sprl, <ida@datarescue.com> |
|
|
; | Professional version of IDA is at http://www.idapro.com |
|
|
; +-----------------------------------------------------------------+
|
|
;
|
|
|
|
|
|
; File Name C:\RZ.COM
|
|
; Format COM File
|
|
; Base Address: 0000h Range: 0100h - 1800h Loaded length: 1700h
|
|
|
|
; Processor: z80
|
|
; Target assembler: Table Driven Assembler (TASM) by Speech Technology Inc.
|
|
|
|
bdos .equ 0005h
|
|
|
|
A_READ .equ 3
|
|
A_STATIN .equ 7
|
|
C_WRITESTR .equ 9
|
|
S_BDOSVER .equ 12
|
|
DRV_SET .equ 14
|
|
F_USERNUM .equ 32
|
|
S_SYSVAR .equ 49
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
.org 100h
|
|
|
|
start: ld sp, nstack ; Setup local stack
|
|
ld c, S_BDOSVER
|
|
call bdos ; Return CP/M version #
|
|
cp '0' ; Get CP/M vers. #
|
|
jp c, err_vern ; CP/M 2 or less?
|
|
ld de, str_welc
|
|
ld c, C_WRITESTR ;yes
|
|
call bdos ;"RZ for ..."; Output string
|
|
call sub_0_195 ;print string
|
|
ld hl, (word_0_179E)
|
|
xor a
|
|
ld b, 14h
|
|
call sub_0_1786
|
|
ld a, (80h)
|
|
or a
|
|
jr z, loc_0_174
|
|
ld (hl), 2
|
|
ld de, 82h
|
|
ex de, hl
|
|
ld a, 0FFh
|
|
call sub_0_172E
|
|
jp nz, err_exit
|
|
ld hl, (word_0_179E)
|
|
inc hl
|
|
ld a, (hl)
|
|
or a
|
|
jp z, loc_0_174
|
|
inc hl
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
inc hl
|
|
ld a, (de)
|
|
cp 2Dh
|
|
jr nz, loc_0_152
|
|
call sub_0_39A
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
ld a, d
|
|
or e
|
|
jr z, loc_0_174
|
|
|
|
loc_0_152: ; CODE XREF: start+46j
|
|
ld hl, byte_0_17A3
|
|
ex de, hl
|
|
call sub_0_1492
|
|
ld hl, byte_0_17A3
|
|
xor a
|
|
or (hl)
|
|
jr nz, loc_0_164
|
|
ld a, (byte_0_17A1)
|
|
ld (hl), a
|
|
|
|
loc_0_164: ; CODE XREF: start+5Ej
|
|
ld bc, 0Dh
|
|
add hl, bc
|
|
dec de
|
|
ldi
|
|
ld de, byte_0_17A3
|
|
call sub_0_1B0
|
|
call sub_0_3C9
|
|
|
|
loc_0_174: ; CODE XREF: start+25j start+3Bj
|
|
|
|
ld de, str_sxfr
|
|
ld c, C_WRITESTR
|
|
call bdos ; Output string
|
|
call sub_0_3EF
|
|
call sub_0_8D1
|
|
call sub_0_451
|
|
|
|
loc_0_185: ; DATA XREF: sub_0_195+17w
|
|
ld bc, 0
|
|
ld (word_0_17A2), bc
|
|
ld de, byte_0_17A3
|
|
call sub_0_1B0
|
|
jp 0
|
|
; End of function start
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_195: ; CODE XREF: start+15p
|
|
ld a, (4)
|
|
ld b, a
|
|
rlca
|
|
rlca
|
|
rlca
|
|
rlca
|
|
and 0Fh
|
|
ld (byte_0_17A0), a
|
|
ld a, b
|
|
and 0Fh
|
|
inc a
|
|
ld (byte_0_17A1), a
|
|
ld hl, (byte_0_17A0)
|
|
ld (loc_0_185+1), hl
|
|
ret
|
|
; End of function sub_0_195
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1B0: ; CODE XREF: start+6Ep start+8Fp
|
|
ld a, (de)
|
|
push af
|
|
dec de
|
|
ld a, (de)
|
|
ld e, a
|
|
ld c, F_USERNUM
|
|
call bdos ; get/set user number
|
|
pop af
|
|
dec a
|
|
ld e, a
|
|
ld c, DRV_SET
|
|
jp 5 ; Select disc
|
|
; End of function sub_0_1B0
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
err_vern: ld de, str_cpm3 ; Display version
|
|
ld c, C_WRITESTR ; error and exit
|
|
call bdos
|
|
|
|
err_exit: ld de, str_info ; Display usage
|
|
ld c, C_WRITESTR ; and exit to
|
|
call bdos ; CP/M
|
|
jp 0
|
|
;----------------------------------------------------------------------------
|
|
str_welc: .text "RZ for CP/M 3 V 1.04\r\n"
|
|
.text "(C) 92 wshbg\r\n\n$"
|
|
str_sxfr: .text "start your local X/Y/ZModem sending program\r\n\n$"
|
|
str_cpm3: .text "sorry, CP/M 3 Tool\r\n$"
|
|
str_info: .text "usage: rz [-?pbcrxyz] [du:fn]\r\n\n"
|
|
.text " options for ZModem:\r\n"
|
|
.text " ? this help\r\n"
|
|
.text " p protect File\r\n"
|
|
.text " b receive binary\r\n"
|
|
.text " c convert to local linefeed\r\n"
|
|
.text " r resume transmission\r\n"
|
|
.text " x,y,z Protokoll\r\n"
|
|
.text " du:fn defaults to XModem\r\n\n"
|
|
.text "these values override options from sender\r\n$"
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_39A: ; CODE XREF: start+48p
|
|
push hl
|
|
push de
|
|
|
|
loc_0_39C: ; CODE XREF: sub_0_39A+12j
|
|
inc de
|
|
ld a, (de)
|
|
or a
|
|
jr z, loc_0_3AE
|
|
ld hl,loc_0_3B1
|
|
ld bc, 8
|
|
cpir
|
|
call z, sub_0_67F
|
|
jr loc_0_39C
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_3AE: ; CODE XREF: sub_0_39A+5j
|
|
pop de
|
|
pop hl
|
|
ret
|
|
; End of function sub_0_39A
|
|
|
|
;----------------------------------------------------------------------------
|
|
loc_0_3B1: .text "?PBCXYZR"
|
|
|
|
.dw sub_0_3E9
|
|
.dw sub_0_3D1
|
|
.dw sub_0_3CD
|
|
.dw sub_0_3C9
|
|
.dw sub_0_3E3
|
|
.dw sub_0_3DD
|
|
.dw sub_0_3D7
|
|
.dw err_exit
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_3C9: ; CODE XREF: start+71p
|
|
ld a, 1
|
|
jr loc_0_3D3
|
|
sub_0_3CD: ld a,3
|
|
jr loc_0_3D3
|
|
sub_0_3D1: ld a,4
|
|
loc_0_3D3: ld (byte_0_8AF), a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
sub_0_3D7: ld a,$ff
|
|
ld (08B0h),a
|
|
ret
|
|
sub_0_3DD: ld a,$ff
|
|
ld (08B2h),a
|
|
ret
|
|
sub_0_3E3: ld a,$ff
|
|
ld (08B1h),a
|
|
ret
|
|
sub_0_3E9: ld a,$ff
|
|
ld (08B3h),a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_3EF: ; CODE XREF: start+7Cp
|
|
xor a
|
|
ld (byte_0_460), a
|
|
ld (byte_0_464), a
|
|
ld c, S_SYSVAR
|
|
ld de, 45Fh
|
|
call bdos ; Access the system variables
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld (word_0_46F), hl
|
|
ld c, S_SYSVAR
|
|
ld de, 463h
|
|
call bdos ; Access the system variables
|
|
ld (word_0_46B), hl
|
|
ld de, (word_0_46F)
|
|
ld a, h
|
|
and d
|
|
ld h, a
|
|
ld a, l
|
|
and e
|
|
ld l, a
|
|
ld (word_0_465), hl
|
|
ld c, S_SYSVAR
|
|
ld de, 467h
|
|
call bdos ; Access the system variables
|
|
ld (word_0_46D), hl
|
|
ld de, (word_0_46F)
|
|
ld a, h
|
|
and d
|
|
ld h, a
|
|
ld a, l
|
|
and e
|
|
ld l, a
|
|
ld (word_0_469), hl
|
|
|
|
loc_0_437: ; CODE XREF: sub_0_451+Cj
|
|
ld a, 0FEh
|
|
ld (byte_0_464), a
|
|
ld de, 463h
|
|
ld c, S_SYSVAR
|
|
call bdos ; Access the system variables
|
|
ld a, 0FEh
|
|
ld (byte_0_468), a
|
|
ld de, 467h
|
|
ld c, S_SYSVAR
|
|
jp 5 ; Access the System Control Block
|
|
; End of function sub_0_3EF
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_451: ; CODE XREF: start+82p
|
|
ld hl, (word_0_46B)
|
|
ld (word_0_465), hl
|
|
ld hl, (word_0_46D)
|
|
ld (word_0_469), hl
|
|
jr loc_0_437
|
|
; End of function sub_0_451
|
|
|
|
;----------------------------------------------------------------------------
|
|
.db 28h ; (
|
|
byte_0_460: .db 0 ; DATA XREF: sub_0_3EF+1w
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 24h ; $
|
|
byte_0_464: .db 0 ; DATA XREF: sub_0_3EF+4w sub_0_3EF+4Aw
|
|
word_0_465: .dw 0 ; DATA XREF: sub_0_3EF+2Dw
|
|
; sub_0_451+3w
|
|
.db 22h ; "
|
|
byte_0_468: .db 0 ; DATA XREF: sub_0_3EF+57w
|
|
word_0_469: .dw 0 ; DATA XREF: sub_0_3EF+45w
|
|
; sub_0_451+9w
|
|
word_0_46B: .dw 0 ; DATA XREF: sub_0_3EF+20w
|
|
; sub_0_451r
|
|
word_0_46D: .dw 0 ; DATA XREF: sub_0_3EF+38w
|
|
; sub_0_451+6r
|
|
word_0_46F: .dw 0 ; DATA XREF: sub_0_3EF+15w
|
|
; sub_0_3EF+23r ...
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_471: ; CODE XREF: sub_0_961+92p
|
|
; seg000:0A29p ...
|
|
call bdos
|
|
or a
|
|
ret
|
|
; End of function sub_0_471
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_476: ; CODE XREF: sub_0_4A4+37p
|
|
; sub_0_961+61p
|
|
push af
|
|
|
|
loc_0_477: ; CODE XREF: sub_0_476+8j
|
|
push bc
|
|
xor a
|
|
ld b, a
|
|
ld c, a
|
|
cpir
|
|
pop bc
|
|
djnz loc_0_477
|
|
pop af
|
|
ret
|
|
; End of function sub_0_476
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_482: ; CODE XREF: sub_0_1289+122p
|
|
ld a, (byte_0_2D04)
|
|
ld de, text495h ; Update error string with errors
|
|
call sub_0_16E7
|
|
ld de, text493h
|
|
ld c, C_WRITESTR
|
|
jp 5 ; Output string
|
|
; End of function sub_0_482
|
|
|
|
;----------------------------------------------------------------------------
|
|
text493h: .text "\r\n"
|
|
text495h: .db 0,0,0
|
|
.text " error(s)\r\n$"
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_4A4: ; CODE XREF: sub_0_961+82p
|
|
ld de, byte_0_17A3
|
|
ld hl, byte_0_4F8
|
|
ld (hl), 3Ah
|
|
inc hl
|
|
xor a
|
|
ld b, 0Dh
|
|
call sub_0_1786
|
|
inc de
|
|
call sub_0_16C4
|
|
dec de
|
|
ld a, (de)
|
|
add a, 40h
|
|
ld (byte_0_4F4), a
|
|
dec de
|
|
ld a, (de)
|
|
ld de,byte_0_4F5
|
|
call sub_0_16E7
|
|
ld a, 24h
|
|
ld (byte_0_507), a
|
|
ld de, text4F2h
|
|
ld c, C_WRITESTR
|
|
call bdos ; Output string
|
|
ld hl, (byte_0_2CD4)
|
|
ld a, h
|
|
or l
|
|
ret z
|
|
ld b, 1
|
|
call sub_0_476
|
|
dec hl
|
|
ld (hl), 24h
|
|
ld de, (byte_0_2CD4)
|
|
ld c, C_WRITESTR
|
|
call bdos ; Output string
|
|
ld de, text508h
|
|
ld c, C_WRITESTR
|
|
jp 5 ; Output string
|
|
; End of function sub_0_4A4
|
|
|
|
;----------------------------------------------------------------------------
|
|
text4F2h: .text "\r\n"
|
|
byte_0_4F4: .db 0 ; DATA XREF: sub_0_4A4+17w
|
|
byte_0_4F5: .db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
byte_0_4F8: .db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 20h ;
|
|
byte_0_507: .db 0 ; DATA XREF: sub_0_4A4+24w
|
|
text508h: .text "\r\n$"
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_50B: ; CODE XREF: sub_0_D0Ep sub_0_D30+30p
|
|
|
|
ld hl, 2CABh
|
|
ld de, 51Fh
|
|
call loc_0_774
|
|
ld (hl), 24h
|
|
ld de, text51Eh
|
|
ld c, C_WRITESTR
|
|
jp 5 ; Output string
|
|
; End of function sub_0_50B
|
|
|
|
;----------------------------------------------------------------------------
|
|
text51Eh:
|
|
.db 0Dh ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
.db 0 ;
|
|
|
|
loc_0_529: ld hl,str_busy
|
|
ld a,0
|
|
inc a
|
|
and 3
|
|
ld (052Dh),a
|
|
ld e,a
|
|
ld d,0
|
|
add hl,de
|
|
ld a,(hl)
|
|
ld (0549h),a
|
|
ld de,0548h
|
|
ld c,9
|
|
jp bdos
|
|
|
|
str_busy: .text "|/-\\ |\b\b$"
|
|
|
|
ld de,0569h
|
|
jr sub_0_555
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_552: ld de, text55Ah
|
|
sub_0_555: ld c, C_WRITESTR
|
|
jp bdos ; Output string
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
text55Ah: .text "File skipped\r\n$"
|
|
text569h: .text "can't open any file\r\n$"
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_57F: ; CODE XREF: sub_0_DE7+Dp
|
|
ld hl,byte_0_586
|
|
ld (hl), a
|
|
inc hl
|
|
ld (hl), c
|
|
ret
|
|
; End of function sub_0_57F
|
|
|
|
;----------------------------------------------------------------------------
|
|
byte_0_586: .db 0 ;
|
|
byte_0_587: .db 0 ; DATA XREF: sub_0_5B4r
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_588: ; CODE XREF: sub_0_588+1Fj
|
|
; sub_0_5D4+4p ...
|
|
or a
|
|
ld hl, (word_0_1808)
|
|
ld de, 1000h
|
|
sbc hl, de
|
|
jr z, loc_0_5A9
|
|
ld c, A_STATIN
|
|
call bdos ; Auxiliary Input status
|
|
or a
|
|
jr z, loc_0_5A9
|
|
ld c, A_READ
|
|
call bdos ; Auxiliary (Reader) input
|
|
ld c, a
|
|
ld hl, 1808h
|
|
call sub_0_61C
|
|
jr sub_0_588
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_5A9: ; CODE XREF: sub_0_588+9j sub_0_588+11j
|
|
ld hl, 587h
|
|
or (hl)
|
|
ret nz
|
|
ld hl, (1808h)
|
|
ld a, h
|
|
or l
|
|
ret
|
|
; End of function sub_0_588
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_5B4: ; CODE XREF: sub_0_5D4+12p
|
|
ld a, (byte_0_587)
|
|
or a
|
|
ld hl, 1808h
|
|
jp z, loc_0_5F7
|
|
push af
|
|
ld hl, 587h
|
|
dec (hl)
|
|
dec hl
|
|
pop af
|
|
ld a, (hl)
|
|
ret
|
|
; End of function sub_0_5B4
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_5C7: LD C,4 ; punch out
|
|
LD E,A
|
|
JP bdos
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_5CD: ld c, 8 ; CODE XREF: seg000:1462p
|
|
call bdos ; BDOS function 8 (A_STATOUT) - Auxiliary Output status
|
|
or a
|
|
ret
|
|
; End of function sub_0_5CD
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_5D4: ; CODE XREF: sub_0_DE7+11p
|
|
push bc
|
|
ld b, 5Fh
|
|
|
|
loc_0_5D7: ; CODE XREF: sub_0_5D4+Dj
|
|
push bc
|
|
call sub_0_588
|
|
pop bc
|
|
jr nz, loc_0_5E6
|
|
call sub_0_5EB
|
|
djnz loc_0_5D7
|
|
call sub_0_588
|
|
|
|
loc_0_5E6: ; CODE XREF: sub_0_5D4+8j
|
|
call nz, sub_0_5B4
|
|
pop bc
|
|
ret
|
|
; End of function sub_0_5D4
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_5EB: ; CODE XREF: sub_0_5D4+Ap
|
|
push bc
|
|
ld a, 4
|
|
ld b, 0
|
|
|
|
loc_0_5F0: ; CODE XREF: sub_0_5EB+5j sub_0_5EB+8j
|
|
djnz loc_0_5F0
|
|
dec a
|
|
jr nz, loc_0_5F0
|
|
pop bc
|
|
ret
|
|
; End of function sub_0_5EB
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_5F7: ; CODE XREF: sub_0_5B4+7j
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
ld a, d
|
|
or e
|
|
ret z
|
|
dec de
|
|
ld (hl), d
|
|
dec hl
|
|
ld (hl), e
|
|
ld de, 4
|
|
add hl, de
|
|
push hl
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
inc hl
|
|
add hl, de
|
|
ex (sp), hl
|
|
inc de
|
|
ld a, e
|
|
and 0FFh
|
|
ld (hl), a
|
|
inc hl
|
|
ld a, d
|
|
and 0Fh
|
|
ld (hl), a
|
|
pop hl
|
|
ld a, 1
|
|
or a
|
|
ld a, (hl)
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_61C: ; CODE XREF: sub_0_588+1Cp
|
|
or a
|
|
push hl
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
ld hl, 1000h
|
|
sbc hl, de
|
|
pop hl
|
|
ret z
|
|
inc de
|
|
ld (hl), e
|
|
inc hl
|
|
ld (hl), d
|
|
inc hl
|
|
push hl
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
add hl, de
|
|
ex (sp), hl
|
|
inc de
|
|
ld a, e
|
|
and 0FFh
|
|
ld (hl), a
|
|
inc hl
|
|
ld a, d
|
|
and 0Fh
|
|
ld (hl), a
|
|
pop hl
|
|
ld (hl), c
|
|
ret
|
|
; End of function sub_0_61C
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_643: ; CODE XREF: sub_0_961+54p
|
|
; sub_0_11FA+69p
|
|
ld hl, 17A2h
|
|
ld b, 25h
|
|
jr loc_0_650
|
|
; End of function sub_0_643
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_64A: ; CODE XREF: sub_0_961+9Ep
|
|
; seg000:0A63p
|
|
ld b, 3
|
|
jr loc_0_650
|
|
; End of function sub_0_64A
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_64E: ; CODE XREF: sub_0_8D1+Cp sub_0_BD3+2Fp
|
|
ld b, 6
|
|
|
|
loc_0_650: ; CODE XREF: sub_0_643+5j sub_0_64A+2j
|
|
xor a
|
|
jp sub_0_1786
|
|
; End of function sub_0_64E
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_654: ; CODE XREF: seg000:0AAEp
|
|
xor a
|
|
or (hl)
|
|
ret z
|
|
dec (hl)
|
|
inc hl
|
|
inc hl
|
|
ld e, (hl)
|
|
ld d, 0
|
|
ld a, e
|
|
inc a
|
|
and 7Fh
|
|
ld (hl), a
|
|
inc hl
|
|
adc hl, de
|
|
ld a, (hl)
|
|
ret nc
|
|
ccf
|
|
ret
|
|
; End of function sub_0_654
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
sub_0_669: LD A,80H
|
|
SUB (HL)
|
|
RET Z
|
|
INC (HL)
|
|
INC HL
|
|
LD E,(HL)
|
|
LD D,0
|
|
LD A,E
|
|
INC A
|
|
AND 7FH
|
|
LD (HL),A
|
|
INC HL
|
|
INC HL
|
|
ADC HL,DE
|
|
LD (HL),C
|
|
RET NC
|
|
CCF
|
|
RET
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_67F: ; CODE XREF: sub_0_39A+Fp sub_0_BD3+42j
|
|
|
|
add hl, bc
|
|
sla c
|
|
add hl, bc
|
|
ld c, (hl)
|
|
inc hl
|
|
ld h, (hl)
|
|
ld l, c
|
|
jp (hl)
|
|
; End of function sub_0_67F
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_688: ; CODE XREF: seg000:0726p sub_0_BD3+13p
|
|
|
|
xor a
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld (hl), a
|
|
ld d, h
|
|
ld e, l
|
|
inc de
|
|
jr loc_0_697
|
|
; End of function sub_0_688
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_692: push bc ; CODE XREF: seg000:077Bp seg000:07ADp
|
|
push de
|
|
push hl
|
|
ldi
|
|
loc_0_697: ldi ; CODE XREF: sub_0_688+8j
|
|
ldi
|
|
ldi
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_6A1: PUSH HL ;unref. ?
|
|
POP IX ;unref. ?
|
|
PUSH DE ;unref. ?
|
|
POP IY ;unref. ?
|
|
LD A,(IX+3) ;unref. ?
|
|
XOR (IY+3) ;unref. ?
|
|
JP P,loc_0_6B6 ;unref. ?
|
|
XOR (IX+3) ;unref. ?
|
|
loc_0_6B3: RET M ;unref. ?
|
|
CCF ;unref. ?
|
|
RET ;unref. ?
|
|
|
|
loc_0_6B6: XOR (IX+3) ;unref. ?
|
|
JP P,loc_0_6C2 ;unref. ?
|
|
CALL loc_0_6C2 ;unref. ?
|
|
SCF ;unref. ?
|
|
JR loc_0_6B3 ;unref. ?
|
|
|
|
loc_0_6C2: PUSH BC
|
|
PUSH DE ;unref. ?
|
|
PUSH HL ;unref. ?
|
|
EX DE,HL ;unref. ?
|
|
OR A ;unref. ?
|
|
LD B,4 ;unref. ?
|
|
loc_0_6C9: LD A,(DE) ;unref. ?
|
|
SBC A,(HL) ;unref. ?
|
|
INC DE ;unref. ?
|
|
INC HL ;unref. ?
|
|
DJNZ loc_0_6C9 ;unref. ?
|
|
POP HL ;unref. ?
|
|
POP DE ;unref. ?
|
|
POP BC ;unref. ?
|
|
RET ;unref. ?
|
|
|
|
loc_0_6D3: PUSH BC
|
|
PUSH DE
|
|
PUSH HL
|
|
LD B,4
|
|
loc_0_6D8: LD A,(DE)
|
|
XOR (HL)
|
|
JR NZ,loc_0_6E0
|
|
INC DE
|
|
INC HL
|
|
DJNZ loc_0_6D8
|
|
loc_0_6E0: POP HL
|
|
POP DE
|
|
POP BC
|
|
RET
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_6E4: push bc ; CODE XREF: sub_0_11FA+4Bp
|
|
push de
|
|
push hl
|
|
or a
|
|
ex af, af'
|
|
ld a, 4
|
|
|
|
loc_0_6EB: ex af, af' ; CODE XREF: sub_0_6E4+10j
|
|
ld a, (de)
|
|
adc a, (hl)
|
|
ld (bc), a
|
|
inc bc
|
|
inc de
|
|
inc hl
|
|
ex af, af'
|
|
dec a
|
|
jr nz, loc_0_6EB
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_6FA: push bc ; CODE XREF: seg000:0799p
|
|
push de
|
|
push hl
|
|
ex de, hl
|
|
or a
|
|
ex af, af'
|
|
ld a, 4
|
|
loc_0_702: ex af, af' ; CODE XREF: sub_0_6FA+11j
|
|
ld a, (de)
|
|
sbc a, (hl)
|
|
ld (bc), a
|
|
inc bc
|
|
inc hl
|
|
inc de
|
|
ex af, af'
|
|
dec a
|
|
jr nz, loc_0_702
|
|
ex af, af'
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_712: PUSH BC
|
|
PUSH HL
|
|
LD A,1
|
|
ADD A,(HL)
|
|
LD (HL),A
|
|
JR NC,loc_0_723
|
|
LD B,3
|
|
loc_0_71C: INC HL
|
|
LD A,0
|
|
ADC A,(HL)
|
|
LD (HL),A
|
|
DJNZ loc_0_71C
|
|
loc_0_723: POP HL
|
|
POP BC
|
|
RET
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_726: call sub_0_688 ; CODE XREF: sub_0_8A0+Cj
|
|
sub_0_729: push bc ; CODE XREF: seg000:0A77p
|
|
push hl
|
|
ld a, (hl)
|
|
sub 1
|
|
ld (hl), a
|
|
ld b, 3
|
|
loc_0_731: inc hl ; CODE XREF: sub_0_729+Dj
|
|
ld a, (hl)
|
|
sbc a, 0
|
|
ld (hl), a
|
|
djnz loc_0_731
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_73B: PUSH BC
|
|
PUSH DE
|
|
PUSH HL
|
|
EX DE,HL
|
|
LD A,004H
|
|
loc_0_741: PUSH AF
|
|
LD A,(DE)
|
|
AND (HL)
|
|
LD (BC),A
|
|
INC BC
|
|
INC DE
|
|
INC HL
|
|
POP AF
|
|
DEC A
|
|
JR NZ,loc_0_741
|
|
POP HL
|
|
POP DE
|
|
POP BC
|
|
RET
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_750: .db 0, 0CAh, 9Ah, 3Bh
|
|
.db 0, 0E1h, 0F5h, 5
|
|
.db 80h, 96h, 98h, 0
|
|
.db 40h, 42h, 0Fh, 0
|
|
.db 0A0h, 86h, 1, 0
|
|
.db 10h, 27h, 0, 0
|
|
.db 0E8h, 3, 0, 0
|
|
.db 64h, 0, 0, 0
|
|
.db 0Ah, 0, 0, 0
|
|
|
|
loc_0_774: ld (smod_w_7BF), de; CODE XREF: sub_0_50B+6p
|
|
ld de, 2891h
|
|
call sub_0_692
|
|
ld c,+(loc_0_774-loc_0_750)/4
|
|
ld de,loc_0_750-4
|
|
xor a
|
|
ld (smod_b_7BA), a
|
|
ld a, 30h
|
|
ld (smod_b_7B4), a
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld b, 0Ah
|
|
loc_0_792: push bc ; CODE XREF: seg000:07B1j
|
|
ld hl, 2891h
|
|
ld bc, 2895h
|
|
call sub_0_6FA
|
|
pop bc
|
|
jr c, loc_0_7B3
|
|
push de
|
|
ld a, (smod_b_7B4)
|
|
inc a
|
|
ld (smod_b_7B4), a
|
|
ld de, 2891h
|
|
ld hl, 2895h
|
|
call sub_0_692
|
|
pop de
|
|
djnz loc_0_792
|
|
;----------------------------------------------------------------------------
|
|
smod_b_7B4: .EQU $+1
|
|
loc_0_7B3: LD A,30H ; self modifying
|
|
CP 30H
|
|
JR NZ,7BEH
|
|
smod_b_7BA: .EQU $+1
|
|
LD A,0
|
|
OR A
|
|
JR Z,7CBH
|
|
smod_w_7BF: .EQU $+1
|
|
LD HL,0
|
|
LD (HL),A
|
|
INC HL
|
|
LD (7BFH),HL
|
|
LD A,30H
|
|
LD (7BAH),A
|
|
DEC C
|
|
JR NZ,787H
|
|
LD A,(2891H)
|
|
AND 0FH
|
|
ADD A,30H
|
|
LD HL,(7BFH)
|
|
LD (HL),A
|
|
INC HL
|
|
LD (HL),0
|
|
RET
|
|
|
|
PUSH AF
|
|
smod_b_7DF: .EQU $+1
|
|
ADD A,0
|
|
LD (smod_b_7DF),A
|
|
POP AF
|
|
RET
|
|
|
|
|
|
loc_0_7E5: .db 20h ;
|
|
.db 83h ; ?
|
|
.db 0B8h ; ¸
|
|
.db 0EDh ; í
|
|
.db 0E3h ; ã
|
|
.db 20h ;
|
|
.db 0BBh ; »
|
|
.db 0DEh ; Þ
|
|
|
|
sub_0_7ED: PUSH AF
|
|
smod_w_7F0: .EQU $+2
|
|
LD IY,289DH
|
|
LD IX,2899H
|
|
XOR (ix+0)
|
|
LD H,0
|
|
LD L,A
|
|
ADD HL,HL
|
|
ADD HL,HL
|
|
LD B,H
|
|
LD C,L
|
|
ADD IY,BC
|
|
LD A,(IY)
|
|
XOR (IX+1)
|
|
LD (ix+0),A
|
|
LD A,(IY+1)
|
|
XOR (IX+2)
|
|
LD (IX+1),A
|
|
LD A,(IY+2)
|
|
XOR (IX+3)
|
|
LD (IX+2),A
|
|
LD A,(IY+3)
|
|
LD (IX+3),A
|
|
POP AF
|
|
RET
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_825: ; CODE XREF: sub_0_8D1+Fp
|
|
push de
|
|
push hl
|
|
ld hl, (smod_w_7F0)
|
|
ld bc, 3FFh
|
|
add hl, bc
|
|
push hl
|
|
pop iy
|
|
ld ix, loc_0_7E5
|
|
xor a
|
|
|
|
loc_0_836: ; CODE XREF: sub_0_825+5Bj
|
|
push af
|
|
ld hl, 0FFFFh
|
|
ld de, 0FFFFh
|
|
xor e
|
|
ld e, a
|
|
ld b, 8
|
|
loc_0_841: scf ; CODE XREF: sub_0_825+3Bj
|
|
rr h
|
|
rr l
|
|
rr d
|
|
rr e
|
|
jr nc, loc_0_860
|
|
ld a, e
|
|
xor (ix+0)
|
|
ld e, a
|
|
ld a, d
|
|
xor (ix+1)
|
|
ld d, a
|
|
ld a, l
|
|
xor (ix+2)
|
|
ld l, a
|
|
ld a, h
|
|
xor (ix+3)
|
|
ld h, a
|
|
loc_0_860: djnz loc_0_841 ; CODE XREF: sub_0_825+25j
|
|
ld a, h
|
|
cpl
|
|
ld (iy+0), a
|
|
dec iy
|
|
ld a, l
|
|
cpl
|
|
ld (iy+0), a
|
|
dec iy
|
|
ld a, d
|
|
cpl
|
|
ld (iy+0), a
|
|
dec iy
|
|
ld a, e
|
|
cpl
|
|
ld (iy+0), a
|
|
dec iy
|
|
pop af
|
|
inc a
|
|
jr nz, loc_0_836
|
|
pop hl
|
|
pop de
|
|
ret
|
|
; End of function sub_0_825
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; CODE XREF: sub_0_13BA+Fp
|
|
; sub_0_13BA+1Ep
|
|
loc_0_885: PUSH AF
|
|
smod_w_887: .equ $+1 ; self modifying
|
|
LD HL,0
|
|
LD DE,1021H
|
|
XOR H
|
|
LD H,A
|
|
LD B,8
|
|
loc_0_890: ADD HL,HL
|
|
JR NC,loc_0_899
|
|
LD A,H
|
|
XOR D
|
|
LD H,A
|
|
LD A,L
|
|
XOR E
|
|
LD L,A
|
|
loc_0_899: DJNZ loc_0_890
|
|
LD (smod_w_887),HL
|
|
POP AF
|
|
RET
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_8A0: xor a ; CODE XREF: sub_0_13BA+9p
|
|
ld h, a
|
|
ld l, a
|
|
ld (smod_b_7DF), a
|
|
ld (smod_w_887), hl
|
|
ld hl, 2899h
|
|
jp loc_0_726
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
byte_0_8AF: .db 4 ; DATA XREF: sub_0_3C9+Aw sub_0_8D1+34r
|
|
byte_0_8B0: .db 0 ; DATA XREF: sub_0_8D1+23r
|
|
byte_0_8B1: .db 0 ; DATA XREF: sub_0_961r
|
|
byte_0_8B2: .db 0 ; DATA XREF: sub_0_961+14r
|
|
byte_0_8B3: .db 0 ; DATA XREF: seg000:0A3Cr
|
|
word_0_8B4: .dw 0 ; DATA XREF: sub_0_8B6+17w
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_8B6: xor a ; CODE XREF: sub_0_8D1+20p
|
|
ld c, a
|
|
ld b, 8
|
|
ld a, h
|
|
loc_0_8BB: rlca ; CODE XREF: sub_0_8B6+Cj
|
|
set 7, c
|
|
jr c, loc_0_8C4
|
|
rr c
|
|
djnz loc_0_8BB
|
|
loc_0_8C4: ld a, h ; CODE XREF: sub_0_8B6+8j
|
|
and c
|
|
ld h, a
|
|
ld l, 0
|
|
ld (word_0_2CEB), hl
|
|
dec hl
|
|
ld (word_0_8B4), hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_8D1: xor a ; CODE XREF: start+7Fp
|
|
ld hl, byte_0_2C9D
|
|
ld b, 61h
|
|
call sub_0_1786
|
|
ld hl, 1808h
|
|
call sub_0_64E
|
|
call sub_0_825
|
|
ld hl, (word_0_179E)
|
|
ld (2CE9h), hl
|
|
ld de, (6)
|
|
ex de, hl
|
|
or a
|
|
sbc hl, de
|
|
call sub_0_8B6
|
|
ld a, (byte_0_8B0)
|
|
cp 0
|
|
jr z, loc_0_8FD
|
|
ld a, 7
|
|
loc_0_8FD: ld (byte_0_2CA4), a ; CODE XREF: sub_0_8D1+28j
|
|
ld a, 10h
|
|
ld (byte_0_2C9E), a
|
|
ld a, (byte_0_8AF)
|
|
cp 3
|
|
jr c, loc_0_947
|
|
ld a, 1
|
|
ld (smod_b_B0A), a
|
|
call loc_0_ACF
|
|
jp c, loc_0_954
|
|
or a
|
|
jr z, loc_0_92B
|
|
cp 4
|
|
jr z, loc_0_924
|
|
cp 0Fh
|
|
jr nz, loc_0_924
|
|
jr locret_0_953
|
|
|
|
loc_0_924: call sub_0_BB4 ; CODE XREF: sub_0_8D1+4Bj
|
|
jr c, loc_0_954 ; sub_0_8D1+4Fj
|
|
jr locret_0_953
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_92B: ld a, 3 ; CODE XREF: sub_0_8D1+47j
|
|
ld (byte_0_8AF), a ; sub_0_8D1+74j
|
|
xor a
|
|
ld (byte_0_2D04), a
|
|
call sub_0_11C1
|
|
jr c, loc_0_954
|
|
call sub_0_961
|
|
jr c, loc_0_954
|
|
jr z, locret_0_953
|
|
call sub_0_11FA
|
|
jr c, loc_0_954
|
|
jr loc_0_92B
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_947: call sub_0_961 ; CODE XREF: sub_0_8D1+39j
|
|
jr c, loc_0_954
|
|
jr z, locret_0_953
|
|
call sub_0_11FA
|
|
jr c, loc_0_954
|
|
locret_0_953: ret ; CODE XREF: sub_0_8D1+51j
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_954: call sub_0_DD9 ; CODE XREF: sub_0_8D1+43j
|
|
ld a, (byte_0_2CA5); sub_0_8D1+56j
|
|
cp 0FFh
|
|
call z, sub_0_D0E
|
|
jr locret_0_953
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_961: ; CODE XREF: sub_0_8D1+68p
|
|
; sub_0_8D1+76p ...
|
|
ld a, (byte_0_8B1)
|
|
cpl
|
|
ld hl, 8B2h
|
|
or (hl)
|
|
ld (byte_0_2CA3), a
|
|
ld a, (byte_0_2CA4)
|
|
or a
|
|
jr z, loc_0_975
|
|
ld (byte_0_2CA1), a
|
|
|
|
loc_0_975: ; CODE XREF: sub_0_961+Fj
|
|
ld a, (byte_0_8B2)
|
|
cp 0FFh
|
|
jr z, loc_0_988
|
|
ld a, (byte_0_2CA2)
|
|
cp 2
|
|
jr nz, loc_0_988
|
|
ld a, 0
|
|
ld (byte_0_2CA3), a
|
|
|
|
loc_0_988: ; CODE XREF: sub_0_961+19j
|
|
; sub_0_961+20j
|
|
ld a, (byte_0_2CA2)
|
|
cp 1
|
|
jr nz, loc_0_994
|
|
ld a, 0FFh
|
|
ld (byte_0_2CA3), a
|
|
|
|
loc_0_994: ; CODE XREF: sub_0_961+2Cj
|
|
ld a, (byte_0_2CA1)
|
|
cp 7
|
|
jr z, loc_0_9AE
|
|
ld a, (byte_0_2CA1)
|
|
cp 3
|
|
jr nz, loc_0_9AE
|
|
ld a, (byte_0_2CA3)
|
|
cp 0FFh
|
|
jr nz, loc_0_9AE
|
|
ld a, 7
|
|
ld (byte_0_2CA1), a
|
|
|
|
loc_0_9AE: ; CODE XREF: sub_0_961+38j
|
|
; sub_0_961+3Fj ...
|
|
ld a, (byte_0_8AF)
|
|
cp 3
|
|
jr c, loc_0_9E3
|
|
call sub_0_643
|
|
ld hl, (2CE9h)
|
|
xor a
|
|
or (hl)
|
|
scf
|
|
ret z
|
|
push hl
|
|
ld b, 1
|
|
call sub_0_476
|
|
dec hl
|
|
ld (hl), 20h
|
|
pop hl
|
|
ld de, 2CD0h
|
|
ld a, 7
|
|
ld (de), a
|
|
ld a, 0FFh
|
|
call sub_0_172E
|
|
ld hl, (word_0_2CD2)
|
|
ld de, byte_0_17A3
|
|
call sub_0_1492
|
|
ld hl, (byte_0_17A0)
|
|
ld (word_0_17A2), hl
|
|
loc_0_9E3: call sub_0_4A4 ; CODE XREF: sub_0_961+52j
|
|
ld de, byte_0_17A3 ; seg000:0A2Cj
|
|
call sub_0_169E
|
|
jr nz, loc_0_A11
|
|
ld de, byte_0_17A3
|
|
ld c, 16h
|
|
call sub_0_471
|
|
ret c
|
|
ld a, 0FFh
|
|
ld (byte_0_2CA5), a
|
|
ld hl, byte_0_280E
|
|
call sub_0_64A
|
|
ld a, (byte_0_2CD1)
|
|
cp 2
|
|
jr c, loc_0_A0D
|
|
sub_0_A09: ld de, (byte_0_2CD4) ; CODE XREF: seg000:0A11p
|
|
loc_0_A0D: ld a, 1 ; CODE XREF: sub_0_961+A6j
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_A11: call sub_0_A09 ; CODE XREF: sub_0_961+8Bj
|
|
ld a, (byte_0_8AF)
|
|
cp 4
|
|
jr nz, loc_0_A24
|
|
ld a, (byte_0_2CA1)
|
|
cp 7
|
|
jr nz, loc_0_A35
|
|
jr loc_0_A2E
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_A24: ; CODE XREF: seg000:0A19j seg000:0A41j
|
|
ld de, byte_0_17A3
|
|
ld c, 13h
|
|
call sub_0_471
|
|
jr nc, loc_0_9E3
|
|
|
|
loc_0_A2E: ; CODE XREF: seg000:0A22j
|
|
call sub_0_552
|
|
ld a, 5
|
|
scf
|
|
ret
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_A35: ; CODE XREF: seg000:0A20j
|
|
ld a, (byte_0_2CA1)
|
|
cp 3
|
|
jr z, loc_0_A43
|
|
ld a, (byte_0_8B3)
|
|
cp 0FFh
|
|
jr nz, loc_0_A24
|
|
|
|
loc_0_A43: ; CODE XREF: seg000:0A3Aj
|
|
ld de, 2811h
|
|
ld c, 1Ah
|
|
call bdos ; BDOS function 26 (F_DMAOFF) - Set DMA address
|
|
ld e, 1
|
|
ld c, 2Ch
|
|
call bdos ; BDOS function 44 (F_MULTISEC) - Set number of records to read/write at once
|
|
ld de, byte_0_17A3
|
|
ld c, 0Fh
|
|
call sub_0_471
|
|
ret c
|
|
ld a, 0FFh
|
|
ld (byte_0_2CA5), a
|
|
ld hl, byte_0_280E
|
|
call sub_0_64A
|
|
ld de, byte_0_17A3
|
|
ld c, 23h
|
|
call sub_0_471
|
|
ret c
|
|
ld hl, 17C7h
|
|
ld (hl), 0
|
|
ld hl, 17C4h
|
|
call sub_0_729
|
|
ld de, 2CABh
|
|
call sub_0_692
|
|
ex de, hl
|
|
ld b, 7
|
|
|
|
loc_0_A83: ; CODE XREF: seg000:0A90j
|
|
push hl
|
|
sla (hl)
|
|
inc hl
|
|
rl (hl)
|
|
inc hl
|
|
rl (hl)
|
|
inc hl
|
|
rl (hl)
|
|
pop hl
|
|
djnz loc_0_A83
|
|
ld de, byte_0_17A3
|
|
ld c, 21h
|
|
call sub_0_471
|
|
ret c
|
|
ld a, (byte_0_2CA1)
|
|
cp 3
|
|
jr z, loc_0_AA6
|
|
ld a, 9
|
|
or a
|
|
ret
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_AA6: ; CODE XREF: seg000:0AA0j
|
|
ld a, 80h
|
|
ld (byte_0_280E), a
|
|
|
|
loc_0_AAB: ; CODE XREF: seg000:0AB5j
|
|
ld hl, byte_0_280E
|
|
call sub_0_654
|
|
jr z, loc_0_AC6
|
|
cp 1Ah
|
|
jr nz, loc_0_AAB
|
|
ld a, (2810h)
|
|
dec a
|
|
ld (280Fh), a
|
|
ld hl, byte_0_280E
|
|
ld a, 7Fh
|
|
sub (hl)
|
|
jr loc_0_AC8
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_AC6: ; CODE XREF: seg000:0AB1j
|
|
ld a, 80h
|
|
|
|
loc_0_AC8: ; CODE XREF: seg000:0AC4j
|
|
ld (byte_0_280E), a
|
|
ld a, 1
|
|
or a
|
|
ret
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_ACF: ; CODE XREF: sub_0_8D1+40p
|
|
; sub_0_BB4+Ep
|
|
xor a
|
|
ld (byte_0_2D04), a
|
|
ld a, 4
|
|
ld hl, 8AFh
|
|
cp (hl)
|
|
ld a, 0
|
|
ret nz
|
|
ld hl, 2CEDh
|
|
ld b, 11h
|
|
xor a
|
|
call sub_0_1786
|
|
call sub_0_FAA
|
|
ld a, (2CA6h)
|
|
cp 0FFh
|
|
ld b, 5
|
|
jr z, loc_0_AF3
|
|
ld b, 0Ah
|
|
|
|
loc_0_AF3: push bc
|
|
ld ix, 2CE0h ; CODE XREF: seg000:0AEFj
|
|
ld (ix+3), 20h
|
|
ld (ix+2), 0
|
|
ld hl, (word_0_2CEB)
|
|
ld (ix+0), l
|
|
ld (ix+1), h
|
|
smod_b_B0A: .equ $+1 ; DATA XREF: sub_0_8D1+3Dw
|
|
ld a,1 ; self modifying value
|
|
CALL sub_0_13BA
|
|
LD A,(smod_b_B0A)
|
|
CP 5
|
|
JR NZ,0B1AH
|
|
LD A,1
|
|
LD (smod_b_B0A),A
|
|
loc_0_B1A: CALL 0FD1H
|
|
LD HL,loc_0_B96
|
|
LD BC,0AH
|
|
CPIR
|
|
JP Z,sub_0_67F
|
|
loc_0_B28: LD HL,byte_0_2D04
|
|
INC (HL)
|
|
CALL sub_0_482
|
|
loc_0_B2F: POP BC
|
|
DJNZ loc_0_AF3
|
|
XOR A
|
|
RET
|
|
|
|
loc_0_B34: POP BC
|
|
LD A,0FFH
|
|
SCF
|
|
RET
|
|
|
|
loc_0_B39: POP BC
|
|
CALL 0D9BH
|
|
LD A,0FH
|
|
RET
|
|
|
|
loc_0_B40: LD HL,2CE0H
|
|
CALL sub_0_688
|
|
JR 0B68H
|
|
|
|
|
|
loc_0_B48: LD IX,2CA7H
|
|
LD A,(IX+3)
|
|
AND 40H
|
|
LD (byte_0_2C9D),A
|
|
CALL loc_0_EC7
|
|
CP 0EBH
|
|
LD A,6
|
|
JR NZ,loc_0_B6A
|
|
LD HL,(2CE9H)
|
|
LD DE,2CAFH
|
|
LD BC,20H
|
|
LDIR
|
|
LD A,3
|
|
loc_0_B6A: PUSH AF
|
|
LD HL,2CE0H
|
|
CALL sub_0_688
|
|
POP AF
|
|
CALL sub_0_13BA
|
|
CALL 0FC9H
|
|
JP 0B28H
|
|
|
|
loc_0_B7B: LD HL,2CA7H
|
|
LD DE,2C9FH
|
|
CALL sub_0_692
|
|
LD A,1
|
|
LD (smod_b_B0A),A
|
|
CALL loc_0_EC7
|
|
CP 0EBH
|
|
LD A,6
|
|
JR NZ,loc_0_B6A
|
|
POP BC
|
|
LD A,4
|
|
RET
|
|
|
|
loc_0_B96: .db 0 ;
|
|
.db 0Bh ;
|
|
.db 0FEh ; þ
|
|
.db 4 ;
|
|
.db 2 ;
|
|
.db 11h ;
|
|
.db 12h ;
|
|
.db 0Fh ;
|
|
.db 8 ;
|
|
.db 10h ;
|
|
|
|
loc_0_BA0: .dw loc_0_B34
|
|
.dw loc_0_B39
|
|
.dw loc_0_B1A
|
|
.dw loc_0_B34
|
|
.dw loc_0_B40
|
|
.dw loc_0_B48
|
|
.dw loc_0_B7B
|
|
.dw loc_0_B28
|
|
.dw loc_0_B2F
|
|
.dw loc_0_B2F
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_BB4: call sub_0_BD3 ; CODE XREF: sub_0_8D1+53p
|
|
ret c ; sub_0_BB4+14j
|
|
cp 0Bh
|
|
jr z, loc_0_BC2
|
|
cp 5
|
|
jr z, loc_0_BC2
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_BC2: call loc_0_ACF ; CODE XREF: sub_0_BB4+6j sub_0_BB4+Aj
|
|
ret c
|
|
cp 4
|
|
jr z, sub_0_BB4
|
|
cp 0Fh
|
|
ld a, 0
|
|
ret z
|
|
ld a, 0FFh
|
|
scf
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_BD3: call sub_0_961 ; CODE XREF: sub_0_BB4p
|
|
jr nc, loc_0_BDF
|
|
ld a, 5
|
|
ld (smod_b_B0A), a
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_BDF: ; CODE XREF: sub_0_BD3+3j
|
|
cp 9
|
|
jr z, loc_0_BE9
|
|
ld hl, 2CABh
|
|
call sub_0_688
|
|
|
|
loc_0_BE9: ; CODE XREF: sub_0_BD3+Ej
|
|
xor a
|
|
ld (byte_0_2D04), a
|
|
call sub_0_FAA
|
|
loc_0_BF0: call sub_0_FC9
|
|
call sub_0_D30
|
|
ld hl, 2CABh
|
|
ld de, 2CE0h
|
|
call sub_0_692
|
|
ld hl,word_0_1808
|
|
call sub_0_64E
|
|
ld a, 9
|
|
call sub_0_13BA
|
|
loc_0_C0A: call sub_0_FD1
|
|
ld hl,stab_0_CE4
|
|
ld bc, 7
|
|
cpir
|
|
jp z, sub_0_67F
|
|
ld a, 0FFh
|
|
scf
|
|
ret
|
|
; End of function sub_0_BD3
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_C1C: LD HL,byte_0_2D04
|
|
INC (HL)
|
|
CALL sub_0_482
|
|
LD HL,byte_0_2D04
|
|
LD A,0AH
|
|
CP (HL)
|
|
JP NZ,loc_0_BF0
|
|
LD A,0FFH
|
|
SCF
|
|
RET
|
|
|
|
loc_0_C30: CALL loc_0_EC7
|
|
JP loc_0_BF0
|
|
|
|
loc_0_C36: LD DE,2CA7H
|
|
LD HL,2CABH
|
|
CALL loc_0_6D3
|
|
JP NZ,loc_0_BF0
|
|
CALL 0D0EH
|
|
JR Z,loc_0_C50
|
|
LD A,0CH
|
|
LD (0B0AH),A
|
|
LD A,0FFH
|
|
SCF
|
|
RET
|
|
|
|
loc_0_C50: CALL sub_0_643
|
|
LD A,0BH
|
|
OR A
|
|
RET
|
|
|
|
loc_0_C57: LD HL,byte_0_2D04
|
|
INC (HL)
|
|
CALL sub_0_482
|
|
LD HL,byte_0_2D04
|
|
LD A,0AH
|
|
CP (HL)
|
|
JR NZ,loc_0_C6A
|
|
LD A,0FFH
|
|
SCF
|
|
RET
|
|
|
|
loc_0_C6A: LD HL,2CAFH
|
|
CALL sub_0_DDC
|
|
JP loc_0_BF0
|
|
|
|
loc_0_C73: LD DE,2CA7H
|
|
LD HL,2CABH
|
|
CALL loc_0_6D3
|
|
JP NZ,0C57H
|
|
loc_0_C7F: CALL loc_0_529
|
|
CALL loc_0_EC7
|
|
LD HL,stab_0_CF9
|
|
LD BC,7
|
|
CPIR
|
|
JP Z,67FH
|
|
JP loc_0_C1C
|
|
|
|
loc_0_C93: LD A,0FFH
|
|
SCF
|
|
RET
|
|
|
|
sub_0_C97: XOR A
|
|
LD (byte_0_2D04),A
|
|
LD DE,2CF9H
|
|
LD HL,2CABH
|
|
LD BC,2CABH
|
|
CALL sub_0_6E4
|
|
JP sub_0_FBA
|
|
|
|
loc_0_CAA: CALL sub_0_C97
|
|
JP loc_0_C0A
|
|
|
|
loc_0_CB0: CALL sub_0_C97
|
|
JP loc_0_C7F
|
|
|
|
loc_0_CB6: CALL sub_0_C97
|
|
LD HL,2CABH
|
|
LD DE,2CE0H
|
|
CALL sub_0_692
|
|
LD A,3
|
|
CALL sub_0_13BA
|
|
JP loc_0_C7F
|
|
|
|
loc_0_CCA: CALL sub_0_C97
|
|
CALL sub_0_D30
|
|
JP C,0C47H
|
|
LD HL,2CABH
|
|
LD DE,2CE0H
|
|
CALL sub_0_692
|
|
LD A,3
|
|
CALL sub_0_13BA
|
|
JP loc_0_C0A
|
|
|
|
stab_0_CE4: .db 6
|
|
.db 0FEh
|
|
.db 4
|
|
.db 0Bh
|
|
.db 0FFh
|
|
.db 0Ah
|
|
.db 0FCh
|
|
|
|
.dw loc_0_C1C
|
|
.dw loc_0_C73
|
|
.dw loc_0_C57
|
|
.dw loc_0_C36
|
|
.dw loc_0_C30
|
|
.dw loc_0_C1C
|
|
.dw loc_0_C1C
|
|
|
|
stab_0_CF9: .db 0EBh
|
|
.db 0EAh
|
|
.db 0E9h
|
|
.db 0E8h
|
|
.db 0FFh
|
|
.db 0FEh
|
|
.db 010h
|
|
|
|
.dw loc_0_C93
|
|
.dw loc_0_C1C
|
|
.dw loc_0_C57
|
|
.dw loc_0_CAA
|
|
.dw loc_0_CB0
|
|
.dw loc_0_CB6
|
|
.dw loc_0_CCA
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_D0E: ; CODE XREF: sub_0_8D1+8Bp
|
|
; sub_0_11FA+64p
|
|
call sub_0_50B
|
|
call sub_0_D30
|
|
ret c
|
|
|
|
loc_0_D15: ld a, 1Ah ; CODE XREF: sub_0_D0E+13j
|
|
call loc_0_D68
|
|
ret c
|
|
ld hl, byte_0_280E
|
|
ld a, 1
|
|
cp (hl)
|
|
jr nz, loc_0_D15
|
|
ld a, 0
|
|
ld (byte_0_2CA5), a
|
|
ld c, 10h
|
|
ld de, byte_0_17A3
|
|
jp sub_0_471
|
|
; End of function sub_0_D0E
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_D30: ; CODE XREF: sub_0_BD3+20p
|
|
; sub_0_D0E+3p ...
|
|
ld bc, (2CF5h)
|
|
ld a, b
|
|
or c
|
|
ret z
|
|
ld hl, (2CE9h)
|
|
|
|
loc_0_D3A: ; CODE XREF: sub_0_D30+2Ej
|
|
ld a, (byte_0_2CA3)
|
|
cp 0FFh
|
|
jr z, loc_0_D52
|
|
loc_0_D41:
|
|
ld a, 0 ; DATA XREF: sub_0_D30+23w
|
|
cp 0Dh
|
|
jr z, loc_0_D52
|
|
ld a, (hl)
|
|
cp 0Ah
|
|
jr nz, loc_0_D52
|
|
ld a, 0Dh
|
|
call loc_0_D68
|
|
ret c
|
|
|
|
loc_0_D52: ld a, (hl) ; CODE XREF: sub_0_D30+Fj sub_0_D30+15j
|
|
ld (loc_0_D41+1), a
|
|
inc hl
|
|
dec bc
|
|
call loc_0_D68
|
|
ret c
|
|
ld a, b
|
|
or c
|
|
jr nz, loc_0_D3A
|
|
call sub_0_50B
|
|
call sub_0_FAA
|
|
xor a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_D68: ld (byte_0_D6F), a ; CODE XREF: sub_0_D0E+9p sub_0_D30+1Ep
|
|
push bc
|
|
push de
|
|
push hl
|
|
byte_0_D6F: .equ $+1
|
|
loc_0_D6E: LD C,0
|
|
LD HL,byte_0_280E
|
|
CALL sub_0_669
|
|
JR NZ,loc_0_0D97
|
|
LD HL,byte_0_280E
|
|
CALL sub_0_64A
|
|
LD C,1AH ;set dma
|
|
LD DE,2811H
|
|
CALL bdos
|
|
LD C,2CH ;???
|
|
LD E,1
|
|
CALL bdos
|
|
LD C,15H ;wr. seq.
|
|
LD DE,byte_0_17A3
|
|
CALL sub_0_471
|
|
JR NC,loc_0_D6E
|
|
loc_0_0D97: POP HL
|
|
POP DE
|
|
POP BC
|
|
RET
|
|
|
|
sub_0_D9B: LD HL,2CE0H
|
|
CALL sub_0_688
|
|
LD B,4
|
|
loc_0_0DA3: PUSH BC
|
|
LD A,8
|
|
CALL 13BAH
|
|
LD B,64H
|
|
CALL sub_0_DE7
|
|
JR C,loc_0_DB8
|
|
CP 4FH
|
|
JR Z,loc_0_DBC
|
|
CP 0FDH
|
|
JR Z,loc_0_DBC
|
|
loc_0_DB8: POP BC
|
|
DJNZ loc_0_0DA3
|
|
PUSH BC
|
|
loc_0_DBC: POP BC
|
|
LD B,1
|
|
CALL sub_0_DE7
|
|
XOR A
|
|
RET
|
|
|
|
stab_0_DC4: .db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 18h ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 8 ;
|
|
.db 0 ;
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_DD9: ld hl,stab_0_DC4 ; CODE XREF: sub_0_8D1+83p
|
|
sub_0_DDC: ld a, (hl) ; CODE XREF: sub_0_DDC+9j sub_0_13BA+6p
|
|
inc hl
|
|
or a
|
|
ret z
|
|
push hl
|
|
call loc_0_145C
|
|
pop hl
|
|
jr sub_0_DDC
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_DE7: push bc ; CODE XREF: sub_0_FD1+11p
|
|
call sub_0_16AA ; sub_0_11C1+2Dp ...
|
|
call nz, sub_0_16A5
|
|
cp 1Bh
|
|
ld a, 18h
|
|
ld c, 0Ah
|
|
call z, sub_0_57F
|
|
pop bc
|
|
loc_0_DF8: call sub_0_5D4 ; CODE XREF: sub_0_DE7+16j
|
|
jr nz, loc_0_E03
|
|
djnz loc_0_DF8
|
|
ld a, 0FEh
|
|
scf
|
|
ret
|
|
|
|
loc_0_E03: or a ; CODE XREF: sub_0_DE7+14j
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
loc_0_E05: LD B,64H
|
|
CALL sub_0_DE7
|
|
RET C
|
|
AND 7FH
|
|
LD HL,loc_0_E2A
|
|
LD BC,2
|
|
CPIR
|
|
JR Z,loc_0_E05
|
|
LD BC,3
|
|
CPIR
|
|
RET Z
|
|
LD B,A
|
|
AND 60H
|
|
JR NZ,loc_0_E28
|
|
LD A,(byte_0_2C9D)
|
|
OR A
|
|
JR NZ,loc_0_E05
|
|
loc_0_E28: LD A,B
|
|
RET
|
|
|
|
loc_0_E2A: .db 11h ; dc1
|
|
.db 13h ; dc3
|
|
.db 0dh ; cr
|
|
.db 0ah ; lf
|
|
.db 18h ; can
|
|
|
|
sub_0_E2F: ld b,64H
|
|
CALL sub_0_DE7
|
|
RET C
|
|
LD E,A
|
|
loc_0_E36: AND 60H
|
|
LD A,E
|
|
RET NZ
|
|
CP 18H
|
|
JR Z,loc_0_E50
|
|
LD HL,0EA2H
|
|
LD BC,4
|
|
CPIR
|
|
JR Z,sub_0_E2F
|
|
LD A,(byte_0_2C9D)
|
|
OR A
|
|
JR NZ,sub_0_E2F
|
|
LD A,E
|
|
RET
|
|
|
|
loc_0_E50: LD B,64H
|
|
CALL sub_0_DE7
|
|
RET C
|
|
CP 18H
|
|
JR NZ,loc_0_0E74
|
|
LD B,64h
|
|
CALL sub_0_DE7
|
|
RET C
|
|
CP 18H
|
|
JR NZ,loc_0_0E74
|
|
LD B,64H
|
|
CALL sub_0_DE7
|
|
RET C
|
|
CP 18H
|
|
JR NZ,loc_0_0E74
|
|
LD B,64H
|
|
CALL sub_0_DE7
|
|
RET C
|
|
loc_0_0E74: LD HL,loc_0_EA6
|
|
LD BC,0BH
|
|
CPIR
|
|
JP Z,sub_0_67F
|
|
LD L,A
|
|
LD A,(byte_0_2C9D)
|
|
OR A
|
|
JR Z,loc_0_E8B
|
|
LD A,L
|
|
AND 60H
|
|
JR Z,loc_0_E50
|
|
loc_0_E8B: LD A,L
|
|
AND 60H
|
|
CP 40H
|
|
JR NZ,loc_0_E9C
|
|
LD A,L
|
|
XOR 40H
|
|
RET
|
|
|
|
loc_0_E96: LD A,7FH
|
|
RET
|
|
|
|
loc_0_E99: LD A,0FFH
|
|
RET
|
|
|
|
loc_0_E9C: LD A,0FFH
|
|
loc_0_E9E: OR 80H
|
|
SCF
|
|
RET
|
|
|
|
.db 11h ;
|
|
.db 91h ; ?
|
|
.db 13h ;
|
|
.db 93h ; ?
|
|
loc_0_EA6: .db 11h ;
|
|
.db 91h ; ?
|
|
.db 13h ;
|
|
.db 93h ; ?
|
|
.db 18h ;
|
|
.db 68h ; h
|
|
.db 69h ; i
|
|
.db 6Ah ; j
|
|
.db 6Bh ; k
|
|
.db 6Ch ; l
|
|
.db 6Dh ; m
|
|
|
|
.dw loc_0_E99
|
|
.dw loc_0_E96
|
|
.dw loc_0_E9E
|
|
.dw loc_0_E9E
|
|
.dw loc_0_E9E
|
|
.dw loc_0_E9E
|
|
.dw loc_0_E9E
|
|
.dw loc_0_E50
|
|
.dw loc_0_E50
|
|
.dw loc_0_E50
|
|
.dw loc_0_E50
|
|
|
|
loc_0_EC7: OR A
|
|
LD HL,(word_0_2CEB)
|
|
LD DE,(word_0_2CEF)
|
|
SBC HL,DE
|
|
JP C,sub_0_F4E
|
|
CALL sub_0_8A0
|
|
LD HL,0
|
|
LD (2CF9H),HL
|
|
loc_0_EDD: CALL sub_0_E2F
|
|
JP C,loc_0_F38
|
|
CALL sub_0_FA2
|
|
CALL Z,sub_0_7ED
|
|
CALL NZ,loc_0_885
|
|
LD HL,(word_0_2CEB)
|
|
LD BC,(word_0_2CEF)
|
|
SBC HL,BC
|
|
JP Z,sub_0_F4E
|
|
INC BC
|
|
LD (word_0_2CEF),BC
|
|
LD HL,(2CF9H)
|
|
INC HL
|
|
LD (2CF9H),HL
|
|
LD HL,(2CEDH)
|
|
LD (HL),A
|
|
INC HL
|
|
LD (2CEDH),HL
|
|
JR loc_0_EDD
|
|
|
|
.db 0E8h ; è
|
|
.db 0E9h ; é
|
|
.db 0EAh ; ê
|
|
.db 0EBh ; ë
|
|
.db 98h ; ?
|
|
.db 0FFh ; ÿ
|
|
.db 0FEh ; þ
|
|
|
|
.dw sub_0_F52
|
|
.dw sub_0_F4E
|
|
.dw sub_0_F54
|
|
.dw sub_0_F58
|
|
.dw sub_0_F58
|
|
.dw sub_0_F58
|
|
.dw sub_0_F58
|
|
|
|
.db 0E8h ; è
|
|
.db 0E9h ; é
|
|
.db 0EAh ; ê
|
|
.db 0EBh ; ë
|
|
.db 98h ; ?
|
|
.db 0FFh ; ÿ
|
|
.db 0FEh ; þ
|
|
|
|
.dw sub_0_F52
|
|
.dw sub_0_F4E
|
|
.dw sub_0_F54
|
|
.dw sub_0_F7C
|
|
.dw sub_0_F7C
|
|
.dw sub_0_F7C
|
|
.dw sub_0_F7C
|
|
|
|
loc_0_F38:
|
|
.db 21h ; !
|
|
.db 23h ; #
|
|
.db 0Fh ;
|
|
.db 1 ;
|
|
.db 7 ;
|
|
.db 0 ;
|
|
.db 0CDh ; Í
|
|
.db 0A2h ; ¢
|
|
.db 0Fh ;
|
|
.db 28h ; (
|
|
.db 6 ;
|
|
.db 21h ; !
|
|
.db 0Eh ;
|
|
.db 0Fh ;
|
|
.db 1 ;
|
|
.db 7 ;
|
|
.db 0 ;
|
|
.db 0EDh ; í
|
|
.db 0B1h ; ±
|
|
.db 0CAh ; Ê
|
|
.db 7Fh ;
|
|
.db 6 ;
|
|
|
|
sub_0_F4E:
|
|
.db 3Eh ; >
|
|
.db 0FFh ; ÿ
|
|
.db 37h ; 7
|
|
.db 0C9h ; É
|
|
sub_0_F52:
|
|
.db 37h ; 7
|
|
.db 0C9h ; É
|
|
sub_0_F54:
|
|
.db 3Eh ; >
|
|
.db 10h ;
|
|
.db 37h ; 7
|
|
.db 0C9h ; É
|
|
sub_0_F58:
|
|
.db 32h ; 2
|
|
.db 0FDh ; ý
|
|
.db 2Ch ; ,
|
|
.db 0E6h ; æ
|
|
.db 7Fh ;
|
|
.db 0CDh ; Í
|
|
.db 85h ; ?
|
|
.db 8 ;
|
|
.db 6 ;
|
|
.db 2 ;
|
|
.db 0C5h ; Å
|
|
.db 0CDh ; Í
|
|
.db 2Fh ; /
|
|
.db 0Eh ;
|
|
.db 0CDh ; Í
|
|
.db 85h ; ?
|
|
.db 8 ;
|
|
.db 0C1h ; Á
|
|
.db 0DAh ; Ú
|
|
.db 38h ; 8
|
|
.db 0Fh ;
|
|
.db 10h ;
|
|
.db 0F3h ; ó
|
|
.db 7Ch ; |
|
|
.db 0B5h ; µ
|
|
.db 28h ; (
|
|
.db 4 ;
|
|
.db 3Eh ; >
|
|
.db 0FFh ; ÿ
|
|
.db 37h ; 7
|
|
.db 0C9h ; É
|
|
.db 3Ah ; :
|
|
.db 0FDh ; ý
|
|
.db 2Ch ; ,
|
|
.db 0B7h ; ·
|
|
.db 0C9h ; É
|
|
|
|
sub_0_F7C:
|
|
.db 32h ; 2
|
|
.db 0FDh ; ý
|
|
.db 2Ch ; ,
|
|
.db 0E6h ; æ
|
|
.db 7Fh ;
|
|
.db 0CDh ; Í
|
|
.db 0EDh ; í
|
|
.db 7 ;
|
|
.db 6 ;
|
|
.db 4 ;
|
|
.db 0C5h ; Å
|
|
.db 0CDh ; Í
|
|
.db 2Fh ; /
|
|
.db 0Eh ;
|
|
.db 0CDh ; Í
|
|
.db 0EDh ; í
|
|
.db 7 ;
|
|
.db 0C1h ; Á
|
|
.db 0DAh ; Ú
|
|
.db 38h ; 8
|
|
.db 0Fh ;
|
|
.db 10h ;
|
|
.db 0F3h ; ó
|
|
.db 21h ; !
|
|
.db 99h ; ?
|
|
.db 28h ; (
|
|
.db 11h ;
|
|
.db 0E9h ; é
|
|
.db 7 ;
|
|
.db 0CDh ; Í
|
|
.db 0D3h ; Ó
|
|
.db 6 ;
|
|
.db 0CAh ; Ê
|
|
.db 77h ; w
|
|
.db 0Fh ;
|
|
.db 0C3h ; Ã
|
|
.db 73h ; s
|
|
.db 0Fh ;
|
|
|
|
sub_0_FA2: .db 5Fh ; _
|
|
.db 3Ah ; :
|
|
.db 9Eh ; ?
|
|
.db 2Ch ; ,
|
|
.db 0FEh ; þ
|
|
.db 20h ;
|
|
.db 7Bh ; {
|
|
.db 0C9h ; É
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_FAA: ld hl, 2CE9h ; CODE XREF: seg000:0AE5p sub_0_BD3+1Ap
|
|
ld de, 2CEDh
|
|
ldi
|
|
ldi
|
|
ld hl, 0
|
|
ld (word_0_2CEF), hl
|
|
sub_0_FBA: ld hl, 2CEDh ; CODE XREF: sub_0_11FA+4Ep
|
|
ld de, 2CF3h
|
|
loc_0_FC0: ldi ; CODE XREF: sub_0_FC9+6j
|
|
ldi
|
|
ldi
|
|
ldi
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_FC9: ld hl, 2CF3h ; CODE XREF: sub_0_BD3+1Dp
|
|
ld de, 2CEDh ; sub_0_11FA+56p ...
|
|
jr loc_0_FC0
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_FD1: xor a ; CODE XREF: sub_0_BD3+37p
|
|
ld (byte_0_2D01), a
|
|
ld hl, 400h
|
|
ld (2CFEh), hl
|
|
loc_0_FDB: ld a, 5 ; CODE XREF: sub_0_FD1+61j
|
|
ld (byte_0_2D00), a
|
|
loc_0_FE0: ld b, 64h
|
|
call sub_0_DE7
|
|
jp c, loc_0_108A
|
|
ld hl, stab_0_109E
|
|
ld bc, 3
|
|
cpir
|
|
jp z, sub_0_67F
|
|
jr loc_0_1024
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
LD HL,byte_0_2D00
|
|
DEC (HL)
|
|
LD A,10H
|
|
JP Z,loc_0_108A
|
|
LD B,0AH
|
|
CALL sub_0_DE7
|
|
JR C,loc_0_FE0
|
|
LD HL,stab_0_10A7
|
|
LD BC,2
|
|
CPIR
|
|
JP Z,67FH
|
|
JR loc_0_1024
|
|
|
|
LD HL,byte_0_2D00
|
|
DEC (HL)
|
|
LD A,10H
|
|
JP Z,loc_0_108A
|
|
JR loc_0_FE0
|
|
|
|
LD B,0AH
|
|
CALL sub_0_DE7
|
|
JR C,loc_0_1035
|
|
loc_0_1024: ld hl, (2CFEh) ; CODE XREF: sub_0_FD1+22j
|
|
dec hl
|
|
ld (2CFEh), hl
|
|
ld a, h
|
|
or l
|
|
ld a, 0FCh
|
|
jp z, loc_0_108A
|
|
jp loc_0_FDB
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_1035: LD A,0FFH ;1035 3e ff
|
|
JP loc_0_108A ;1037 c3 8a 10
|
|
|
|
LD A,5 ;103a 3e 05
|
|
LD (byte_0_2D00),A ;103c 32 00 2d
|
|
CALL loc_0_E05 ;103f cd 05 0e
|
|
JR C,loc_0_108A ;1042 38 46
|
|
LD HL,stab_0_10AD ;1044 21 ad 10
|
|
LD BC,2 ;1047 01 02 00
|
|
CPIR ;104a ed b1
|
|
JP Z,sub_0_67F ;104c ca 7f 06
|
|
JR loc_0_1024 ;104f 18 d3
|
|
|
|
CALL loc_0_E05 ;1051 cd 05 0e
|
|
JR C,loc_0_108A ;1054 38 34
|
|
LD HL,stab_0_10B3 ;1056 21 b3 10
|
|
LD BC,4 ;1059 01 04 00
|
|
CPIR ;105c ed b1
|
|
JP Z,sub_0_67F ;105e ca 7f 06
|
|
JR loc_0_1024 ;1061 18 c1
|
|
|
|
LD A,10H ;1063 3e 10
|
|
LD (byte_0_2C9E),A ;1065 32 9e 2c
|
|
CALL sub_0_113F ;1068 cd 3f 11
|
|
JR 107FH ;106b 18 12
|
|
;
|
|
LD A,10H ;106d 3e 10
|
|
LD (byte_0_2C9E),A ;106f 32 9e 2c
|
|
CALL sub_0_1100 ;1072 cd 00 11
|
|
JR loc_0_107F ;1075 18 08
|
|
|
|
LD A,20H ;1077 3e 20
|
|
LD (byte_0_2C9E),A ;1079 32 9e 2c
|
|
CALL 10C5H ;107c cd c5 10
|
|
loc_0_107F: PUSH AF ;107f f5
|
|
LD HL,2CA7H ;1080 21 a7 2c
|
|
LD DE,2CE4H ;1083 11 e4 2c
|
|
CALL sub_0_692 ;1086 cd 92 06
|
|
POP AF ;1089 f1
|
|
loc_0_108A: ld hl, 10BFh ; CODE XREF: sub_0_FD1+14j
|
|
ld bc, 6 ; sub_0_FD1+5Ej
|
|
cpir
|
|
jr nz, loc_0_109C
|
|
cp 98h
|
|
jr nz, loc_0_109A
|
|
ld a, 10h
|
|
loc_0_109A: scf ; CODE XREF: sub_0_FD1+C5j
|
|
ret
|
|
|
|
loc_0_109C: or a ; CODE XREF: sub_0_FD1+C1j
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
stab_0_109E: .db 18h ;
|
|
.db 0AAh ; ª
|
|
.db 2Ah ; *
|
|
.db 3Ah ; :
|
|
.db 10h ;
|
|
.db 3Ah ; :
|
|
.db 10h ;
|
|
.db 0F5h ; õ
|
|
.db 0Fh ;
|
|
|
|
stab_0_10A7: .db 6Bh ; k
|
|
.db 18h ;
|
|
.db 12h ;
|
|
.db 10h ;
|
|
.db 1Dh ;
|
|
.db 10h ;
|
|
|
|
stab_0_10AD: .db 2Ah ; *
|
|
.db 18h ;
|
|
.db 51h ; Q
|
|
.db 10h ;
|
|
.db 3Fh ; ?
|
|
.db 10h ;
|
|
|
|
stab_0_10B3: .db 43h ; C
|
|
.db 41h ; A
|
|
.db 42h ; B
|
|
.db 18h ;
|
|
.db 0F5h ; õ
|
|
.db 0Fh ;
|
|
.db 63h ; c
|
|
.db 10h ;
|
|
.db 6Dh ; m
|
|
.db 10h ;
|
|
.db 77h ; w
|
|
.db 10h ;
|
|
.db 98h ; ?
|
|
.db 6 ;
|
|
.db 10h ;
|
|
.db 0FFh ; ÿ
|
|
.db 0FEh ; þ
|
|
.db 0FCh ; ü
|
|
|
|
CALL sub_0_8A0 ;10c5 cd a0 08
|
|
CALL sub_0_E2F ;10c8 cd 2f 0e
|
|
RET C ;10cb d8
|
|
LD (byte_0_2D01),A ;10cc 32 01 2d
|
|
CALL sub_0_7ED ;10cf cd ed 07
|
|
LD HL,2CA7H ;10d2 21 a7 2c
|
|
LD B,4 ;10d5 06 04
|
|
PUSH BC ;10d7 c5
|
|
PUSH HL ;10d8 e5
|
|
CALL sub_0_E2F ;10d9 cd 2f 0e
|
|
CALL sub_0_7ED ;10dc cd ed 07
|
|
POP HL ;10df e1
|
|
POP BC ;10e0 c1
|
|
LD (HL),A ;10e1 77
|
|
INC HL ;10e2 23
|
|
RET C ;10e3 d8
|
|
DJNZ 10D7H ;10e4 10 f1
|
|
LD B,4 ;10e6 06 04
|
|
PUSH BC ;10e8 c5
|
|
CALL sub_0_E2F ;10e9 cd 2f 0e
|
|
CALL sub_0_7ED ;10ec cd ed 07
|
|
POP BC ;10ef c1
|
|
RET C ;10f0 d8
|
|
DJNZ 10E8H ;10f1 10 f5
|
|
LD HL,2899H ;10f3 21 99 28
|
|
LD DE,7E9H ;10f6 11 e9 07
|
|
CALL loc_0_6D3 ;10f9 cd d3 06
|
|
JR Z,1132H ;10fc 28 34
|
|
JR 113BH ;10fe 18 3b
|
|
;
|
|
sub_0_1100: CALL sub_0_8A0 ;1100 cd a0 08
|
|
CALL sub_0_E2F ;1103 cd 2f 0e
|
|
RET C ;1106 d8
|
|
LD (2D01H),A ;1107 32 01 2d
|
|
CALL 885H ;110a cd 85 08
|
|
LD HL,2CA7H ;110d 21 a7 2c
|
|
LD B,4 ;1110 06 04
|
|
PUSH BC ;1112 c5
|
|
PUSH HL ;1113 e5
|
|
CALL sub_0_E2F ;1114 cd 2f 0e
|
|
CALL 885H ;1117 cd 85 08
|
|
POP HL ;111a e1
|
|
POP BC ;111b c1
|
|
LD (HL),A ;111c 77
|
|
INC HL ;111d 23
|
|
RET C ;111e d8
|
|
DJNZ 1112H ;111f 10 f1
|
|
LD B,2 ;1121 06 02
|
|
PUSH BC ;1123 c5
|
|
CALL sub_0_E2F ;1124 cd 2f 0e
|
|
CALL 885H ;1127 cd 85 08
|
|
POP BC ;112a c1
|
|
RET C ;112b d8
|
|
DJNZ 1123H ;112c 10 f5
|
|
LD A,H ;112e 7c
|
|
OR L ;112f b5
|
|
JR NZ,113BH ;1130 20 09
|
|
LD A,0FFH ;1132 3e ff
|
|
LD (2CA6H),A ;1134 32 a6 2c
|
|
LD A,(2D01H) ;1137 3a 01 2d
|
|
RET ;113a c9
|
|
|
|
LD A,0FFH ;113b 3e ff
|
|
SCF ;113d 37
|
|
RET ;113e c9
|
|
|
|
sub_0_113F: CALL sub_0_8A0 ;113f cd a0 08
|
|
CALL 1194H ;1142 cd 94 11
|
|
RET C ;1145 d8
|
|
LD (2D01H),A ;1146 32 01 2d
|
|
CALL 885H ;1149 cd 85 08
|
|
LD HL,2CA7H ;114c 21 a7 2c
|
|
LD B,4 ;114f 06 04
|
|
PUSH BC ;1151 c5
|
|
PUSH HL ;1152 e5
|
|
CALL 1194H ;1153 cd 94 11
|
|
JR NC,115BH ;1156 30 03
|
|
POP HL ;1158 e1
|
|
POP BC ;1159 c1
|
|
RET ;115a c9
|
|
;
|
|
CALL 885H ;115b cd 85 08
|
|
POP HL ;115e e1
|
|
POP BC ;115f c1
|
|
LD (HL),A ;1160 77
|
|
INC HL ;1161 23
|
|
DJNZ 1151H ;1162 10 ed
|
|
LD B,2 ;1164 06 02
|
|
PUSH BC ;1166 c5
|
|
CALL 1194H ;1167 cd 94 11
|
|
JR NC,116EH ;116a 30 02
|
|
POP BC ;116c c1
|
|
RET ;116d c9
|
|
;
|
|
CALL 885H ;116e cd 85 08
|
|
POP BC ;1171 c1
|
|
DJNZ 1166H ;1172 10 f2
|
|
LD A,H ;1174 7c
|
|
OR L ;1175 b5
|
|
JR NZ,1190H ;1176 20 18
|
|
LD B,0AH ;1178 06 0a
|
|
CALL 0DE7H ;117a cd e7 0d
|
|
CP 0DH ;117d fe 0d
|
|
JR NZ,1186H ;117f 20 05
|
|
LD B,0AH ;1181 06 0a
|
|
CALL 0DE7H ;1183 cd e7 0d
|
|
OR A ;1186 b7
|
|
LD A,0FFH ;1187 3e ff
|
|
LD (2CA6H),A ;1189 32 a6 2c
|
|
LD A,(2D01H) ;118c 3a 01 2d
|
|
RET ;118f c9
|
|
;
|
|
LD A,0FFH ;1190 3e ff
|
|
SCF ;1192 37
|
|
RET ;1193 c9
|
|
|
|
CALL loc_0_E05 ;1194 cd 05 0e
|
|
RET C ;1197 d8
|
|
CALL sub_0_11B3 ;1198 cd b3 11
|
|
JR NZ,loc_0_11AF ;119b 20 12
|
|
RLCA ;119d 07
|
|
RLCA ;119e 07
|
|
RLCA ;119f 07
|
|
RLCA ;11a0 07
|
|
LD B,A ;11a1 47
|
|
PUSH BC ;11a2 c5
|
|
CALL loc_0_E05 ;11a3 cd 05 0e
|
|
POP BC ;11a6 c1
|
|
RET C ;11a7 d8
|
|
CALL sub_0_11B3 ;11a8 cd b3 11
|
|
JR NZ,loc_0_11AF ;11ab 20 02
|
|
OR B ;11ad b0
|
|
RET ;11ae c9
|
|
;
|
|
loc_0_11AF: LD A,0FFH ;11af 3e ff
|
|
SCF ;11b1 37
|
|
RET ;11b2 c9
|
|
;
|
|
sub_0_11B3: LD L,A ;11b3 6f
|
|
SUB 30H ;11b4 d6 30
|
|
CP 0AH ;11b6 fe 0a
|
|
JR C,loc_0_11BC ;11b8 38 02
|
|
SUB 27H ;11ba d6 27
|
|
loc_0_11BC: LD L,A ;11bc 6f
|
|
AND 0F0H ;11bd e6 f0
|
|
LD A,L ;11bf 7d
|
|
RET ;11c0 c9
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_11C1: ; CODE XREF: sub_0_8D1+63p
|
|
; sub_0_11C1+30j
|
|
ld a, 0FFh
|
|
ld (byte_0_2D02), a
|
|
call sub_0_FAA
|
|
ld a, (byte_0_2C9E)
|
|
cp 10h
|
|
ld a, 43h
|
|
jr z, loc_0_11D4
|
|
ld a, 15h
|
|
|
|
loc_0_11D4: ; CODE XREF: sub_0_11C1+Fj
|
|
call loc_0_145C
|
|
ld b, 64h
|
|
call sub_0_1289
|
|
or a
|
|
jr z, loc_0_11F3
|
|
cp 0F6h
|
|
jr z, loc_0_11E7
|
|
ld a, 0FFh
|
|
scf
|
|
ret
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_11E7: ; CODE XREF: sub_0_11C1+20j
|
|
ld a, 6
|
|
call loc_0_145C
|
|
ld b, 0Ah
|
|
call sub_0_DE7
|
|
jr sub_0_11C1
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_11F3: ; CODE XREF: sub_0_11C1+1Cj
|
|
ld a, 6
|
|
call loc_0_145C
|
|
xor a
|
|
ret
|
|
; End of function sub_0_11C1
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_11FA: ; CODE XREF: sub_0_8D1+6Fp
|
|
; sub_0_8D1+7Dp ...
|
|
ld a, 0FFh
|
|
ld (byte_0_2D02), a
|
|
ld (byte_0_2CA3), a
|
|
xor a
|
|
ld (byte_0_2D07), a
|
|
call sub_0_FAA
|
|
ld hl, 2CABh
|
|
call sub_0_688
|
|
ld a, (byte_0_2C9E)
|
|
cp 10h
|
|
ld a, 43h
|
|
jr z, loc_0_121A
|
|
ld a, 15h
|
|
loc_0_121A: call loc_0_145C ; CODE XREF: sub_0_11FA+1Cj
|
|
loc_0_121D: ld a, (byte_0_2D07) ; CODE XREF: sub_0_11FA+5Ej
|
|
or a
|
|
ld b, 82h
|
|
jr z, loc_0_1227
|
|
ld b, 32h
|
|
loc_0_1227: call sub_0_1289 ; CODE XREF: sub_0_11FA+29j
|
|
jr c, loc_0_125A
|
|
push af
|
|
call sub_0_50B
|
|
pop af
|
|
ld hl, byte_0_2D07
|
|
cp (hl)
|
|
jr z, loc_0_1250
|
|
dec a
|
|
cp (hl)
|
|
jr nz, loc_0_126D
|
|
inc (hl)
|
|
ld de, word_0_2CEF
|
|
ld hl, 2CABh
|
|
ld bc, 2CABh
|
|
call sub_0_6E4
|
|
call sub_0_FBA
|
|
call sub_0_D30
|
|
jr c, loc_0_1285
|
|
|
|
loc_0_1250: call sub_0_FC9 ; CODE XREF: sub_0_11FA+3Bj
|
|
ld a, 6
|
|
call loc_0_145C
|
|
jr loc_0_121D
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_125A: cp 0F6h ; CODE XREF: sub_0_11FA+30j
|
|
jr nz, loc_0_126D
|
|
call sub_0_D0E
|
|
jr c, loc_0_1285
|
|
call sub_0_643
|
|
ld a, 6
|
|
call loc_0_145C
|
|
xor a
|
|
ret
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_126D: ; CODE XREF: sub_0_11FA+3Fj
|
|
; sub_0_11FA+62j
|
|
cp 0FFh
|
|
jr nz, loc_0_1285
|
|
ld a, (byte_0_2D02)
|
|
cp 0FFh
|
|
jr nz, loc_0_1285
|
|
ld a, (byte_0_2C9E)
|
|
or a
|
|
jr z, loc_0_1285
|
|
xor a
|
|
ld (byte_0_2C9E), a
|
|
jp sub_0_11FA
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_1285: ; CODE XREF: sub_0_11FA+54j
|
|
; sub_0_11FA+67j ...
|
|
ld a, 0FFh
|
|
scf
|
|
ret
|
|
; End of function sub_0_11FA
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1289: ; CODE XREF: sub_0_11C1+18p
|
|
; sub_0_11FA+2Dp
|
|
ld a, b
|
|
ld (byte_0_2D03), a
|
|
xor a
|
|
ld (byte_0_2D04), a
|
|
ld a, 0
|
|
ld (byte_0_2D09), a
|
|
|
|
loc_0_1296: ; CODE XREF: sub_0_1289+12Aj
|
|
ld a, (byte_0_2D03)
|
|
ld b, a
|
|
call sub_0_DE7
|
|
ld (byte_0_2D08), a
|
|
ld hl, 12AEh
|
|
ld bc, 4
|
|
cpir
|
|
jp z, sub_0_67F
|
|
jp loc_0_137A
|
|
;----------------------------------------------------------------------------
|
|
.db 2 ;
|
|
.db 1 ;
|
|
.db 4 ;
|
|
.db 18h ;
|
|
|
|
.db 6Ah ; j
|
|
.db 13h ;
|
|
.db 5Fh ; _
|
|
.db 13h ;
|
|
.db 0BFh ; ¿
|
|
.db 12h ;
|
|
.db 0BAh ; º
|
|
.db 12h ;
|
|
.db 21h ; !
|
|
.db 0 ;
|
|
.db 4 ;
|
|
.db 18h ;
|
|
.db 3 ;
|
|
.db 21h ; !
|
|
.db 80h ; ?
|
|
.db 0 ;
|
|
.db 22h ; "
|
|
.db 5 ;
|
|
.db 2Dh ; -
|
|
|
|
ld b,0ah
|
|
call sub_0_DE7
|
|
ld (12D9H),A
|
|
jp c,loc_0_137A
|
|
ld b,0ah
|
|
call sub_0_DE7
|
|
jp c,loc_0_137A
|
|
add a,0
|
|
cp 0ffh
|
|
jp nz,loc_0_137A
|
|
call sub_0_8A0
|
|
ld ix,(2CEDH)
|
|
ld b,0ah
|
|
|
|
.db 0DDh ; Ý
|
|
.db 0E5h ; å
|
|
.db 0CDh ; Í
|
|
.db 0E7h ; ç
|
|
.db 0Dh ;
|
|
|
|
.db 0DDh ; Ý
|
|
.db 0E1h ; á
|
|
.db 32h ; 2
|
|
.db 8 ;
|
|
.db 2Dh ; -
|
|
|
|
.db 0DAh ; Ú
|
|
.db 7Ah ; z
|
|
.db 13h ;
|
|
|
|
.db 0DDh ; Ý
|
|
.db 77h ; w
|
|
.db 0 ;
|
|
.db 0DDh ; Ý
|
|
.db 23h ; #
|
|
.db 0CDh ; Í
|
|
|
|
.db 0DDh ; Ý
|
|
.db 7 ;
|
|
.db 0CDh ; Í
|
|
.db 85h ; ?
|
|
.db 8 ;
|
|
.db 0EDh ; í
|
|
.db 4Bh ; K
|
|
.db 0EFh ; ï
|
|
.db 2Ch ; ,
|
|
.db 3 ;
|
|
.db 0EDh ; í
|
|
.db 43h ; C
|
|
.db 0EFh ; ï
|
|
.db 2Ch ; ,
|
|
.db 0EDh ; í
|
|
.db 5Bh ; [
|
|
.db 5 ;
|
|
.db 2Dh ; -
|
|
.db 1Bh ;
|
|
.db 0EDh ; í
|
|
.db 53h ; S
|
|
.db 5 ;
|
|
.db 2Dh ; -
|
|
.db 7Ah ; z
|
|
.db 0B3h ; ³
|
|
.db 20h ;
|
|
.db 0D0h ; Ð
|
|
.db 0DDh ; Ý
|
|
.db 22h ; "
|
|
.db 0EDh ; í
|
|
.db 2Ch ; ,
|
|
.db 6 ;
|
|
.db 0Ah ;
|
|
.db 0CDh ; Í
|
|
.db 0E7h ; ç
|
|
.db 0Dh ;
|
|
.db 32h ; 2
|
|
.db 8 ;
|
|
.db 2Dh ; -
|
|
.db 0DAh ; Ú
|
|
.db 7Ah ; z
|
|
.db 13h ;
|
|
.db 3Ah ; :
|
|
.db 9Eh ; ?
|
|
.db 2Ch ; ,
|
|
.db 0FEh ; þ
|
|
.db 10h ;
|
|
.db 20h ;
|
|
.db 26h ; &
|
|
.db 3Ah ; :
|
|
.db 8 ;
|
|
.db 2Dh ; -
|
|
.db 0CDh ; Í
|
|
.db 85h ; ?
|
|
.db 8 ;
|
|
.db 6 ;
|
|
.db 0Ah ;
|
|
.db 0CDh ; Í
|
|
.db 0E7h ; ç
|
|
.db 0Dh ;
|
|
.db 32h ; 2
|
|
.db 8 ;
|
|
.db 2Dh ; -
|
|
.db 0DAh ; Ú
|
|
.db 7Ah ; z
|
|
.db 13h ;
|
|
.db 0CDh ; Í
|
|
.db 85h ; ?
|
|
.db 8 ;
|
|
.db 7Ch ; |
|
|
.db 0B5h ; µ
|
|
.db 0C2h ; Â
|
|
.db 7Ah ; z
|
|
.db 13h ;
|
|
.db 0AFh ; ¯
|
|
.db 32h ; 2
|
|
.db 4 ;
|
|
.db 2Dh ; -
|
|
.db 3Eh ; >
|
|
.db 0 ;
|
|
.db 32h ; 2
|
|
.db 2 ;
|
|
.db 2Dh ; -
|
|
.db 3Ah ; :
|
|
.db 0D9h ; Ù
|
|
.db 12h ;
|
|
.db 0C9h ; É
|
|
|
|
ld a,(byte_0_2D08)
|
|
ld l,a
|
|
ld a,(smod_b_7DF)
|
|
sub l
|
|
jr z,$-15h
|
|
jp loc_0_137A
|
|
|
|
ld b,0ah
|
|
call sub_0_DE7
|
|
ld a,0f6h
|
|
ret c
|
|
jp loc_0_137A
|
|
|
|
ld a,0ffh
|
|
ld hl,byte_0_2D09
|
|
cp (hl)
|
|
jr nz,loc_0_1367
|
|
ld a,0ffh
|
|
scf
|
|
ret
|
|
|
|
loc_0_1367: ld (hl),a
|
|
jp loc_0_13A4
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_137A: ; CODE XREF: sub_0_1289+22j
|
|
ld a, 0
|
|
ld (byte_0_2D09), a
|
|
|
|
loc_0_137F: ; CODE XREF: sub_0_1289+FBj
|
|
ld b, 0Ah
|
|
call sub_0_DE7
|
|
jr nc, loc_0_137F
|
|
ld a, (byte_0_2D02)
|
|
cp 0FFh
|
|
jr nz, loc_0_139A
|
|
ld a, (byte_0_2C9E)
|
|
cp 10h
|
|
ld a, 43h
|
|
jr z, loc_0_13A1
|
|
ld a, 15h
|
|
jr loc_0_13A1
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_139A: ld a, 28h ; CODE XREF: sub_0_1289+102j
|
|
ld (byte_0_2D03), a
|
|
ld a, 15h
|
|
loc_0_13A1: call loc_0_145C ; CODE XREF: sub_0_1289+10Bj
|
|
loc_0_13A4: call sub_0_FC9 ; sub_0_1289+10Fj
|
|
ld hl, byte_0_2D04
|
|
inc (hl)
|
|
call sub_0_482
|
|
ld a, (byte_0_2D04)
|
|
cp 5
|
|
jp nz, loc_0_1296
|
|
ld a, 0FFh
|
|
scf
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_13BA: ld (byte_0_2CE8), a ; CODE XREF: sub_0_BD3+34p
|
|
ld hl,loc_0_1403
|
|
call sub_0_DDC
|
|
call sub_0_8A0
|
|
ld a, (byte_0_2CE8)
|
|
call loc_0_885
|
|
call sub_0_1418
|
|
ld hl, 2CE0h
|
|
ld b, 4
|
|
loc_0_13D4: push bc ; CODE XREF: sub_0_13BA+26j
|
|
ld a, (hl)
|
|
inc hl
|
|
push hl
|
|
call loc_0_885
|
|
call sub_0_1418
|
|
pop hl
|
|
pop bc
|
|
djnz loc_0_13D4
|
|
ld a, (smod_w_887+1)
|
|
call sub_0_1418
|
|
ld a, (smod_w_887)
|
|
call sub_0_1418
|
|
ld a, 0Dh
|
|
call loc_0_145C
|
|
ld a, 0Ah
|
|
call loc_0_145C
|
|
ld a, (byte_0_2CE8)
|
|
cp 8
|
|
ret z
|
|
ld a, 11h
|
|
jp loc_0_145C
|
|
|
|
;----------------------------------------------------------------------------
|
|
loc_0_1403: .db 2Ah ; *
|
|
.db 2Ah ; *
|
|
.db 18h ;
|
|
.db 42h ; B
|
|
.db 0 ;
|
|
|
|
loc_0_1408: .text "0123456789abcdef"
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1418: push af ; CODE XREF: sub_0_13BA+12p
|
|
ld hl,loc_0_1408 ; sub_0_13BA+21p ...
|
|
ld b, 0
|
|
rra
|
|
rra
|
|
rra
|
|
rra
|
|
and 0Fh
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, (hl)
|
|
call loc_0_145C
|
|
pop af
|
|
ld hl,loc_0_1408
|
|
ld b, 0
|
|
and 0Fh
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, (hl)
|
|
jp loc_0_145C
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_1438: LD (smod_b_145B),A
|
|
LD BC,+(loc_0_1480-stab_0_7B3)
|
|
LD HL,stab_0_7B3
|
|
CPIR
|
|
JP Z,sub_0_67F
|
|
AND 60H
|
|
JR NZ,loc_0_145A
|
|
LD A,(byte_0_2C9D)
|
|
OR A
|
|
JR Z,loc_0_145A
|
|
loc_0_1450: LD HL,smod_b_145B
|
|
SET 6,(HL)
|
|
LD A,18H
|
|
CALL loc_0_145C
|
|
smod_b_145B: .equ $+1
|
|
loc_0_145A: LD A,0
|
|
loc_0_145C: LD (smod_b_1468),A
|
|
loc_0_145F: CALL sub_0_588
|
|
CALL sub_0_5CD
|
|
JR Z,loc_0_145F
|
|
smod_b_1468: .equ $+1
|
|
LD A,0
|
|
JP loc_0_5C7
|
|
|
|
loc_0_146C: LD A,(smod_b_1468)
|
|
AND 7FH
|
|
CP 40H
|
|
JR NZ,loc_0_145A
|
|
JR loc_0_1450
|
|
|
|
stab_0_7B3: .db 18h
|
|
.db 0Dh
|
|
.db 8Dh
|
|
.db 10h
|
|
.db 90h
|
|
.db 11h
|
|
.db 91h
|
|
.db 13h
|
|
.db 93h
|
|
|
|
loc_0_1480: .dw loc_0_1450
|
|
.dw loc_0_1450
|
|
.dw loc_0_1450
|
|
.dw loc_0_1450
|
|
.dw loc_0_1450
|
|
.dw loc_0_1450
|
|
.dw loc_0_146C
|
|
.dw loc_0_146C
|
|
.dw loc_0_1450
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1492: push bc ; CODE XREF: start+56p sub_0_961+79p
|
|
ld (byte_0_2D0A), a
|
|
call sub_0_171E
|
|
push de
|
|
call sub_0_162C
|
|
ld (de), a
|
|
pop de
|
|
push de
|
|
call sub_0_14A7
|
|
pop de
|
|
pop bc
|
|
jr loc_0_151D
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_14A7: xor a ; CODE XREF: sub_0_1492+Ep
|
|
ld (de), a
|
|
ld (byte_0_2D0D), a
|
|
ld (byte_0_2D0C), a
|
|
call sub_0_1687
|
|
ld a, c
|
|
ld (byte_0_2D0E), a
|
|
push de
|
|
ld a, (hl)
|
|
cp 3Ah
|
|
jr nz, loc_0_14BD
|
|
inc hl
|
|
loc_0_14BD: ld b, 8 ; CODE XREF: sub_0_14A7+13j
|
|
call sub_0_1522
|
|
pop de
|
|
ld a, (hl)
|
|
ld (byte_0_2D0B), a
|
|
cp 3Ah
|
|
jr nz, loc_0_14FE
|
|
inc hl
|
|
ld a, (byte_0_2D0A)
|
|
or a
|
|
jr z, loc_0_14D7
|
|
call sub_0_154A
|
|
jr z, loc_0_14E5
|
|
loc_0_14D7: call sub_0_159D ; CODE XREF: sub_0_14A7+29j
|
|
jr z, loc_0_14E5
|
|
ld a, (byte_0_2D0A)
|
|
or a
|
|
jr nz, loc_0_14E5
|
|
call sub_0_154A
|
|
loc_0_14E5: ld a, (byte_0_2D0D); CODE XREF: sub_0_14A7+2Ej
|
|
ld (de), a ; sub_0_14A7+33j ...
|
|
push de
|
|
inc de
|
|
call sub_0_1632
|
|
pop de
|
|
xor a
|
|
ld (byte_0_2D0C), a
|
|
push de
|
|
ld b, 8
|
|
call sub_0_1522
|
|
pop de
|
|
ld a, (hl)
|
|
ld (byte_0_2D0B), a
|
|
loc_0_14FE: ld a, (byte_0_2D0B); CODE XREF: sub_0_14A7+22j
|
|
ex de, hl
|
|
ld bc, 8
|
|
add hl, bc
|
|
ex de, hl
|
|
ld b, 3
|
|
cp 2Eh
|
|
jr nz, loc_0_1513
|
|
inc hl
|
|
push de
|
|
call sub_0_1522
|
|
pop de
|
|
loc_0_1513: ex de, hl ; CODE XREF: sub_0_14A7+64j
|
|
ld bc, 5
|
|
add hl, bc
|
|
ex de, hl
|
|
ld a, (byte_0_2D0E)
|
|
ld (de), a
|
|
loc_0_151D: ld a, (byte_0_2D0C); CODE XREF: sub_0_1492+13j
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1522: call sub_0_15D9 ; CODE XREF: sub_0_14A7+18p
|
|
ret z ; sub_0_14A7+4Fp ...
|
|
inc de
|
|
cp 2Ah
|
|
jr nz, loc_0_1533
|
|
ld a, 3Fh
|
|
ld (de), a
|
|
call sub_0_1543
|
|
jr loc_0_153A
|
|
loc_0_1533: ld (de), a ; CODE XREF: sub_0_1522+7j
|
|
inc hl
|
|
cp 3Fh
|
|
call z, sub_0_1543
|
|
loc_0_153A: djnz sub_0_1522 ; CODE XREF: sub_0_1522+Fj
|
|
loc_0_153C: call sub_0_15D9 ; CODE XREF: sub_0_1522+1Fj
|
|
ret z
|
|
inc hl
|
|
jr loc_0_153C
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1543: push hl ; CODE XREF: sub_0_1522+Cp
|
|
ld hl, byte_0_2D0C ; sub_0_1522+15p
|
|
inc (hl)
|
|
pop hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_154A: push hl ; CODE XREF: sub_0_14A7+2Bp
|
|
push de ; sub_0_14A7+3Bp
|
|
call sub_0_1552
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1552: call sub_0_164A ; CODE XREF: sub_0_154A+2p
|
|
jr z, loc_0_15CA
|
|
ex de, hl
|
|
inc hl
|
|
call sub_0_1652
|
|
ld b, a
|
|
inc b
|
|
ld a, (hl)
|
|
cp 41h
|
|
jr c, loc_0_1574
|
|
sub 40h
|
|
cp b
|
|
jr nc, loc_0_15CA
|
|
ld (byte_0_2D0D), a
|
|
inc hl
|
|
ld a, (hl)
|
|
cp 20h
|
|
ret z
|
|
call sub_0_1625
|
|
ret c
|
|
loc_0_1574: push hl ; CODE XREF: sub_0_1552+Fj
|
|
ld b, 2
|
|
loc_0_1577: ld a, (hl) ; CODE XREF: sub_0_1552+30j
|
|
cp 20h
|
|
jr z, loc_0_1589
|
|
call sub_0_1625
|
|
jr c, loc_0_159A
|
|
inc hl
|
|
djnz loc_0_1577
|
|
ld a, (hl)
|
|
cp 20h
|
|
jr nz, loc_0_159A
|
|
loc_0_1589: pop hl ; CODE XREF: sub_0_1552+28j
|
|
call sub_0_165A
|
|
ld c, a
|
|
inc c
|
|
call sub_0_15FA
|
|
cp c
|
|
jr nc, loc_0_15CA
|
|
ld (byte_0_2D0E), a
|
|
xor a
|
|
ret
|
|
|
|
loc_0_159A: pop hl ; CODE XREF: sub_0_1552+2Dj
|
|
jr loc_0_15CA ; sub_0_1552+35j
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_159D: push hl ; CODE XREF: sub_0_14A7+30p
|
|
push de
|
|
call sub_0_15A5
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_15A5: call sub_0_1662 ; CODE XREF: sub_0_159D+2p
|
|
jr z, loc_0_15CA
|
|
ex de, hl
|
|
inc hl
|
|
loc_0_15AC: ld a, (de) ; CODE XREF: sub_0_15A5+23j
|
|
or a
|
|
jr z, loc_0_15CA
|
|
inc de
|
|
inc de
|
|
push hl
|
|
push de
|
|
ld b, 8
|
|
loc_0_15B6: ld a, (de) ; CODE XREF: sub_0_15A5+17j
|
|
cp (hl)
|
|
jr nz, loc_0_15BE
|
|
inc hl
|
|
inc de
|
|
djnz loc_0_15B6
|
|
loc_0_15BE: pop de ; CODE XREF: sub_0_15A5+13j
|
|
pop hl
|
|
jr z, loc_0_15CD
|
|
ex de, hl
|
|
ld bc, 10h
|
|
add hl, bc
|
|
ex de, hl
|
|
jr loc_0_15AC
|
|
|
|
loc_0_15CA: or 0FFh ; CODE XREF: sub_0_1552+3j
|
|
ret ; sub_0_1552+14j ...
|
|
|
|
loc_0_15CD: dec de ; CODE XREF: sub_0_15A5+1Bj
|
|
ld a, (de)
|
|
ld (byte_0_2D0E), a
|
|
dec de
|
|
ld a, (de)
|
|
ld (byte_0_2D0D), a
|
|
xor a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_15D9: ld a, (hl) ; CODE XREF: sub_0_1522p sub_0_1522+1Ap
|
|
cp 21h
|
|
jr c, loc_0_15F8
|
|
cp 3Dh
|
|
ret z
|
|
cp 5Fh
|
|
ret z
|
|
cp 2Eh
|
|
ret z
|
|
cp 3Ah
|
|
ret z
|
|
cp 2Ch
|
|
ret z
|
|
cp 3Ch
|
|
ret z
|
|
cp 3Eh
|
|
ret z
|
|
or a
|
|
ret z
|
|
cp 3Bh
|
|
ret
|
|
|
|
loc_0_15F8: xor a ; CODE XREF: sub_0_15D9+3j
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_15FA: push bc ; CODE XREF: sub_0_1552+3Dp
|
|
ld bc, 1100h
|
|
loc_0_15FE: ld a, (hl) ; CODE XREF: sub_0_15FA+22j
|
|
call sub_0_15D9
|
|
jr z, loc_0_161E
|
|
inc hl
|
|
call sub_0_1625
|
|
jr c, loc_0_1622
|
|
ld d, a
|
|
ld a, c
|
|
rlca
|
|
jr c, loc_0_1622
|
|
rlca
|
|
jr c, loc_0_1622
|
|
add a, c
|
|
jr c, loc_0_1622
|
|
rlca
|
|
jr c, loc_0_1622
|
|
add a, d
|
|
jr c, loc_0_1622
|
|
ld c, a
|
|
djnz loc_0_15FE
|
|
loc_0_161E: ld a, c ; CODE XREF: sub_0_15FA+8j
|
|
pop bc
|
|
or a
|
|
ret
|
|
;
|
|
loc_0_1622: pop bc ; CODE XREF: sub_0_15FA+Ej
|
|
scf ; sub_0_15FA+13j ...
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1625: sub 30h ; CODE XREF: sub_0_1552+1Ep
|
|
ret c ; sub_0_1552+2Ap ...
|
|
cp 0Ah
|
|
ccf
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_162C: xor a ; CODE XREF: sub_0_1492+8p
|
|
ld (de), a
|
|
inc de
|
|
call sub_0_1632
|
|
sub_0_1632: ld b, 0Bh ; CODE XREF: sub_0_14A7+44p
|
|
ld a, 20h
|
|
call sub_0_1645
|
|
xor a
|
|
ld (de), a
|
|
inc de
|
|
call sub_0_1687
|
|
ld a, c
|
|
ld (de), a
|
|
inc de
|
|
ld b, 3
|
|
xor a
|
|
sub_0_1645: ld (de), a ; CODE XREF: sub_0_1632+4p
|
|
inc de ; sub_0_1645+2j
|
|
djnz sub_0_1645
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_164A: push hl ; CODE XREF: sub_0_1552p
|
|
push de
|
|
ld de, 2Eh
|
|
jp loc_0_1669
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1652: push hl ; CODE XREF: sub_0_1552+7p
|
|
push de
|
|
ld de, 2Ch
|
|
jp loc_0_1669
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_165A: push hl ; CODE XREF: sub_0_1552+38p
|
|
push de
|
|
ld de, 2Dh
|
|
jp loc_0_1669
|
|
;
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1662: push de ; CODE XREF: sub_0_15A5p
|
|
ld de, 15h
|
|
jp loc_0_1676
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_1669: ld hl, (word_0_2D0F) ; CODE XREF: sub_0_164A+5j
|
|
ld a, h ; sub_0_1652+5j ...
|
|
or l
|
|
jr z, loc_0_1671
|
|
add hl, de
|
|
loc_0_1671: ld a, (hl) ; CODE XREF: sub_0_1662+Cj
|
|
pop de
|
|
pop hl
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
loc_0_1676: ld hl, (word_0_2D0F) ; CODE XREF: sub_0_1662+4j
|
|
add hl, de
|
|
ld e, (hl)
|
|
inc hl
|
|
ld d, (hl)
|
|
inc hl
|
|
ld a, (hl)
|
|
ex de, hl
|
|
pop de
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
loc_0_1683: ld (word_0_2D0F),hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1687: push af ; CODE XREF: sub_0_14A7+8p
|
|
push de ; sub_0_1632+Ap
|
|
push hl
|
|
ld c, 19h
|
|
call sub_0_16AF
|
|
push af
|
|
ld e, 0FFh
|
|
ld c, F_USERNUM
|
|
call sub_0_16AF
|
|
ld c, a
|
|
pop af
|
|
ld b, a
|
|
pop hl
|
|
pop de
|
|
pop af
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_169E: ld a, 11h ; CODE XREF: sub_0_961+88p
|
|
call sub_0_16B8
|
|
inc a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16A5: ld a, 1 ; CODE XREF: sub_0_DE7+4p
|
|
jp sub_0_16B8
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16AA: ld a, 0Bh ; CODE XREF: sub_0_DE7+1p
|
|
jp sub_0_16B8
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16AF: push de ; CODE XREF: sub_0_1687+5p
|
|
push bc ; sub_0_1687+Dp
|
|
call bdos
|
|
pop bc
|
|
pop de
|
|
or a
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16B8: push hl ; CODE XREF: sub_0_169E+2p
|
|
push de ; sub_0_16A5+2j ...
|
|
push bc
|
|
ld c, a
|
|
call bdos
|
|
or a
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16C4: push bc ; CODE XREF: sub_0_4A4+10p
|
|
push hl
|
|
push de
|
|
push af
|
|
ld b, 8
|
|
call sub_0_16DA
|
|
ld (hl), 2Eh
|
|
inc hl
|
|
ld b, 3
|
|
call sub_0_16DA
|
|
pop af
|
|
pop de
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16DA: ld a, (de) ; CODE XREF: sub_0_16C4+6p
|
|
and 7Fh ; sub_0_16C4+Ep ...
|
|
cp 20h
|
|
jr z, loc_0_16E3
|
|
ld (hl), a
|
|
inc hl
|
|
loc_0_16E3: inc de ; CODE XREF: sub_0_16DA+5j
|
|
djnz sub_0_16DA
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_16E7: push bc ; CODE XREF: sub_0_482+6p sub_0_4A4+1Fp
|
|
ld b, 0
|
|
jp loc_0_16F0
|
|
sub_0_16ED: PUSH BC
|
|
LD B,0FFH
|
|
loc_0_16F0: push hl ; CODE XREF: sub_0_16E7+3j
|
|
push af
|
|
ld h, 64h
|
|
call sub_0_1703
|
|
ld h, 0Ah
|
|
call sub_0_1703
|
|
call sub_0_1717
|
|
pop af
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1703: ld l, 0FFh ; CODE XREF: sub_0_16E7+Dp
|
|
loc_0_1705: sub h ; CODE XREF: sub_0_1703+4j
|
|
inc l
|
|
jr nc, loc_0_1705
|
|
add a, h
|
|
ld h, a
|
|
ld a, l
|
|
or a
|
|
jr nz, sub_0_1717
|
|
or b
|
|
ld a, h
|
|
ret m
|
|
ld a, 20h
|
|
jr z, loc_0_171A
|
|
xor a
|
|
sub_0_1717: add a, 30h ; CODE XREF: sub_0_16E7+15p
|
|
ld b, a
|
|
loc_0_171A: ld (de), a ; CODE XREF: sub_0_1703+11j
|
|
inc de
|
|
ld a, h
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_171E: push af ; CODE XREF: sub_0_1492+4p
|
|
push hl
|
|
loc_0_1720: ld a, (hl)
|
|
or a
|
|
jr z, loc_0_172B
|
|
call sub_0_1793
|
|
ld (hl), a
|
|
inc hl
|
|
jr loc_0_1720
|
|
loc_0_172B: pop hl
|
|
pop af
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_172E: push bc ; CODE XREF: start+2Fp sub_0_961+70p
|
|
push de
|
|
push hl
|
|
ld c, a
|
|
ex de, hl
|
|
ld b, (hl)
|
|
push hl
|
|
inc hl
|
|
inc hl
|
|
loc_0_1737: call sub_0_176B ; CODE XREF: sub_0_172E+25j
|
|
or a
|
|
jr z, loc_0_1760
|
|
ld (hl), e
|
|
inc hl
|
|
ld (hl), d
|
|
inc hl
|
|
dec b
|
|
jr z, loc_0_1755
|
|
call sub_0_1779
|
|
or a
|
|
jr z, loc_0_1760
|
|
ld a, c
|
|
or a
|
|
jr z, loc_0_1751
|
|
xor a
|
|
ld (de), a
|
|
inc de
|
|
loc_0_1751: ld a, b ; CODE XREF: sub_0_172E+1Ej
|
|
or a
|
|
jr nz, loc_0_1737
|
|
loc_0_1755: call sub_0_1779 ; CODE XREF: sub_0_172E+14j
|
|
call sub_0_176B
|
|
or a
|
|
jr z, loc_0_1760
|
|
or 0FFh
|
|
loc_0_1760: pop hl ; CODE XREF: sub_0_172E+Dj
|
|
push af ; sub_0_172E+1Aj ...
|
|
ld a, (hl)
|
|
sub b
|
|
inc hl
|
|
ld (hl), a
|
|
pop af
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_176B: ld a, (de) ; CODE XREF: sub_0_172E+9p
|
|
and 7Fh ; sub_0_172E+2Ap ...
|
|
inc de
|
|
cp 20h
|
|
jr z, sub_0_176B
|
|
cp 9
|
|
jr z, sub_0_176B
|
|
dec de
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1779: ld a, (de) ; CODE XREF: sub_0_172E+16p
|
|
and 7Fh ; sub_0_172E+27p ...
|
|
ret z
|
|
cp 20h
|
|
ret z
|
|
cp 9
|
|
ret z
|
|
inc de
|
|
jr sub_0_1779
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1786: push hl ; CODE XREF: start+1Ep sub_0_4A4+Cp
|
|
call sub_0_178C
|
|
pop hl
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_178C: push bc ; CODE XREF: sub_0_1786+1p
|
|
loc_0_178D: ld (hl), a ; CODE XREF: sub_0_178C+3j
|
|
inc hl
|
|
djnz loc_0_178D
|
|
pop bc
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
; S u b r o u t i n e
|
|
|
|
sub_0_1793: and 7Fh ; CODE XREF: sub_0_171E+6p
|
|
cp 61h
|
|
ret c
|
|
cp 7Bh
|
|
ret nc
|
|
and 5Fh
|
|
ret
|
|
|
|
;----------------------------------------------------------------------------
|
|
word_0_179E: .dw 2D11h ; DATA XREF: start+18r start+35r
|
|
byte_0_17A0: .db 0 ; DATA XREF: sub_0_195+Aw sub_0_195+14r
|
|
byte_0_17A1: .db 0 ; DATA XREF: start+60r sub_0_195+11w
|
|
word_0_17A2: .db 0 ; DATA XREF: start+88w sub_0_961+7Fw
|
|
byte_0_17A3: .db 0
|
|
.fill $1800-$,0
|
|
.ds 8
|
|
nstack:
|
|
word_0_1808: .ds 2
|
|
.ds 1004h
|
|
byte_0_280E: .ds 1
|
|
.ds 82h
|
|
byte_0_2891: .ds 1
|
|
.ds 40Bh
|
|
byte_0_2C9D: .ds 1
|
|
byte_0_2C9E: .ds 1
|
|
.ds 2
|
|
byte_0_2CA1: .ds 1
|
|
byte_0_2CA2: .ds 1
|
|
byte_0_2CA3: .ds 1
|
|
byte_0_2CA4: .ds 1
|
|
byte_0_2CA5: .ds 1
|
|
.ds 2Bh
|
|
byte_0_2CD1: .ds 1
|
|
word_0_2CD2: .ds 2
|
|
byte_0_2CD4: .ds 1
|
|
.ds 13h
|
|
byte_0_2CE8: .ds 1
|
|
.ds 2
|
|
word_0_2CEB: .ds 2
|
|
.ds 2
|
|
word_0_2CEF: .ds 2
|
|
.ds 0Fh
|
|
byte_0_2D00: .ds 1
|
|
byte_0_2D01: .ds 1
|
|
byte_0_2D02: .ds 1
|
|
byte_0_2D03: .ds 1
|
|
byte_0_2D04: .ds 1
|
|
.ds 2
|
|
byte_0_2D07: .ds 1
|
|
byte_0_2D08: .ds 1
|
|
byte_0_2D09: .ds 1
|
|
byte_0_2D0A: .ds 1
|
|
byte_0_2D0B: .ds 1
|
|
byte_0_2D0C: .ds 1
|
|
byte_0_2D0D: .ds 1
|
|
byte_0_2D0E: .ds 1
|
|
word_0_2D0F: .ds 2
|
|
.end ; start
|
|
|