pushed updates

This commit is contained in:
Dennis Gunia
2024-06-24 09:21:16 +02:00
parent 488efa3907
commit d18e8e9e69
197 changed files with 316846 additions and 223785 deletions

View File

@@ -0,0 +1,89 @@
;----------------------------------------------------------------
; Terminal IN/OUT functions
;----------------------------------------------------------------
; prints out byte
; input:
; - a: byte to send
; modify:
; - af: destroy
bios_termout:
jp print_char
; reads in byte
; input:
; modify:
; - a: read byte
; - f: destroy
bios_termin:
jp read_char
; reads input status
; input:
; modify:
; - a: 0x00 if empty, 0xFF if byte is ready
; - f: destroy
bios_termsts:
jp read_in_sts
;----------------------------------------------------------------
; I2C IN/OUT functions
;----------------------------------------------------------------
; sends I2C buffer to device
; input:
; - HL contains buffer location
; - B defines amount of bytes to send
; - C contains device address
; modify:
; - af: destroy
bios_iic_send:
jp iic_send_buffer
; sends I2C buffer to device
; input:
; - HL contains buffer location
; - B defines amount of bytes to receive
; - C contains device address
; modify:
; - af: destroy
bios_iic_receive:
jp iic_receive_buffer
;----------------------------------------------------------------
; disk functions
;----------------------------------------------------------------
; selects drive 0-3
; input:
; - a contains drive number
; modify:
; - af: destroy
; - de: destroy
; - bc: destroy
; - hl: destroy
bios_disk_sel:
jp ideif_drv_sel
; gets pointer to selcetd drive information
; input:
; modify:
; - af: destroy
; - ix: pointer to start of entry
bios_disk_get:
jp ideif_get_drv_pointer
; reads from LBA address
; input:
; - a : sectro count
; - de: destination in memory
; - hl: pointer to sector value in memory (32 bit (lw))
; modify:
; - af: destroy
; - bc: destroy
; - de: destroy
; - hl: destroy
bios_disk_readlba:
jp read_lba_sector
;----------------------------------------------------------------
; filesystem functions
;----------------------------------------------------------------

View File

@@ -58,12 +58,11 @@ print_char:
print_str:
ld a, (hl)
or a
jr z,print_str_end
ret z
call print_char
inc hl
jr print_str
print_str_end:
ret
print_clear:
ld hl, [MSG_CLEAR]
@@ -118,6 +117,15 @@ read_char:
in a, (CS_SIO_A_D) ; read char if avail
ret ; return
read_in_sts:
out (CS_SIO_A_C), a ; select reg 0
in a, (CS_SIO_A_C) ; read reg 0
and 1 ; mask D0 (recieve char available)
ret z
ld a, 0xFF
ret
read_bcd;
call read_char
jp z, read_bcd

View File

@@ -46,6 +46,8 @@ MEM_FAT_EXEC_START:
dephase
;-------------------------------------
; Get FAT Root-Table position
;-------------------------------------
@@ -226,6 +228,7 @@ _fat_getfatsec_notroot:
;read FAT sector
ld hl,MEM_FAT_OF0_FATSEC ;read next sector
ld b,1
ld a,1
LD DE, MEM_IDE_BUFFER ;where to store data?
call read_lba_sector
@@ -287,6 +290,7 @@ fat_readfilesec:
;call fat_print_dbg
ld hl,[MEM_FAT_OF0_DATSEC]
ld b,1
ld a,1
;LD DE, MEM_IDE_BUFFER ;where to store data?
call read_lba_sector ;read sectore
ld hl,[MEM_FAT_OF0_DATSEC] ;increment pointer to next sector
@@ -342,6 +346,7 @@ fat_openfile_noprepare:
LD HL,MEM_IDE_POINTER ;read first sector
LD B,1
ld a,1
LD DE, MEM_IDE_BUFFER ;where to store data?
call read_lba_sector
@@ -372,6 +377,7 @@ _fat_lfs_loop_compare_next_sector:
LD HL,MEM_IDE_POINTER ;read next sector
LD B,1
ld a,1
LD DE, MEM_IDE_BUFFER ;where to store data?
call read_lba_sector

View File

@@ -13,6 +13,7 @@ fat_print_directory:
LD (MEM_FAT_COUNT1),DE
LD HL,MEM_IDE_POINTER ;read first sector
LD B,1
ld a,1
LD DE, MEM_IDE_BUFFER ;where to store data?
call read_lba_sector
@@ -112,7 +113,7 @@ _fat_print_directory_loop_next_sector: ; end fo sector. read next sector from d
LD HL,MEM_IDE_POINTER ;read next sector
LD B,1
ld a,1
LD DE, MEM_IDE_BUFFER ;where to store data?
call read_lba_sector
@@ -303,7 +304,8 @@ fat_exec:
call PRINTINLINE
db 10,13,"Loading ",0
ld hl,[var_input+6]
pop hl ;get and re-store pointer ot filename from and to stack
push hl
call print_str
call PRINTINLINE
db " to 0x",0

View File

@@ -37,6 +37,26 @@
IDE_REG_LBA2 .EQU 01101b ;High two bits of the cylinder number
IDE_REG_LBA3 .EQU 01110b ;Head and device select register
ide_wait_rdy macro
local wait
wait:
ld b, IDE_REG_CMDSTS
call ide_regread_8
rla
jr c, wait
endm
ide_wait_drq macro
local wait
wait:
ld b, IDE_REG_CMDSTS
call ide_regread_8
bit 0,a ;Error Bit set.
jp nz, ide_printerror
bit 3,a
jr z,wait
endm
;================================================================
; I/O access functions
@@ -53,7 +73,6 @@ ide_reset:
OUT (CS_PIA_CR), A ;Set Data direction to out
LD A, IDE_RST
OUT (CS_PIA_PC), A ;Reset IDE Device
NOP
XOR A
OUT (CS_PIA_PC), A ;end device reset
RET
@@ -80,11 +99,11 @@ ide_regwrite_8:
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
OR IDE_WR ;Set Write bit
OUT (CS_PIA_PC), A ;Set write signal
NOP ;delay to wait for processing
;NOP ;delay to wait for processing
LD A, B ;Load register address
AND 00011111b ;Mask unused bits
OUT (CS_PIA_PC), A ;disable write signal
NOP
;NOP
XOR A ;clear register A
OUT (CS_PIA_PC), A ;clear controll lines
RET
@@ -106,15 +125,7 @@ ide_regread_8:
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
OR IDE_RD ;Set Write bit
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
NOP ;delay to wait for processing
PUSH AF
POP AF
PUSH AF
POP AF
PUSH AF
POP AF
PUSH AF
POP AF
NOP
IN A,(CS_PIA_PA) ;read data from ide device to b (because a is used later)
PUSH AF
XOR A ;clear register A
@@ -122,80 +133,42 @@ ide_regread_8:
POP AF ;put data in accumulator
RET
;------------------------------------------------------------------------------
; ide_readsector_256
; ide_readsector_512_fast
;
; Reads IDE Data
; Reads IDE Data until no more data is available (multiple sectors)
; HL contains destination address
; A returns 0 on success, 1 on error
;------------------------------------------------------------------------------
ide_readsector_256:
LD C,0 ;Setup counter for 256 words
ide_readsector_256_waitloop:
LD B, IDE_REG_CMDSTS
CALL ide_regread_8
BIT 0,a ;Error Bit set.
JP NZ, ide_printerror
BIT 3,a ;DRQ Bit set. If set, disk has data
JR Z, ide_readsector_256_waitloop ;If not set, wait
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
OUT (CS_PIA_CR), A ;Set Data direction to IN
LD A, IDE_REG_DATA ;CS0 and A=0 -> I/O register
OUT (CS_PIA_PC), A ;set register
OR IDE_RD ;Set Read bit
OUT (CS_PIA_PC), A ;Write Read to bit controll lines
NOP
;NOP
;NOP
IN A,(CS_PIA_PB) ;Load 16-Bit data to buffer
LD (HL), A
INC HL
IN A,(CS_PIA_PA)
LD (HL), A
INC HL
DEC C
RET Z
JR ide_readsector_256_waitloop
ide_readsector_512_inv:
LD C,0 ;Setup counter for 256 words
LD DE, 4096 ;Timeout counter
ide_readsector_512_inv_waitloop:
DEC DE
LD A,D
OR E
JP Z, ide_readsector_timeout
;timeout checked. continue
LD B, IDE_REG_CMDSTS
CALL ide_regread_8
BIT 0,a ;Error Bit set.
JP NZ, ide_printerror
BIT 3,a ;DRQ Bit set. If set, disk has data
JR Z, ide_readsector_512_inv_waitloop ;If not set, wait
LD DE, 2048 ;Timeout counter
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
OUT (CS_PIA_CR), A ;Set Data direction to IN
LD A, IDE_REG_DATA ;CS0 and A=0 -> I/O register
OUT (CS_PIA_PC), A ;set register
OR IDE_RD ;Set Read bit
OUT (CS_PIA_PC), A ;Write Read to bit controll lines
;NOP
;NOP
NOP
IN A,(CS_PIA_PA) ;Load 16-Bit data to buffer
LD (HL), A
INC HL
IN A,(CS_PIA_PB)
LD (HL), A
INC HL
DEC C
RET Z
JR ide_readsector_512_inv_waitloop
ide_readsector_512_fast:
ld b, IDE_REG_CMDSTS ;check status
call ide_regread_8
bit 0,a ;Error Bit set
jp nz, ide_printerror ;then abort
bit 3,a ;wait for drq
jr z,ide_readsector_512_fast
ld b,0 ;256x
ld a, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
out (CS_PIA_CR), a ;Set Data direction to IN
_ide_readsector_512_floop:
ld a, IDE_REG_DATA ;CS0 and A=0 -> I/O register
out (CS_PIA_PC), a ;set register
or IDE_RD ;Set Read bit
out (CS_PIA_PC), a ;Write Read to bit controll lines
in a,(CS_PIA_PA) ;load first byte
ld (hl), a
inc hl
in a,(CS_PIA_PB) ;load second byte
ld (hl), a
inc hl
djnz _ide_readsector_512_floop ;loop 256 times (256words = 512 bytes)
ld b, IDE_REG_CMDSTS;check drive status
call ide_regread_8 ;
and 10001001b ;busy, DRQ, or error?
ret z ;no more data or errors -> exit
bit 3,a ;test if more data available
jr nz,ide_readsector_512_fast ;if true, repeat read function
jp ide_printerror ;else exit function
ide_readsector_timeout:
LD HL, [str_error_time]
@@ -208,9 +181,6 @@ ide_readsector_timeout:
CALL print_char
RET
;------------------------------------------------------------------------------
; ide_writesector_256
;
@@ -249,7 +219,7 @@ ide_printerror:
CALL print_char
LD A,13
CALL print_char
LD A,1
RET
str_error_start:

View File

@@ -240,7 +240,7 @@ ideif_init_drive:
;ld e,a
call ide_reset
ld bc, 0x5FFF ;preload timeout counter
ld de, 0xAFFF ;preload timeout counter
_ideif_init_drive_loop:
ld b, IDE_REG_CMDSTS
call ide_regread_8 ;read drive status register
@@ -265,36 +265,50 @@ _ideif_init_drive_found:
ld a, IDE_CMD_IDENT
call ide_regwrite_8 ;Write command to drive
ld hl, MEM_IDE_BUFFER ;set read/write buffer start address
call ide_readsector_256 ;read 256 words from device
call ide_readsector_512_fast ;read 256 words from device
ld hl,MEM_IDE_BUFFER + 54 ;print device serial
ld a,(ix+12) ;load str pointer into de
ld e,a
ld a,(ix+13)
ld d,a
ld bc,40 ;copy 40 char
ldir
ld b,20
_ideif_init_drive_charloop:
ld a,(hl) ;load data from HL (buffer)
inc hl
ex af,af'
ld a,(hl)
inc hl
ld (de),a
inc de
ex af,af'
ld (de),a
inc de
djnz _ideif_init_drive_charloop
;get partition table
;read bootsector
ide_wait_rdy
ld a,1 ;read 1 sector
ld B,IDE_REG_SECTOR
call ide_regwrite_8
ld a,1 ;read sector 0
ld b,IDE_REG_SSECTOR
ld a,0 ;read sector 0
ld b,IDE_REG_LBA0
call ide_regwrite_8
ld a,0 ;read cylinder 0
ld b,IDE_REG_LCYL
ld b,IDE_REG_LBA1
call ide_regwrite_8
ld a,0
ld b,IDE_REG_HCYL
ld b,IDE_REG_LBA2
call ide_regwrite_8
ld a,10100000b ;read head 0
ld b,IDE_REG_HEAD
ld a,11100000b ;read head 0
ld b,IDE_REG_LBA3
call ide_regwrite_8
ld a,IDE_CMD_READSEC ;send read command
ld b,IDE_REG_CMDSTS
call ide_regwrite_8
ld hl, MEM_IDE_BUFFER ;set read/write buffer start address
call ide_readsector_512_inv ;read 256 words from device
call ide_readsector_512_fast ;read 256 words from device
;prepare partitions
ld b,4 ;Partition table length
ld c,0 ;Partition ID counter
@@ -393,6 +407,9 @@ ideif_init_all:
; A contains sector count
;------------------------------------------------------------------------------
read_lba_sector:
push af
ide_wait_rdy
pop af
LD B,IDE_REG_SECTOR ;amount of sectores
CALL ide_regwrite_8
@@ -417,10 +434,10 @@ read_lba_sector:
LD A,IDE_CMD_READSEC ;send read command
LD B,IDE_REG_CMDSTS
CALL ide_regwrite_8
;LD HL,MEM_IDE_BUFFER ;set read/write buffer start address
EX DE,HL ;transfer destination in DE to HL
call ide_readsector_512_inv ;read 256 words from device
ret
jp ide_readsector_512_fast ;read 256 words from device
;------------------------------------------------------------------------------
; ideif_drv_sel

View File

@@ -90,6 +90,9 @@ iic_receive_buffer_err:
;Reset PIO configuration
iic_init:
;SCL HIGH, SDA HIGH
LD A,0x03
OUT (CS_PIO_AD), A
;Set port to controll mode (MODE3)
LD A,0xCF
OUT (CS_PIO_AC), A
@@ -100,6 +103,9 @@ iic_init:
; send start bit
iic_send_sbit:
;SCL HIGH, SDA HIGH
LD A,0x03
OUT (CS_PIO_AD), A
;Set port to controll mode (MODE3)
LD A,0xCF
OUT (CS_PIO_AC), A

View File

@@ -0,0 +1,63 @@
;-------------------------------------
; BIOS Routines entry points
; Do not move in memory!!!!
;-------------------------------------
.org 0x0050
B_BEEP:
jp beep
B_IICSEND:
jp iic_send_buffer
B_IICRECV:
jp iic_receive_buffer
B_PRINTCHAR:
jp print_char
B_PRINTSTR:
jp print_str
B_PRINTINLINE:
jp PRINTINLINE
B_PRINTAHEX:
jp print_a_hex
B_PRINTLN:
jp print_newLine
B_READCHAR:
jp read_char
B_KEYREAD:
ret ;placeholder -> not implemented
db 0x00, 0x00
B_KEYREADASCII:
ret ;placeholder -> not implemented
db 0x00, 0x00
B_KEYSEND:
ret ;placeholder -> not implemented
db 0x00, 0x00
B_DSKSEL:
jp ideif_drv_sel
B_FATOPEN:
jp fat_openfile
B_FATREAD:
jp fat_readfilesec
B_FATCD:
jp fat_cd_single
B_FATCREATE:
ret ;placeholder -> not implemented
db 0x00, 0x00
B_FATWRITE:
ret ;placeholder -> not implemented
db 0x00, 0x00

View File

@@ -60,7 +60,8 @@ INT_VEC:
;================================================================
mon_var_template:
phase SYS_RAM_START
interrupt_vectors:
defs 256
var_buffer_len:
defb 0
var_last_char:
@@ -100,6 +101,8 @@ mon_var_template_end:
; Start of monitor
;================================================================
org 0x0050
.include "ref.s" ;static bios calls for programs
BOOT_PHASE0: ;Setup Hardware
;Setup Stack-Pointer
ld sp, STACK_RAM_TOP
@@ -118,6 +121,11 @@ BOOT_PHASE0: ;Setup Hardware
ld (var_curseron),a
ld a, " "
ld (var_curserchar),a
;setup interrupt table
ld a,[interrupt_vectors]>>8
ld i,a
;Initialize Console (Serial-Port)
call CONSOLE_INIT
@@ -135,9 +143,7 @@ BOOT_PHASE1_LOOP:
pop hl
jp nz, BOOT_PHASE1_LOOP
;template copy done
xor a ;set dir to empty
ld (var_dir),a
ld (var_dir+1),a
BOOT_PHASE2: ;Hardware initialized.
; Print banner
@@ -156,6 +162,9 @@ BOOT_PHASE2: ;Hardware initialized.
LD BC,0x48
CALL beep
xor a ;set dir to empty
ld (var_dir),a
ld (var_dir+1),a
; Start commandline
jp COMMAND

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,28 +1,47 @@
;This file is generated by the build script.
;Do not make any changes here!
?a0000 equ 0x14A5
?a0001 equ 0x1562
ADDR_RTC equ 0xD0
A_RTS_OFF equ 0x17F
A_RTS_ON equ 0x188
BOOT_PHASE0 equ 0x50
BOOT_PHASE1 equ 0x6E
BOOT_PHASE1_LOOP equ 0x77
BOOT_PHASE2 equ 0x89
COMMAND equ 0x1915
COMMAND_BACKSPACE equ 0x1956
COMMAND_LUT equ 0x1883
COMMAND_PROCESS equ 0x197C
COMMAND_PROCESS_FOUND equ 0x19B7
COMMAND_PROCESS_LOOP equ 0x197F
COMMAND_PROCESS_LOOP_STR1 equ 0x1988
COMMAND_PROCESS_LOOP_STR2 equ 0x199E
COMMAND_PROCESS_NEXT_ENTRY equ 0x19A3
COMMAND_PROCESS_NEXT_ENTRYI equ 0x19A2
COMMAND_PROCESS_NOT_FOUND equ 0x19AE
COMMAND_READ equ 0x1927
CONSOLE_INIT equ 0xA5
CONSOLE_INIT_CTC equ 0xA5
CONSOLE_INIT_SIO equ 0xAD
A_RTS_OFF equ 0x1BE
A_RTS_ON equ 0x1C7
BOOT_PHASE0 equ 0x83
BOOT_PHASE1 equ 0xA5
BOOT_PHASE1_LOOP equ 0xAE
BOOT_PHASE2 equ 0xB9
B_BEEP equ 0x50
B_DSKSEL equ 0x71
B_FATCD equ 0x7A
B_FATCREATE equ 0x7D
B_FATOPEN equ 0x74
B_FATREAD equ 0x77
B_FATWRITE equ 0x80
B_IICRECV equ 0x56
B_IICSEND equ 0x53
B_KEYREAD equ 0x6B
B_KEYSEND equ 0x6E
B_PRINTAHEX equ 0x62
B_PRINTCHAR equ 0x59
B_PRINTINLINE equ 0x5F
B_PRINTLN equ 0x65
B_PRINTSTR equ 0x5C
B_READCHAR equ 0x68
COMMAND equ 0x1944
COMMAND_BACKSPACE equ 0x1985
COMMAND_LUT equ 0x18B2
COMMAND_PROCESS equ 0x19AB
COMMAND_PROCESS_FOUND equ 0x19E6
COMMAND_PROCESS_LOOP equ 0x19AE
COMMAND_PROCESS_LOOP_STR1 equ 0x19B7
COMMAND_PROCESS_LOOP_STR2 equ 0x19CD
COMMAND_PROCESS_NEXT_ENTRY equ 0x19D2
COMMAND_PROCESS_NEXT_ENTRYI equ 0x19D1
COMMAND_PROCESS_NOT_FOUND equ 0x19DD
COMMAND_READ equ 0x1956
CONSOLE_INIT equ 0xDC
CONSOLE_INIT_CTC equ 0xDC
CONSOLE_INIT_SIO equ 0xE4
CS_APU_CTRL equ 0xF9
CS_APU_DATA equ 0xF8
CS_BANK equ 0x00
@@ -43,18 +62,18 @@ CS_SIO_A_C equ 0x09
CS_SIO_A_D equ 0x08
CS_SIO_B_C equ 0x0B
CS_SIO_B_D equ 0x0A
DHEX_TO_BYTE equ 0x1F6
DHEX_TO_BYTE_FAILED equ 0x212
ERR_SYNTAX equ 0x19CD
EXEC_RST_08 equ 0xD96
EXEC_RST_10 equ 0xD9A
EXEC_RST_18 equ 0xDA6
HEX_TO_BIN equ 0x216
HEX_TO_BIN_2 equ 0x224
HEX_TO_INVALID_2 equ 0x22B
DHEX_TO_BYTE equ 0x235
DHEX_TO_BYTE_FAILED equ 0x251
ERR_SYNTAX equ 0x19FC
EXEC_RST_08 equ 0xDD5
EXEC_RST_10 equ 0xDD9
EXEC_RST_18 equ 0xDE5
HEX_TO_BIN equ 0x255
HEX_TO_BIN_2 equ 0x263
HEX_TO_INVALID_2 equ 0x26A
IDE_CMD_IDENT equ 0xEC
IDE_CMD_READSEC equ 0x20
IDE_DEV_TABLE equ 0x12FA
IDE_DEV_TABLE equ 0x1307
IDE_RD equ 0x40
IDE_REG_ALTSTS equ 0x16
IDE_REG_CMDSTS equ 0x0F
@@ -96,67 +115,67 @@ IO_RTC_SEC1 equ 0x21
IO_RTC_WEEK equ 0x2C
IO_RTC_YEAR1 equ 0x2B
IO_RTC_YERR0 equ 0x2A
MEM_FAT_AMOUNT equ 0x43B8
MEM_FAT_CLUSTERLEN equ 0x43BB
MEM_FAT_COUNT1 equ 0x43BC
MEM_FAT_CURDIR equ 0x43DF
MEM_FAT_CURRDIR equ 0x443F
MEM_FAT_DATASTART equ 0x43C1
MEM_FAT_DIRSEC equ 0x43CD
MEM_FAT_EXEC_COUNT equ 0x4445
MEM_FAT_EXEC_CURR equ 0x4443
MEM_FAT_EXEC_START equ 0x4447
MEM_FAT_FILEREMAIN equ 0x43C9
MEM_FAT_OF0_ATTRIBUTE equ 0x442F
MEM_FAT_OF0_CCLUST equ 0x4431
MEM_FAT_OF0_DATREM equ 0x443B
MEM_FAT_OF0_DATSEC equ 0x4437
MEM_FAT_OF0_FATSEC equ 0x4433
MEM_FAT_RESERVED equ 0x43B6
MEM_FAT_ROOTSTART equ 0x43C5
MEM_FAT_SECTORS equ 0x43B9
MEM_FAT_TMPFNAME equ 0x43CF
MEM_FAT_TMPPOINTER equ 0x43BD
MEM_IDE_BUFFER equ 0x41B6
MEM_IDE_DEVICE equ 0x40CB
MEM_IDE_DEV_TABLE equ 0x40D5
MEM_IDE_FSBUFFER equ 0x43B6
MEM_IDE_PARTITION equ 0x40CD
MEM_IDE_POINTER equ 0x40D1
MEM_IDE_SELECTED equ 0x4115
MEM_IDE_STATUS equ 0x40CC
MEM_IDE_STRING_0 equ 0x4116
MEM_IDE_STRING_1 equ 0x413E
MEM_IDE_STRING_2 equ 0x4166
MEM_IDE_STRING_3 equ 0x418E
MSG_CLEAR equ 0x177
NOT_IMPLEMENTED equ 0x19C6
OP_CALL equ 0x1A28
OP_CD equ 0x1DF8
OP_CLR equ 0x1BBC
OP_DASM equ 0x1AA9
OP_DIR equ 0x1DF4
OP_DUMP equ 0x1A48
OP_EXEC equ 0x1A0F
OP_FSEXEC equ 0x1E15
OP_IIC_IN equ 0x1B70
OP_IIC_OUT equ 0x1B10
OP_IO_IN equ 0x1AD9
OP_IO_OUT equ 0x1AEF
OP_LSDSK equ 0x1DD1
OP_RTIME equ 0x1BC0
OP_SELDSK equ 0x1DD5
OP_SET equ 0x1A78
OP_STIME equ 0x1D58
POST_CHECK_APU equ 0x1E4E
POST_CHECK_IDE_30 equ 0x1E79
POST_CHECK_IDE_40 equ 0x1E8C
POST_CHECK_PIO equ 0x1E29
POST_START equ 0x1E19
POST_TEST_RTC equ 0x1EA6
MEM_FAT_AMOUNT equ 0x44B8
MEM_FAT_CLUSTERLEN equ 0x44BB
MEM_FAT_COUNT1 equ 0x44BC
MEM_FAT_CURDIR equ 0x44DF
MEM_FAT_CURRDIR equ 0x453F
MEM_FAT_DATASTART equ 0x44C1
MEM_FAT_DIRSEC equ 0x44CD
MEM_FAT_EXEC_COUNT equ 0x4545
MEM_FAT_EXEC_CURR equ 0x4543
MEM_FAT_EXEC_START equ 0x4547
MEM_FAT_FILEREMAIN equ 0x44C9
MEM_FAT_OF0_ATTRIBUTE equ 0x452F
MEM_FAT_OF0_CCLUST equ 0x4531
MEM_FAT_OF0_DATREM equ 0x453B
MEM_FAT_OF0_DATSEC equ 0x4537
MEM_FAT_OF0_FATSEC equ 0x4533
MEM_FAT_RESERVED equ 0x44B6
MEM_FAT_ROOTSTART equ 0x44C5
MEM_FAT_SECTORS equ 0x44B9
MEM_FAT_TMPFNAME equ 0x44CF
MEM_FAT_TMPPOINTER equ 0x44BD
MEM_IDE_BUFFER equ 0x42B6
MEM_IDE_DEVICE equ 0x41CB
MEM_IDE_DEV_TABLE equ 0x41D5
MEM_IDE_FSBUFFER equ 0x44B6
MEM_IDE_PARTITION equ 0x41CD
MEM_IDE_POINTER equ 0x41D1
MEM_IDE_SELECTED equ 0x4215
MEM_IDE_STATUS equ 0x41CC
MEM_IDE_STRING_0 equ 0x4216
MEM_IDE_STRING_1 equ 0x423E
MEM_IDE_STRING_2 equ 0x4266
MEM_IDE_STRING_3 equ 0x428E
MSG_CLEAR equ 0x1B6
NOT_IMPLEMENTED equ 0x19F5
OP_CALL equ 0x1A57
OP_CD equ 0x1E27
OP_CLR equ 0x1BEB
OP_DASM equ 0x1AD8
OP_DIR equ 0x1E23
OP_DUMP equ 0x1A77
OP_EXEC equ 0x1A3E
OP_FSEXEC equ 0x1E44
OP_IIC_IN equ 0x1B9F
OP_IIC_OUT equ 0x1B3F
OP_IO_IN equ 0x1B08
OP_IO_OUT equ 0x1B1E
OP_LSDSK equ 0x1E00
OP_RTIME equ 0x1BEF
OP_SELDSK equ 0x1E04
OP_SET equ 0x1AA7
OP_STIME equ 0x1D87
POST_CHECK_APU equ 0x1E7D
POST_CHECK_IDE_30 equ 0x1EA8
POST_CHECK_IDE_40 equ 0x1EBB
POST_CHECK_PIO equ 0x1E58
POST_START equ 0x1E48
POST_TEST_RTC equ 0x1ED5
PRG_RAM_START equ 0x4110
PRG_RAM_TOP equ 0xFF00
PRINTINLINE equ 0x191
PRINTINLINE equ 0x1D0
PROG_MEM_START equ 0x4000
PROG_ROM_START equ 0x100
RST_00 equ 0x00
@@ -165,391 +184,391 @@ RST_10 equ 0x10
RST_18 equ 0x18
STACK_RAM_TOP equ 0xFFFF
START_ROM equ 0x00
STRCONV_BYTES_TO_HEX equ 0x22D
STRCONV_BYTES_TO_HEX_1 equ 0x23C
STRCONV_BYTES_TO_HEX_2 equ 0x246
STR_Banner_Start equ 0x264F
STR_PD_HEADER equ 0x183C
STRCONV_BYTES_TO_HEX equ 0x26C
STRCONV_BYTES_TO_HEX_1 equ 0x27B
STRCONV_BYTES_TO_HEX_2 equ 0x285
STR_Banner_Start equ 0x2689
STR_PD_HEADER equ 0x186B
SYS_BUF_START equ 0x4010
SYS_RAM_START equ 0x4000
VAR_CONSOLE_BAUD equ 0x18
VAR_CONSOLE_CONF equ 0x0F
VDP_MEM equ 0x80
VDP_REG equ 0x81
_COMMAND_PROCESS_FOUND equ 0x19C5
_OP_CALL equ 0x1A47
_OP_IIC_ACK_ERR equ 0x1B55
_OP_IIC_ACK_ERR_str equ 0x1B5C
_OP_IIC_IN_LOOP equ 0x1BA2
_OP_IIC_IN_LOOP_TEXT equ 0x1BAF
_OP_IIC_OUT_LOOP equ 0x1B26
_OP_IIC_OUT_SEND equ 0x1B42
_OP_RTIME_NN equ 0x1BC3
_OP_RTIME_RD_CMD equ 0x1C7B
_OP_SELDSK_INVALID equ 0x1DE4
_OP_SELDSK_INVALID_STR equ 0x1DFC
_OP_SET_LOOP equ 0x1A90
_OP_STIME_INVALID equ 0x1D1E
_OP_STIME_PROMPT equ 0x1D35
_OP_STIME_PROMPT_ERR equ 0x1D4D
_OP_STIME_STR_DAY equ 0x1C7C
_OP_STIME_STR_HOUR equ 0x1CCD
_OP_STIME_STR_MIN equ 0x1CE8
_OP_STIME_STR_MON equ 0x1C97
_OP_STIME_STR_SEC equ 0x1D03
_OP_STIME_STR_YEAR equ 0x1CB2
_POST_CHECK_APU_FAILED equ 0x1E6D
_POST_CHECK_IDE_FAILED equ 0x1E9F
_POST_CHECK_PIO_FAILED equ 0x1E42
_POST_TEST_RTC_INVALID equ 0x1EE0
_POST_TEST_RTC_NOTFOUND equ 0x1ED9
_STR_NOT_FOUND equ 0x19E8
_STR_NOT_IMPLEMENTED equ 0x19D4
_STR_SYNTAX equ 0x19FC
_beep_pause_l1 equ 0xDC2
_compare_filename_loop equ 0x2313
_compare_filename_nomatch equ 0x2321
_fat_cd_navigate equ 0x24C4
_fat_cd_navigate_end equ 0x250A
_fat_cd_navigate_errfile equ 0x2532
_fat_cd_navigate_errfile_str equ 0x2564
_fat_cd_navigate_error equ 0x251C
_fat_cd_navigate_error_str equ 0x253A
_fat_cd_navigate_findsec equ 0x24C9
_fat_cd_navigate_findsec_skipslash equ 0x24F5
_fat_cd_navigate_goback_fl equ 0x2480
_fat_cd_navigate_inerror equ 0x252A
_fat_cd_navigate_inerrorS equ 0x2524
_fat_cd_navigate_inerrore equ 0x252B
_fat_cd_navigate_inputerr_str equ 0x2551
_fat_cd_navigate_l2 equ 0x24FB
_fat_exec_notexec equ 0x262B
_fat_exec_notfound equ 0x2612
_fat_exec_read_done equ 0x25FA
_fat_exec_readloop1 equ 0x25DC
_fat_get_root_table_invalid equ 0x210B
_fat_getfatsec_notroot equ 0x214A
_fat_increment_32 equ 0x2299
_fat_lfs_loop equ 0x2211
_fat_lfs_loop_compare_end equ 0x224B
_fat_lfs_loop_compare_match equ 0x224F
_fat_lfs_loop_compare_next_sector equ 0x2223
_fat_math_add32 equ 0x22AD
_fat_math_mul32 equ 0x22DE
_fat_math_mul32_l equ 0x22E5
_fat_math_mul32_noadd equ 0x22F2
_fat_math_sector_add_16 equ 0x2285
_fat_print_directory_dir equ 0x2401
_fat_print_directory_loop equ 0x2394
_fat_print_directory_loop_break equ 0x245E
_fat_print_directory_loop_file equ 0x23B0
_fat_print_directory_loop_next equ 0x242C
_fat_print_directory_loop_next_sector equ 0x2437
_format_filename_fat16_clean equ 0x232A
_format_filename_fat16_loop equ 0x2331
_format_filename_fat16_loop_copy equ 0x2344
_format_filename_fat16_loop_skip_8 equ 0x233B
_ideif_drv_sel_fail equ 0x15AB
_ideif_drv_sel_fstr0 equ 0x1668
_ideif_drv_sel_pstr equ 0x165F
_ideif_drv_sel_sstr0 equ 0x1676
_ideif_drv_sel_syn equ 0x1683
_ideif_init_drive_found equ 0x146E
_ideif_init_drive_loop equ 0x1456
_ideif_init_drive_nodrv equ 0x1469
_ideif_init_drive_prt_fnd equ 0x14D9
_ideif_init_drive_prt_l1 equ 0x14C7
_ideif_init_drive_prt_ln equ 0x14D1
_ideif_prnt_devtable_hdr equ 0x15EB
_ideif_prnt_devtable_l1 equ 0x1366
_ideif_prnt_devtable_l1_e2 equ 0x142C
_ideif_prnt_devtable_l1_es equ 0x13AB
_ideif_prnt_devtable_l1_ms equ 0x1429
_ideif_prnt_devtable_l1_nxt equ 0x1373
_ideif_prnt_devtable_l1_s00 equ 0x1399
_ideif_prnt_devtable_l1_s01 equ 0x139E
_ideif_prnt_devtable_l1_s02 equ 0x13A3
_ideif_prnt_devtable_l1_sFF equ 0x13A8
_ideif_prnt_devtable_l1_sel equ 0x1371
_ideif_prnt_devtable_master equ 0x164F
_ideif_prnt_devtable_s00 equ 0x1623
_ideif_prnt_devtable_s01 equ 0x162E
_ideif_prnt_devtable_s02 equ 0x1639
_ideif_prnt_devtable_sFF equ 0x1644
_ideif_prnt_devtable_slave equ 0x1657
_read_bcd_invalid equ 0x14E
_shift4 equ 0x1DCC
beep equ 0xDA9
beep_loop equ 0xDAB
beep_pause equ 0xDC1
compare_filename equ 0x230F
dasm_00 equ 0x9AE
dasm_01 equ 0xC9A
dasm_02 equ 0xA34
dasm_03 equ 0xC6C
dasm_08 equ 0xAB1
dasm_09 equ 0xC3F
dasm_0A equ 0xA16
dasm_0B equ 0xC83
dasm_10 equ 0x9F6
dasm_12 equ 0xA3F
dasm_18 equ 0x9B9
dasm_1A equ 0xA20
dasm_20 equ 0x9D3
dasm_22 equ 0xCE0
dasm_27 equ 0xA79
dasm_28 equ 0x9CC
dasm_2A equ 0xCB1
dasm_2F equ 0xA7D
dasm_30 equ 0x9C4
dasm_32 equ 0xA4A
dasm_37 equ 0xA89
dasm_38 equ 0x9BD
dasm_3A equ 0xA2A
dasm_3F equ 0xA85
dasm_76 equ 0xA8D
dasm_80C6 equ 0xB0A
dasm_BE equ 0xAA7
dasm_C3 equ 0x9B2
dasm_C88E equ 0xB30
dasm_C9 equ 0xA02
dasm_CD equ 0x9FC
dasm_D9 equ 0xABE
dasm_DD equ 0x9E4
dasm_DD_01 equ 0xCA1
dasm_DD_09 equ 0xC5A
dasm_DD_22 equ 0xCF6
dasm_DD_23 equ 0xC71
dasm_DD_2A equ 0xCC8
dasm_DD_2B equ 0xC88
dasm_DD_34 equ 0xC0A
dasm_DD_35 equ 0xC27
dasm_DD_86 equ 0xB12
dasm_DD_8E equ 0xB38
dasm_DD_96 equ 0xB5B
dasm_DD_9E equ 0xB7B
dasm_DD_A6 equ 0xB9C
dasm_DD_AE equ 0xBD3
dasm_DD_B6 equ 0xBB8
dasm_DD_BE equ 0xBEF
dasm_DD_E1 equ 0xD48
dasm_DD_E3 equ 0xACE
dasm_DD_E5 equ 0xD32
dasm_DD_F9 equ 0xD18
dasm_E1 equ 0xD42
dasm_E3 equ 0xAC2
dasm_E5 equ 0xD2C
dasm_E9 equ 0x9DB
dasm_ED_42 equ 0xC51
dasm_ED_43 equ 0xCEC
dasm_ED_44 equ 0xA81
dasm_ED_45 equ 0xA0C
dasm_ED_46 equ 0xA98
dasm_ED_4A equ 0xC48
dasm_ED_4B equ 0xCBD
dasm_ED_4D equ 0xA07
dasm_ED_56 equ 0xA9D
dasm_ED_5E equ 0xAA2
dasm_ED_A0 equ 0xAE6
dasm_ED_A1 equ 0xAF8
dasm_ED_A8 equ 0xAEF
dasm_ED_A9 equ 0xB01
dasm_ED_B0 equ 0xAEA
dasm_ED_B1 equ 0xAFC
dasm_ED_B8 equ 0xAF3
dasm_ED_B9 equ 0xB05
dasm_F3 equ 0xA92
dasm_F9 equ 0xD0E
dasm_FB equ 0xA95
dasm_FD equ 0x9ED
dasm_FD_01 equ 0xCA9
dasm_FD_09 equ 0xC63
dasm_FD_22 equ 0xD02
dasm_FD_23 equ 0xC7A
dasm_FD_2A equ 0xCD4
dasm_FD_2B equ 0xC91
dasm_FD_34 equ 0xC16
dasm_FD_35 equ 0xC33
dasm_FD_86 equ 0xB21
dasm_FD_8E equ 0xB47
dasm_FD_96 equ 0xB67
dasm_FD_9E equ 0xB89
dasm_FD_A6 equ 0xBA8
dasm_FD_AE equ 0xBDF
dasm_FD_B6 equ 0xBC3
dasm_FD_BE equ 0xBFA
dasm_FD_E1 equ 0xD50
dasm_FD_E3 equ 0xADA
dasm_FD_E5 equ 0xD3A
dasm_FD_F9 equ 0xD22
dasm_FF equ 0xA11
dasm_UU equ 0xD58
dasm_UW equ 0xD5C
dasm__AND equ 0xB97
dasm__CP equ 0xBEB
dasm__DEC equ 0xC22
dasm__ED_47 equ 0xA69
dasm__ED_4F equ 0xA71
dasm__ED_57 equ 0xA59
dasm__ED_5F equ 0xA61
dasm__INC equ 0xC05
dasm__LD equ 0xA55
dasm__OR equ 0xBB4
dasm__SBC equ 0xB73
dasm__SUB equ 0xB56
dasm__XOR equ 0xBCE
dasm_opcode_table equ 0x556
dasm_print16hex_addr equ 0x383
dasm_print8hex equ 0x39B
dasm_printFlags_table equ 0xD61
dasm_printRegister8_table equ 0xD71
dasm_printRegister8_table_HL equ 0xD91
dasm_printRegisterIX_table equ 0xD79
dasm_printRegisterIY_table equ 0xD81
dasm_printRegisterSP_table equ 0xD89
disassemble equ 0x247
disassemble_continue equ 0x32D
disassemble_err equ 0x31D
disassemble_next equ 0x24B
disassemble_print_opcode_params_end equ 0x31A
disassemble_print_opcode_params_loop equ 0x2C6
disassemble_print_opcode_raw equ 0x288
disassemble_print_opcode_raw_fill equ 0x29C
disassemble_table_first_match equ 0x35F
disassemble_table_found equ 0x379
disassemble_table_notfound equ 0x37D
disassemble_table_seek equ 0x33B
disassemble_table_seek_loop equ 0x33F
dump_pretty equ 0x17E1
dump_pretty_ascii equ 0x180B
dump_pretty_ascii_cont equ 0x1829
dump_pretty_ascii_loop equ 0x1813
dump_pretty_ascii_none equ 0x1824
dump_pretty_col equ 0x17FE
dump_pretty_end equ 0x183B
dump_pretty_nextrow equ 0x182F
dump_pretty_row equ 0x17E9
endPrint equ 0x19F
fat_cd_single equ 0x2460
fat_copy_lba_pointer equ 0x2306
fat_exec equ 0x257B
fat_get_root_table equ 0x203E
fat_getfatsec equ 0x2133
fat_openfile equ 0x21E4
fat_openfile_noprepare equ 0x21EC
fat_print_directory equ 0x234B
fat_readfilesec equ 0x21B9
fat_reset_pointer equ 0x22F7
format_filename_fat16 equ 0x2325
ide_printerror equ 0xE89
ide_readsector_256 equ 0xE15
ide_readsector_256_waitloop equ 0xE17
ide_readsector_512_inv equ 0xE3E
ide_readsector_512_inv_waitloop equ 0xE43
ide_readsector_timeout equ 0xE73
ide_regread_8 equ 0xDF7
ide_regwrite_8 equ 0xDDB
ide_reset equ 0xDCE
ide_writesector_256 equ 0xE88
ideif_drv_sel equ 0x1573
ideif_get_drv_pointer equ 0x151C
ideif_init_all equ 0x1530
ideif_init_devtable equ 0x133A
ideif_init_drive equ 0x144D
ideif_prnt_devtable equ 0x1358
iic_init equ 0x16F5
iic_read_ack equ 0x1734
iic_receive_buffer equ 0x16C6
iic_receive_buffer_done equ 0x16E9
iic_receive_buffer_err equ 0x16EF
iic_receive_buffer_loop equ 0x16D7
iic_receive_byte equ 0x17BA
iic_receive_byte_loop equ 0x17C7
iic_send_ack equ 0x175A
iic_send_buffer equ 0x169C
iic_send_buffer_done equ 0x16BA
iic_send_buffer_err equ 0x16C0
iic_send_buffer_loop equ 0x16AC
iic_send_byte equ 0x1794
iic_send_byte_loop equ 0x17A0
iic_send_ebit equ 0x1713
iic_send_nack equ 0x1777
iic_send_sbit equ 0x16FE
_COMMAND_PROCESS_FOUND equ 0x19F4
_OP_CALL equ 0x1A76
_OP_IIC_ACK_ERR equ 0x1B84
_OP_IIC_ACK_ERR_str equ 0x1B8B
_OP_IIC_IN_LOOP equ 0x1BD1
_OP_IIC_IN_LOOP_TEXT equ 0x1BDE
_OP_IIC_OUT_LOOP equ 0x1B55
_OP_IIC_OUT_SEND equ 0x1B71
_OP_RTIME_NN equ 0x1BF2
_OP_RTIME_RD_CMD equ 0x1CAA
_OP_SELDSK_INVALID equ 0x1E13
_OP_SELDSK_INVALID_STR equ 0x1E2B
_OP_SET_LOOP equ 0x1ABF
_OP_STIME_INVALID equ 0x1D4D
_OP_STIME_PROMPT equ 0x1D64
_OP_STIME_PROMPT_ERR equ 0x1D7C
_OP_STIME_STR_DAY equ 0x1CAB
_OP_STIME_STR_HOUR equ 0x1CFC
_OP_STIME_STR_MIN equ 0x1D17
_OP_STIME_STR_MON equ 0x1CC6
_OP_STIME_STR_SEC equ 0x1D32
_OP_STIME_STR_YEAR equ 0x1CE1
_POST_CHECK_APU_FAILED equ 0x1E9C
_POST_CHECK_IDE_FAILED equ 0x1ECE
_POST_CHECK_PIO_FAILED equ 0x1E71
_POST_TEST_RTC_INVALID equ 0x1F0F
_POST_TEST_RTC_NOTFOUND equ 0x1F08
_STR_NOT_FOUND equ 0x1A17
_STR_NOT_IMPLEMENTED equ 0x1A03
_STR_SYNTAX equ 0x1A2B
_beep_pause_l1 equ 0xE01
_compare_filename_loop equ 0x234A
_compare_filename_nomatch equ 0x2358
_fat_cd_navigate equ 0x24FF
_fat_cd_navigate_end equ 0x2545
_fat_cd_navigate_errfile equ 0x256D
_fat_cd_navigate_errfile_str equ 0x259F
_fat_cd_navigate_error equ 0x2557
_fat_cd_navigate_error_str equ 0x2575
_fat_cd_navigate_findsec equ 0x2504
_fat_cd_navigate_findsec_skipslash equ 0x2530
_fat_cd_navigate_goback_fl equ 0x24BB
_fat_cd_navigate_inerror equ 0x2565
_fat_cd_navigate_inerrorS equ 0x255F
_fat_cd_navigate_inerrore equ 0x2566
_fat_cd_navigate_inputerr_str equ 0x258C
_fat_cd_navigate_l2 equ 0x2536
_fat_exec_notexec equ 0x2665
_fat_exec_notfound equ 0x264C
_fat_exec_read_done equ 0x2634
_fat_exec_readloop1 equ 0x2616
_fat_get_root_table_invalid equ 0x213A
_fat_getfatsec_notroot equ 0x2179
_fat_increment_32 equ 0x22D0
_fat_lfs_loop equ 0x2246
_fat_lfs_loop_compare_end equ 0x2282
_fat_lfs_loop_compare_match equ 0x2286
_fat_lfs_loop_compare_next_sector equ 0x2258
_fat_math_add32 equ 0x22E4
_fat_math_mul32 equ 0x2315
_fat_math_mul32_l equ 0x231C
_fat_math_mul32_noadd equ 0x2329
_fat_math_sector_add_16 equ 0x22BC
_fat_print_directory_dir equ 0x243A
_fat_print_directory_loop equ 0x23CD
_fat_print_directory_loop_break equ 0x2499
_fat_print_directory_loop_file equ 0x23E9
_fat_print_directory_loop_next equ 0x2465
_fat_print_directory_loop_next_sector equ 0x2470
_format_filename_fat16_clean equ 0x2361
_format_filename_fat16_loop equ 0x2368
_format_filename_fat16_loop_copy equ 0x237B
_format_filename_fat16_loop_skip_8 equ 0x2372
_ide_readsector_512_floop equ 0xE5D
_ideif_drv_sel_fail equ 0x15D2
_ideif_drv_sel_fstr0 equ 0x168F
_ideif_drv_sel_pstr equ 0x1686
_ideif_drv_sel_sstr0 equ 0x169D
_ideif_drv_sel_syn equ 0x16AA
_ideif_init_drive_charloop equ 0x1499
_ideif_init_drive_found equ 0x147B
_ideif_init_drive_loop equ 0x1463
_ideif_init_drive_nodrv equ 0x1476
_ideif_init_drive_prt_fnd equ 0x14F7
_ideif_init_drive_prt_l1 equ 0x14E5
_ideif_init_drive_prt_ln equ 0x14EF
_ideif_prnt_devtable_hdr equ 0x1612
_ideif_prnt_devtable_l1 equ 0x1373
_ideif_prnt_devtable_l1_e2 equ 0x1439
_ideif_prnt_devtable_l1_es equ 0x13B8
_ideif_prnt_devtable_l1_ms equ 0x1436
_ideif_prnt_devtable_l1_nxt equ 0x1380
_ideif_prnt_devtable_l1_s00 equ 0x13A6
_ideif_prnt_devtable_l1_s01 equ 0x13AB
_ideif_prnt_devtable_l1_s02 equ 0x13B0
_ideif_prnt_devtable_l1_sFF equ 0x13B5
_ideif_prnt_devtable_l1_sel equ 0x137E
_ideif_prnt_devtable_master equ 0x1676
_ideif_prnt_devtable_s00 equ 0x164A
_ideif_prnt_devtable_s01 equ 0x1655
_ideif_prnt_devtable_s02 equ 0x1660
_ideif_prnt_devtable_sFF equ 0x166B
_ideif_prnt_devtable_slave equ 0x167E
_read_bcd_invalid equ 0x18D
_shift4 equ 0x1DFB
beep equ 0xDE8
beep_loop equ 0xDEA
beep_pause equ 0xE00
compare_filename equ 0x2346
dasm_00 equ 0x9ED
dasm_01 equ 0xCD9
dasm_02 equ 0xA73
dasm_03 equ 0xCAB
dasm_08 equ 0xAF0
dasm_09 equ 0xC7E
dasm_0A equ 0xA55
dasm_0B equ 0xCC2
dasm_10 equ 0xA35
dasm_12 equ 0xA7E
dasm_18 equ 0x9F8
dasm_1A equ 0xA5F
dasm_20 equ 0xA12
dasm_22 equ 0xD1F
dasm_27 equ 0xAB8
dasm_28 equ 0xA0B
dasm_2A equ 0xCF0
dasm_2F equ 0xABC
dasm_30 equ 0xA03
dasm_32 equ 0xA89
dasm_37 equ 0xAC8
dasm_38 equ 0x9FC
dasm_3A equ 0xA69
dasm_3F equ 0xAC4
dasm_76 equ 0xACC
dasm_80C6 equ 0xB49
dasm_BE equ 0xAE6
dasm_C3 equ 0x9F1
dasm_C88E equ 0xB6F
dasm_C9 equ 0xA41
dasm_CD equ 0xA3B
dasm_D9 equ 0xAFD
dasm_DD equ 0xA23
dasm_DD_01 equ 0xCE0
dasm_DD_09 equ 0xC99
dasm_DD_22 equ 0xD35
dasm_DD_23 equ 0xCB0
dasm_DD_2A equ 0xD07
dasm_DD_2B equ 0xCC7
dasm_DD_34 equ 0xC49
dasm_DD_35 equ 0xC66
dasm_DD_86 equ 0xB51
dasm_DD_8E equ 0xB77
dasm_DD_96 equ 0xB9A
dasm_DD_9E equ 0xBBA
dasm_DD_A6 equ 0xBDB
dasm_DD_AE equ 0xC12
dasm_DD_B6 equ 0xBF7
dasm_DD_BE equ 0xC2E
dasm_DD_E1 equ 0xD87
dasm_DD_E3 equ 0xB0D
dasm_DD_E5 equ 0xD71
dasm_DD_F9 equ 0xD57
dasm_E1 equ 0xD81
dasm_E3 equ 0xB01
dasm_E5 equ 0xD6B
dasm_E9 equ 0xA1A
dasm_ED_42 equ 0xC90
dasm_ED_43 equ 0xD2B
dasm_ED_44 equ 0xAC0
dasm_ED_45 equ 0xA4B
dasm_ED_46 equ 0xAD7
dasm_ED_4A equ 0xC87
dasm_ED_4B equ 0xCFC
dasm_ED_4D equ 0xA46
dasm_ED_56 equ 0xADC
dasm_ED_5E equ 0xAE1
dasm_ED_A0 equ 0xB25
dasm_ED_A1 equ 0xB37
dasm_ED_A8 equ 0xB2E
dasm_ED_A9 equ 0xB40
dasm_ED_B0 equ 0xB29
dasm_ED_B1 equ 0xB3B
dasm_ED_B8 equ 0xB32
dasm_ED_B9 equ 0xB44
dasm_F3 equ 0xAD1
dasm_F9 equ 0xD4D
dasm_FB equ 0xAD4
dasm_FD equ 0xA2C
dasm_FD_01 equ 0xCE8
dasm_FD_09 equ 0xCA2
dasm_FD_22 equ 0xD41
dasm_FD_23 equ 0xCB9
dasm_FD_2A equ 0xD13
dasm_FD_2B equ 0xCD0
dasm_FD_34 equ 0xC55
dasm_FD_35 equ 0xC72
dasm_FD_86 equ 0xB60
dasm_FD_8E equ 0xB86
dasm_FD_96 equ 0xBA6
dasm_FD_9E equ 0xBC8
dasm_FD_A6 equ 0xBE7
dasm_FD_AE equ 0xC1E
dasm_FD_B6 equ 0xC02
dasm_FD_BE equ 0xC39
dasm_FD_E1 equ 0xD8F
dasm_FD_E3 equ 0xB19
dasm_FD_E5 equ 0xD79
dasm_FD_F9 equ 0xD61
dasm_FF equ 0xA50
dasm_UU equ 0xD97
dasm_UW equ 0xD9B
dasm__AND equ 0xBD6
dasm__CP equ 0xC2A
dasm__DEC equ 0xC61
dasm__ED_47 equ 0xAA8
dasm__ED_4F equ 0xAB0
dasm__ED_57 equ 0xA98
dasm__ED_5F equ 0xAA0
dasm__INC equ 0xC44
dasm__LD equ 0xA94
dasm__OR equ 0xBF3
dasm__SBC equ 0xBB2
dasm__SUB equ 0xB95
dasm__XOR equ 0xC0D
dasm_opcode_table equ 0x595
dasm_print16hex_addr equ 0x3C2
dasm_print8hex equ 0x3DA
dasm_printFlags_table equ 0xDA0
dasm_printRegister8_table equ 0xDB0
dasm_printRegister8_table_HL equ 0xDD0
dasm_printRegisterIX_table equ 0xDB8
dasm_printRegisterIY_table equ 0xDC0
dasm_printRegisterSP_table equ 0xDC8
disassemble equ 0x286
disassemble_continue equ 0x36C
disassemble_err equ 0x35C
disassemble_next equ 0x28A
disassemble_print_opcode_params_end equ 0x359
disassemble_print_opcode_params_loop equ 0x305
disassemble_print_opcode_raw equ 0x2C7
disassemble_print_opcode_raw_fill equ 0x2DB
disassemble_table_first_match equ 0x39E
disassemble_table_found equ 0x3B8
disassemble_table_notfound equ 0x3BC
disassemble_table_seek equ 0x37A
disassemble_table_seek_loop equ 0x37E
dump_pretty equ 0x1810
dump_pretty_ascii equ 0x183A
dump_pretty_ascii_cont equ 0x1858
dump_pretty_ascii_loop equ 0x1842
dump_pretty_ascii_none equ 0x1853
dump_pretty_col equ 0x182D
dump_pretty_end equ 0x186A
dump_pretty_nextrow equ 0x185E
dump_pretty_row equ 0x1818
endPrint equ 0x1DE
fat_cd_single equ 0x249B
fat_copy_lba_pointer equ 0x233D
fat_exec equ 0x25B6
fat_get_root_table equ 0x206D
fat_getfatsec equ 0x2162
fat_openfile equ 0x2217
fat_openfile_noprepare equ 0x221F
fat_print_directory equ 0x2382
fat_readfilesec equ 0x21EA
fat_reset_pointer equ 0x232E
format_filename_fat16 equ 0x235C
ide_printerror equ 0xE94
ide_readsector_512_fast equ 0xE49
ide_readsector_timeout equ 0xE7E
ide_regread_8 equ 0xE33
ide_regwrite_8 equ 0xE19
ide_reset equ 0xE0D
ide_writesector_256 equ 0xE93
ideif_drv_sel equ 0x159A
ideif_get_drv_pointer equ 0x153A
ideif_init_all equ 0x154E
ideif_init_devtable equ 0x1347
ideif_init_drive equ 0x145A
ideif_prnt_devtable equ 0x1365
iic_init equ 0x171C
iic_read_ack equ 0x1763
iic_receive_buffer equ 0x16ED
iic_receive_buffer_done equ 0x1710
iic_receive_buffer_err equ 0x1716
iic_receive_buffer_loop equ 0x16FE
iic_receive_byte equ 0x17E9
iic_receive_byte_loop equ 0x17F6
iic_send_ack equ 0x1789
iic_send_buffer equ 0x16C3
iic_send_buffer_done equ 0x16E1
iic_send_buffer_err equ 0x16E7
iic_send_buffer_loop equ 0x16D3
iic_send_byte equ 0x17C3
iic_send_byte_loop equ 0x17CF
iic_send_ebit equ 0x1742
iic_send_nack equ 0x17A6
iic_send_sbit equ 0x1729
interrupt_vectors equ 0x4000
mon_var_template equ 0x44
mon_var_template_end equ 0x40F
nxtILC equ 0x194
param_01 equ 0x3A9
param_02 equ 0x3D0
param_03 equ 0x3ED
param_03_done equ 0x425
param_03_neg equ 0x40E
param_04 equ 0x429
param_04_i equ 0x439
param_05 equ 0x43F
param_06 equ 0x44C
param_07 equ 0x466
param_08 equ 0x473
param_09 equ 0x488
param_09_0A equ 0x48E
param_0A equ 0x47F
param_10 equ 0x49D
param_11 equ 0x4AD
param_11_12 equ 0x4BC
param_11_12_all equ 0x4DC
param_11_12_def equ 0x4CF
param_11_12_ix equ 0x4D4
param_11_12_iy equ 0x4D9
param_12 equ 0x4B5
param_13 equ 0x4ED
param_80 equ 0x50C
param_80_seek equ 0x513
param_81 equ 0x503
param_comma equ 0x547
param_printRegister equ 0x522
param_printRegisterA equ 0x540
param_printRegisterHL equ 0x538
print_16_hex equ 0x16A
print_32_hex equ 0x151
print_a_hex equ 0x10E
print_bcd equ 0x120
print_char equ 0xDE
print_clear equ 0xF1
print_newLine equ 0xF8
print_reg equ 0x1A4
print_str equ 0xE6
print_str_end equ 0xF0
print_str_fixed equ 0x187B
print_wait_out equ 0x103
read_bcd equ 0x138
read_char equ 0x126
read_lba_sector equ 0x1543
str_dev_done equ 0x15E3
str_dev_waitready equ 0x15CB
str_error_start equ 0xEBC
str_error_start1 equ 0xED9
str_error_start2 equ 0xEE2
str_error_time equ 0xEEB
str_post_apu equ 0x1F38
str_post_ide_30 equ 0x1EE7
str_post_ide_40 equ 0x1F02
str_post_nd equ 0x1F6E
str_post_ok equ 0x1FA6
str_post_pio equ 0x1F1D
str_post_rtc equ 0x1F53
str_post_rtc_iv equ 0x1F7C
var_apu_present equ 0x400A
var_buffer_len equ 0x4000
mon_var_template_end equ 0x50F
nxtILC equ 0x1D3
param_01 equ 0x3E8
param_02 equ 0x40F
param_03 equ 0x42C
param_03_done equ 0x464
param_03_neg equ 0x44D
param_04 equ 0x468
param_04_i equ 0x478
param_05 equ 0x47E
param_06 equ 0x48B
param_07 equ 0x4A5
param_08 equ 0x4B2
param_09 equ 0x4C7
param_09_0A equ 0x4CD
param_0A equ 0x4BE
param_10 equ 0x4DC
param_11 equ 0x4EC
param_11_12 equ 0x4FB
param_11_12_all equ 0x51B
param_11_12_def equ 0x50E
param_11_12_ix equ 0x513
param_11_12_iy equ 0x518
param_12 equ 0x4F4
param_13 equ 0x52C
param_80 equ 0x54B
param_80_seek equ 0x552
param_81 equ 0x542
param_comma equ 0x586
param_printRegister equ 0x561
param_printRegisterA equ 0x57F
param_printRegisterHL equ 0x577
print_16_hex equ 0x1A9
print_32_hex equ 0x190
print_a_hex equ 0x143
print_bcd equ 0x155
print_char equ 0x115
print_clear equ 0x126
print_newLine equ 0x12D
print_reg equ 0x1E3
print_str equ 0x11D
print_str_fixed equ 0x18AA
print_wait_out equ 0x138
read_bcd equ 0x177
read_char equ 0x15B
read_in_sts equ 0x16D
read_lba_sector equ 0x1561
str_dev_done equ 0x160A
str_dev_waitready equ 0x15F2
str_error_start equ 0xEC9
str_error_start1 equ 0xEE6
str_error_start2 equ 0xEEF
str_error_time equ 0xEF8
str_post_apu equ 0x1F67
str_post_ide_30 equ 0x1F16
str_post_ide_40 equ 0x1F31
str_post_nd equ 0x1F9D
str_post_ok equ 0x1FD5
str_post_pio equ 0x1F4C
str_post_rtc equ 0x1F82
str_post_rtc_iv equ 0x1FAB
var_apu_present equ 0x410A
var_buffer_len equ 0x4100
var_bytes_count equ 0x411A
var_curserchar equ 0x4006
var_curserlastaddr equ 0x4007
var_curseron equ 0x4005
var_curserstate equ 0x4004
var_curserx equ 0x4002
var_cursery equ 0x4003
var_dir equ 0x402B
var_idebuffer equ 0x40CB
var_input equ 0x407B
var_last_char equ 0x4001
var_curserchar equ 0x4106
var_curserlastaddr equ 0x4107
var_curseron equ 0x4105
var_curserstate equ 0x4104
var_curserx equ 0x4102
var_cursery equ 0x4103
var_dir equ 0x412B
var_idebuffer equ 0x41CB
var_input equ 0x417B
var_last_char equ 0x4101
var_opcode equ 0x4114
var_opcode_length equ 0x4116
var_opcode_pcount equ 0x4119
@@ -557,6 +576,6 @@ var_opcode_start equ 0x4110
var_opcode_string equ 0x4117
var_opcode_table equ 0x4112
var_opcode_x equ 0x4115
var_pio_present equ 0x4009
var_ps2mem equ 0x401B
var_scratch equ 0x400B
var_pio_present equ 0x4109
var_ps2mem equ 0x411B
var_scratch equ 0x410B