progress on FAT16 support
This commit is contained in:
@@ -45,3 +45,6 @@ CS_PIO_BD .EQU 0xF5
|
||||
CS_PIO_BC .EQU 0xF7
|
||||
CS_PIO_AD .EQU 0xF4
|
||||
CS_PIO_AC .EQU 0xF6
|
||||
|
||||
CS_APU_DATA .EQU 0xF8
|
||||
CS_APU_CTRL .EQU 0xF9
|
||||
@@ -6,33 +6,32 @@
|
||||
;------------------------------------------------------------------------------
|
||||
beep:
|
||||
push AF
|
||||
push BC
|
||||
push DE
|
||||
beep_loop:
|
||||
LD A,0x08
|
||||
OUT (CS_PIO_AD), A
|
||||
LD BC, 0x28
|
||||
CALL beep_pause
|
||||
LD A,0x00
|
||||
OUT (CS_PIO_AD), A
|
||||
LD BC, 0x24
|
||||
CALL beep_pause
|
||||
DEC DE
|
||||
ld A,D
|
||||
or E
|
||||
jr NZ, beep_loop
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
|
||||
beep_pause:
|
||||
NEG ; 8 T-states
|
||||
NEG ; 8 T-states
|
||||
PUSH BC
|
||||
_beep_pause_l1:
|
||||
;NEG ; 8 T-states
|
||||
;NEG ; 8 T-states
|
||||
NEG ; 8 T-states
|
||||
NEG ; 8 T-states
|
||||
DEC BC ; 6 T-states
|
||||
LD A,C ; 9 T-states
|
||||
OR B ; 4 T-states
|
||||
JP NZ,beep_pause ; 10 T-states
|
||||
JP NZ,_beep_pause_l1 ; 10 T-states
|
||||
POP BC
|
||||
RET ; Pause complete, RETurn
|
||||
201
OperatingSystem/monitor_v2/include/cmd_date.s
Normal file
201
OperatingSystem/monitor_v2/include/cmd_date.s
Normal file
@@ -0,0 +1,201 @@
|
||||
ADDR_RTC .equ 0xD0
|
||||
|
||||
OP_RTIME:
|
||||
call print_newLine
|
||||
_OP_RTIME_NN:
|
||||
;set pointer
|
||||
ld hl,[_OP_RTIME_RD_CMD]
|
||||
ld b, 1
|
||||
ld c, ADDR_RTC
|
||||
call iic_send_buffer
|
||||
or a
|
||||
jp nz, _OP_IIC_ACK_ERR
|
||||
;read RTC data
|
||||
ld hl,[var_scratch]
|
||||
ld b,8
|
||||
ld c, ADDR_RTC
|
||||
call iic_receive_buffer
|
||||
or a
|
||||
jp nz, _OP_IIC_ACK_ERR
|
||||
;process display hours
|
||||
ld a,(var_scratch+2)
|
||||
and 00110000b
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
call print_bcd
|
||||
ld a,(var_scratch+2)
|
||||
and 00001111b
|
||||
call print_bcd
|
||||
ld a,':'
|
||||
call print_char
|
||||
;display minutes
|
||||
ld a,(var_scratch+1)
|
||||
and 01110000b
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
call print_bcd
|
||||
ld a,(var_scratch+1)
|
||||
and 00001111b
|
||||
call print_bcd
|
||||
ld a,':'
|
||||
call print_char
|
||||
;display seconds
|
||||
ld a,(var_scratch+0)
|
||||
and 01110000b
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
call print_bcd
|
||||
ld a,(var_scratch+0)
|
||||
and 00001111b
|
||||
call print_bcd
|
||||
ld a,' '
|
||||
call print_char
|
||||
;display date
|
||||
ld a,(var_scratch+4)
|
||||
and 00110000b
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
call print_bcd
|
||||
ld a,(var_scratch+4)
|
||||
and 00001111b
|
||||
call print_bcd
|
||||
ld a,'.'
|
||||
call print_char
|
||||
ld a,(var_scratch+5)
|
||||
and 00010000b
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
call print_bcd
|
||||
ld a,(var_scratch+5)
|
||||
and 00001111b
|
||||
call print_bcd
|
||||
ld a,'.'
|
||||
call print_char
|
||||
ld a,'2'
|
||||
call print_char
|
||||
ld a,'0'
|
||||
call print_char
|
||||
ld a,(var_scratch+6)
|
||||
and 11110000b
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
RRA
|
||||
call print_bcd
|
||||
ld a,(var_scratch+6)
|
||||
and 00001111b
|
||||
call print_bcd
|
||||
|
||||
RET
|
||||
_OP_RTIME_RD_CMD:
|
||||
db 0x00
|
||||
|
||||
_OP_STIME_STR_DAY: db 10,13,"Enter Date (00-31) : ",0
|
||||
_OP_STIME_STR_MON: db 10,13,"Enter Month (00-12) : ",0
|
||||
_OP_STIME_STR_YEAR: db 10,13,"Enter Year (00-99) : ",0
|
||||
_OP_STIME_STR_HOUR: db 10,13,"Enter Hours (00-23) : ",0
|
||||
_OP_STIME_STR_MIN: db 10,13,"Enter Minutes (00-59) : ",0
|
||||
_OP_STIME_STR_SEC: db 10,13,"Enter Seconds (00-59) : ",0
|
||||
_OP_STIME_INVALID: db " invaild input. Retry!",0
|
||||
;HL contains pointer to stack
|
||||
;BC returns value (BCD)
|
||||
_OP_STIME_PROMPT:
|
||||
push hl
|
||||
call print_str
|
||||
pop hl
|
||||
call read_bcd
|
||||
cp 0xFF ;if failed
|
||||
jp Z, _OP_STIME_PROMPT_ERR
|
||||
ld b,a
|
||||
call read_bcd
|
||||
cp 0xFF ;if failed
|
||||
jp Z, _OP_STIME_PROMPT_ERR
|
||||
ld c,a
|
||||
ret
|
||||
_OP_STIME_PROMPT_ERR:
|
||||
push HL
|
||||
ld hl, [_OP_STIME_INVALID]
|
||||
call print_str
|
||||
pop hl
|
||||
jp _OP_STIME_PROMPT
|
||||
|
||||
|
||||
|
||||
OP_STIME:
|
||||
xor a
|
||||
ld (var_scratch),a ;set pointer
|
||||
;date
|
||||
ld hl, [_OP_STIME_STR_DAY]
|
||||
call _OP_STIME_PROMPT
|
||||
ld a,b
|
||||
call _shift4
|
||||
and 00110000b ;mask bits; bit6 low -> 24h mode
|
||||
or c ;add second digit
|
||||
ld (var_scratch+5),a
|
||||
;month
|
||||
ld hl, [_OP_STIME_STR_MON]
|
||||
call _OP_STIME_PROMPT
|
||||
ld a,b
|
||||
call _shift4
|
||||
and 00010000b ;mask bits; bit6 low -> 24h mode
|
||||
or c ;add second digit
|
||||
ld (var_scratch+6),a
|
||||
;year
|
||||
ld hl, [_OP_STIME_STR_YEAR]
|
||||
call _OP_STIME_PROMPT
|
||||
ld a,b
|
||||
call _shift4
|
||||
and 11110000b ;mask bits; bit6 low -> 24h mode
|
||||
or c ;add second digit
|
||||
ld (var_scratch+7),a
|
||||
;hours
|
||||
ld hl, [_OP_STIME_STR_HOUR]
|
||||
call _OP_STIME_PROMPT
|
||||
ld a,b
|
||||
call _shift4
|
||||
and 00110000b ;mask bits; bit6 low -> 24h mode
|
||||
or c ;add second digit
|
||||
ld (var_scratch+3),a
|
||||
; minutes
|
||||
ld hl, [_OP_STIME_STR_MIN]
|
||||
call _OP_STIME_PROMPT
|
||||
ld a,b
|
||||
call _shift4
|
||||
and 01110000b ;mask bits
|
||||
or c ;add second digit
|
||||
ld (var_scratch+2),a
|
||||
; seconds
|
||||
ld hl, [_OP_STIME_STR_SEC]
|
||||
call _OP_STIME_PROMPT
|
||||
ld a,b
|
||||
call _shift4
|
||||
and 01110000b ;mask bits / bit6 low -> 24h mode (enable clock)
|
||||
or c ;add second digit
|
||||
ld (var_scratch+1),a
|
||||
inc de ;next
|
||||
|
||||
ld c, ADDR_RTC
|
||||
ld b, 8
|
||||
ld hl,[var_scratch]
|
||||
call iic_send_buffer
|
||||
or a
|
||||
jp nz, _OP_IIC_ACK_ERR
|
||||
|
||||
ret
|
||||
|
||||
_shift4:
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
ret
|
||||
26
OperatingSystem/monitor_v2/include/cmd_disk.s
Normal file
26
OperatingSystem/monitor_v2/include/cmd_disk.s
Normal file
@@ -0,0 +1,26 @@
|
||||
OP_LSDSK:
|
||||
call ideif_prnt_devtable
|
||||
ret
|
||||
|
||||
OP_SELDSK:
|
||||
;DE contains pointer
|
||||
push de
|
||||
pop hl
|
||||
ld a,(hl)
|
||||
sbc 69
|
||||
jr c,_OP_SELDSK_INVALID
|
||||
cp 4
|
||||
jr nc, _OP_SELDSK_INVALID
|
||||
call 0x8000
|
||||
ret
|
||||
|
||||
_OP_SELDSK_INVALID:
|
||||
ld hl,[_OP_SELDSK_INVALID_STR]
|
||||
call print_str
|
||||
LD DE,0x20
|
||||
LD BC,0x70
|
||||
CALL beep
|
||||
ret
|
||||
|
||||
_OP_SELDSK_INVALID_STR:
|
||||
db 10,13,"Invalid drive letter",10,13,0
|
||||
130
OperatingSystem/monitor_v2/include/cmd_io.s
Normal file
130
OperatingSystem/monitor_v2/include/cmd_io.s
Normal file
@@ -0,0 +1,130 @@
|
||||
OP_IO_IN:
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
in a,(c)
|
||||
push af
|
||||
call print_newLine
|
||||
pop af
|
||||
call print_a_hex
|
||||
ret
|
||||
|
||||
OP_IO_OUT:
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
cp ' '
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
call DHEX_TO_BYTE
|
||||
push af
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
pop af
|
||||
out (c),a
|
||||
ret
|
||||
|
||||
OP_IIC_OUT:
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE ;load start addr
|
||||
ld (var_scratch+1),A ;store result in ram
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
inc hl
|
||||
LD BC,[var_scratch + 2]
|
||||
XOR A
|
||||
LD (var_scratch),A
|
||||
_OP_IIC_OUT_LOOP:
|
||||
ld a,(hl)
|
||||
cp 0 ;if 0 then end
|
||||
jp z,_OP_IIC_OUT_SEND
|
||||
cp ' '
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl ;next byte
|
||||
|
||||
call DHEX_TO_BYTE
|
||||
ld (bc),a
|
||||
inc bc ;incerement pointer
|
||||
ld a,(var_scratch)
|
||||
inc a ;increment counter
|
||||
ld (var_scratch),a
|
||||
inc HL
|
||||
inc HL
|
||||
jr _OP_IIC_OUT_LOOP
|
||||
_OP_IIC_OUT_SEND:
|
||||
ld hl,[var_scratch + 2]
|
||||
ld a,(var_scratch) ;load amount of bytes
|
||||
ld b,a
|
||||
ld a,(var_scratch+1) ;load start addr
|
||||
ld c,a
|
||||
call iic_send_buffer
|
||||
or a
|
||||
jp nz, _OP_IIC_ACK_ERR
|
||||
ret
|
||||
|
||||
_OP_IIC_ACK_ERR:
|
||||
LD HL,[_OP_IIC_ACK_ERR_str]
|
||||
call print_str
|
||||
ret
|
||||
_OP_IIC_ACK_ERR_str:
|
||||
db 10,13,"bus-error: no ACK",0
|
||||
|
||||
OP_IIC_IN:
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE ;load start addr
|
||||
ld C,a ;store start addr to B
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
cp ' '
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
call DHEX_TO_BYTE ;read length
|
||||
ld b,a ;store length in B
|
||||
push bc
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
ld hl,[var_scratch]
|
||||
call iic_receive_buffer
|
||||
pop bc
|
||||
or a
|
||||
jp nz, _OP_IIC_ACK_ERR
|
||||
ld hl,[_OP_IIC_IN_LOOP_TEXT]
|
||||
call print_str
|
||||
ld hl,[var_scratch]
|
||||
;print data
|
||||
_OP_IIC_IN_LOOP:
|
||||
ld a,(hl)
|
||||
call print_a_hex
|
||||
ld a, ' '
|
||||
call print_char
|
||||
inc hl
|
||||
djnz _OP_IIC_IN_LOOP
|
||||
ret
|
||||
|
||||
_OP_IIC_IN_LOOP_TEXT:
|
||||
db 10,13,"rec-buff: ",0
|
||||
|
||||
OP_CLR:
|
||||
call print_clear
|
||||
ret
|
||||
148
OperatingSystem/monitor_v2/include/cmd_mem.s
Normal file
148
OperatingSystem/monitor_v2/include/cmd_mem.s
Normal file
@@ -0,0 +1,148 @@
|
||||
OP_EXEC:
|
||||
;DE contains pointer
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc HL
|
||||
inc HL
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
ld h,b
|
||||
ld l,c
|
||||
jp (hl)
|
||||
OP_CALL:
|
||||
;DE contains pointer
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc HL
|
||||
inc HL
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
ld h,b
|
||||
ld l,c
|
||||
call _OP_CALL
|
||||
call print_newLine
|
||||
ret
|
||||
_OP_CALL
|
||||
jp (hl)
|
||||
|
||||
OP_DUMP:
|
||||
;DE contains pointer
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE ;parse start address
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc HL
|
||||
inc HL
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc HL
|
||||
inc HL
|
||||
ld a,(HL)
|
||||
cp ' '
|
||||
jp nz, ERR_SYNTAX
|
||||
inc HL
|
||||
call DHEX_TO_BYTE
|
||||
push af
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
pop af
|
||||
|
||||
ld h,b
|
||||
ld l,c
|
||||
ld b,a
|
||||
|
||||
call dump_pretty
|
||||
ret
|
||||
|
||||
OP_SET:
|
||||
;DE contains pointer
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE ;parse start address
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc HL
|
||||
inc HL
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
;bc now contains the start address
|
||||
INC HL
|
||||
INC HL
|
||||
;hl now cointains start addr of data bytes
|
||||
_OP_SET_LOOP:
|
||||
ld a,(hl)
|
||||
cp 0 ;if 0 then end
|
||||
RET Z
|
||||
cp ' '
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl ;next byte
|
||||
call DHEX_TO_BYTE
|
||||
ld (bc),a ;load byte to
|
||||
ld a,e
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc bc
|
||||
inc hl
|
||||
inc hl
|
||||
jp _OP_SET_LOOP
|
||||
|
||||
OP_DASM:
|
||||
push DE
|
||||
pop HL
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
inc hl
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
inc hl
|
||||
ld a,(HL)
|
||||
cp ' '
|
||||
jp nz, ERR_SYNTAX
|
||||
inc hl
|
||||
call DHEX_TO_BYTE
|
||||
push af
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, ERR_SYNTAX
|
||||
ld h,b
|
||||
ld l,c
|
||||
pop af ;restore af
|
||||
ld b,a
|
||||
call disassemble
|
||||
ret
|
||||
165
OperatingSystem/monitor_v2/include/command.s
Normal file
165
OperatingSystem/monitor_v2/include/command.s
Normal file
@@ -0,0 +1,165 @@
|
||||
COMMAND_LUT:
|
||||
db "date", 0 , [OP_RTIME], [OP_RTIME]>>8 ;Read time
|
||||
db "setdate", 0 , [OP_STIME], [OP_STIME]>>8 ;Read time
|
||||
db "pin ", 0 , [OP_IO_IN], [OP_IO_IN]>>8 ;Read port
|
||||
db "dump ",0, [OP_DUMP], [OP_DUMP]>>8 ;print pretty hexdump
|
||||
db "pout ", 0 , [OP_IO_OUT], [OP_IO_OUT]>>8 ;Write port
|
||||
db "iin ", 0, [OP_IIC_IN], [OP_IIC_IN]>>8 ;Read IIC
|
||||
db "iout ", 0, [OP_IIC_OUT], [OP_IIC_OUT]>>8 ;Write IIC
|
||||
db "call ", 0, [OP_CALL], [OP_CALL]>>8 ;Call to addr
|
||||
db "clr", 0, [OP_CLR], [OP_CLR]>>8 ;Call to addr
|
||||
db "dasm ", 0, [OP_DASM], [OP_DASM]>>8 ;Call to addr
|
||||
db "jp ", 0,[OP_EXEC], [OP_EXEC]>>8 ;jump to addr
|
||||
db "rst", 0,0x00,0x00 ;soft reset
|
||||
db "lsdsk", 0,[OP_LSDSK], [OP_LSDSK]>>8 ;list disks
|
||||
db "seldsk ", 0,[OP_SELDSK], [OP_SELDSK]>>8 ;select disk
|
||||
db "$", 0, [OP_EXEC], [OP_EXEC]>>8 ;jump to addr
|
||||
db "i", 0, [OP_IO_IN], [OP_IO_IN]>>8 ;Read port
|
||||
db "o", 0, [OP_IO_OUT], [OP_IO_OUT]>>8 ;Write port
|
||||
db "!", 0, [OP_SET], [OP_SET]>>8 ;Write memory
|
||||
db "?", 0, [OP_DUMP], [OP_DUMP]>>8 ;Print memory
|
||||
db 0xFF ;End of Table
|
||||
|
||||
IN_BUFFER .equ var_buffer
|
||||
|
||||
COMMAND:
|
||||
call print_newLine
|
||||
ld a,'>'
|
||||
call print_char
|
||||
xor a ;reset buffer len
|
||||
ld (var_buffer_len),a
|
||||
COMMAND_READ:
|
||||
call read_char
|
||||
jp z, COMMAND_READ ;wait for input
|
||||
cp 13 ; enter
|
||||
jp z,COMMAND_PROCESS
|
||||
cp 10
|
||||
jp z, COMMAND_READ; skip LF for file load
|
||||
cp 0x08 ; backspace 0x08 VT102 0x7f Putty
|
||||
jp z,COMMAND_BACKSPACE
|
||||
|
||||
push af
|
||||
; a contains latest char
|
||||
ld hl,[var_buffer]
|
||||
ld d,0
|
||||
ld a,(var_buffer_len)
|
||||
ld e,a
|
||||
add hl,de ;hl now contains pointer to last position in buffer
|
||||
inc a
|
||||
ld (var_buffer_len),a ;store incremented buffer length
|
||||
|
||||
pop af
|
||||
ld (hl),a
|
||||
call print_char
|
||||
inc hl
|
||||
xor a ;a = 0
|
||||
ld (hl),a ;always add null termination after last char
|
||||
jp COMMAND_READ
|
||||
|
||||
|
||||
COMMAND_BACKSPACE:
|
||||
ld a,(var_buffer_len)
|
||||
and a
|
||||
jp z, COMMAND_READ ; do not continue if already at char 0
|
||||
dec a ;decrement length
|
||||
ld (var_buffer_len),a ;and store it
|
||||
ld e,a ;load de with decremented value
|
||||
ld d,0
|
||||
ld hl,[var_buffer]
|
||||
add hl,de ;hl now contains pointer to last position in buffer
|
||||
xor a ; store null byte to current location
|
||||
ld (hl),a
|
||||
;call print_delete
|
||||
ld a, 0x08
|
||||
call print_char
|
||||
ld a, 0x20
|
||||
call print_char
|
||||
ld a, 0x08
|
||||
call print_char
|
||||
jp COMMAND_READ
|
||||
COMMAND_PROCESS:
|
||||
;compare
|
||||
LD HL,[COMMAND_LUT] ;Lookup table
|
||||
COMMAND_PROCESS_LOOP:
|
||||
LD DE,[var_buffer] ;Buffer
|
||||
LD A,(HL) ;Load first byte of entry
|
||||
CP 0xFF
|
||||
JP Z,COMMAND_PROCESS_NOT_FOUND ;if first byte is 0xFF, End is reached
|
||||
; compare string loop
|
||||
COMMAND_PROCESS_LOOP_STR1:
|
||||
LD A,(DE)
|
||||
LD B,A
|
||||
LD A,(HL)
|
||||
OR B ;not 0 -> match
|
||||
JP Z, COMMAND_PROCESS_FOUND ;match
|
||||
|
||||
LD A,(DE)
|
||||
LD B,A
|
||||
;LD A,(HL) ;Load first byte of entry
|
||||
;call print_a_hex
|
||||
LD A,(HL)
|
||||
;compare byte
|
||||
XOR B
|
||||
OR A ;if identical = resoult shopuld be zero
|
||||
JP Z, COMMAND_PROCESS_LOOP_STR2 ;then continue
|
||||
; if not identical
|
||||
LD A,(HL)
|
||||
OR A ;if reached end of compare string
|
||||
JP Z, COMMAND_PROCESS_FOUND ;match
|
||||
JR COMMAND_PROCESS_NEXT_ENTRY ;next entry on no match
|
||||
|
||||
COMMAND_PROCESS_LOOP_STR2: ;continue with next char
|
||||
INC HL
|
||||
INC DE
|
||||
JR COMMAND_PROCESS_LOOP_STR1
|
||||
|
||||
COMMAND_PROCESS_NEXT_ENTRYI: ;do not jump here
|
||||
INC HL
|
||||
COMMAND_PROCESS_NEXT_ENTRY: ;jump here
|
||||
LD A,(HL)
|
||||
OR A
|
||||
JP NZ,COMMAND_PROCESS_NEXT_ENTRYI ;loop until end of string
|
||||
INC HL ;skip pointer
|
||||
INC HL
|
||||
INC HL
|
||||
JP COMMAND_PROCESS_LOOP
|
||||
COMMAND_PROCESS_NOT_FOUND:
|
||||
LD HL,[_STR_NOT_FOUND]
|
||||
CALL print_str
|
||||
JP COMMAND
|
||||
|
||||
COMMAND_PROCESS_FOUND:
|
||||
PUSH HL
|
||||
POP BC
|
||||
INC BC
|
||||
LD A,(BC)
|
||||
LD L,A
|
||||
INC BC
|
||||
LD A,(BC)
|
||||
LD H,A
|
||||
|
||||
;HL: pointer to start of routine
|
||||
;DE: buffer start of arguments
|
||||
CALL _COMMAND_PROCESS_FOUND
|
||||
JP COMMAND
|
||||
_COMMAND_PROCESS_FOUND
|
||||
JP (HL)
|
||||
|
||||
NOT_IMPLEMENTED:
|
||||
LD HL,[_STR_NOT_IMPLEMENTED]
|
||||
CALL print_str
|
||||
RET
|
||||
|
||||
ERR_SYNTAX:
|
||||
LD HL,[_STR_SYNTAX]
|
||||
CALL print_str
|
||||
RET
|
||||
|
||||
_STR_NOT_IMPLEMENTED:
|
||||
db 10,13,"not implemented",10,13,0
|
||||
|
||||
_STR_NOT_FOUND:
|
||||
db 10,13,"invalid command",10,13,0
|
||||
|
||||
_STR_SYNTAX:
|
||||
db 10,13,"invalid syntax",10,13,0
|
||||
@@ -99,6 +99,12 @@ print_a_hex:
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
|
||||
print_bcd:
|
||||
ADD 48 ;offset for ascii number
|
||||
call print_char
|
||||
ret
|
||||
|
||||
read_char:
|
||||
call A_RTS_ON
|
||||
@@ -112,6 +118,21 @@ read_char:
|
||||
in a, (CS_SIO_A_D) ; read char if avail
|
||||
ret ; return
|
||||
|
||||
read_bcd;
|
||||
call read_char
|
||||
jp z, read_bcd
|
||||
call print_char
|
||||
sbc 48 ;remove ascii offset
|
||||
jp c, _read_bcd_invalid ;if carry, wrong input
|
||||
cp 10
|
||||
jp z, _read_bcd_invalid ;if equal or greater than 10, also error
|
||||
and 0x0F ;mask unused bits
|
||||
ret
|
||||
_read_bcd_invalid
|
||||
ld a, 0xFF
|
||||
ret
|
||||
|
||||
|
||||
;MSG_CRSR_0:
|
||||
; db 0x1B, "[?25h",0
|
||||
;MSG_CRSR_1:
|
||||
|
||||
@@ -32,6 +32,11 @@
|
||||
IDE_REG_ALTSTS .EQU 10110b ;Alternate Status/Digital Output
|
||||
IDE_REG_DRVADDR .EQU 10111b ;Drive Address
|
||||
|
||||
IDE_REG_LBA0 .EQU 01011b ;Start sector register
|
||||
IDE_REG_LBA1 .EQU 01100b ;Low byte of the cylinder number
|
||||
IDE_REG_LBA2 .EQU 01101b ;High two bits of the cylinder number
|
||||
IDE_REG_LBA3 .EQU 01110b ;Head and device select register
|
||||
|
||||
|
||||
;================================================================
|
||||
; I/O access functions
|
||||
|
||||
@@ -12,73 +12,378 @@
|
||||
;================================================================
|
||||
; IDE Variables
|
||||
;================================================================
|
||||
MEM_IDE_BASE .EQU 0x5000
|
||||
MEM_IDE_DEVICE .EQU MEM_IDE_BASE
|
||||
MEM_IDE_STATUS .EQU MEM_IDE_BASE + 1 ;1Byte: 0x00 if status is okay
|
||||
phase var_idebuffer
|
||||
MEM_IDE_DEVICE:
|
||||
defs 1
|
||||
MEM_IDE_STATUS:
|
||||
defs 1 ;1Byte: 0x00 if status is okay
|
||||
MEM_IDE_PARTITION:
|
||||
defs 4 ;4*16Bytes: LBA first sector
|
||||
MEM_IDE_POINTER:
|
||||
defs 4 ;4*16Bytes: LBA first sector
|
||||
MEM_IDE_DEV_TABLE:
|
||||
defs 16*4
|
||||
MEM_IDE_SELECTED:
|
||||
defs 1
|
||||
MEM_IDE_STRING_0:
|
||||
defs 40
|
||||
MEM_IDE_STRING_1:
|
||||
defs 40
|
||||
MEM_IDE_STRING_2:
|
||||
defs 40
|
||||
MEM_IDE_STRING_3:
|
||||
defs 40
|
||||
MEM_IDE_BUFFER:
|
||||
defs 512
|
||||
MEM_IDE_FSBUFFER:
|
||||
defs 256
|
||||
dephase
|
||||
;DEV-Table layout
|
||||
;<STATUS> <TYPE> <FIRST-SECTOR (4-byte)> <Length (4-byte)> <I/O Addr> <Master/Slave> 0x00 0x00
|
||||
;Status: 0x00 -> Ready
|
||||
; 0x01 -> Not found
|
||||
; 0x02 -> No supported filesystem
|
||||
;I/O Addr: Base addr of 82C55
|
||||
;Type: File system type
|
||||
|
||||
MEM_IDE_PARTITION .EQU MEM_IDE_BASE + 2 ;4*16Bytes: LBA first sector
|
||||
MEM_IDE_POINTER .EQU MEM_IDE_BASE + 6 ;4*16Bytes: LBA first sector
|
||||
|
||||
MEM_IDE_BUFFER .EQU MEM_IDE_BASE + 65 ;512Byte: buffer for read/write data
|
||||
IDE_DEV_TABLE:
|
||||
db 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, [MEM_IDE_STRING_0], [MEM_IDE_STRING_0]>>8, 0x00, 0x00
|
||||
db 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, [MEM_IDE_STRING_1], [MEM_IDE_STRING_1]>>8, 0x00, 0x00
|
||||
db 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, [MEM_IDE_STRING_2], [MEM_IDE_STRING_2]>>8, 0x00, 0x00
|
||||
db 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, [MEM_IDE_STRING_3], [MEM_IDE_STRING_3]>>8, 0x00, 0x00
|
||||
|
||||
;================================================================
|
||||
; IDE funtions
|
||||
;================================================================
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_init_table
|
||||
;
|
||||
; initializes drive table
|
||||
;------------------------------------------------------------------------------
|
||||
ideif_init_devtable:
|
||||
;copy default values to ram
|
||||
ld hl,[IDE_DEV_TABLE]
|
||||
ld de,[MEM_IDE_DEV_TABLE]
|
||||
ld bc,16*4
|
||||
ldir
|
||||
;set selected device
|
||||
ld a,0
|
||||
ld (MEM_IDE_SELECTED),a
|
||||
;set empty names
|
||||
xor a
|
||||
ld (MEM_IDE_STRING_0),a
|
||||
ld (MEM_IDE_STRING_1),a
|
||||
ld (MEM_IDE_STRING_2),a
|
||||
ld (MEM_IDE_STRING_3),a
|
||||
ret
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_prnt_devtable
|
||||
;
|
||||
; prints drive table
|
||||
;------------------------------------------------------------------------------
|
||||
ideif_prnt_devtable:
|
||||
call print_newLine
|
||||
ld hl,[_ideif_prnt_devtable_hdr]
|
||||
call print_str
|
||||
ld hl,[MEM_IDE_DEV_TABLE]
|
||||
ld b,0 ;device number
|
||||
_ideif_prnt_devtable_l1: ;loop 1 -> for each device
|
||||
;print if selected
|
||||
ld a,(MEM_IDE_SELECTED)
|
||||
cp b
|
||||
jp z,_ideif_prnt_devtable_l1_sel
|
||||
ld a, ' '
|
||||
jr _ideif_prnt_devtable_l1_nxt
|
||||
_ideif_prnt_devtable_l1_sel:
|
||||
ld a, '*'
|
||||
_ideif_prnt_devtable_l1_nxt:
|
||||
call print_char
|
||||
;print drive letter
|
||||
ld a,b
|
||||
add 69 ;offset letter to D
|
||||
call print_char
|
||||
ld a, ':'
|
||||
call print_char
|
||||
ld a, ' '
|
||||
call print_char
|
||||
;print status
|
||||
push hl
|
||||
ld a,(HL)
|
||||
or a
|
||||
jr z, _ideif_prnt_devtable_l1_s00
|
||||
cp 0x01
|
||||
jr z, _ideif_prnt_devtable_l1_s01
|
||||
cp 0x02
|
||||
jr z, _ideif_prnt_devtable_l1_s02
|
||||
cp 0xFF
|
||||
jr z, _ideif_prnt_devtable_l1_sFF
|
||||
jr _ideif_prnt_devtable_l1_sFF
|
||||
_ideif_prnt_devtable_l1_s00
|
||||
ld hl,[_ideif_prnt_devtable_s00]
|
||||
jr _ideif_prnt_devtable_l1_es
|
||||
_ideif_prnt_devtable_l1_s01
|
||||
ld hl,[_ideif_prnt_devtable_s01]
|
||||
jr _ideif_prnt_devtable_l1_es
|
||||
_ideif_prnt_devtable_l1_s02
|
||||
ld hl,[_ideif_prnt_devtable_s02]
|
||||
jr _ideif_prnt_devtable_l1_es
|
||||
_ideif_prnt_devtable_l1_sFF
|
||||
ld hl,[_ideif_prnt_devtable_sFF]
|
||||
_ideif_prnt_devtable_l1_es
|
||||
call print_str
|
||||
pop hl
|
||||
inc hl
|
||||
;print FS-Type
|
||||
ld a,'0'
|
||||
call print_char
|
||||
ld a,'x'
|
||||
call print_char
|
||||
ld a,(HL)
|
||||
call print_a_hex
|
||||
ld a,' '
|
||||
call print_char
|
||||
inc hl
|
||||
;print first sector
|
||||
push hl
|
||||
pop ix
|
||||
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
|
||||
ld a,(ix+3)
|
||||
call print_a_hex
|
||||
ld a,(ix+2)
|
||||
call print_a_hex
|
||||
ld a,(ix+1)
|
||||
call print_a_hex
|
||||
ld a,(ix+0)
|
||||
call print_a_hex
|
||||
ld a,' '
|
||||
call print_char
|
||||
;print length
|
||||
ld a,(ix+7)
|
||||
call print_a_hex
|
||||
ld a,(ix+6)
|
||||
call print_a_hex
|
||||
ld a,(ix+5)
|
||||
call print_a_hex
|
||||
ld a,(ix+4)
|
||||
call print_a_hex
|
||||
ld a,' '
|
||||
call print_char
|
||||
;print Port
|
||||
ld a,'0'
|
||||
call print_char
|
||||
ld a,'x'
|
||||
call print_char
|
||||
ld a,(HL)
|
||||
call print_a_hex
|
||||
ld a,' '
|
||||
call print_char
|
||||
inc hl
|
||||
;print M/S
|
||||
ld a,(HL)
|
||||
push hl
|
||||
or a
|
||||
jp z,_ideif_prnt_devtable_l1_ms
|
||||
ld hl,[_ideif_prnt_devtable_slave]
|
||||
jp _ideif_prnt_devtable_l1_e2
|
||||
_ideif_prnt_devtable_l1_ms
|
||||
ld hl,[_ideif_prnt_devtable_master]
|
||||
_ideif_prnt_devtable_l1_e2
|
||||
call print_str
|
||||
pop hl
|
||||
inc hl
|
||||
;print str
|
||||
push bc
|
||||
ld a,(hl)
|
||||
ld c,a
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
ld b,a
|
||||
inc hl
|
||||
push hl
|
||||
ld h,b
|
||||
ld l,c
|
||||
call print_str
|
||||
call print_newLine
|
||||
pop hl
|
||||
pop bc
|
||||
;next
|
||||
inc hl
|
||||
inc hl
|
||||
inc b
|
||||
ld a,b
|
||||
cp 4
|
||||
ret z
|
||||
jp _ideif_prnt_devtable_l1
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_init_drive
|
||||
;
|
||||
; initializes drive
|
||||
; initializes selected drive in table
|
||||
;------------------------------------------------------------------------------
|
||||
ideif_init_drive:
|
||||
xor a
|
||||
ld (MEM_IDE_DEVICE),A ;Set device to 0
|
||||
ld (MEM_IDE_STATUS),A ;Set status to 0 (OK)
|
||||
di ;disable interrupt
|
||||
call ide_reset ;Reset drives on bus
|
||||
ld hl, [str_dev_waitready]
|
||||
call print_str ;print waiting message
|
||||
ld DE, 0x1FFF ;preload timeout counter
|
||||
ideif_init_drive_loop1:
|
||||
call ideif_get_drv_pointer
|
||||
; load addresses. not used atm
|
||||
;ld a,(IX+6) ;load IO Addr
|
||||
;ld d,a
|
||||
;ld a,(IX+7) ;load Master/Slave bit
|
||||
;ld e,a
|
||||
call ide_reset
|
||||
|
||||
ld bc, 0x5FFF ;preload timeout counter
|
||||
_ideif_init_drive_loop:
|
||||
ld b, IDE_REG_CMDSTS
|
||||
call ide_regread_8 ;read drive status register
|
||||
OR A
|
||||
JR Z, ideif_init_drive_nodrv ;no drive found
|
||||
BIT 6,A ;Wait for device ready
|
||||
JR NZ, ideif_init_drive_detected
|
||||
DEC DE ; decrement timeout
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z, ideif_init_drive_nodrv
|
||||
JR ideif_init_drive_loop1
|
||||
or a
|
||||
jr z,_ideif_init_drive_nodrv ;no drive found
|
||||
bit 6,a
|
||||
jr nz, _ideif_init_drive_found
|
||||
dec de
|
||||
ld a,d
|
||||
or e
|
||||
jr z, _ideif_init_drive_nodrv
|
||||
jr _ideif_init_drive_loop
|
||||
|
||||
ideif_init_drive_nodrv:
|
||||
ld hl, [str_dev_notfound]
|
||||
call print_str
|
||||
RET
|
||||
_ideif_init_drive_nodrv:
|
||||
ld(ix+0),0x01
|
||||
ret
|
||||
|
||||
ideif_init_drive_detected:
|
||||
ld hl, [str_dev_ready]
|
||||
call print_str
|
||||
LD B, IDE_REG_CMDSTS ;Get drive identification
|
||||
LD A, IDE_CMD_IDENT
|
||||
_ideif_init_drive_found:
|
||||
ld (ix+0),0x02
|
||||
;get drive name
|
||||
ld b, IDE_REG_CMDSTS ;Get drive identification
|
||||
ld a, IDE_CMD_IDENT
|
||||
call ide_regwrite_8 ;Write command to drive
|
||||
LD HL,MEM_IDE_BUFFER ;set read/write buffer start address
|
||||
ld hl, MEM_IDE_BUFFER ;set read/write buffer start address
|
||||
call ide_readsector_256 ;read 256 words from device
|
||||
LD HL,MEM_IDE_BUFFER + 20 ;print device serial
|
||||
LD B, 20
|
||||
CALL print_str_fixed
|
||||
ld hl, [str_dev_ready2]
|
||||
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
|
||||
;get partition table
|
||||
;read bootsector
|
||||
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
|
||||
call ide_regwrite_8
|
||||
ld a,0 ;read cylinder 0
|
||||
ld b,IDE_REG_LCYL
|
||||
call ide_regwrite_8
|
||||
ld a,0
|
||||
ld b,IDE_REG_HCYL
|
||||
call ide_regwrite_8
|
||||
ld a,10100000b ;read head 0
|
||||
ld b,IDE_REG_HEAD
|
||||
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
|
||||
;prepare partitions
|
||||
ld b,4 ;Partition table length
|
||||
ld c,0 ;Partition ID counter
|
||||
ld iy,MEM_IDE_BUFFER+446 ;Load offest of first partition table entry
|
||||
_ideif_init_drive_prt_l1:
|
||||
ld a,(iy+4) ;load status byte
|
||||
or a
|
||||
jp NZ, _ideif_init_drive_prt_fnd ;If not zero, jump to print function
|
||||
jp _ideif_init_drive_prt_ln
|
||||
_ideif_init_drive_prt_ln:
|
||||
ld de,16
|
||||
add iy,de
|
||||
djnz _ideif_init_drive_prt_l1
|
||||
ret
|
||||
_ideif_init_drive_prt_fnd;
|
||||
ld a,(iy+4)
|
||||
ld (ix+1),a ;store partition type
|
||||
cp 0x0E ;if not 0xE0, continue with next entry
|
||||
jr nz, _ideif_init_drive_prt_ln
|
||||
;get start LBA
|
||||
ld a,(iy+0x08)
|
||||
ld (ix+0x02),a
|
||||
ld a,(iy+0x09)
|
||||
ld (ix+0x03),a
|
||||
ld a,(iy+0x0A)
|
||||
ld (ix+0x04),a
|
||||
ld a,(iy+0x0B)
|
||||
ld (ix+0x05),a
|
||||
ld (ix+0),0x00
|
||||
;get count LBA
|
||||
ld a,(iy+0x0C)
|
||||
ld (ix+0x06),a
|
||||
ld a,(iy+0x0D)
|
||||
ld (ix+0x07),a
|
||||
ld a,(iy+0x0E)
|
||||
ld (ix+0x08),a
|
||||
ld a,(iy+0x0F)
|
||||
ld (ix+0x09),a
|
||||
ld (ix+0),0x00
|
||||
ret
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_get_drv_pointer
|
||||
;
|
||||
; gets pointer to selected drive in table in IX
|
||||
;------------------------------------------------------------------------------
|
||||
ideif_get_drv_pointer:
|
||||
push af
|
||||
push bc
|
||||
;get selected drive
|
||||
ld a,(MEM_IDE_SELECTED)
|
||||
;multiply a *8
|
||||
rlca ;*2
|
||||
rlca ;*4
|
||||
rlca ;*8
|
||||
ld b,0
|
||||
ld c,a
|
||||
ld ix,[MEM_IDE_DEV_TABLE]
|
||||
add ix,bc
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_init_all
|
||||
;
|
||||
; initializes interface
|
||||
;------------------------------------------------------------------------------
|
||||
ideif_init_all:
|
||||
ld hl, [str_dev_waitready]
|
||||
call print_str ;print waiting message
|
||||
|
||||
call ideif_init_devtable
|
||||
call ideif_init_drive
|
||||
|
||||
ld hl, [str_dev_done]
|
||||
call print_str
|
||||
LD HL,MEM_IDE_BUFFER + 54 ;print device name
|
||||
LD B, 40
|
||||
CALL print_str_fixed
|
||||
LD A,10 ;New line
|
||||
CALL print_char
|
||||
LD A,13
|
||||
CALL print_char
|
||||
RET
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_drv_sel
|
||||
;
|
||||
; Selects drive from table and initializes the fat16 file system
|
||||
; A contains drive id
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; read_lba_sector
|
||||
;
|
||||
@@ -90,24 +395,23 @@ read_lba_sector:
|
||||
LD B,IDE_REG_SECTOR ;amount of sectores
|
||||
CALL ide_regwrite_8
|
||||
|
||||
LD A,(HL)
|
||||
LD B,IDE_REG_LBA0
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD B,IDE_REG_LBA1
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD B,IDE_REG_LBA2
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
AND 00001111b
|
||||
OR 11100000b
|
||||
LD B,IDE_REG_HEAD
|
||||
LD B,IDE_REG_LBA3
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD B,IDE_REG_HCYL
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD B,IDE_REG_LCYL
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD B,IDE_REG_SSECTOR
|
||||
CALL ide_regwrite_8
|
||||
INC HL
|
||||
|
||||
LD A,IDE_CMD_READSEC ;send read command
|
||||
LD B,IDE_REG_CMDSTS
|
||||
@@ -117,17 +421,29 @@ read_lba_sector:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;================================================================
|
||||
; IDE strings
|
||||
;===============================================================
|
||||
|
||||
str_dev_waitready:
|
||||
db 13,10,"Detecting drives ",0
|
||||
db 13,10,"Detecting drives ... ",0
|
||||
str_dev_done:
|
||||
db "done!",13,10,0
|
||||
|
||||
str_dev_ready:
|
||||
db "found!",13,10,"ID: ",0
|
||||
str_dev_ready2:
|
||||
db " Desc: ",0
|
||||
|
||||
str_dev_notfound:
|
||||
db "no drive",13,10,0
|
||||
_ideif_prnt_devtable_hdr:
|
||||
db "DRV Status Type LBA Length Port M/S Name",10,13,0
|
||||
_ideif_prnt_devtable_s00:
|
||||
db "Avail ",0
|
||||
_ideif_prnt_devtable_s01:
|
||||
db "Not Found ",0
|
||||
_ideif_prnt_devtable_s02:
|
||||
db "Unkown FS ",0
|
||||
_ideif_prnt_devtable_sFF:
|
||||
db "Ctrl. Err ",0
|
||||
_ideif_prnt_devtable_master:
|
||||
db "Master ",0
|
||||
_ideif_prnt_devtable_slave:
|
||||
db "Slave ",0
|
||||
289
OperatingSystem/monitor_v2/include/kdrv_siic.s
Normal file
289
OperatingSystem/monitor_v2/include/kdrv_siic.s
Normal file
@@ -0,0 +1,289 @@
|
||||
;----------------------------------------------------------------
|
||||
;BIOS Driver for I2C Protocol (Software)
|
||||
;by Dennis Gunia (01/2024)
|
||||
;
|
||||
; SCL is connected to PA1 of PIO (U6) with pull-up
|
||||
; SDA is connected to PA0 of PIO (U6) with pull-up
|
||||
;----------------------------------------------------------------
|
||||
|
||||
|
||||
;================================================================
|
||||
; I/O registers
|
||||
;================================================================
|
||||
|
||||
|
||||
;================================================================
|
||||
; I/O pins
|
||||
;================================================================
|
||||
IIC_CLK .EQU 00000001b
|
||||
IIC_DATA .EQU 00000010b
|
||||
|
||||
;================================================================
|
||||
; basic access functions
|
||||
;================================================================
|
||||
;HL contains buffer location
|
||||
;B defines amount of bytes to send
|
||||
;C contains device address
|
||||
iic_send_buffer:
|
||||
CALL iic_send_sbit ;Send startbit
|
||||
LD A,C
|
||||
AND 0xFE ;Mask R/W bit (must be 0 for write)
|
||||
CALL iic_send_byte ;Send Address
|
||||
CALL iic_read_ack
|
||||
OR A ; if no ack, error
|
||||
JP NZ, iic_send_buffer_err
|
||||
iic_send_buffer_loop;
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
CALL iic_send_byte
|
||||
CALL iic_read_ack
|
||||
OR A ; if no ack, error
|
||||
JP NZ, iic_send_buffer_err
|
||||
DJNZ iic_send_buffer_loop ;loop for remaining bytes
|
||||
iic_send_buffer_done:
|
||||
CALL iic_send_ebit
|
||||
LD A,0
|
||||
RET
|
||||
iic_send_buffer_err:
|
||||
CALL iic_send_ebit
|
||||
LD A,1
|
||||
RET
|
||||
|
||||
;HL contains buffer location
|
||||
;B defines amount of bytes to send
|
||||
;C contains device address
|
||||
iic_receive_buffer:
|
||||
DEC B
|
||||
CALL iic_send_sbit ;Send startbit
|
||||
LD A,C
|
||||
OR 0x01 ;set R/W bit (must be 1 for read)
|
||||
CALL iic_send_byte ;Send Address
|
||||
CALL iic_read_ack
|
||||
OR A ; if no ack, error
|
||||
JP NZ, iic_receive_buffer_err
|
||||
iic_receive_buffer_loop:
|
||||
CALL iic_receive_byte
|
||||
LD (HL),A
|
||||
INC HL
|
||||
CALL iic_send_ack
|
||||
DJNZ iic_receive_buffer_loop
|
||||
; last time:
|
||||
CALL iic_receive_byte
|
||||
LD (HL),A
|
||||
INC HL
|
||||
CALL iic_send_nack
|
||||
|
||||
iic_receive_buffer_done:
|
||||
CALL iic_send_ebit
|
||||
LD A,0
|
||||
RET
|
||||
iic_receive_buffer_err:
|
||||
CALL iic_send_ebit
|
||||
LD A,1
|
||||
RET
|
||||
|
||||
|
||||
|
||||
;================================================================
|
||||
; I/O access functions
|
||||
;================================================================
|
||||
|
||||
;Reset PIO configuration
|
||||
iic_init:
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs
|
||||
LD A,0xF0
|
||||
OUT (CS_PIO_AC), A
|
||||
RET
|
||||
|
||||
; send start bit
|
||||
iic_send_sbit:
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs (SDA and SCL is now output)
|
||||
LD A,0xFC
|
||||
OUT (CS_PIO_AC), A
|
||||
;SCL HIGH, SDA LOW
|
||||
LD A,0x02
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x00
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
RET
|
||||
|
||||
; send end/stop bit
|
||||
iic_send_ebit:
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
|
||||
;Set inputs/outputs (SDA and SCL is now output)
|
||||
LD A,0xFC
|
||||
OUT (CS_PIO_AC), A
|
||||
;SCL HIGH, SDA LOW
|
||||
LD A,0x02
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x03 ; both high
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
;release bus
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
NOP
|
||||
NOP
|
||||
;Set inputs/outputs (SDA and SCL is now input, sound enabled)
|
||||
LD A,11110111b
|
||||
OUT (CS_PIO_AC), A
|
||||
NOP
|
||||
NOP
|
||||
RET
|
||||
|
||||
|
||||
iic_read_ack:
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs (SCL is now output, SDA input)
|
||||
LD A,0xFD
|
||||
OUT (CS_PIO_AC), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x00 ;set SCL LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
XOR 0x02 ;set SCL HIGH
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
IN A,(CS_PIO_AD) ; Read SDA
|
||||
NOP
|
||||
NOP
|
||||
PUSH AF
|
||||
AND 0xFE ; Filter input
|
||||
XOR 0x02 ;set SCL LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
POP AF
|
||||
AND 1
|
||||
RET
|
||||
|
||||
iic_send_ack:
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs (SDA and SCL is now output)
|
||||
LD A,0xFC
|
||||
OUT (CS_PIO_AC), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x00 ; SCL LOW, SDA LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x02 ; SCL HIGH, SDA LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x00 ; SCL LOW, SDA LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
RET
|
||||
|
||||
iic_send_nack:
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs (SDA and SCL is now output)
|
||||
LD A,0xFC
|
||||
OUT (CS_PIO_AC), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x02 ; SCL LOW, SDA HIGH
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x03 ; both high
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,0x02 ; SCL LOW, SDA HIGH
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
RET
|
||||
|
||||
;A contains byte
|
||||
iic_send_byte:
|
||||
PUSH BC
|
||||
LD C,A ;buffer
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs (SDA and SCL is now output)
|
||||
LD A,0xFC
|
||||
OUT (CS_PIO_AC), A
|
||||
LD B,8 ;bit counter
|
||||
|
||||
iic_send_byte_loop:
|
||||
;prepare data
|
||||
RL C
|
||||
LD A,0
|
||||
RLA ; set SCA bit from carry, SCL LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
XOR 0x02 ;set SCL HIGH
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
XOR 0x02 ;set SCL LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
DJNZ iic_send_byte_loop ;loop until counter is 0
|
||||
;transmittion end / end loop
|
||||
LD A,C
|
||||
POP BC
|
||||
RET
|
||||
|
||||
iic_receive_byte:
|
||||
PUSH BC
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
;Set inputs/outputs (SCL is now output, SDA input)
|
||||
LD A,0xFD
|
||||
OUT (CS_PIO_AC), A
|
||||
LD B,8 ;bit counter
|
||||
LD C,0
|
||||
iic_receive_byte_loop:
|
||||
XOR A ;set SCL LOW
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
LD A,2 ;set SCL HIGH
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
IN A, (CS_PIO_AD)
|
||||
NOP
|
||||
RRA ;read SDA bit
|
||||
RL C ;store bit
|
||||
XOR A ;set SCL LOW again
|
||||
OUT (CS_PIO_AD), A
|
||||
NOP
|
||||
NOP
|
||||
DJNZ iic_receive_byte_loop
|
||||
LD A,C
|
||||
POP BC
|
||||
RET
|
||||
120
OperatingSystem/monitor_v2/include/post.s
Normal file
120
OperatingSystem/monitor_v2/include/post.s
Normal file
@@ -0,0 +1,120 @@
|
||||
;Power-On self test
|
||||
POST_START:
|
||||
call POST_CHECK_PIO
|
||||
call POST_CHECK_APU
|
||||
call POST_TEST_RTC
|
||||
call POST_CHECK_IDE_30
|
||||
call POST_CHECK_IDE_40
|
||||
ret
|
||||
|
||||
POST_CHECK_PIO:
|
||||
ld hl,[str_post_pio]
|
||||
call print_str
|
||||
in a,(CS_PIO_AC) ;test read from pio
|
||||
cp 0x00 ;0x78 when not installed
|
||||
jp nz, _POST_CHECK_PIO_FAILED
|
||||
ld a, 0x00 ;set present flag
|
||||
ld (var_pio_present),a
|
||||
ld hl,[str_post_ok]
|
||||
call print_str
|
||||
ret
|
||||
_POST_CHECK_PIO_FAILED:
|
||||
ld a, 0xFF
|
||||
ld (var_pio_present),a
|
||||
ld hl,[str_post_nd]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
POST_CHECK_APU:
|
||||
ld hl,[str_post_apu]
|
||||
call print_str
|
||||
|
||||
ld a, 0xFF
|
||||
out (CS_APU_DATA),a
|
||||
nop
|
||||
nop
|
||||
in a,(CS_APU_DATA)
|
||||
cp 0xFF
|
||||
jp nz, _POST_CHECK_APU_FAILED
|
||||
ld a, 0x00 ;set present flag
|
||||
ld (var_apu_present),a
|
||||
ld hl,[str_post_ok]
|
||||
call print_str
|
||||
ret
|
||||
_POST_CHECK_APU_FAILED:
|
||||
ld a, 0xFF
|
||||
ld (var_apu_present),a
|
||||
ld hl,[str_post_nd]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
POST_CHECK_IDE_30:
|
||||
ld hl,[str_post_ide_30]
|
||||
call print_str
|
||||
in a,(0x30)
|
||||
or a
|
||||
jp nz, _POST_CHECK_IDE_FAILED
|
||||
ld hl,[str_post_ok]
|
||||
call print_str
|
||||
ret
|
||||
POST_CHECK_IDE_40:
|
||||
ld hl,[str_post_ide_40]
|
||||
call print_str
|
||||
in a,(0x40)
|
||||
or a
|
||||
jp nz, _POST_CHECK_IDE_FAILED
|
||||
ld hl,[str_post_ok]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
_POST_CHECK_IDE_FAILED
|
||||
ld hl,[str_post_nd]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
POST_TEST_RTC:
|
||||
ld a, 0x06
|
||||
ld (var_scratch),a
|
||||
ld hl,[str_post_rtc]
|
||||
call print_str
|
||||
ld hl,[var_scratch]
|
||||
ld b, 1
|
||||
ld c, ADDR_RTC
|
||||
call iic_send_buffer
|
||||
or a
|
||||
jp nz, _POST_TEST_RTC_NOTFOUND
|
||||
ld hl,[var_scratch]
|
||||
ld b, 1
|
||||
ld c, ADDR_RTC
|
||||
call iic_receive_buffer
|
||||
ld a, (var_scratch)
|
||||
or a
|
||||
jp z, _POST_TEST_RTC_INVALID
|
||||
ld hl,[str_post_ok]
|
||||
call print_str
|
||||
jp _OP_RTIME_NN
|
||||
_POST_TEST_RTC_NOTFOUND:
|
||||
ld hl,[str_post_nd]
|
||||
call print_str
|
||||
ret
|
||||
_POST_TEST_RTC_INVALID:
|
||||
ld hl,[str_post_rtc_iv]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
str_post_ide_30:
|
||||
db 13,10,"Check Diskctrl.@030h... ",0
|
||||
str_post_ide_40:
|
||||
db 13,10,"Check Diskctrl.@040h... ",0
|
||||
str_post_pio:
|
||||
db 13,10,"Check IO-Controller ... ",0
|
||||
str_post_apu:
|
||||
db 13,10,"Check AMD8911 APU ... ",0
|
||||
str_post_rtc:
|
||||
db 13,10,"Check DS1307 RTC ... ",0
|
||||
str_post_nd:
|
||||
db "not detected!",0
|
||||
str_post_rtc_iv:
|
||||
db "not set. Check battery and run 'setdate'!",0
|
||||
str_post_ok:
|
||||
db "ok! ",0
|
||||
@@ -1,12 +1,21 @@
|
||||
;----------------------------------------------------------------
|
||||
;Z8C Homebrew Computer Monitor
|
||||
;by Dennis Gunia (01/2023)
|
||||
;----------------------------------------------------------------
|
||||
|
||||
;================================================================
|
||||
; Memory areas
|
||||
;================================================================
|
||||
SYS_RAM_START equ 0x4000
|
||||
SYS_BUF_START equ 0x4010
|
||||
PRG_RAM_START equ 0x4110
|
||||
PRG_RAM_TOP equ 0xFF00
|
||||
STACK_RAM_TOP equ 0xFFFF
|
||||
|
||||
;VAR_CONSOLE_CONF equ 0x07 ;CLK/TRG Clock @ 1843220.5/s
|
||||
;================================================================
|
||||
; Terminal configuration
|
||||
;================================================================
|
||||
VAR_CONSOLE_CONF equ 0x0F ;CPU/16 Clock @ 230402.5625/s
|
||||
|
||||
VAR_CONSOLE_BAUD equ 24 ;BAUD timer constant
|
||||
;CLK/TRG Clock @ 1843220.5/s
|
||||
; -> 0x16 : 14400
|
||||
@@ -14,14 +23,18 @@ VAR_CONSOLE_BAUD equ 24 ;BAUD timer constant
|
||||
; -> 12 : 19200
|
||||
; -> 24 : 9600
|
||||
|
||||
;================================================================
|
||||
; Includes (1/2)
|
||||
;================================================================
|
||||
; include IO device addresses
|
||||
.include "addresses.s"
|
||||
|
||||
;================================================================
|
||||
; RST Vectors for BASIC
|
||||
;================================================================
|
||||
org 0x0000
|
||||
RST_00: ;Hardware Restart
|
||||
ld sp, STACK_RAM_TOP
|
||||
di
|
||||
jp mon_start_init_sound
|
||||
jp BOOT_PHASE0
|
||||
|
||||
org 0x0008
|
||||
RST_08 ;Print Char
|
||||
@@ -35,12 +48,16 @@ RST_10 ;receive char
|
||||
RST_18 ;Buffer length
|
||||
jp EXEC_RST_18
|
||||
|
||||
|
||||
;================================================================
|
||||
; Default interrupt vectors
|
||||
;================================================================
|
||||
INT_VEC:
|
||||
org 0x0044
|
||||
;DEFW EXEC_INT_VDP
|
||||
|
||||
;memory var template
|
||||
;================================================================
|
||||
; Memory layout
|
||||
;================================================================
|
||||
mon_var_template:
|
||||
phase SYS_RAM_START
|
||||
|
||||
@@ -60,73 +77,54 @@ var_curserchar:
|
||||
defb 0
|
||||
var_curserlastaddr:
|
||||
defw 0
|
||||
var_pio_present:
|
||||
defb 0
|
||||
var_apu_present:
|
||||
defb 0
|
||||
var_scratch:
|
||||
defs 16 ;16 bytes space for scratch vars
|
||||
var_ps2mem:
|
||||
defs 16 ;16 bytes space for scratch vars
|
||||
var_buffer:
|
||||
defb 0 ;var lentgh
|
||||
var_idebuffer:
|
||||
defs 768
|
||||
|
||||
dephase
|
||||
mon_var_template_end:
|
||||
nop
|
||||
;end memory var template
|
||||
|
||||
;================================================================
|
||||
; Start of monitor
|
||||
;================================================================
|
||||
org 0x0050
|
||||
mon_start_init_sound:
|
||||
;CALL BTLDR_ENTRY ;call bootloader first
|
||||
;ld D,0x08 ; Select register #8
|
||||
;ld A,0x00 ; Volume channel A 0
|
||||
;call AY0_WRITE_REG
|
||||
;ld D,0x09 ; Select register #9
|
||||
;ld A,0x00 ; Volume channel B 0
|
||||
;call AY0_WRITE_REG
|
||||
;ld D,0x0A ; Select register #10
|
||||
;ld A,0x00 ; Volume channel C 0
|
||||
;call AY0_WRITE_REG
|
||||
|
||||
mon_start_init_ctc:
|
||||
|
||||
; Set CTC Ch2 Interrupt Vector
|
||||
;LD A,40h ; it vector defined in bit 73,bit 21 don't care, bit 0 = 0
|
||||
;OUT (IO_CTC0_C0),A
|
||||
; Init CTC Channel 2
|
||||
;LD A,10100111b
|
||||
;OUT (IO_CTC0_C2),A
|
||||
;LD A,0x34 ; 55Hz ISR
|
||||
;LD A,0xFF ; 55Hz ISR
|
||||
;OUT (IO_CTC0_C2),A
|
||||
|
||||
;INIT PIO
|
||||
BOOT_PHASE0: ;Setup Hardware
|
||||
;Setup Stack-Pointer
|
||||
ld sp, STACK_RAM_TOP
|
||||
;Disable Interrupts
|
||||
di
|
||||
;Setup PIO on MIO Board
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
LD A,11110101b
|
||||
LD A,11110111b ;All pins inputs except speaker
|
||||
OUT (CS_PIO_AC), A
|
||||
LD A,00000011B ;Preset I2C pins to high
|
||||
OUT (CS_PIO_AC), A
|
||||
|
||||
|
||||
xor a
|
||||
;ld i, a
|
||||
;im 2 ;set int mode 2
|
||||
|
||||
;Set variables
|
||||
ld (var_curserstate),a
|
||||
ld (var_curseron),a
|
||||
ld a, " "
|
||||
ld (var_curserchar),a
|
||||
|
||||
|
||||
|
||||
|
||||
;ei ; Enable Interrupts
|
||||
|
||||
;jr mon_start_ram ;skip serial, cause not used atm
|
||||
mon_start_init_serial:
|
||||
;Initialize Console (Serial-Port)
|
||||
call CONSOLE_INIT
|
||||
;jp mon_start_complete
|
||||
|
||||
mon_start_ram:
|
||||
BOOT_PHASE1: ;Copy default values to RAM
|
||||
ld hl,mon_var_template
|
||||
ld de,mon_var_template_end
|
||||
ld bc,SYS_RAM_START
|
||||
mon_start_ram_loop:
|
||||
BOOT_PHASE1_LOOP:
|
||||
ld a,(hl) ;copy values
|
||||
ld (bc),a
|
||||
inc hl
|
||||
@@ -134,379 +132,54 @@ mon_start_ram_loop:
|
||||
push hl ;check if end is reached
|
||||
sbc hl,de
|
||||
pop hl
|
||||
jp nz, mon_start_ram_loop
|
||||
jp nz, BOOT_PHASE1_LOOP
|
||||
;template copy done
|
||||
|
||||
mon_start_complete:
|
||||
|
||||
;call keyboard_init_io
|
||||
;call vdpconsole_init
|
||||
|
||||
;call print_str
|
||||
|
||||
|
||||
;jp splash_run
|
||||
|
||||
;jp ps2demo_run
|
||||
;call debug_init
|
||||
;call vdp_cursor_on
|
||||
;jp COLD
|
||||
|
||||
BOOT_PHASE2: ;Hardware initialized.
|
||||
; Print banner
|
||||
call print_clear
|
||||
ld hl, [STR_Banner_Start]
|
||||
call print_str
|
||||
|
||||
call ideif_init_drive
|
||||
; Power-On Self Tests
|
||||
call POST_START
|
||||
|
||||
; Detect IDE drives
|
||||
call ideif_init_all
|
||||
|
||||
; Beep after start
|
||||
LD DE,0x40
|
||||
LD BC,0x48
|
||||
CALL beep
|
||||
|
||||
;call vdp_cursor_on
|
||||
call PROMPT_BEGIN
|
||||
; Start commandline
|
||||
jp COMMAND
|
||||
|
||||
;halt CPU if prompt exits
|
||||
; This instruction should never be reached
|
||||
halt
|
||||
|
||||
; Misc Functions
|
||||
AY0_WRITE_REG:
|
||||
LD B,A
|
||||
LD A,D
|
||||
OUT (IO_AY0_ADDR),A
|
||||
LD A,B
|
||||
OUT (IO_AY0_DATA),A
|
||||
RET
|
||||
|
||||
PROMPT_BEGIN:
|
||||
call print_newLine
|
||||
;call A_RTS_ON
|
||||
ld a,'>'
|
||||
call print_char
|
||||
xor a ;reset buffer len
|
||||
ld (var_buffer_len),a
|
||||
|
||||
PROMPT_BEGIN_READ_LOOP:
|
||||
call read_char
|
||||
;call keybd_read_ascii
|
||||
jp z, PROMPT_BEGIN_READ_LOOP ; wait until char avail
|
||||
push af
|
||||
pop af
|
||||
; process special ops
|
||||
cp 13 ; enter
|
||||
jp z,PROMPT_BEGIN_READ_PROCESS
|
||||
cp 10
|
||||
jp z, PROMPT_BEGIN_READ_LOOP; skip LF for file load
|
||||
cp 0x08 ; backspace 0x08 VT102 0x7f Putty
|
||||
jp z,PROMPT_BEGIN_READ_BACKSPACE
|
||||
|
||||
push af
|
||||
; a contains latest char
|
||||
ld hl,[var_buffer]
|
||||
ld d,0
|
||||
ld a,(var_buffer_len)
|
||||
ld e,a
|
||||
add hl,de ;hl now contains pointer to last position in buffer
|
||||
inc a
|
||||
ld (var_buffer_len),a ;store incremented buffer length
|
||||
|
||||
pop af
|
||||
ld (hl),a
|
||||
call print_char
|
||||
inc hl
|
||||
xor a ;a = 0
|
||||
ld (hl),a ;always add null termination after last char
|
||||
jp PROMPT_BEGIN_READ_LOOP
|
||||
|
||||
PROMPT_BEGIN_READ_BACKSPACE:
|
||||
ld a,(var_buffer_len)
|
||||
and a
|
||||
jp z, PROMPT_BEGIN_READ_LOOP ; do not continue if already at char 0
|
||||
dec a ;decrement length
|
||||
ld (var_buffer_len),a ;and store it
|
||||
ld e,a ;load de with decremented value
|
||||
ld d,0
|
||||
ld hl,[var_buffer]
|
||||
add hl,de ;hl now contains pointer to last position in buffer
|
||||
xor a ; store null byte to current location
|
||||
ld (hl),a
|
||||
;call print_delete
|
||||
ld a, 0x08
|
||||
call print_char
|
||||
ld a, 0x20
|
||||
call print_char
|
||||
ld a, 0x08
|
||||
call print_char
|
||||
jp PROMPT_BEGIN_READ_LOOP
|
||||
|
||||
PROMPT_BEGIN_READ_PROCESS:
|
||||
;call print_newLine
|
||||
;ld hl,var_buffer
|
||||
;call print_str
|
||||
|
||||
ld a,([var_buffer])
|
||||
cp '$' ;jump to addr
|
||||
jp z, CMD_EXEC
|
||||
cp '?' ;print hexdump
|
||||
jp z, CMD_VIEW
|
||||
cp '!' ;set memory
|
||||
jp z, CMD_SET
|
||||
cp 'i' ;in IO
|
||||
jp z, CMD_IO_READ
|
||||
cp 'o' ;out IO
|
||||
jp z, CMD_IO_WRITE
|
||||
cp 'd' ;disassemble
|
||||
jp z, CMD_DASM
|
||||
cp 'x' ;start xmodem
|
||||
jp z, xmodem_init
|
||||
|
||||
|
||||
call print_newLine
|
||||
ld hl, [STR_Unknown]
|
||||
call print_str
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
ret
|
||||
|
||||
CMD_EXEC:
|
||||
xor a ;write null byte to buffer pos 0 to prevent reexecute the last command
|
||||
ld (var_buffer),a
|
||||
|
||||
ld hl,var_buffer+1 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+3 ;load 2nd byte
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld h,b
|
||||
ld l,c
|
||||
jp (hl)
|
||||
|
||||
CMD_VIEW:
|
||||
call print_newLine
|
||||
ld hl,var_buffer+1 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+3 ;load 2nd byte
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
|
||||
ld a,(var_buffer+5)
|
||||
cp ' '
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+6 ;load length
|
||||
call DHEX_TO_BYTE
|
||||
push af
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
;draw header
|
||||
ld hl,[STR_HEXDUMP_HEADER]
|
||||
call print_str
|
||||
|
||||
pop af
|
||||
;loading vars done. display results
|
||||
ld h, b ;pointer to current byte
|
||||
ld l, c ;pointer to current byte
|
||||
ld b, a ;bytes counter
|
||||
|
||||
;draw row
|
||||
CMD_VIEW_ROW:
|
||||
call print_newLine
|
||||
ld a,h ;print start
|
||||
call print_a_hex
|
||||
ld a,l
|
||||
call print_a_hex
|
||||
ld a, ' '
|
||||
call print_char
|
||||
ld c, 16 ;column counter
|
||||
CMD_VIEW_ROW_LOOP:
|
||||
ld a,(hl)
|
||||
call print_a_hex
|
||||
|
||||
inc hl ;increment pointer
|
||||
dec b ;decrement byte counter
|
||||
dec c ;decrement column counter
|
||||
|
||||
ld a,b
|
||||
and a
|
||||
jp z,CMD_VIEW_END ;if byte counter = 0 -> end reached
|
||||
|
||||
ld a,c
|
||||
and a
|
||||
jp z,CMD_VIEW_ROW ;else if column counter = 0 -> 16 chars printed. next row
|
||||
|
||||
ld a, ' '
|
||||
call print_char
|
||||
jp CMD_VIEW_ROW_LOOP ;else
|
||||
CMD_VIEW_END:
|
||||
call print_newLine
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
CMD_SET:
|
||||
ld hl,var_buffer+1 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+3 ;load 2nd byte
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
;bc now contains the start address
|
||||
|
||||
ld hl,var_buffer+5
|
||||
CMD_SET_LOOP:
|
||||
ld a,(hl)
|
||||
cp 0 ;if 0 then end
|
||||
jp z, CMD_SET_END
|
||||
cp ' '
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
inc hl ;next byte
|
||||
call DHEX_TO_BYTE
|
||||
ld (bc),a ;load byte to
|
||||
ld a,e
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
inc bc
|
||||
inc hl
|
||||
inc hl
|
||||
jp CMD_SET_LOOP
|
||||
CMD_SET_END:
|
||||
call print_newLine
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
|
||||
CMD_IO_WRITE:
|
||||
ld hl,var_buffer+1 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld a,(var_buffer+3)
|
||||
cp ' '
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+4 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
push af
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
pop af
|
||||
out (c),a
|
||||
call print_newLine
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
CMD_IO_READ:
|
||||
ld hl,var_buffer+1 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
in a,(c)
|
||||
push af
|
||||
call print_newLine
|
||||
pop af
|
||||
call print_a_hex
|
||||
call print_newLine
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
CMD_DASM:
|
||||
call print_newLine
|
||||
ld hl,var_buffer+1 ;load 1st byte
|
||||
call DHEX_TO_BYTE
|
||||
ld b,a ;store result in b
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+3 ;load 2nd byte
|
||||
call DHEX_TO_BYTE
|
||||
ld c,a
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
|
||||
ld a,(var_buffer+5)
|
||||
cp ' '
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld hl,var_buffer+6 ;load length
|
||||
call DHEX_TO_BYTE
|
||||
push af
|
||||
ld a,e ;check for error
|
||||
and a
|
||||
jp nz, CMD_SYNTAX_ERROR
|
||||
|
||||
ld h,b
|
||||
ld l,c
|
||||
|
||||
pop af ;restore af
|
||||
ld b,a
|
||||
|
||||
call disassemble
|
||||
|
||||
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
CMD_SYNTAX_ERROR:
|
||||
call print_newLine
|
||||
ld hl, [STR_SyntaxError]
|
||||
call print_str
|
||||
jp PROMPT_BEGIN
|
||||
|
||||
|
||||
|
||||
Includes:
|
||||
;.include "bootldr.s"
|
||||
|
||||
;================================================================
|
||||
; Includes (2/2)
|
||||
;================================================================
|
||||
.include "console.s"
|
||||
.include "conversions.s"
|
||||
;.include "basic.s"
|
||||
.include "disassembler.s"
|
||||
.include "disassembler_table.s"
|
||||
.include "rst.s"
|
||||
.include "beep.s"
|
||||
.include "xmodem.s"
|
||||
.include "kdrv_ide8255.s" ;include ide interface driver.
|
||||
.include "kdrv_ideif.s" ;include ide driver.
|
||||
.include "prettydump.s" ;include monitor symbols.
|
||||
.include "kdrv_siic.s"
|
||||
.include "prettydump.s"
|
||||
.include "command.s"
|
||||
.include "cmd_mem.s"
|
||||
.include "cmd_io.s"
|
||||
.include "cmd_date.s"
|
||||
.include "cmd_disk.s"
|
||||
.include "post.s"
|
||||
|
||||
;================================================================
|
||||
; Strings
|
||||
;================================================================
|
||||
STR_Banner_Start:
|
||||
db "Z8C Monitor V2 by Dennis Gunia (2022)",0
|
||||
STR_SyntaxError:
|
||||
db "syn?",0
|
||||
STR_Unknown:
|
||||
db "cmd?",0
|
||||
STR_HEXDUMP_HEADER:
|
||||
db 'BASE 0 1 2 3 4 5 6 7 8 9 A B C D E F',0
|
||||
|
||||
|
||||
|
||||
;.include "debug.s"
|
||||
db "Z8C Monitor V2.1 by Dennis Gunia (2022-2024)",0
|
||||
|
||||
Binary file not shown.
@@ -1,320 +1,541 @@
|
||||
:0700000031FFFFF3C35000C4
|
||||
:03000800C3C40E60
|
||||
:03001000C3C80E54
|
||||
:03001800C3D40E40
|
||||
:03000000C35000EA
|
||||
:03000800C3040D21
|
||||
:03001000C3080D15
|
||||
:03001800C3140D01
|
||||
:1000440000000000000000000000000000000000AC
|
||||
:10005400000000000000000000000000000000009C
|
||||
:0B006400000000000000000000000091
|
||||
:100050003ECFD3F63EF5D3F6AF3204403205403EF4
|
||||
:1000600020320640CD7E02214400116E0001004086
|
||||
:100070007E022303E5ED52E1C27000CDCA02216089
|
||||
:1000800013CDBF02CDF411114000CDD70ECD990094
|
||||
:1000900076477AD34078D341C9CDD1023E3ECDB721
|
||||
:1000A00002AF320040CDF802CAA500F5F1FE0DCA3C
|
||||
:1000B000FC00FE0ACAA500FE08CAD600F5212940A8
|
||||
:1000C00016003A00405F193C320040F177CDB7028C
|
||||
:1000D00023AF77C3A5003A0040A7CAA5003D320070
|
||||
:1000E000405F160021294019AF773E08CDB7023E88
|
||||
:1000F00020CDB7023E08CDB702C3A5003A2940FE85
|
||||
:1001000024CA2F01FE3FCA4E01FE21CAB801FE6972
|
||||
:10011000CA1D02FE6FCAF401FE64CA3902FE78CA23
|
||||
:10012000060FCDD102218B13CDBF02C39900C9AFF9
|
||||
:10013000322940212A40CD2403477BA7C2720221E5
|
||||
:100140002C40CD24034F7BA7C272026069E9CDD158
|
||||
:1001500002212A40CD2403477BA7C27202212C40F2
|
||||
:10016000CD24034F7BA7C272023A2E40FE20C272FA
|
||||
:1001700002212F40CD2403F57BA7C27202219013E8
|
||||
:10018000CDBF02F1606947CDD1027CCDE7027DCDC4
|
||||
:10019000E7023E20CDB7020E107ECDE70223050D0B
|
||||
:1001A00078A7CAB20179A7CA87013E20CDB702C39A
|
||||
:1001B0009901CDD102C39900212A40CD2403477B68
|
||||
:1001C000A7C27202212C40CD24034F7BA7C272022A
|
||||
:1001D000212E407EFE00CAEE01FE20C2720223CD17
|
||||
:1001E0002403027BA7C27202032323C3D301CDD110
|
||||
:1001F00002C39900212A40CD24034F7BA7C272027B
|
||||
:100200003A2C40FE20C27202212D40CD2403F57B02
|
||||
:10021000A7C27202F1ED79CDD102C39900212A4023
|
||||
:10022000CD24034F7BA7C27202ED78F5CDD102F148
|
||||
:10023000CDE702CDD102C39900CDD102212A40CD14
|
||||
:100240002403477BA7C27202212C40CD24034F7B9D
|
||||
:10025000A7C272023A2E40FE20C27202212F40CD68
|
||||
:100260002403F57BA7C272026069F147CD7503C311
|
||||
:100270009900CDD102218613CDBF02C399003E4F14
|
||||
:10028000D304DB01D3043E30D3093E18D3093E0426
|
||||
:10029000D3093E44D3093E05D3093EE8D3093E01C4
|
||||
:1002A000D3093E04D3093E02D3093E00D3093E03DD
|
||||
:1002B000D3093EC1D309C9F5D308CDDC02F1C97E0B
|
||||
:1002C000B72806CDB7022318F6C9210A03CDBF020D
|
||||
:1002D000C93E0ACDB7023E0DCDB702C9973CD3093E
|
||||
:1002E000DB09CB4728F6C9F5C5D5CD5B0378CDB77B
|
||||
:1002F0000279CDB702D1C1F1CD1B0300AFD309DB29
|
||||
:1003000009E601CD1203C8DB08C91B5B324A1B5B3F
|
||||
:1003100048003E05D3093E68D309C93E05D3093ECE
|
||||
:10032000EAD309C9E57ECD44033815CB27CB27CBCB
|
||||
:1003300027CB2757237ECD44033805B2E11E00C9E1
|
||||
:100340001EFFE1C9D630EA5903FE0A3805D607EA8E
|
||||
:100350005903FE103003E60FC937C9F51F1F1F1FD1
|
||||
:10036000CD6A0347F1CD6A034FC9E60FC630FE3AA6
|
||||
:10037000D8C607C9C978321A412210417E321441C9
|
||||
:10038000237E3215412BCD690478B1CA4B04ED436D
|
||||
:100390001241030303030A321641030A5F030A579B
|
||||
:1003A000ED531741030A3219412A1041CDB1043AE5
|
||||
:1003B0001641472A10417ECDE7022310F93E68CD51
|
||||
:1003C000B7023A1641473E0690473E20CDB7023E5F
|
||||
:1003D00020CDB70210F43E20CDB702E52A1741CD5B
|
||||
:1003E000BF023A1941B7CA48042A1241010800095C
|
||||
:1003F0003A1941477EFE01CCD704FE02CCFE04FE32
|
||||
:1004000003CC1B05FE04CC5705FE05CC6D05FE068E
|
||||
:10041000CC7A05FE07CC9405FE08CCA105FE09CCDC
|
||||
:10042000B605FE10CCCB05FE11CCDB05FE12CCE3ED
|
||||
:1004300005FE13CC1B06FE0ACCAD05FE80CC3A06A9
|
||||
:10044000FE81CC31062310ACE11810CDB1047ECD75
|
||||
:10045000C90423E521860ECDBF02E1CDD1023A1AAF
|
||||
:10046000413D321A41C27903C9E52184063A14415B
|
||||
:100470004F7EFEFFCAAB04F523462B79A04FF1B99E
|
||||
:10048000280B06000E07097E4F092318E023234E90
|
||||
:10049000233A154146A0B92B2B2B280B06000E073B
|
||||
:1004A000097E4F092318C6444DE1C906000E00E13C
|
||||
:1004B000C93E24CDB7027CCDE7027DCDE7023E6880
|
||||
:1004C000CDB7023E20CDB702C9CDE7023E68CDB719
|
||||
:1004D000023E20CDB702C9E5ED5B1041131A6F1340
|
||||
:1004E0001A673E24CDB7027CCDE7027DCDE7023E00
|
||||
:1004F00068CDB7023E20CDB702CD7506E1C9C5ED86
|
||||
:100500005B10411A1F1FE60EE5218F0E06004F09F2
|
||||
:10051000CDBF023E20CDB702E1C1C9ED5B10411352
|
||||
:100520001AF5E680C23C053E24CDB7023E2BCDB77E
|
||||
:1005300002F1CDE7023E68CDB70218173E24CDB7D1
|
||||
:10054000023E2DCDB702F1ED44CDE7023E68CDB7B6
|
||||
:10055000021800CD7506C9ED5B1041131AFE4D2837
|
||||
:10056000063E4ECDB702C93E49CDB702C9C5ED5BC7
|
||||
:1005700010411AE638CDC904C1C9C5ED5B10411A56
|
||||
:100580001F1F1FE607CD50063E20CDB7023E2CCDE3
|
||||
:10059000B702C1C9C5ED5B10411AE607CD5006C1CF
|
||||
:1005A000C9C5ED5B1041131ACDC904C1C9E5ED5BA6
|
||||
:1005B000104113131806E5ED5B1041131A6F131A5F
|
||||
:1005C000677CCDE7027DCDE702E1C9C5ED5B104157
|
||||
:1005D0001A1F1F1FE607CD5006C1C9E5C5ED5B1008
|
||||
:1005E000411807E5C5ED5B1041131A1F1F1FE606F2
|
||||
:1005F000F52A10417EFEDD2809FEFD280A219F0E06
|
||||
:10060000180821A70E180321AF0EF106004F097E2E
|
||||
:10061000CDB702237ECDB702C1E1C9E5C5ED5B10C0
|
||||
:10062000411A1F1F1FE606F52A10417E21B70E183A
|
||||
:10063000D9E5C52A174106021807E5C52A1741065C
|
||||
:10064000017E23A720FB05C24106CDBF02C1E1C93F
|
||||
:10065000E5FE062811FE072815219F0E06004F090A
|
||||
:100660007ECDB702E1C921BF0ECDBF02E1C93E4137
|
||||
:10067000CDB702E1C978FE01C83E20CDB7023E2CBD
|
||||
:10068000CDB702C900FF000001DC0A0027FF00000F
|
||||
:1006900001A70B002FFF000001AB0B00EDFF44FF93
|
||||
:1006A00002AF0B003FFF000001B30B0037FF00005B
|
||||
:1006B00001B70B0076FF000001BB0B00F3FF000049
|
||||
:1006C00001C00B00FBFF000001C30B00EDFF46FF64
|
||||
:1006D00002C60B00EDFF56FF02CB0B00EDFF5EFFE5
|
||||
:1006E00002D00B00EBFF000001D50B0008FF00005B
|
||||
:1006F00001DF0B00D9FF000001EC0B00E3FF00005D
|
||||
:1007000001F00B00DDFFE3FF02FC0B00FDFFE3FF48
|
||||
:1007100002080C00EDFFA0FF02140C00EDFFB0FF7B
|
||||
:1007200002180C00EDFFA8FF021D0C00EDFFB8FF42
|
||||
:1007300002210C00EDFFA1FF02260C00EDFFB1FF2E
|
||||
:10074000022A0C00EDFFA9FF022F0C00EDFFB9FFFC
|
||||
:1007500002330C00C3FF000003E00A0101C2C7001E
|
||||
:100760000003E00A0302800118FF000002E70A010B
|
||||
:100770000338FF000002EB0A010330FF000002F221
|
||||
:100780000A010328FF000002FA0A010320FF00000B
|
||||
:1007900002010B0103E9FF000002090B00DDFFE984
|
||||
:1007A000FF02120B00FDFFE9FF021B0B0010FF0010
|
||||
:1007B0000002240B0103CDFF0000032A0B0101C43A
|
||||
:1007C000C70000032A0B020201C9FF000001300B21
|
||||
:1007D00000C0C7000001300B0102EDFF4DFF0235E4
|
||||
:1007E0000B00EDFF45FF023A0B00C7C70000013FB9
|
||||
:1007F0000B01050AFF000001440B001AFF00000175
|
||||
:100800004E0B003AFF000003580B02098002FF0064
|
||||
:100810000001620B0012FF0000016D0B0032FF00AF
|
||||
:100820000003780B020980EDFF57FF02870B00EDF4
|
||||
:10083000FF5FFF028F0B00EDFF47FF02970B00EDFC
|
||||
:10084000FF4FFF029F0B0006C7000002830B02064A
|
||||
:100850000840C0000001830B02060780F800000179
|
||||
:10086000380C0107C6FF000002380C0108DDFF86C6
|
||||
:10087000FF03400C020880FDFF86FF034F0C0208B7
|
||||
:1008800080C8F80000015E0C01078EF80000025ECF
|
||||
:100890000C0108DDFF8EFF03660C020880FDFF8E51
|
||||
:1008A000FF03750C02088090F8000001840C01071A
|
||||
:1008B000D6FF000002840C0108DDFF96FF03890CBF
|
||||
:1008C000020880FDFF96FF03950C02088094F80053
|
||||
:1008D0000001A10C0107DEFF000002A10C0108DDF0
|
||||
:1008E000FF9EFF03A90C020880FDFF9EFF03B70CCB
|
||||
:1008F000020880A0F8000001C50C0107E6FF000017
|
||||
:1009000002C50C0108DDFFA6FF03CA0C020880FD2A
|
||||
:10091000FFA6FF03D60C020880B0F8000001E20C2D
|
||||
:100920000107F6FF000002E20C0108DDFFB6FF033D
|
||||
:10093000E60C020880FDFFB6FF03F10C020880A858
|
||||
:10094000F8000001FC0C0107EEFF000002FC0C01A6
|
||||
:1009500008DDFFAEFF03010D020880FDFFAEFF03BF
|
||||
:100960000D0D020880B8F8000001190D0107FEFF07
|
||||
:10097000000002190D0108DDFFBEFF031D0D020876
|
||||
:1009800080FDFFBEFF03280D02088004C7000001A0
|
||||
:10099000330D0110DDFF34FF03380D020880FDFF29
|
||||
:1009A00034FF03440D02088005C7000001500D010B
|
||||
:1009B00010DDFF35FF03550D020880FDFF35FF03F5
|
||||
:1009C000610D02088009CF0000016D0D0111EDFFDE
|
||||
:1009D0004ACF02760D0112EDFF42CF027F0D0112C8
|
||||
:1009E000DDFF09CF02880D0112FDFF09CF02910D35
|
||||
:1009F000011203CF0000019A0D0111DDFF23FF0258
|
||||
:100A00009F0D00FDFF23FF02A80D000BCF0000018A
|
||||
:100A1000B10D0111DDFF2BFF02B60D00FDFF2BFF15
|
||||
:100A200002BF0D0001CF000003C80D03118009DDD6
|
||||
:100A3000FF21FF04CF0D010AFDFF21FF04D70D01A7
|
||||
:100A40000A2AFF000003DF0D020980EDFF4BCF04EF
|
||||
:100A5000EB0D0412800A81DDFF2AFF04F60D010A66
|
||||
:100A6000FDFF2AFF04020E010A22FF0000030E0E02
|
||||
:100A7000020A80EDFF43CF041A0E030A8012DDFF45
|
||||
:100A800022CF04240E020A80FDFF22CF04300E0282
|
||||
:100A90000A80F9FF0000013C0E00DDFFF9FF02466D
|
||||
:100AA0000E00FDFFF9FF02500E00C5CF0000015AF5
|
||||
:100AB0000E0113DDFFE5FF02600E00FDFFE5FF0202
|
||||
:100AC000680E00C1CF000001700E0113DDFFE1FFD1
|
||||
:100AD00002760E00FDFFE1FF027E0E004E4F500039
|
||||
:100AE0004A5020002C20004A5220004A5220432C19
|
||||
:100AF00020004A52204E432C20004A52205A2C20DB
|
||||
:100B0000004A52204E5A2C20004A502028484C2996
|
||||
:100B100020004A50202849582920004A50202849BE
|
||||
:100B200059292000444A4E5A200043414C4C200091
|
||||
:100B3000524554200052455449005245544E0052EB
|
||||
:100B4000535420004C4420412C28424329004C445B
|
||||
:100B500020412C28444529004C4420412C28006881
|
||||
:100B600029004C4420284243292C2041004C442099
|
||||
:100B7000284445292C2041004C4420280068292C79
|
||||
:100B80002041004C4420004C4420412C2049004C82
|
||||
:100B90004420412C2052004C4420492C2041004C40
|
||||
:100BA0004420522C2041004441410043504C004E0F
|
||||
:100BB000454700434346005343460048414C5400D8
|
||||
:100BC000444900454900494D203000494D2031003D
|
||||
:100BD000494D20320045582044452C20484C0045C2
|
||||
:100BE000582041462C204146E280B200455858002A
|
||||
:100BF000455820285350292C20484C00455820287F
|
||||
:100C00005350292C20495800455820285350292C4E
|
||||
:100C1000204959004C4449004C444952004C44443A
|
||||
:100C2000004C444452004350490043504952004351
|
||||
:100C3000504400435044520041444420412C200081
|
||||
:100C400041444420412C202849582B006829004168
|
||||
:100C5000444420412C202849592B00682900414454
|
||||
:100C60004320412C200041444320412C2028495856
|
||||
:100C70002B0068290041444320412C202849592B4E
|
||||
:100C800000682900535542200053554220284958F6
|
||||
:100C90002B00682900535542202849592B00682908
|
||||
:100CA0000053424320412C200053424320412C2832
|
||||
:100CB00049582B0068290053424320412C284959A8
|
||||
:100CC0002B00682900414E442000414E4420284911
|
||||
:100CD000582B00682900414E44202849592B0068B0
|
||||
:100CE00029004F5220004F52202849582B006829D4
|
||||
:100CF000004F52202849592B00682900584F522094
|
||||
:100D000000584F52202849582B00682900584F524C
|
||||
:100D1000202849592B0068290043502000435020C7
|
||||
:100D20002849582B006829004350202849592B0096
|
||||
:100D3000682900494E432000494E43202849582B3A
|
||||
:100D400000682900494E43202849592B0068290092
|
||||
:100D50004445432000444543202849582B00682936
|
||||
:100D600000444543202849592B0068290041444448
|
||||
:100D700020484C2C200041444320484C2C20005358
|
||||
:100D8000424320484C2C20004144442049582C2008
|
||||
:100D9000004144442049592C2000494E4320004939
|
||||
:100DA0004E432049582C2000494E432049592C20BD
|
||||
:100DB0000044454320004445432049582C2000442A
|
||||
:100DC00045432049592C20004C4420002C20004C45
|
||||
:100DD000442049582C20004C442049592C20004CD8
|
||||
:100DE0004420484C2C2028006829004C4420002C2A
|
||||
:100DF0002028006829004C442049582C20280068ED
|
||||
:100E000029004C442049592C2028006829004C44D2
|
||||
:100E100020280068292C20484C004C4420280068D9
|
||||
:100E2000292C20004C4420280068292C20495800F7
|
||||
:100E30004C4420280068292C204959004C44205358
|
||||
:100E4000502C20484C004C442053502C2049580032
|
||||
:100E50004C442053502C20495900505553482000F1
|
||||
:100E6000505553482049580050555348204959007F
|
||||
:100E7000505553482000505553482049580050556C
|
||||
:100E80005348204959002E3F2E0020202020004E9C
|
||||
:100E90005A5A004E434300504F504550004D0042B7
|
||||
:100EA000434445484C5350424344454958535042AB
|
||||
:100EB0004344454959535042434445484C414628D0
|
||||
:100EC000484C2900CDB702C9C5D5E5CDF802F5F1EA
|
||||
:100ED000E1D1C1C93E00C9F5C5D53E08D3F401280A
|
||||
:100EE00000CDF70E3E00D3F4012400CDF70E1B7A9F
|
||||
:100EF000B320E7D1C1F1C9ED44ED44ED44ED440B1D
|
||||
:100F000079B0C2F70EC9CD12033EA7D3063E0ED369
|
||||
:100F1000063E00D30421E60F22044221000022FCF9
|
||||
:100F20004022FE403E42ED47ED5E216110CDBF0202
|
||||
:100F3000FBCD97103E43CD3710CD0A10DA340FFEAB
|
||||
:100F400004CA9D0FFE18CA340FFE01CA510FC3A573
|
||||
:100F50000FCD0A10DA89104732FB40CD0A10DA892A
|
||||
:100F60001080FEFFC2A50F3D781FE67F67783D0F1A
|
||||
:100F7000E6806F1100441906800E00E5CD0A10DAF4
|
||||
:100F80008910E177230C05C27B0FCD0A10DA891096
|
||||
:100F9000570CCD0A10DA89105F0CC37B103E06CDCA
|
||||
:100FA0003710C3DF0F3E18CD37103E18CD37103E37
|
||||
:100FB00018CD37103E18CD37103E18CD37103E18DB
|
||||
:100FC000CD37103E18CD37103E18CD37103E18CD16
|
||||
:100FD00037103E18CD37103E18214810CDBF02F310
|
||||
:100FE000CDD102C39900F308D92AFC402322FC404A
|
||||
:100FF000110404ED52C2051021000022FC402AFE1B
|
||||
:10100000402322FE4008D9FBED4DF321000022FCD5
|
||||
:101010004022FE40FBCD1B032AFE407DFE03CA3565
|
||||
:1010200010AFD309DB09E601CA1810DB08F5CD12B1
|
||||
:1010300003F1373FC937C9D308CD3D10C9973CD319
|
||||
:1010400009DB09CB4728F6C94572726F723A2075E1
|
||||
:101050006E657870656374656420627974650D0AE5
|
||||
:1010600000417761697420786D6F64656D20636FEE
|
||||
:101070006E6E656374696F6E0D0A003E06CD3710A3
|
||||
:10108000CD0A10DA7B10C33F0F3E15CD3710CD0AC5
|
||||
:1010900010DA8910C33F0F21FF000101000000009A
|
||||
:1010A00000ED42C818F73E80D3333E80D33200AF04
|
||||
:1010B000D332C9F53E80D333F1D33078E61FD33233
|
||||
:1010C000F620D3320078E61FD33200AFD332C93EC8
|
||||
:1010D00092D33378E61FD332F640D33200F5F1F5E0
|
||||
:1010E000F1F5F1F5F1DB30F5AFD332F1C90EFF06C2
|
||||
:1010F0000FCDCF10CB47C26E11CB5F28F23E92D3FB
|
||||
:10110000333E08D332F640D332000000DB31772380
|
||||
:10111000DB30772379B7CA1C110D18D3C90EFF1124
|
||||
:1011200000101B7AB3CA5811060FCDCF10CB47C29F
|
||||
:101130006E11CB5F28EC1100083E92D3333E08D3EA
|
||||
:1011400032F640D332000000DB307723DB317723E7
|
||||
:1011500079B7CA1C110D18CA21D011CDBF0279CDA3
|
||||
:10116000E7023E0ACDB7023E0DCDB702C9C921A1A3
|
||||
:1011700011CDBF02060FCDCF10CDE70221BE11CD9C
|
||||
:10118000BF023A0050CDE70221C711CDBF020609C8
|
||||
:10119000CDCF10CDE7023E0ACDB7023E0DCDB7024E
|
||||
:1011A000C90D0A4469736B20492F4F206572726F15
|
||||
:1011B000722E205374617475733A20307800204485
|
||||
:1011C00065763A20307800204572723A20307800F7
|
||||
:1011D0000D0A4469736B20492F4F206572726F723C
|
||||
:1011E0002E20446174612074696D656F75742040B0
|
||||
:1011F00020307800AF320050320150F3CDA61021DC
|
||||
:101200008912CDBF0211FF1F060FCDCF10B7280BDB
|
||||
:10121000CB77200E1B7AB3280218ED21B312CDBF75
|
||||
:1012200002C9219D12CDBF02060F3EECCDB31021A5
|
||||
:101230004150CDED102155500614CD581321AA125E
|
||||
:10124000CDBF022177500628CD58133E0ACDB702F4
|
||||
:101250003E0DCDB702C9060ACDB3107EE60FF6E00B
|
||||
:10126000060ECDB310237E060DCDB310237E060CE3
|
||||
:10127000CDB310237E060BCDB310233E20060FCD39
|
||||
:10128000B310214150CD1D11C90D0A446574656329
|
||||
:1012900074696E67206472697665732000666F7585
|
||||
:1012A0006E64210D0A49443A20002020446573638E
|
||||
:1012B0003A20006E6F2064726976650D0A00E521A0
|
||||
:1012C0001913CDBF02E178B7CA1813050E107CCDF3
|
||||
:1012D000E7027DCDE7023E20CDB7027ECDE7023E9C
|
||||
:1012E00020CDB702230D20F3C5E506000E10ED4218
|
||||
:1012F0007E23FE20DA0113FE7FD20113CDB7021840
|
||||
:10130000053E2ECDB7020DC2F012E1C13E0ACDB7A7
|
||||
:10131000023E0DCDB70218AEC90D0A424153452019
|
||||
:10132000302020312020322020332020342020354E
|
||||
:10133000202036202037202038202039202041202E
|
||||
:1013400020422020432020442020452020462020E9
|
||||
:1013500041534349490D0A007E23CDB70210F9C914
|
||||
:101360005A3843204D6F6E69746F72205632206276
|
||||
:10137000792044656E6E69732047756E6961202817
|
||||
:1013800032303232290073796E3F00636D643F0062
|
||||
:10139000424153452030202031202032202033206C
|
||||
:1013A00020342020352020362020372020382020CF
|
||||
:1013B0003920204120204220204320204420204565
|
||||
:0413C00020204600A3
|
||||
:10006400000000000000000000000000000000008C
|
||||
:10007400000000000000000000000000000000007C
|
||||
:10008400000000000000000000000000000000006C
|
||||
:10009400000000000000000000000000000000005C
|
||||
:1000A400000000000000000000000000000000004C
|
||||
:1000B400000000000000000000000000000000003C
|
||||
:1000C400000000000000000000000000000000002C
|
||||
:1000D400000000000000000000000000000000001C
|
||||
:1000E400000000000000000000000000000000000C
|
||||
:1000F40000000000000000000000000000000000FC
|
||||
:1001040000000000000000000000000000000000EB
|
||||
:1001140000000000000000000000000000000000DB
|
||||
:1001240000000000000000000000000000000000CB
|
||||
:1001340000000000000000000000000000000000BB
|
||||
:1001440000000000000000000000000000000000AB
|
||||
:10015400000000000000000000000000000000009B
|
||||
:10016400000000000000000000000000000000008B
|
||||
:10017400000000000000000000000000000000007B
|
||||
:10018400000000000000000000000000000000006B
|
||||
:10019400000000000000000000000000000000005B
|
||||
:1001A400000000000000000000000000000000004B
|
||||
:1001B400000000000000000000000000000000003B
|
||||
:1001C400000000000000000000000000000000002B
|
||||
:1001D400000000000000000000000000000000001B
|
||||
:1001E400000000000000000000000000000000000B
|
||||
:1001F40000000000000000000000000000000000FB
|
||||
:1002040000000000000000000000000000000000EA
|
||||
:1002140000000000000000000000000000000000DA
|
||||
:1002240000000000000000000000000000000000CA
|
||||
:1002340000000000000000000000000000000000BA
|
||||
:1002440000000000000000000000000000000000AA
|
||||
:10025400000000000000000000000000000000009A
|
||||
:10026400000000000000000000000000000000008A
|
||||
:10027400000000000000000000000000000000007A
|
||||
:10028400000000000000000000000000000000006A
|
||||
:10029400000000000000000000000000000000005A
|
||||
:1002A400000000000000000000000000000000004A
|
||||
:1002B400000000000000000000000000000000003A
|
||||
:1002C400000000000000000000000000000000002A
|
||||
:1002D400000000000000000000000000000000001A
|
||||
:1002E400000000000000000000000000000000000A
|
||||
:1002F40000000000000000000000000000000000FA
|
||||
:1003040000000000000000000000000000000000E9
|
||||
:1003140000000000000000000000000000000000D9
|
||||
:1003240000000000000000000000000000000000C9
|
||||
:1003340000000000000000000000000000000000B9
|
||||
:1003440000000000000000000000000000000000A9
|
||||
:100354000000000000000000000000000000000099
|
||||
:0D036400000000000000000000000000008C
|
||||
:1000500031FFFFF33ECFD3F63EF7D3F63E03D3F6A0
|
||||
:100060003204403205403E20320640CD9E002144FD
|
||||
:10007000001170030100407E022303E5ED52E1C24E
|
||||
:100080007700CDEA00216F1ECDDF00CDDD1CCDABAA
|
||||
:1000900014114000014800CD170DC3EB17763E4FF9
|
||||
:1000A000D304DB01D3043E30D3093E18D3093E0408
|
||||
:1000B000D3093E44D3093E05D3093EE8D3093E01A6
|
||||
:1000C000D3093E04D3093E02D3093E00D3093E03BF
|
||||
:1000D000D3093EC1D309C9F5D308CDFC00F1C97ECF
|
||||
:1000E000B72806CDD7002318F6C9214A01CDDF0075
|
||||
:1000F000C93E0ACDD7003E0DCDD700C9973CD309E4
|
||||
:10010000DB09CB4728F6C9F5C5D5CD9B0178CDD7FE
|
||||
:100110000079CDD700D1C1F1C9C630CDD700C9CD46
|
||||
:100120005B0100AFD309DB09E601CD5201C8DB0852
|
||||
:10013000C9CD1F01CA3101CDD700DE30DA4701FE3B
|
||||
:100140000ACA4701E60FC93EFFC91B5B324A1B5B67
|
||||
:1001500048003E05D3093E68D309C93E05D3093E90
|
||||
:10016000EAD309C9E57ECD84013815CB27CB27CB4F
|
||||
:1001700027CB2757237ECD84013805B2E11E00C965
|
||||
:100180001EFFE1C9D630EA9901FE0A3805D607EA12
|
||||
:100190009901FE103003E60FC937C9F51F1F1F1F55
|
||||
:1001A000CDAA0147F1CDAA014FC9E60FC630FE3AEC
|
||||
:1001B000D8C607C9C978321A412210417E3214418B
|
||||
:1001C000237E3215412BCDA90278B1CA8B02ED43B3
|
||||
:1001D0001241030303030A321641030A5F030A575D
|
||||
:1001E000ED531741030A3219412A1041CDF1023A69
|
||||
:1001F0001641472A10417ECD07012310F93E68CDF4
|
||||
:10020000D7003A1641473E0690473E20CDD7003EE4
|
||||
:1002100020CDD70010F43E20CDD700E52A1741CDE0
|
||||
:10022000DF003A1941B7CA88022A124101080009C1
|
||||
:100230003A1941477EFE01CC1703FE02CC3E03FE75
|
||||
:1002400003CC5B03FE04CC9703FE05CCAD03FE0696
|
||||
:10025000CCBA03FE07CCD403FE08CCE103FE09CCE4
|
||||
:10026000F603FE10CC0B04FE11CC1B04FE12CC23B3
|
||||
:1002700004FE13CC5B04FE0ACCED03FE80CC7A04B2
|
||||
:10028000FE81CC71042310ACE11810CDF1027ECDBB
|
||||
:10029000090323E521C60CCDDF00E1CDF1003A1AB8
|
||||
:1002A000413D321A41C2B901C9E521C4043A1441A1
|
||||
:1002B0004F7EFEFFCAEB02F523462B79A04FF1B922
|
||||
:1002C000280B06000E07097E4F092318E023234E52
|
||||
:1002D000233A154146A0B92B2B2B280B06000E07FD
|
||||
:1002E000097E4F092318C6444DE1C906000E00E1FE
|
||||
:1002F000C93E24CDD7007CCD07017DCD07013E68E6
|
||||
:10030000CDD7003E20CDD700C9CD07013E68CDD75F
|
||||
:10031000003E20CDD700C9E5ED5B1041131A6F13E5
|
||||
:100320001A673E24CDD7007CCD07017DCD07013E65
|
||||
:1003300068CDD7003E20CDD700CDB504E1C9C5EDCD
|
||||
:100340005B10411A1F1FE60EE521CF0C06004F0976
|
||||
:10035000CDDF003E20CDD700E1C1C9ED5B104113D8
|
||||
:100360001AF5E680C27C033E24CDD7003E2BCDD7C4
|
||||
:1003700000F1CD07013E68CDD70018173E24CDD738
|
||||
:10038000003E2DCDD700F1ED44CD07013E68CDD71D
|
||||
:10039000001800CDB504C9ED5B1041131AFE4D28BD
|
||||
:1003A000063E4ECDD700C93E49CDD700C9C5ED5B4D
|
||||
:1003B00010411AE638CD0903C1C9C5ED5B10411AD9
|
||||
:1003C0001F1F1FE607CD90043E20CDD7003E2CCD49
|
||||
:1003D000D700C1C9C5ED5B10411AE607CD9004C135
|
||||
:1003E000C9C5ED5B1041131ACD0903C1C9E5ED5B29
|
||||
:1003F000104113131806E5ED5B1041131A6F131A21
|
||||
:10040000677CCD07017DCD0701E1C9C5ED5B1041DA
|
||||
:100410001A1F1F1FE607CD9004C1C9E5C5ED5B108B
|
||||
:10042000411807E5C5ED5B1041131A1F1F1FE606B3
|
||||
:10043000F52A10417EFEDD2809FEFD280A21DF0C89
|
||||
:10044000180821E70C180321EF0CF106004F097E74
|
||||
:10045000CDD700237ECDD700C1E1C9E5C5ED5B1046
|
||||
:10046000411A1F1F1FE606F52A10417E21F70C18BE
|
||||
:10047000D9E5C52A174106021807E5C52A1741061E
|
||||
:10048000017E23A720FB05C28104CDDF00C1E1C9A5
|
||||
:10049000E5FE062811FE07281521DF0C06004F098E
|
||||
:1004A0007ECDD700E1C921FF0CCDDF00E1C93E417F
|
||||
:1004B000CDD700E1C978FE01C83E20CDD7003E2C43
|
||||
:1004C000CDD700C900FF0000011C090027FF000074
|
||||
:1004D00001E709002FFF000001EB0900EDFF44FFD9
|
||||
:1004E00002EF09003FFF000001F3090037FF0000A1
|
||||
:1004F00001F7090076FF000001FB0900F3FF00008F
|
||||
:1005000001000A00FBFF000001030A00EDFF46FFA7
|
||||
:1005100002060A00EDFF56FF020B0A00EDFF5EFF28
|
||||
:1005200002100A00EBFF000001150A0008FF00009E
|
||||
:10053000011F0A00D9FF0000012C0A00E3FF0000A0
|
||||
:1005400001300A00DDFFE3FF023C0A00FDFFE3FF8C
|
||||
:1005500002480A00EDFFA0FF02540A00EDFFB0FFC1
|
||||
:1005600002580A00EDFFA8FF025D0A00EDFFB8FF88
|
||||
:1005700002610A00EDFFA1FF02660A00EDFFB1FF74
|
||||
:10058000026A0A00EDFFA9FF026F0A00EDFFB9FF42
|
||||
:1005900002730A00C3FF00000320090101C2C70063
|
||||
:1005A000000320090302800118FF0000022709014F
|
||||
:1005B0000338FF0000022B09010330FF0000023264
|
||||
:1005C00009010328FF0000023A09010320FF00008F
|
||||
:1005D0000241090103E9FF000002490900DDFFE9CA
|
||||
:1005E000FF02520900FDFFE9FF025B090010FF0056
|
||||
:1005F000000264090103CDFF0000036A090101C480
|
||||
:10060000C70000036A09020201C9FF000001700966
|
||||
:1006100000C0C700000170090102EDFF4DFF027527
|
||||
:100620000900EDFF45FF027A0900C7C70000017FFE
|
||||
:100630000901050AFF0000018409001AFF000001FA
|
||||
:100640008E09003AFF000003980902098002FF00AA
|
||||
:100650000001A2090012FF000001AD090032FF00F5
|
||||
:100660000003B809020980EDFF57FF02C70900ED3A
|
||||
:10067000FF5FFF02CF0900EDFF47FF02D70900ED42
|
||||
:10068000FF4FFF02DF090006C7000002C309020690
|
||||
:100690000840C0000001C30902060780F8000001FD
|
||||
:1006A000780A0107C6FF000002780A0108DDFF860C
|
||||
:1006B000FF03800A020880FDFF86FF038F0A0208FD
|
||||
:1006C00080C8F80000019E0A01078EF80000029E13
|
||||
:1006D0000A0108DDFF8EFF03A60A020880FDFF8ED7
|
||||
:1006E000FF03B50A02088090F8000001C40A010760
|
||||
:1006F000D6FF000002C40A0108DDFF96FF03C90A05
|
||||
:10070000020880FDFF96FF03D50A02088094F800D6
|
||||
:100710000001E10A0107DEFF000002E10A0108DD35
|
||||
:10072000FF9EFF03E90A020880FDFF9EFF03F70A10
|
||||
:10073000020880A0F8000001050B0107E6FF000099
|
||||
:1007400002050B0108DDFFA6FF030A0B020880FD6E
|
||||
:10075000FFA6FF03160B020880B0F8000001220B71
|
||||
:100760000107F6FF000002220B0108DDFFB6FF03C0
|
||||
:10077000260B020880FDFFB6FF03310B020880A89C
|
||||
:10078000F80000013C0B0107EEFF0000023C0B01EA
|
||||
:1007900008DDFFAEFF03410B020880FDFFAEFF0343
|
||||
:1007A0004D0B020880B8F8000001590B0107FEFF4D
|
||||
:1007B000000002590B0108DDFFBEFF035D0B0208BC
|
||||
:1007C00080FDFFBEFF03680B02088004C700000124
|
||||
:1007D000730B0110DDFF34FF03780B020880FDFF6F
|
||||
:1007E00034FF03840B02088005C7000001900B0151
|
||||
:1007F00010DDFF35FF03950B020880FDFF35FF0379
|
||||
:10080000A10B02088009CF000001AD0B0111EDFF23
|
||||
:100810004ACF02B60B0112EDFF42CF02BF0B01120D
|
||||
:10082000DDFF09CF02C80B0112FDFF09CF02D10B7A
|
||||
:10083000011203CF000001DA0B0111DDFF23FF02DB
|
||||
:10084000DF0B00FDFF23FF02E80B000BCF000001D0
|
||||
:10085000F10B0111DDFF2BFF02F60B00FDFF2BFF5B
|
||||
:1008600002FF0B0001CF000003080C03118009DD1B
|
||||
:10087000FF21FF040F0C010AFDFF21FF04170C01EB
|
||||
:100880000A2AFF0000031F0C020980EDFF4BCF0472
|
||||
:100890002B0C0412800A81DDFF2AFF04360C010AAA
|
||||
:1008A000FDFF2AFF04420C010A22FF0000034E0C48
|
||||
:1008B000020A80EDFF43CF045A0C030A8012DDFFC9
|
||||
:1008C00022CF04640C020A80FDFF22CF04700C02C8
|
||||
:1008D0000A80F9FF0000017C0C00DDFFF9FF0286B1
|
||||
:1008E0000C00FDFFF9FF02900C00C5CF0000019A3B
|
||||
:1008F0000C0113DDFFE5FF02A00C00FDFFE5FF0288
|
||||
:10090000A80C00C1CF000001B00C0113DDFFE1FF16
|
||||
:1009100002B60C00FDFFE1FF02BE0C004E4F50007E
|
||||
:100920004A5020002C20004A5220004A5220432CDA
|
||||
:1009300020004A52204E432C20004A52205A2C209C
|
||||
:10094000004A52204E5A2C20004A502028484C2958
|
||||
:1009500020004A50202849582920004A5020284980
|
||||
:1009600059292000444A4E5A200043414C4C200053
|
||||
:10097000524554200052455449005245544E0052AD
|
||||
:10098000535420004C4420412C28424329004C441D
|
||||
:1009900020412C28444529004C4420412C28006843
|
||||
:1009A00029004C4420284243292C2041004C44205B
|
||||
:1009B000284445292C2041004C4420280068292C3B
|
||||
:1009C0002041004C4420004C4420412C2049004C44
|
||||
:1009D0004420412C2052004C4420492C2041004C02
|
||||
:1009E0004420522C2041004441410043504C004ED1
|
||||
:1009F000454700434346005343460048414C54009A
|
||||
:100A0000444900454900494D203000494D203100FE
|
||||
:100A1000494D20320045582044452C20484C004583
|
||||
:100A2000582041462C204146E280B20045585800EB
|
||||
:100A3000455820285350292C20484C004558202840
|
||||
:100A40005350292C20495800455820285350292C10
|
||||
:100A5000204959004C4449004C444952004C4444FC
|
||||
:100A6000004C444452004350490043504952004313
|
||||
:100A7000504400435044520041444420412C200043
|
||||
:100A800041444420412C202849582B00682900412A
|
||||
:100A9000444420412C202849592B00682900414416
|
||||
:100AA0004320412C200041444320412C2028495818
|
||||
:100AB0002B0068290041444320412C202849592B10
|
||||
:100AC00000682900535542200053554220284958B8
|
||||
:100AD0002B00682900535542202849592B006829CA
|
||||
:100AE0000053424320412C200053424320412C28F4
|
||||
:100AF00049582B0068290053424320412C2849596A
|
||||
:100B00002B00682900414E442000414E44202849D2
|
||||
:100B1000582B00682900414E44202849592B006871
|
||||
:100B200029004F5220004F52202849582B00682995
|
||||
:100B3000004F52202849592B00682900584F522055
|
||||
:100B400000584F52202849582B00682900584F520E
|
||||
:100B5000202849592B006829004350200043502089
|
||||
:100B60002849582B006829004350202849592B0058
|
||||
:100B7000682900494E432000494E43202849582BFC
|
||||
:100B800000682900494E43202849592B0068290054
|
||||
:100B90004445432000444543202849582B006829F8
|
||||
:100BA00000444543202849592B006829004144440A
|
||||
:100BB00020484C2C200041444320484C2C2000531A
|
||||
:100BC000424320484C2C20004144442049582C20CA
|
||||
:100BD000004144442049592C2000494E43200049FB
|
||||
:100BE0004E432049582C2000494E432049592C207F
|
||||
:100BF0000044454320004445432049582C200044EC
|
||||
:100C000045432049592C20004C4420002C20004C06
|
||||
:100C1000442049582C20004C442049592C20004C99
|
||||
:100C20004420484C2C2028006829004C4420002CEB
|
||||
:100C30002028006829004C442049582C20280068AE
|
||||
:100C400029004C442049592C2028006829004C4494
|
||||
:100C500020280068292C20484C004C44202800689B
|
||||
:100C6000292C20004C4420280068292C20495800B9
|
||||
:100C70004C4420280068292C204959004C4420531A
|
||||
:100C8000502C20484C004C442053502C20495800F4
|
||||
:100C90004C442053502C20495900505553482000B3
|
||||
:100CA0005055534820495800505553482049590041
|
||||
:100CB000505553482000505553482049580050552E
|
||||
:100CC0005348204959002E3F2E0020202020004E5E
|
||||
:100CD0005A5A004E434300504F504550004D004279
|
||||
:100CE000434445484C53504243444549585350426D
|
||||
:100CF0004344454959535042434445484C41462892
|
||||
:100D0000484C2900CDD700C9C5D5E5CD1F01F5F167
|
||||
:100D1000E1D1C1C93E00C9F5D53E08D3F4CD2F0DB0
|
||||
:100D20003E00D3F4CD2F0D1B7AB320EDD1F1C9C510
|
||||
:100D3000ED44ED440B79B0C2300DC1C93E80D333D0
|
||||
:100D40003E80D33200AFD332C9F53E80D333F1D3E6
|
||||
:100D50003078E61FD332F620D3320078E61FD33244
|
||||
:100D600000AFD332C93E92D33378E61FD332F64078
|
||||
:100D7000D33200F5F1F5F1F5F1F5F1DB30F5AFD354
|
||||
:100D800032F1C90EFF060FCD650DCB47C2040ECB65
|
||||
:100D90005F28F23E92D3333E08D332F640D332007E
|
||||
:100DA0000000DB317723DB30772379B7CAB20D0D32
|
||||
:100DB00018D3C90EFF1100101B7AB3CAEE0D060F2F
|
||||
:100DC000CD650DCB47C2040ECB5F28EC1100083E69
|
||||
:100DD00092D3333E08D332F640D332000000DB30EA
|
||||
:100DE0007723DB31772379B7CAB20D0D18CA216694
|
||||
:100DF0000ECDDF0079CD07013E0ACDD7003E0DCDE7
|
||||
:100E0000D700C9C921370ECDDF00060FCD650DCD46
|
||||
:100E1000070121540ECDDF003A2C40CD0701215DA2
|
||||
:100E20000ECDDF000609CD650DCD07013E0ACDD7F9
|
||||
:100E3000003E0DCDD700C90D0A4469736B20492FC0
|
||||
:100E40004F206572726F722E205374617475733AFD
|
||||
:100E500020307800204465763A20307800204572B2
|
||||
:100E6000723A203078000D0A4469736B20492F4F85
|
||||
:100E7000206572726F722E20446174612074696DF6
|
||||
:100E8000656F75742040203078000000000000007D
|
||||
:100E90000000000000000000000000000000000052
|
||||
:100EA0000000000000000000000000000000000042
|
||||
:100EB0000000000000000000000000000000000032
|
||||
:100EC0000000000000000000000000000000000022
|
||||
:100ED0000000000000000000000000000000000012
|
||||
:100EE0000000000000000000000000000000000002
|
||||
:100EF00000000000000000000000000000000000F2
|
||||
:100F000000000000000000000000000000000000E1
|
||||
:100F100000000000000000000000000000000000D1
|
||||
:100F200000000000000000000000000000000000C1
|
||||
:100F300000000000000000000000000000000000B1
|
||||
:100F400000000000000000000000000000000000A1
|
||||
:100F50000000000000000000000000000000000091
|
||||
:100F60000000000000000000000000000000000081
|
||||
:100F70000000000000000000000000000000000071
|
||||
:100F80000000000000000000000000000000000061
|
||||
:100F90000000000000000000000000000000000051
|
||||
:100FA0000000000000000000000000000000000041
|
||||
:100FB0000000000000000000000000000000000031
|
||||
:100FC0000000000000000000000000000000000021
|
||||
:100FD0000000000000000000000000000000000011
|
||||
:100FE0000000000000000000000000000000000001
|
||||
:100FF00000000000000000000000000000000000F1
|
||||
:1010000000000000000000000000000000000000E0
|
||||
:1010100000000000000000000000000000000000D0
|
||||
:1010200000000000000000000000000000000000C0
|
||||
:1010300000000000000000000000000000000000B0
|
||||
:1010400000000000000000000000000000000000A0
|
||||
:101050000000000000000000000000000000000090
|
||||
:101060000000000000000000000000000000000080
|
||||
:101070000000000000000000000000000000000070
|
||||
:101080000000000000000000000000000000000060
|
||||
:101090000000000000000000000000000000000050
|
||||
:1010A0000000000000000000000000000000000040
|
||||
:1010B0000000000000000000000000000000000030
|
||||
:1010C0000000000000000000000000000000000020
|
||||
:1010D0000000000000000000000000000000000010
|
||||
:1010E0000000000000000000000000000000000000
|
||||
:1010F00000000000000000000000000000000000F0
|
||||
:1011000000000000000000000000000000000000DF
|
||||
:1011100000000000000000000000000000000000CF
|
||||
:1011200000000000000000000000000000000000BF
|
||||
:1011300000000000000000000000000000000000AF
|
||||
:10114000000000000000000000000000000000009F
|
||||
:10115000000000000000000000000000000000008F
|
||||
:10116000000000000000000000000000000000007F
|
||||
:10117000000000000000000000000000000000006F
|
||||
:10118000000000000000000000000000000000005F
|
||||
:10119000000000000000000000000000000000004F
|
||||
:1011A000000000000000000000000000000000003F
|
||||
:1011B000000000000000000000000000000000002F
|
||||
:1011C000000000000000000000000000000000001F
|
||||
:1011D000000000000000000000000000000000000F
|
||||
:1011E00000000000000000000000000000000000FF
|
||||
:1011F00000000000000000000000000000000000EF
|
||||
:1012000000000000000000000000000000000000DE
|
||||
:1012100000000000000000000000000000000000CE
|
||||
:1012200000000000000000000000000000000000BE
|
||||
:1012300000000000000000000000000000000000AE
|
||||
:10124000000000000000000000000000000000009E
|
||||
:10125000000000000000000000000000000000008E
|
||||
:10126000000000000000000000000000000000007E
|
||||
:101270000000000000FF000000000000000000303F
|
||||
:101280000077400000FF0000000000000000003078
|
||||
:10129000019F400000FF000000000000000000402F
|
||||
:1012A00000C7400000FF00000000000000000040F8
|
||||
:1012B00001EF400000217512113640014000EDB0F1
|
||||
:1012C0003E00327640AF327740329F4032C74032E4
|
||||
:1012D000EF40C9CDF100211015CDDF0021364006C9
|
||||
:1012E000003A7640B8CAEC123E2018023E2ACDD70A
|
||||
:1012F0000078C645CDD7003E3ACDD7003E20CDD7A9
|
||||
:1013000000E57EB7280EFE01280FFE022810FEFF22
|
||||
:101310002811180F214815180D2153151808215EA2
|
||||
:10132000151803216915CDDF00E1233E30CDD7002C
|
||||
:101330003E78CDD7007ECD07013E20CDD70023E5F6
|
||||
:10134000DDE12323232323232323DD7E03CD070194
|
||||
:10135000DD7E02CD0701DD7E01CD0701DD7E00CD02
|
||||
:1013600007013E20CDD700DD7E07CD0701DD7E06DB
|
||||
:10137000CD0701DD7E05CD0701DD7E04CD07013EF1
|
||||
:1013800020CDD7003E30CDD7003E78CDD7007ECDE2
|
||||
:1013900007013E20CDD700237EE5B7CAA413217CE8
|
||||
:1013A00015C3A713217415CDDF00E123C57E4F239C
|
||||
:1013B0007E4723E56069CDDF00CDF100E1C1232345
|
||||
:1013C0000478FE04C8C3E112CD9714CD3C0D01FF93
|
||||
:1013D0005F060FCD650DB7280BCB77200C1B7AB3BA
|
||||
:1013E000280218EDDD360001C9DD360002060F3E89
|
||||
:1013F000ECCD490D211741CD830D214D41DD7E0CF2
|
||||
:101400005FDD7E0D57012800EDB03E01060ACD4993
|
||||
:101410000D3E01060BCD490D3E00060CCD490D3E9B
|
||||
:1014200000060DCD490D3EA0060ECD490D3E20060D
|
||||
:101430000FCD490D211741CDB30D06040E00FD213E
|
||||
:10144000D542FD7E04B7C25414C34C14111000FDE4
|
||||
:101450001910EFC9FD7E04DD7701FE0E20EEFD7E42
|
||||
:1014600008DD7702FD7E09DD7703FD7E0ADD770466
|
||||
:10147000FD7E0BDD7705DD360000FD7E0CDD770699
|
||||
:10148000FD7E0DDD7707FD7E0EDD7708FD7E0FDD2D
|
||||
:101490007709DD360000C9F5C53A7640070707062B
|
||||
:1014A000004FDD213640DD09C1F1C921F014CDDF47
|
||||
:1014B00000CDB512CDC813210815CDDF00C9060A2D
|
||||
:1014C000CD490D7E060BCD490D237E060CCD490D71
|
||||
:1014D000237E060DCD490D237EE60FF6E0060ECDE8
|
||||
:1014E000490D3E20060FCD490D211741CDB30DC941
|
||||
:1014F0000D0A446574656374696E67206472697669
|
||||
:101500006573202E2E2E2000646F6E65210D0A005B
|
||||
:1015100044525620537461747573202020205479EE
|
||||
:101520007065204C42412020202020204C656E67B1
|
||||
:101530007468202020506F7274204D2F532020207B
|
||||
:10154000204E616D650A0D00417661696C20202096
|
||||
:101550002020004E6F7420466F756E642000556E1B
|
||||
:101560006B6F776E20465320004374726C2E2045BB
|
||||
:10157000727220004D61737465722000536C617645
|
||||
:1015800065202000CDE61579E6FECD7C16CD1C1633
|
||||
:10159000B7C2A8157E23CD7C16CD1C16B7C2A815E0
|
||||
:1015A00010F2CDFB153E00C9CDFB153E01C905CD9E
|
||||
:1015B000E61579F601CD7C16CD1C16B7C2D715CD30
|
||||
:1015C000A2167723CD421610F6CDA2167723CD5F53
|
||||
:1015D00016CDFB153E00C9CDFB153E01C93ECFD34C
|
||||
:1015E000F63EF0D3F6C93ECFD3F63EFCD3F63E022C
|
||||
:1015F000D3F400003E00D3F40000C93ECFD3F63E42
|
||||
:10160000FCD3F63E02D3F400003E03D3F400003EC8
|
||||
:10161000CFD3F600003EF7D3F60000C93ECFD3F695
|
||||
:101620003EFDD3F600003E00D3F40000EE02D3F4FA
|
||||
:1016300000DBF40000F5E6FEEE02D3F40000F1E674
|
||||
:1016400001C93ECFD3F63EFCD3F600003E00D3F4F2
|
||||
:1016500000003E02D3F400003E00D3F40000C93E77
|
||||
:10166000CFD3F63EFCD3F600003E02D3F400003E9A
|
||||
:1016700003D3F400003E02D3F40000C9C54F3ECFAF
|
||||
:10168000D3F63EFCD3F60608CB113E0017D3F40088
|
||||
:1016900000EE02D3F40000EE02D3F4000010E9796A
|
||||
:1016A000C1C9C53ECFD3F63EFDD3F606080E00AF46
|
||||
:1016B000D3F400003E02D3F400DBF4001FCB11AFE3
|
||||
:1016C000D3F4000010E979C1C9E5212417CDDF006A
|
||||
:1016D000E178B7CA2317050E107CCD07017DCD0731
|
||||
:1016E000013E20CDD7007ECD07013E20CDD700237F
|
||||
:1016F0000D20F3C5E506000E10ED427E23FE20DA34
|
||||
:101700000C17FE7FD20C17CDD70018053E2ECDD773
|
||||
:10171000000DC2FB16E1C13E0ACDD7003E0DCDD76C
|
||||
:101720000018AEC90D0A4241534520302020312017
|
||||
:101730002032202033202034202035202036202045
|
||||
:1017400037202038202039202041202042202043EB
|
||||
:101750002020442020452020462020415343494951
|
||||
:101760000D0A007E23CDD70010F9C96461746500AD
|
||||
:10177000901A7365746461746500281C70696E202A
|
||||
:1017800000A91964756D7020001819706F757420A8
|
||||
:1017900000BF1969696E2000401A696F75742000D6
|
||||
:1017A000E01963616C6C2000F818636C72008C1A8D
|
||||
:1017B0006461736D200079196A702000DF187273FC
|
||||
:1017C000740000006C7364736B00A11C73656C641F
|
||||
:1017D000736B2000A51C2400DF186900A9196F0095
|
||||
:1017E000BF19210048193F001819FFCDF1003E3EF6
|
||||
:1017F000CDD700AF320040CD1F01CAF717FE0DCA8A
|
||||
:101800004C18FE0ACAF717FE08CA2618F5212B4005
|
||||
:1018100016003A00405F193C320040F177CDD70006
|
||||
:1018200023AF77C3F7173A0040A7CAF7173D320036
|
||||
:10183000405F1600212B4019AF773E08CDD7003E00
|
||||
:1018400020CDD7003E08CDD700C3F717216B171165
|
||||
:101850002B407EFEFFCA7E181A477EB0CA87181A30
|
||||
:10186000477EA8B7CA6E187EB7CA87181805231313
|
||||
:1018700018E6237EB7C27218232323C34F1821B85A
|
||||
:1018800018CDDF00C3EB17E5C1030A6F030A67CD6C
|
||||
:101890009518C3EB17E921A418CDDF00C921CC1896
|
||||
:1018A000CDDF00C90A0D6E6F7420696D706C656DB7
|
||||
:1018B000656E7465640A0D000A0D696E76616C6967
|
||||
:1018C0006420636F6D6D616E640A0D000A0D696EB0
|
||||
:1018D00076616C69642073796E7461780A0D00D545
|
||||
:1018E000E1CD6401477BA7C29D182323CD64014F3E
|
||||
:1018F0007BA7C29D186069E9D5E1CD6401477BA74C
|
||||
:10190000C29D182323CD64014F7BA7C29D18606937
|
||||
:10191000CD1719CDF100C9E9D5E1CD6401477BA709
|
||||
:10192000C29D182323CD64014F7BA7C29D1823239A
|
||||
:101930007EFE20C29D1823CD6401F57BA7C29D18B1
|
||||
:10194000F1606947CDC916C9D5E1CD6401477BA7D0
|
||||
:10195000C29D182323CD64014F7BA7C29D1823236A
|
||||
:101960007EFE00C8FE20C29D1823CD6401027BA725
|
||||
:10197000C29D18032323C36019D5E1CD6401477BC1
|
||||
:10198000A7C29D182323CD64014F7BA7C29D1823B6
|
||||
:10199000237EFE20C29D1823CD6401F57BA7C29D46
|
||||
:1019A000186069F147CDB501C9D5E1CD64014F7B20
|
||||
:1019B000A7C29D18ED78F5CDF100F1CD0701C9D58D
|
||||
:1019C000E1CD64014F7BA7C29D1823237EFE20C278
|
||||
:1019D0009D1823CD6401F57BA7C29D18F1ED79C94F
|
||||
:1019E000D5E1CD6401320C407BA7C29D18232301B1
|
||||
:1019F0000D40AF320B407EFE00CA121AFE20C29D7F
|
||||
:101A00001823CD640102033A0B403C320B402323E0
|
||||
:101A100018E4210D403A0B40473A0C404FCD841555
|
||||
:101A2000B7C2251AC9212C1ACDDF00C90A0D62756B
|
||||
:101A3000732D6572726F723A206E6F2041434B00B6
|
||||
:101A4000D5E1CD64014F7BA7C29D1823237EFE20E4
|
||||
:101A5000C29D1823CD640147C57BA7C29D18210BE9
|
||||
:101A600040CDAE15C1B7C2251A217F1ACDDF0021A6
|
||||
:101A70000B407ECD07013E20CDD7002310F4C90ACC
|
||||
:101A80000D7265632D627566663A2000CDEA00C965
|
||||
:101A9000CDF100214B1B06010ED0CD8415B7C22518
|
||||
:101AA0001A210B4006080ED0CDAE15B7C2251A3A42
|
||||
:101AB0000D40E6301F1F1F1FCD19013A0D40E60FE4
|
||||
:101AC000CD19013E3ACDD7003A0C40E6701F1F1FDA
|
||||
:101AD0001FCD19013A0C40E60FCD19013E3ACDD782
|
||||
:101AE000003A0B40E6701F1F1F1FCD19013A0B4033
|
||||
:101AF000E60FCD19013E20CDD7003A0F40E6301F4A
|
||||
:101B00001F1F1FCD19013A0F40E60FCD19013E2EC0
|
||||
:101B1000CDD7003A1040E6101F1F1F1FCD19013A04
|
||||
:101B20001040E60FCD19013E2ECDD7003E32CDD765
|
||||
:101B3000003E30CDD7003A1140E6F01F1F1F1FCDE9
|
||||
:101B400019013A1140E60FCD1901C9000A0D456E81
|
||||
:101B50007465722044617465202020202830302D67
|
||||
:101B6000333129203A20000A0D456E746572204DEC
|
||||
:101B70006F6E74682020202830302D313229203AB1
|
||||
:101B800020000A0D456E746572205965617220202F
|
||||
:101B900020202830302D393929203A20000A0D45DF
|
||||
:101BA0006E74657220486F75727320202028303063
|
||||
:101BB0002D323329203A20000A0D456E74657220BB
|
||||
:101BC0004D696E75746573202830302D35392920A4
|
||||
:101BD0003A20000A0D456E746572205365636F6E7E
|
||||
:101BE0006473202830302D353929203A20002069AF
|
||||
:101BF0006E7661696C6420696E7075742E20526512
|
||||
:101C00007472792100E5CDDF00E1CD3101FEFFCA1C
|
||||
:101C10001D1C47CD3101FEFFCA1D1C4FC9E521EE39
|
||||
:101C20001BCDDF00E1C3051CAF320B40214C1BCDA7
|
||||
:101C3000051C78CD9C1CE630B132104021671BCDCD
|
||||
:101C4000051C78CD9C1CE610B132114021821BCDC1
|
||||
:101C5000051C78CD9C1CE6F0B1321240219D1BCDB5
|
||||
:101C6000051C78CD9C1CE630B1320E4021B81BCD4E
|
||||
:101C7000051C78CD9C1CE670B1320D4021D31BCDE4
|
||||
:101C8000051C78CD9C1CE670B1320C40130ED006BA
|
||||
:101C900008210B40CD8415B7C2251AC907070707CD
|
||||
:101CA000C9CDD312C9D5E17EDE453808FE04300423
|
||||
:101CB000CD0080C921C41CCDDF00112000017000BF
|
||||
:101CC000CD170DC90A0D496E76616C696420647286
|
||||
:101CD000697665206C65747465720A0D00CDED1C23
|
||||
:101CE000CD121DCD6A1DCD3D1DCD501DC921E11D5B
|
||||
:101CF000CDDF00DBF6FE00C2061D3E0032094021AA
|
||||
:101D00006A1ECDDF00C93EFF32094021321ECDDF01
|
||||
:101D100000C921FC1DCDDF003EFFD3F80000DBF839
|
||||
:101D2000FEFFC2311D3E00320A40216A1ECDDF0097
|
||||
:101D3000C93EFF320A4021321ECDDF00C921AB1D52
|
||||
:101D4000CDDF00DB30B7C2631D216A1ECDDF00C9C5
|
||||
:101D500021C61DCDDF00DB40B7C2631D216A1ECD49
|
||||
:101D6000DF00C921321ECDDF00C93E06320B402103
|
||||
:101D7000171ECDDF00210B4006010ED0CD8415B714
|
||||
:101D8000C29D1D210B4006010ED0CDAE153A0B4071
|
||||
:101D9000B7CAA41D216A1ECDDF00C3931A21321ECB
|
||||
:101DA000CDDF00C921401ECDDF00C90D0A436865A3
|
||||
:101DB000636B204469736B6374726C2E40303330F4
|
||||
:101DC000682E2E2E20000D0A436865636B2044693F
|
||||
:101DD000736B6374726C2E40303430682E2E2E205C
|
||||
:101DE000000D0A436865636B20494F2D436F6E7485
|
||||
:101DF000726F6C6C6572202E2E2E20000D0A4368C7
|
||||
:101E000065636B20414D44383931312041505520B4
|
||||
:101E100020202E2E2E20000D0A436865636B20447F
|
||||
:101E2000533133303720525443202020202E2E2E81
|
||||
:101E300020006E6F742064657465637465642100AE
|
||||
:101E40006E6F74207365742E20436865636B206227
|
||||
:101E500061747465727920616E642072756E2027DA
|
||||
:101E6000736574646174652721006F6B2120005ACB
|
||||
:101E70003843204D6F6E69746F722056322E3120B8
|
||||
:101E800062792044656E6E69732047756E696120C2
|
||||
:0C1E900028323032322D3230323429003A
|
||||
:00000001FF
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,24 +1,30 @@
|
||||
;This file is generated by the build script.
|
||||
;Do not make any changes here!
|
||||
|
||||
AY0_WRITE_REG equ 0x91
|
||||
A_RTS_OFF equ 0x312
|
||||
A_RTS_ON equ 0x31B
|
||||
CMD_DASM equ 0x239
|
||||
CMD_EXEC equ 0x12F
|
||||
CMD_IO_READ equ 0x21D
|
||||
CMD_IO_WRITE equ 0x1F4
|
||||
CMD_SET equ 0x1B8
|
||||
CMD_SET_END equ 0x1EE
|
||||
CMD_SET_LOOP equ 0x1D3
|
||||
CMD_SYNTAX_ERROR equ 0x272
|
||||
CMD_VIEW equ 0x14E
|
||||
CMD_VIEW_END equ 0x1B2
|
||||
CMD_VIEW_ROW equ 0x187
|
||||
CMD_VIEW_ROW_LOOP equ 0x199
|
||||
CONSOLE_INIT equ 0x27E
|
||||
CONSOLE_INIT_CTC equ 0x27E
|
||||
CONSOLE_INIT_SIO equ 0x286
|
||||
ADDR_RTC equ 0xD0
|
||||
A_RTS_OFF equ 0x152
|
||||
A_RTS_ON equ 0x15B
|
||||
BOOT_PHASE0 equ 0x50
|
||||
BOOT_PHASE1 equ 0x6E
|
||||
BOOT_PHASE1_LOOP equ 0x77
|
||||
BOOT_PHASE2 equ 0x82
|
||||
COMMAND equ 0x17EB
|
||||
COMMAND_BACKSPACE equ 0x1826
|
||||
COMMAND_LUT equ 0x176B
|
||||
COMMAND_PROCESS equ 0x184C
|
||||
COMMAND_PROCESS_FOUND equ 0x1887
|
||||
COMMAND_PROCESS_LOOP equ 0x184F
|
||||
COMMAND_PROCESS_LOOP_STR1 equ 0x1858
|
||||
COMMAND_PROCESS_LOOP_STR2 equ 0x186E
|
||||
COMMAND_PROCESS_NEXT_ENTRY equ 0x1873
|
||||
COMMAND_PROCESS_NEXT_ENTRYI equ 0x1872
|
||||
COMMAND_PROCESS_NOT_FOUND equ 0x187E
|
||||
COMMAND_READ equ 0x17F7
|
||||
CONSOLE_INIT equ 0x9E
|
||||
CONSOLE_INIT_CTC equ 0x9E
|
||||
CONSOLE_INIT_SIO equ 0xA6
|
||||
CS_APU_CTRL equ 0xF9
|
||||
CS_APU_DATA equ 0xF8
|
||||
CS_BANK equ 0x00
|
||||
CS_CTC_0 equ 0x04
|
||||
CS_CTC_1 equ 0x05
|
||||
@@ -37,16 +43,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 0x324
|
||||
DHEX_TO_BYTE_FAILED equ 0x340
|
||||
EXEC_RST_08 equ 0xEC4
|
||||
EXEC_RST_10 equ 0xEC8
|
||||
EXEC_RST_18 equ 0xED4
|
||||
HEX_TO_BIN equ 0x344
|
||||
HEX_TO_BIN_2 equ 0x352
|
||||
HEX_TO_INVALID_2 equ 0x359
|
||||
DHEX_TO_BYTE equ 0x164
|
||||
DHEX_TO_BYTE_FAILED equ 0x180
|
||||
ERR_SYNTAX equ 0x189D
|
||||
EXEC_RST_08 equ 0xD04
|
||||
EXEC_RST_10 equ 0xD08
|
||||
EXEC_RST_18 equ 0xD14
|
||||
HEX_TO_BIN equ 0x184
|
||||
HEX_TO_BIN_2 equ 0x192
|
||||
HEX_TO_INVALID_2 equ 0x199
|
||||
IDE_CMD_IDENT equ 0xEC
|
||||
IDE_CMD_READSEC equ 0x20
|
||||
IDE_DEV_TABLE equ 0x1275
|
||||
IDE_RD equ 0x40
|
||||
IDE_REG_ALTSTS equ 0x16
|
||||
IDE_REG_CMDSTS equ 0x0F
|
||||
@@ -55,12 +63,19 @@ IDE_REG_DRVADDR equ 0x17
|
||||
IDE_REG_ERROR equ 0x09
|
||||
IDE_REG_HCYL equ 0x0D
|
||||
IDE_REG_HEAD equ 0x0E
|
||||
IDE_REG_LBA0 equ 0x0B
|
||||
IDE_REG_LBA1 equ 0x0C
|
||||
IDE_REG_LBA2 equ 0x0D
|
||||
IDE_REG_LBA3 equ 0x0E
|
||||
IDE_REG_LCYL equ 0x0C
|
||||
IDE_REG_SECTOR equ 0x0A
|
||||
IDE_REG_SSECTOR equ 0x0B
|
||||
IDE_RST equ 0x80
|
||||
IDE_WR equ 0x20
|
||||
IIC_CLK equ 0x01
|
||||
IIC_DATA equ 0x02
|
||||
INT_VEC equ 0x1B
|
||||
IN_BUFFER equ 0x402B
|
||||
IO_AY0_ADDR equ 0x40
|
||||
IO_AY0_DATA equ 0x41
|
||||
IO_AY1_ADDR equ 0x42
|
||||
@@ -82,277 +97,360 @@ IO_RTC_SEC1 equ 0x21
|
||||
IO_RTC_WEEK equ 0x2C
|
||||
IO_RTC_YEAR1 equ 0x2B
|
||||
IO_RTC_YERR0 equ 0x2A
|
||||
Includes equ 0x27E
|
||||
MEM_IDE_BASE equ 0x5000
|
||||
MEM_IDE_BUFFER equ 0x5041
|
||||
MEM_IDE_DEVICE equ 0x5000
|
||||
MEM_IDE_PARTITION equ 0x5002
|
||||
MEM_IDE_POINTER equ 0x5006
|
||||
MEM_IDE_STATUS equ 0x5001
|
||||
MEM_INT_VEC_T equ 0x40FE
|
||||
MEM_LOC_LOAD equ 0x4400
|
||||
MEM_VAR_BLOCK equ 0x40FB
|
||||
MEM_VAR_TIMEA equ 0x40FC
|
||||
MEM_VAR_TIMER equ 0x40FE
|
||||
MSG_CLEAR equ 0x30A
|
||||
MSG_ERROR equ 0x1048
|
||||
MSG_START equ 0x1061
|
||||
MEM_IDE_BUFFER equ 0x4117
|
||||
MEM_IDE_DEVICE equ 0x402C
|
||||
MEM_IDE_DEV_TABLE equ 0x4036
|
||||
MEM_IDE_FSBUFFER equ 0x4317
|
||||
MEM_IDE_PARTITION equ 0x402E
|
||||
MEM_IDE_POINTER equ 0x4032
|
||||
MEM_IDE_SELECTED equ 0x4076
|
||||
MEM_IDE_STATUS equ 0x402D
|
||||
MEM_IDE_STRING_0 equ 0x4077
|
||||
MEM_IDE_STRING_1 equ 0x409F
|
||||
MEM_IDE_STRING_2 equ 0x40C7
|
||||
MEM_IDE_STRING_3 equ 0x40EF
|
||||
MSG_CLEAR equ 0x14A
|
||||
NOT_IMPLEMENTED equ 0x1896
|
||||
OP_CALL equ 0x18F8
|
||||
OP_CLR equ 0x1A8C
|
||||
OP_DASM equ 0x1979
|
||||
OP_DUMP equ 0x1918
|
||||
OP_EXEC equ 0x18DF
|
||||
OP_IIC_IN equ 0x1A40
|
||||
OP_IIC_OUT equ 0x19E0
|
||||
OP_IO_IN equ 0x19A9
|
||||
OP_IO_OUT equ 0x19BF
|
||||
OP_LSDSK equ 0x1CA1
|
||||
OP_RTIME equ 0x1A90
|
||||
OP_SELDSK equ 0x1CA5
|
||||
OP_SET equ 0x1948
|
||||
OP_STIME equ 0x1C28
|
||||
POST_CHECK_APU equ 0x1D12
|
||||
POST_CHECK_IDE_30 equ 0x1D3D
|
||||
POST_CHECK_IDE_40 equ 0x1D50
|
||||
POST_CHECK_PIO equ 0x1CED
|
||||
POST_START equ 0x1CDD
|
||||
POST_TEST_RTC equ 0x1D6A
|
||||
PRG_RAM_START equ 0x4110
|
||||
PRG_RAM_TOP equ 0xFF00
|
||||
PROG_MEM_START equ 0x4000
|
||||
PROG_ROM_START equ 0x100
|
||||
PROMPT_BEGIN equ 0x99
|
||||
PROMPT_BEGIN_READ_BACKSPACE equ 0xD6
|
||||
PROMPT_BEGIN_READ_LOOP equ 0xA5
|
||||
PROMPT_BEGIN_READ_PROCESS equ 0xFC
|
||||
RST_00 equ 0x00
|
||||
RST_08 equ 0x08
|
||||
RST_10 equ 0x10
|
||||
RST_18 equ 0x18
|
||||
STACK_RAM_TOP equ 0xFFFF
|
||||
START_ROM equ 0x00
|
||||
STRCONV_BYTES_TO_HEX equ 0x35B
|
||||
STRCONV_BYTES_TO_HEX_1 equ 0x36A
|
||||
STRCONV_BYTES_TO_HEX_2 equ 0x374
|
||||
STR_Banner_Start equ 0x1360
|
||||
STR_HEXDUMP_HEADER equ 0x1390
|
||||
STR_PD_HEADER equ 0x1319
|
||||
STR_SyntaxError equ 0x1386
|
||||
STR_Unknown equ 0x138B
|
||||
SYM_ACK equ 0x06
|
||||
SYM_C equ 0x43
|
||||
SYM_CAN equ 0x18
|
||||
SYM_EOT equ 0x04
|
||||
SYM_ETB equ 0x17
|
||||
SYM_NAK equ 0x15
|
||||
SYM_SOH equ 0x01
|
||||
STRCONV_BYTES_TO_HEX equ 0x19B
|
||||
STRCONV_BYTES_TO_HEX_1 equ 0x1AA
|
||||
STRCONV_BYTES_TO_HEX_2 equ 0x1B4
|
||||
STR_Banner_Start equ 0x1E6F
|
||||
STR_PD_HEADER equ 0x1724
|
||||
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
|
||||
beep equ 0xED7
|
||||
beep_loop equ 0xEDA
|
||||
beep_pause equ 0xEF7
|
||||
dasm_00 equ 0xADC
|
||||
dasm_01 equ 0xDC8
|
||||
dasm_02 equ 0xB62
|
||||
dasm_03 equ 0xD9A
|
||||
dasm_08 equ 0xBDF
|
||||
dasm_09 equ 0xD6D
|
||||
dasm_0A equ 0xB44
|
||||
dasm_0B equ 0xDB1
|
||||
dasm_10 equ 0xB24
|
||||
dasm_12 equ 0xB6D
|
||||
dasm_18 equ 0xAE7
|
||||
dasm_1A equ 0xB4E
|
||||
dasm_20 equ 0xB01
|
||||
dasm_22 equ 0xE0E
|
||||
dasm_27 equ 0xBA7
|
||||
dasm_28 equ 0xAFA
|
||||
dasm_2A equ 0xDDF
|
||||
dasm_2F equ 0xBAB
|
||||
dasm_30 equ 0xAF2
|
||||
dasm_32 equ 0xB78
|
||||
dasm_37 equ 0xBB7
|
||||
dasm_38 equ 0xAEB
|
||||
dasm_3A equ 0xB58
|
||||
dasm_3F equ 0xBB3
|
||||
dasm_76 equ 0xBBB
|
||||
dasm_80C6 equ 0xC38
|
||||
dasm_BE equ 0xBD5
|
||||
dasm_C3 equ 0xAE0
|
||||
dasm_C88E equ 0xC5E
|
||||
dasm_C9 equ 0xB30
|
||||
dasm_CD equ 0xB2A
|
||||
dasm_D9 equ 0xBEC
|
||||
dasm_DD equ 0xB12
|
||||
dasm_DD_01 equ 0xDCF
|
||||
dasm_DD_09 equ 0xD88
|
||||
dasm_DD_22 equ 0xE24
|
||||
dasm_DD_23 equ 0xD9F
|
||||
dasm_DD_2A equ 0xDF6
|
||||
dasm_DD_2B equ 0xDB6
|
||||
dasm_DD_34 equ 0xD38
|
||||
dasm_DD_35 equ 0xD55
|
||||
dasm_DD_86 equ 0xC40
|
||||
dasm_DD_8E equ 0xC66
|
||||
dasm_DD_96 equ 0xC89
|
||||
dasm_DD_9E equ 0xCA9
|
||||
dasm_DD_A6 equ 0xCCA
|
||||
dasm_DD_AE equ 0xD01
|
||||
dasm_DD_B6 equ 0xCE6
|
||||
dasm_DD_BE equ 0xD1D
|
||||
dasm_DD_E1 equ 0xE76
|
||||
dasm_DD_E3 equ 0xBFC
|
||||
dasm_DD_E5 equ 0xE60
|
||||
dasm_DD_F9 equ 0xE46
|
||||
dasm_E1 equ 0xE70
|
||||
dasm_E3 equ 0xBF0
|
||||
dasm_E5 equ 0xE5A
|
||||
dasm_E9 equ 0xB09
|
||||
dasm_ED_42 equ 0xD7F
|
||||
dasm_ED_43 equ 0xE1A
|
||||
dasm_ED_44 equ 0xBAF
|
||||
dasm_ED_45 equ 0xB3A
|
||||
dasm_ED_46 equ 0xBC6
|
||||
dasm_ED_4A equ 0xD76
|
||||
dasm_ED_4B equ 0xDEB
|
||||
dasm_ED_4D equ 0xB35
|
||||
dasm_ED_56 equ 0xBCB
|
||||
dasm_ED_5E equ 0xBD0
|
||||
dasm_ED_A0 equ 0xC14
|
||||
dasm_ED_A1 equ 0xC26
|
||||
dasm_ED_A8 equ 0xC1D
|
||||
dasm_ED_A9 equ 0xC2F
|
||||
dasm_ED_B0 equ 0xC18
|
||||
dasm_ED_B1 equ 0xC2A
|
||||
dasm_ED_B8 equ 0xC21
|
||||
dasm_ED_B9 equ 0xC33
|
||||
dasm_F3 equ 0xBC0
|
||||
dasm_F9 equ 0xE3C
|
||||
dasm_FB equ 0xBC3
|
||||
dasm_FD equ 0xB1B
|
||||
dasm_FD_01 equ 0xDD7
|
||||
dasm_FD_09 equ 0xD91
|
||||
dasm_FD_22 equ 0xE30
|
||||
dasm_FD_23 equ 0xDA8
|
||||
dasm_FD_2A equ 0xE02
|
||||
dasm_FD_2B equ 0xDBF
|
||||
dasm_FD_34 equ 0xD44
|
||||
dasm_FD_35 equ 0xD61
|
||||
dasm_FD_86 equ 0xC4F
|
||||
dasm_FD_8E equ 0xC75
|
||||
dasm_FD_96 equ 0xC95
|
||||
dasm_FD_9E equ 0xCB7
|
||||
dasm_FD_A6 equ 0xCD6
|
||||
dasm_FD_AE equ 0xD0D
|
||||
dasm_FD_B6 equ 0xCF1
|
||||
dasm_FD_BE equ 0xD28
|
||||
dasm_FD_E1 equ 0xE7E
|
||||
dasm_FD_E3 equ 0xC08
|
||||
dasm_FD_E5 equ 0xE68
|
||||
dasm_FD_F9 equ 0xE50
|
||||
dasm_FF equ 0xB3F
|
||||
dasm_UU equ 0xE86
|
||||
dasm_UW equ 0xE8A
|
||||
dasm__AND equ 0xCC5
|
||||
dasm__CP equ 0xD19
|
||||
dasm__DEC equ 0xD50
|
||||
dasm__ED_47 equ 0xB97
|
||||
dasm__ED_4F equ 0xB9F
|
||||
dasm__ED_57 equ 0xB87
|
||||
dasm__ED_5F equ 0xB8F
|
||||
dasm__INC equ 0xD33
|
||||
dasm__LD equ 0xB83
|
||||
dasm__OR equ 0xCE2
|
||||
dasm__SBC equ 0xCA1
|
||||
dasm__SUB equ 0xC84
|
||||
dasm__XOR equ 0xCFC
|
||||
dasm_opcode_table equ 0x684
|
||||
dasm_print16hex_addr equ 0x4B1
|
||||
dasm_print8hex equ 0x4C9
|
||||
dasm_printFlags_table equ 0xE8F
|
||||
dasm_printRegister8_table equ 0xE9F
|
||||
dasm_printRegister8_table_HL equ 0xEBF
|
||||
dasm_printRegisterIX_table equ 0xEA7
|
||||
dasm_printRegisterIY_table equ 0xEAF
|
||||
dasm_printRegisterSP_table equ 0xEB7
|
||||
disassemble equ 0x375
|
||||
disassemble_continue equ 0x45B
|
||||
disassemble_err equ 0x44B
|
||||
disassemble_next equ 0x379
|
||||
disassemble_print_opcode_params_end equ 0x448
|
||||
disassemble_print_opcode_params_loop equ 0x3F4
|
||||
disassemble_print_opcode_raw equ 0x3B6
|
||||
disassemble_print_opcode_raw_fill equ 0x3CA
|
||||
disassemble_table_first_match equ 0x48D
|
||||
disassemble_table_found equ 0x4A7
|
||||
disassemble_table_notfound equ 0x4AB
|
||||
disassemble_table_seek equ 0x469
|
||||
disassemble_table_seek_loop equ 0x46D
|
||||
dump_pretty equ 0x12BE
|
||||
dump_pretty_ascii equ 0x12E8
|
||||
dump_pretty_ascii_cont equ 0x1306
|
||||
dump_pretty_ascii_loop equ 0x12F0
|
||||
dump_pretty_ascii_none equ 0x1301
|
||||
dump_pretty_col equ 0x12DB
|
||||
dump_pretty_end equ 0x1318
|
||||
dump_pretty_nextrow equ 0x130C
|
||||
dump_pretty_row equ 0x12C6
|
||||
ide_printerror equ 0x116E
|
||||
ide_readsector_256 equ 0x10ED
|
||||
ide_readsector_256_done equ 0x111C
|
||||
ide_readsector_256_waitloop equ 0x10EF
|
||||
ide_readsector_512_inv equ 0x111D
|
||||
ide_readsector_512_inv_waitloop equ 0x1122
|
||||
ide_readsector_timeout equ 0x1158
|
||||
ide_regread_8 equ 0x10CF
|
||||
ide_regwrite_8 equ 0x10B3
|
||||
ide_reset equ 0x10A6
|
||||
ide_writesector_256 equ 0x116D
|
||||
ideif_init_drive equ 0x11F4
|
||||
ideif_init_drive_detected equ 0x1222
|
||||
ideif_init_drive_loop1 equ 0x1208
|
||||
ideif_init_drive_nodrv equ 0x121B
|
||||
mon_start_complete equ 0x7B
|
||||
mon_start_init_ctc equ 0x50
|
||||
mon_start_init_serial equ 0x64
|
||||
mon_start_init_sound equ 0x50
|
||||
mon_start_ram equ 0x67
|
||||
mon_start_ram_loop equ 0x70
|
||||
_COMMAND_PROCESS_FOUND equ 0x1895
|
||||
_OP_CALL equ 0x1917
|
||||
_OP_IIC_ACK_ERR equ 0x1A25
|
||||
_OP_IIC_ACK_ERR_str equ 0x1A2C
|
||||
_OP_IIC_IN_LOOP equ 0x1A72
|
||||
_OP_IIC_IN_LOOP_TEXT equ 0x1A7F
|
||||
_OP_IIC_OUT_LOOP equ 0x19F6
|
||||
_OP_IIC_OUT_SEND equ 0x1A12
|
||||
_OP_RTIME_NN equ 0x1A93
|
||||
_OP_RTIME_RD_CMD equ 0x1B4B
|
||||
_OP_SELDSK_INVALID equ 0x1CB4
|
||||
_OP_SELDSK_INVALID_STR equ 0x1CC4
|
||||
_OP_SET_LOOP equ 0x1960
|
||||
_OP_STIME_INVALID equ 0x1BEE
|
||||
_OP_STIME_PROMPT equ 0x1C05
|
||||
_OP_STIME_PROMPT_ERR equ 0x1C1D
|
||||
_OP_STIME_STR_DAY equ 0x1B4C
|
||||
_OP_STIME_STR_HOUR equ 0x1B9D
|
||||
_OP_STIME_STR_MIN equ 0x1BB8
|
||||
_OP_STIME_STR_MON equ 0x1B67
|
||||
_OP_STIME_STR_SEC equ 0x1BD3
|
||||
_OP_STIME_STR_YEAR equ 0x1B82
|
||||
_POST_CHECK_APU_FAILED equ 0x1D31
|
||||
_POST_CHECK_IDE_FAILED equ 0x1D63
|
||||
_POST_CHECK_PIO_FAILED equ 0x1D06
|
||||
_POST_TEST_RTC_INVALID equ 0x1DA4
|
||||
_POST_TEST_RTC_NOTFOUND equ 0x1D9D
|
||||
_STR_NOT_FOUND equ 0x18B8
|
||||
_STR_NOT_IMPLEMENTED equ 0x18A4
|
||||
_STR_SYNTAX equ 0x18CC
|
||||
_beep_pause_l1 equ 0xD30
|
||||
_ideif_init_drive_found equ 0x13E9
|
||||
_ideif_init_drive_loop equ 0x13D1
|
||||
_ideif_init_drive_nodrv equ 0x13E4
|
||||
_ideif_init_drive_prt_fnd equ 0x1454
|
||||
_ideif_init_drive_prt_l1 equ 0x1442
|
||||
_ideif_init_drive_prt_ln equ 0x144C
|
||||
_ideif_prnt_devtable_hdr equ 0x1510
|
||||
_ideif_prnt_devtable_l1 equ 0x12E1
|
||||
_ideif_prnt_devtable_l1_e2 equ 0x13A7
|
||||
_ideif_prnt_devtable_l1_es equ 0x1326
|
||||
_ideif_prnt_devtable_l1_ms equ 0x13A4
|
||||
_ideif_prnt_devtable_l1_nxt equ 0x12EE
|
||||
_ideif_prnt_devtable_l1_s00 equ 0x1314
|
||||
_ideif_prnt_devtable_l1_s01 equ 0x1319
|
||||
_ideif_prnt_devtable_l1_s02 equ 0x131E
|
||||
_ideif_prnt_devtable_l1_sFF equ 0x1323
|
||||
_ideif_prnt_devtable_l1_sel equ 0x12EC
|
||||
_ideif_prnt_devtable_master equ 0x1574
|
||||
_ideif_prnt_devtable_s00 equ 0x1548
|
||||
_ideif_prnt_devtable_s01 equ 0x1553
|
||||
_ideif_prnt_devtable_s02 equ 0x155E
|
||||
_ideif_prnt_devtable_sFF equ 0x1569
|
||||
_ideif_prnt_devtable_slave equ 0x157C
|
||||
_read_bcd_invalid equ 0x147
|
||||
_shift4 equ 0x1C9C
|
||||
beep equ 0xD17
|
||||
beep_loop equ 0xD19
|
||||
beep_pause equ 0xD2F
|
||||
dasm_00 equ 0x91C
|
||||
dasm_01 equ 0xC08
|
||||
dasm_02 equ 0x9A2
|
||||
dasm_03 equ 0xBDA
|
||||
dasm_08 equ 0xA1F
|
||||
dasm_09 equ 0xBAD
|
||||
dasm_0A equ 0x984
|
||||
dasm_0B equ 0xBF1
|
||||
dasm_10 equ 0x964
|
||||
dasm_12 equ 0x9AD
|
||||
dasm_18 equ 0x927
|
||||
dasm_1A equ 0x98E
|
||||
dasm_20 equ 0x941
|
||||
dasm_22 equ 0xC4E
|
||||
dasm_27 equ 0x9E7
|
||||
dasm_28 equ 0x93A
|
||||
dasm_2A equ 0xC1F
|
||||
dasm_2F equ 0x9EB
|
||||
dasm_30 equ 0x932
|
||||
dasm_32 equ 0x9B8
|
||||
dasm_37 equ 0x9F7
|
||||
dasm_38 equ 0x92B
|
||||
dasm_3A equ 0x998
|
||||
dasm_3F equ 0x9F3
|
||||
dasm_76 equ 0x9FB
|
||||
dasm_80C6 equ 0xA78
|
||||
dasm_BE equ 0xA15
|
||||
dasm_C3 equ 0x920
|
||||
dasm_C88E equ 0xA9E
|
||||
dasm_C9 equ 0x970
|
||||
dasm_CD equ 0x96A
|
||||
dasm_D9 equ 0xA2C
|
||||
dasm_DD equ 0x952
|
||||
dasm_DD_01 equ 0xC0F
|
||||
dasm_DD_09 equ 0xBC8
|
||||
dasm_DD_22 equ 0xC64
|
||||
dasm_DD_23 equ 0xBDF
|
||||
dasm_DD_2A equ 0xC36
|
||||
dasm_DD_2B equ 0xBF6
|
||||
dasm_DD_34 equ 0xB78
|
||||
dasm_DD_35 equ 0xB95
|
||||
dasm_DD_86 equ 0xA80
|
||||
dasm_DD_8E equ 0xAA6
|
||||
dasm_DD_96 equ 0xAC9
|
||||
dasm_DD_9E equ 0xAE9
|
||||
dasm_DD_A6 equ 0xB0A
|
||||
dasm_DD_AE equ 0xB41
|
||||
dasm_DD_B6 equ 0xB26
|
||||
dasm_DD_BE equ 0xB5D
|
||||
dasm_DD_E1 equ 0xCB6
|
||||
dasm_DD_E3 equ 0xA3C
|
||||
dasm_DD_E5 equ 0xCA0
|
||||
dasm_DD_F9 equ 0xC86
|
||||
dasm_E1 equ 0xCB0
|
||||
dasm_E3 equ 0xA30
|
||||
dasm_E5 equ 0xC9A
|
||||
dasm_E9 equ 0x949
|
||||
dasm_ED_42 equ 0xBBF
|
||||
dasm_ED_43 equ 0xC5A
|
||||
dasm_ED_44 equ 0x9EF
|
||||
dasm_ED_45 equ 0x97A
|
||||
dasm_ED_46 equ 0xA06
|
||||
dasm_ED_4A equ 0xBB6
|
||||
dasm_ED_4B equ 0xC2B
|
||||
dasm_ED_4D equ 0x975
|
||||
dasm_ED_56 equ 0xA0B
|
||||
dasm_ED_5E equ 0xA10
|
||||
dasm_ED_A0 equ 0xA54
|
||||
dasm_ED_A1 equ 0xA66
|
||||
dasm_ED_A8 equ 0xA5D
|
||||
dasm_ED_A9 equ 0xA6F
|
||||
dasm_ED_B0 equ 0xA58
|
||||
dasm_ED_B1 equ 0xA6A
|
||||
dasm_ED_B8 equ 0xA61
|
||||
dasm_ED_B9 equ 0xA73
|
||||
dasm_F3 equ 0xA00
|
||||
dasm_F9 equ 0xC7C
|
||||
dasm_FB equ 0xA03
|
||||
dasm_FD equ 0x95B
|
||||
dasm_FD_01 equ 0xC17
|
||||
dasm_FD_09 equ 0xBD1
|
||||
dasm_FD_22 equ 0xC70
|
||||
dasm_FD_23 equ 0xBE8
|
||||
dasm_FD_2A equ 0xC42
|
||||
dasm_FD_2B equ 0xBFF
|
||||
dasm_FD_34 equ 0xB84
|
||||
dasm_FD_35 equ 0xBA1
|
||||
dasm_FD_86 equ 0xA8F
|
||||
dasm_FD_8E equ 0xAB5
|
||||
dasm_FD_96 equ 0xAD5
|
||||
dasm_FD_9E equ 0xAF7
|
||||
dasm_FD_A6 equ 0xB16
|
||||
dasm_FD_AE equ 0xB4D
|
||||
dasm_FD_B6 equ 0xB31
|
||||
dasm_FD_BE equ 0xB68
|
||||
dasm_FD_E1 equ 0xCBE
|
||||
dasm_FD_E3 equ 0xA48
|
||||
dasm_FD_E5 equ 0xCA8
|
||||
dasm_FD_F9 equ 0xC90
|
||||
dasm_FF equ 0x97F
|
||||
dasm_UU equ 0xCC6
|
||||
dasm_UW equ 0xCCA
|
||||
dasm__AND equ 0xB05
|
||||
dasm__CP equ 0xB59
|
||||
dasm__DEC equ 0xB90
|
||||
dasm__ED_47 equ 0x9D7
|
||||
dasm__ED_4F equ 0x9DF
|
||||
dasm__ED_57 equ 0x9C7
|
||||
dasm__ED_5F equ 0x9CF
|
||||
dasm__INC equ 0xB73
|
||||
dasm__LD equ 0x9C3
|
||||
dasm__OR equ 0xB22
|
||||
dasm__SBC equ 0xAE1
|
||||
dasm__SUB equ 0xAC4
|
||||
dasm__XOR equ 0xB3C
|
||||
dasm_opcode_table equ 0x4C4
|
||||
dasm_print16hex_addr equ 0x2F1
|
||||
dasm_print8hex equ 0x309
|
||||
dasm_printFlags_table equ 0xCCF
|
||||
dasm_printRegister8_table equ 0xCDF
|
||||
dasm_printRegister8_table_HL equ 0xCFF
|
||||
dasm_printRegisterIX_table equ 0xCE7
|
||||
dasm_printRegisterIY_table equ 0xCEF
|
||||
dasm_printRegisterSP_table equ 0xCF7
|
||||
disassemble equ 0x1B5
|
||||
disassemble_continue equ 0x29B
|
||||
disassemble_err equ 0x28B
|
||||
disassemble_next equ 0x1B9
|
||||
disassemble_print_opcode_params_end equ 0x288
|
||||
disassemble_print_opcode_params_loop equ 0x234
|
||||
disassemble_print_opcode_raw equ 0x1F6
|
||||
disassemble_print_opcode_raw_fill equ 0x20A
|
||||
disassemble_table_first_match equ 0x2CD
|
||||
disassemble_table_found equ 0x2E7
|
||||
disassemble_table_notfound equ 0x2EB
|
||||
disassemble_table_seek equ 0x2A9
|
||||
disassemble_table_seek_loop equ 0x2AD
|
||||
dump_pretty equ 0x16C9
|
||||
dump_pretty_ascii equ 0x16F3
|
||||
dump_pretty_ascii_cont equ 0x1711
|
||||
dump_pretty_ascii_loop equ 0x16FB
|
||||
dump_pretty_ascii_none equ 0x170C
|
||||
dump_pretty_col equ 0x16E6
|
||||
dump_pretty_end equ 0x1723
|
||||
dump_pretty_nextrow equ 0x1717
|
||||
dump_pretty_row equ 0x16D1
|
||||
ide_printerror equ 0xE04
|
||||
ide_readsector_256 equ 0xD83
|
||||
ide_readsector_256_done equ 0xDB2
|
||||
ide_readsector_256_waitloop equ 0xD85
|
||||
ide_readsector_512_inv equ 0xDB3
|
||||
ide_readsector_512_inv_waitloop equ 0xDB8
|
||||
ide_readsector_timeout equ 0xDEE
|
||||
ide_regread_8 equ 0xD65
|
||||
ide_regwrite_8 equ 0xD49
|
||||
ide_reset equ 0xD3C
|
||||
ide_writesector_256 equ 0xE03
|
||||
ideif_get_drv_pointer equ 0x1497
|
||||
ideif_init_all equ 0x14AB
|
||||
ideif_init_devtable equ 0x12B5
|
||||
ideif_init_drive equ 0x13C8
|
||||
ideif_prnt_devtable equ 0x12D3
|
||||
iic_init equ 0x15DD
|
||||
iic_read_ack equ 0x161C
|
||||
iic_receive_buffer equ 0x15AE
|
||||
iic_receive_buffer_done equ 0x15D1
|
||||
iic_receive_buffer_err equ 0x15D7
|
||||
iic_receive_buffer_loop equ 0x15BF
|
||||
iic_receive_byte equ 0x16A2
|
||||
iic_receive_byte_loop equ 0x16AF
|
||||
iic_send_ack equ 0x1642
|
||||
iic_send_buffer equ 0x1584
|
||||
iic_send_buffer_done equ 0x15A2
|
||||
iic_send_buffer_err equ 0x15A8
|
||||
iic_send_buffer_loop equ 0x1594
|
||||
iic_send_byte equ 0x167C
|
||||
iic_send_byte_loop equ 0x1688
|
||||
iic_send_ebit equ 0x15FB
|
||||
iic_send_nack equ 0x165F
|
||||
iic_send_sbit equ 0x15E6
|
||||
mon_var_template equ 0x44
|
||||
mon_var_template_end equ 0x6E
|
||||
param_01 equ 0x4D7
|
||||
param_02 equ 0x4FE
|
||||
param_03 equ 0x51B
|
||||
param_03_done equ 0x553
|
||||
param_03_neg equ 0x53C
|
||||
param_04 equ 0x557
|
||||
param_04_i equ 0x567
|
||||
param_05 equ 0x56D
|
||||
param_06 equ 0x57A
|
||||
param_07 equ 0x594
|
||||
param_08 equ 0x5A1
|
||||
param_09 equ 0x5B6
|
||||
param_09_0A equ 0x5BC
|
||||
param_0A equ 0x5AD
|
||||
param_10 equ 0x5CB
|
||||
param_11 equ 0x5DB
|
||||
param_11_12 equ 0x5EA
|
||||
param_11_12_all equ 0x60A
|
||||
param_11_12_def equ 0x5FD
|
||||
param_11_12_ix equ 0x602
|
||||
param_11_12_iy equ 0x607
|
||||
param_12 equ 0x5E3
|
||||
param_13 equ 0x61B
|
||||
param_80 equ 0x63A
|
||||
param_80_seek equ 0x641
|
||||
param_81 equ 0x631
|
||||
param_comma equ 0x675
|
||||
param_printRegister equ 0x650
|
||||
param_printRegisterA equ 0x66E
|
||||
param_printRegisterHL equ 0x666
|
||||
print_a_hex equ 0x2E7
|
||||
print_char equ 0x2B7
|
||||
print_clear equ 0x2CA
|
||||
print_newLine equ 0x2D1
|
||||
print_str equ 0x2BF
|
||||
print_str_end equ 0x2C9
|
||||
print_str_fixed equ 0x1358
|
||||
print_wait_out equ 0x2DC
|
||||
read_char equ 0x2F8
|
||||
read_lba_sector equ 0x1256
|
||||
str_dev_notfound equ 0x12B3
|
||||
str_dev_ready equ 0x129D
|
||||
str_dev_ready2 equ 0x12AA
|
||||
str_dev_waitready equ 0x1289
|
||||
str_error_start equ 0x11A1
|
||||
str_error_start1 equ 0x11BE
|
||||
str_error_start2 equ 0x11C7
|
||||
str_error_time equ 0x11D0
|
||||
var_buffer equ 0x4029
|
||||
mon_var_template_end equ 0x370
|
||||
param_01 equ 0x317
|
||||
param_02 equ 0x33E
|
||||
param_03 equ 0x35B
|
||||
param_03_done equ 0x393
|
||||
param_03_neg equ 0x37C
|
||||
param_04 equ 0x397
|
||||
param_04_i equ 0x3A7
|
||||
param_05 equ 0x3AD
|
||||
param_06 equ 0x3BA
|
||||
param_07 equ 0x3D4
|
||||
param_08 equ 0x3E1
|
||||
param_09 equ 0x3F6
|
||||
param_09_0A equ 0x3FC
|
||||
param_0A equ 0x3ED
|
||||
param_10 equ 0x40B
|
||||
param_11 equ 0x41B
|
||||
param_11_12 equ 0x42A
|
||||
param_11_12_all equ 0x44A
|
||||
param_11_12_def equ 0x43D
|
||||
param_11_12_ix equ 0x442
|
||||
param_11_12_iy equ 0x447
|
||||
param_12 equ 0x423
|
||||
param_13 equ 0x45B
|
||||
param_80 equ 0x47A
|
||||
param_80_seek equ 0x481
|
||||
param_81 equ 0x471
|
||||
param_comma equ 0x4B5
|
||||
param_printRegister equ 0x490
|
||||
param_printRegisterA equ 0x4AE
|
||||
param_printRegisterHL equ 0x4A6
|
||||
print_a_hex equ 0x107
|
||||
print_bcd equ 0x119
|
||||
print_char equ 0xD7
|
||||
print_clear equ 0xEA
|
||||
print_newLine equ 0xF1
|
||||
print_str equ 0xDF
|
||||
print_str_end equ 0xE9
|
||||
print_str_fixed equ 0x1763
|
||||
print_wait_out equ 0xFC
|
||||
read_bcd equ 0x131
|
||||
read_char equ 0x11F
|
||||
read_lba_sector equ 0x14BE
|
||||
str_dev_done equ 0x1508
|
||||
str_dev_waitready equ 0x14F0
|
||||
str_error_start equ 0xE37
|
||||
str_error_start1 equ 0xE54
|
||||
str_error_start2 equ 0xE5D
|
||||
str_error_time equ 0xE66
|
||||
str_post_apu equ 0x1DFC
|
||||
str_post_ide_30 equ 0x1DAB
|
||||
str_post_ide_40 equ 0x1DC6
|
||||
str_post_nd equ 0x1E32
|
||||
str_post_ok equ 0x1E6A
|
||||
str_post_pio equ 0x1DE1
|
||||
str_post_rtc equ 0x1E17
|
||||
str_post_rtc_iv equ 0x1E40
|
||||
var_apu_present equ 0x400A
|
||||
var_buffer equ 0x402B
|
||||
var_buffer_len equ 0x4000
|
||||
var_bytes_count equ 0x411A
|
||||
var_curserchar equ 0x4006
|
||||
@@ -361,6 +459,7 @@ var_curseron equ 0x4005
|
||||
var_curserstate equ 0x4004
|
||||
var_curserx equ 0x4002
|
||||
var_cursery equ 0x4003
|
||||
var_idebuffer equ 0x402C
|
||||
var_last_char equ 0x4001
|
||||
var_opcode equ 0x4114
|
||||
var_opcode_length equ 0x4116
|
||||
@@ -369,26 +468,6 @@ var_opcode_start equ 0x4110
|
||||
var_opcode_string equ 0x4117
|
||||
var_opcode_table equ 0x4112
|
||||
var_opcode_x equ 0x4115
|
||||
var_ps2mem equ 0x4019
|
||||
var_scratch equ 0x4009
|
||||
xmodem_ack equ 0x107B
|
||||
xmodem_await_conn equ 0xF34
|
||||
xmodem_end equ 0xFDF
|
||||
xmodem_err equ 0xFA5
|
||||
xmodem_init equ 0xF06
|
||||
xmodem_int equ 0xFE6
|
||||
xmodem_int_cont equ 0x1005
|
||||
xmodem_nak equ 0x1089
|
||||
xmodem_out equ 0x1037
|
||||
xmodem_packet equ 0xF3F
|
||||
xmodem_packet_EOT equ 0xF9D
|
||||
xmodem_packet_get equ 0xF51
|
||||
xmodem_packet_get_crc equ 0xF8A
|
||||
xmodem_packet_get_data equ 0xF7B
|
||||
xmodem_read_timeount equ 0x03
|
||||
xmodem_read_wait equ 0x100A
|
||||
xmodem_read_wait_loop equ 0x1018
|
||||
xmodem_read_wait_timeout equ 0x1035
|
||||
xmodem_wait equ 0x1097
|
||||
xmodem_wait_1 equ 0x109D
|
||||
xmodem_wait_out equ 0x103D
|
||||
var_pio_present equ 0x4009
|
||||
var_ps2mem equ 0x401B
|
||||
var_scratch equ 0x400B
|
||||
|
||||
Reference in New Issue
Block a user