several fixes

This commit is contained in:
2024-11-30 15:41:09 +01:00
parent 1ed6034d99
commit a5f5c6b9ef
227 changed files with 769511 additions and 94738 deletions

View File

@@ -0,0 +1 @@
main*

View File

@@ -0,0 +1,585 @@
;This file is generated by the build script.
;Do not make any changes here!
?a0000 equ 0x14BB
?a0001 equ 0x1578
ADDR_RTC equ 0xD0
A_RTS_OFF equ 0x1D4
A_RTS_ON equ 0x1DD
BOOT_PHASE0 equ 0x86
BOOT_PHASE1 equ 0xA4
BOOT_PHASE1_LOOP equ 0xAD
BOOT_PHASE2 equ 0xB8
B_BEEP equ 0x50
B_DSKSEL equ 0x74
B_FATCD equ 0x7D
B_FATCREATE equ 0x80
B_FATOPEN equ 0x77
B_FATREAD equ 0x7A
B_FATWRITE equ 0x83
B_IICRECV equ 0x56
B_IICSEND equ 0x53
B_KEYREAD equ 0x6B
B_KEYREADASCII equ 0x6E
B_KEYSEND equ 0x71
B_PRINTAHEX equ 0x62
B_PRINTCHAR equ 0x59
B_PRINTINLINE equ 0x5F
B_PRINTLN equ 0x65
B_PRINTSTR equ 0x5C
B_READCHAR equ 0x68
COMMAND equ 0x195D
COMMAND_ABORT equ 0x195A
COMMAND_BACKSPACE equ 0x199E
COMMAND_LUT equ 0x18C8
COMMAND_PROCESS equ 0x19C4
COMMAND_PROCESS_FOUND equ 0x19FF
COMMAND_PROCESS_LOOP equ 0x19C7
COMMAND_PROCESS_LOOP_STR1 equ 0x19D0
COMMAND_PROCESS_LOOP_STR2 equ 0x19E6
COMMAND_PROCESS_NEXT_ENTRY equ 0x19EB
COMMAND_PROCESS_NEXT_ENTRYI equ 0x19EA
COMMAND_PROCESS_NOT_FOUND equ 0x19F6
COMMAND_READ equ 0x196F
CONSOLE_INIT equ 0xDB
CONSOLE_INIT_CTC equ 0xDB
CONSOLE_INIT_SIO equ 0xE3
CS_APU_CTRL equ 0xF9
CS_APU_DATA equ 0xF8
CS_BANK equ 0x00
CS_CTC_0 equ 0x04
CS_CTC_1 equ 0x05
CS_CTC_2 equ 0x06
CS_CTC_3 equ 0x07
CS_DIP equ 0x01
CS_PIA_CR equ 0x33
CS_PIA_PA equ 0x30
CS_PIA_PB equ 0x31
CS_PIA_PC equ 0x32
CS_PIO_AC equ 0xF6
CS_PIO_AD equ 0xF4
CS_PIO_BC equ 0xF7
CS_PIO_BD equ 0xF5
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 0x24B
DHEX_TO_BYTE_FAILED equ 0x267
ERR_SYNTAX equ 0x1A15
EXEC_RST_08 equ 0xDEB
EXEC_RST_10 equ 0xDEF
EXEC_RST_18 equ 0xDFB
HEX_TO_BIN equ 0x26B
HEX_TO_BIN_2 equ 0x279
HEX_TO_INVALID_2 equ 0x280
IDE_CMD_IDENT equ 0xEC
IDE_CMD_READSEC equ 0x20
IDE_CMD_WRITESEC equ 0x30
IDE_DEV_TABLE equ 0x131D
IDE_RD equ 0x40
IDE_REG_ALTSTS equ 0x16
IDE_REG_CMDSTS equ 0x0F
IDE_REG_DATA equ 0x08
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
IO_AY0_ADDR equ 0x40
IO_AY0_DATA equ 0x41
IO_AY1_ADDR equ 0x42
IO_AY1_DATA equ 0x43
IO_REG0 equ 0x20
IO_RTC_AMPM equ 0x25
IO_RTC_CTR_D equ 0x2D
IO_RTC_CTR_E equ 0x2E
IO_RTC_CTR_F equ 0x2F
IO_RTC_DAY0 equ 0x26
IO_RTC_DAY1 equ 0x27
IO_RTC_HOUR equ 0x24
IO_RTC_MIN0 equ 0x22
IO_RTC_MIN1 equ 0x23
IO_RTC_MON0 equ 0x28
IO_RTC_MON1 equ 0x29
IO_RTC_SEC0 equ 0x20
IO_RTC_SEC1 equ 0x21
IO_RTC_WEEK equ 0x2C
IO_RTC_YEAR1 equ 0x2B
IO_RTC_YERR0 equ 0x2A
MEM_FAT_AMOUNT equ 0x44B8
MEM_FAT_CLUSTERLEN equ 0x44BB
MEM_FAT_COUNT1 equ 0x44BC
MEM_FAT_CURDIR equ 0x44DF
MEM_FAT_CURRDIR equ 0x453F
MEM_FAT_DATASTART equ 0x44C1
MEM_FAT_DIRSEC equ 0x44CD
MEM_FAT_EXEC_COUNT equ 0x4545
MEM_FAT_EXEC_CURR equ 0x4543
MEM_FAT_EXEC_START equ 0x4547
MEM_FAT_FILEREMAIN equ 0x44C9
MEM_FAT_OF0_ATTRIBUTE equ 0x452F
MEM_FAT_OF0_CCLUST equ 0x4531
MEM_FAT_OF0_DATREM equ 0x453B
MEM_FAT_OF0_DATSEC equ 0x4537
MEM_FAT_OF0_FATSEC equ 0x4533
MEM_FAT_RESERVED equ 0x44B6
MEM_FAT_ROOTSTART equ 0x44C5
MEM_FAT_SECTORS equ 0x44B9
MEM_FAT_TMPFNAME equ 0x44CF
MEM_FAT_TMPPOINTER equ 0x44BD
MEM_IDE_BUFFER equ 0x42B6
MEM_IDE_DEVICE equ 0x41CB
MEM_IDE_DEV_TABLE equ 0x41D5
MEM_IDE_FSBUFFER equ 0x44B6
MEM_IDE_PARTITION equ 0x41CD
MEM_IDE_POINTER equ 0x41D1
MEM_IDE_SELECTED equ 0x4215
MEM_IDE_STATUS equ 0x41CC
MEM_IDE_STRING_0 equ 0x4216
MEM_IDE_STRING_1 equ 0x423E
MEM_IDE_STRING_2 equ 0x4266
MEM_IDE_STRING_3 equ 0x428E
MSG_CLEAR equ 0x1CC
NOT_IMPLEMENTED equ 0x1A0E
OP_CALL equ 0x1A70
OP_CD equ 0x1E40
OP_CLR equ 0x1C04
OP_DASM equ 0x1AF1
OP_DIR equ 0x1E3C
OP_DUMP equ 0x1A90
OP_EXEC equ 0x1A57
OP_FSEXEC equ 0x1E5D
OP_IIC_IN equ 0x1BB8
OP_IIC_OUT equ 0x1B58
OP_IO_IN equ 0x1B21
OP_IO_OUT equ 0x1B37
OP_LSDSK equ 0x1E19
OP_RTIME equ 0x1C08
OP_SELDSK equ 0x1E1D
OP_SET equ 0x1AC0
OP_STIME equ 0x1DA0
POST_CHECK_APU equ 0x1E96
POST_CHECK_IDE_30 equ 0x1EC1
POST_CHECK_IDE_40 equ 0x1ED4
POST_CHECK_PIO equ 0x1E71
POST_START equ 0x1E61
POST_TEST_RTC equ 0x1EEE
PRG_RAM_START equ 0x4110
PRG_RAM_TOP equ 0xFF00
PRINTINLINE equ 0x1E6
PROG_MEM_START equ 0x4000
PROG_ROM_START equ 0x100
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 0x282
STRCONV_BYTES_TO_HEX_1 equ 0x291
STRCONV_BYTES_TO_HEX_2 equ 0x29B
STR_Banner_Start equ 0x26A2
STR_PD_HEADER equ 0x1881
SYS_BUF_START equ 0x4010
SYS_RAM_START equ 0x4000
VAR_CONSOLE_BAUD equ 0x18
VAR_CONSOLE_CONF equ 0x0F
VDP_MEM equ 0x80
VDP_REG equ 0x81
_COMMAND_PROCESS_FOUND equ 0x1A0D
_OP_CALL equ 0x1A8F
_OP_IIC_ACK_ERR equ 0x1B9D
_OP_IIC_ACK_ERR_str equ 0x1BA4
_OP_IIC_IN_LOOP equ 0x1BEA
_OP_IIC_IN_LOOP_TEXT equ 0x1BF7
_OP_IIC_OUT_LOOP equ 0x1B6E
_OP_IIC_OUT_SEND equ 0x1B8A
_OP_RTIME_NN equ 0x1C0B
_OP_RTIME_RD_CMD equ 0x1CC3
_OP_SELDSK_INVALID equ 0x1E2C
_OP_SELDSK_INVALID_STR equ 0x1E44
_OP_SET_LOOP equ 0x1AD8
_OP_STIME_INVALID equ 0x1D66
_OP_STIME_PROMPT equ 0x1D7D
_OP_STIME_PROMPT_ERR equ 0x1D95
_OP_STIME_STR_DAY equ 0x1CC4
_OP_STIME_STR_HOUR equ 0x1D15
_OP_STIME_STR_MIN equ 0x1D30
_OP_STIME_STR_MON equ 0x1CDF
_OP_STIME_STR_SEC equ 0x1D4B
_OP_STIME_STR_YEAR equ 0x1CFA
_POST_CHECK_APU_FAILED equ 0x1EB5
_POST_CHECK_IDE_FAILED equ 0x1EE7
_POST_CHECK_PIO_FAILED equ 0x1E8A
_POST_TEST_RTC_INVALID equ 0x1F28
_POST_TEST_RTC_NOTFOUND equ 0x1F21
_STR_NOT_FOUND equ 0x1A30
_STR_NOT_IMPLEMENTED equ 0x1A1C
_STR_SYNTAX equ 0x1A44
_beep_pause_l1 equ 0xE17
_compare_filename_loop equ 0x2363
_compare_filename_nomatch equ 0x2371
_fat_cd_navigate equ 0x2518
_fat_cd_navigate_end equ 0x255E
_fat_cd_navigate_errfile equ 0x2586
_fat_cd_navigate_errfile_str equ 0x25B8
_fat_cd_navigate_error equ 0x2570
_fat_cd_navigate_error_str equ 0x258E
_fat_cd_navigate_findsec equ 0x251D
_fat_cd_navigate_findsec_skipslash equ 0x2549
_fat_cd_navigate_goback_fl equ 0x24D4
_fat_cd_navigate_inerror equ 0x257E
_fat_cd_navigate_inerrorS equ 0x2578
_fat_cd_navigate_inerrore equ 0x257F
_fat_cd_navigate_inputerr_str equ 0x25A5
_fat_cd_navigate_l2 equ 0x254F
_fat_exec_notexec equ 0x267E
_fat_exec_notfound equ 0x2665
_fat_exec_read_done equ 0x264D
_fat_exec_readloop1 equ 0x262F
_fat_get_root_table_invalid equ 0x2153
_fat_getfatsec_notroot equ 0x2192
_fat_increment_32 equ 0x22E9
_fat_lfs_loop equ 0x225F
_fat_lfs_loop_compare_end equ 0x229B
_fat_lfs_loop_compare_match equ 0x229F
_fat_lfs_loop_compare_next_sector equ 0x2271
_fat_math_add32 equ 0x22FD
_fat_math_mul32 equ 0x232E
_fat_math_mul32_l equ 0x2335
_fat_math_mul32_noadd equ 0x2342
_fat_math_sector_add_16 equ 0x22D5
_fat_print_directory_dir equ 0x2453
_fat_print_directory_loop equ 0x23E6
_fat_print_directory_loop_break equ 0x24B2
_fat_print_directory_loop_file equ 0x2402
_fat_print_directory_loop_next equ 0x247E
_fat_print_directory_loop_next_sector equ 0x2489
_format_filename_fat16_clean equ 0x237A
_format_filename_fat16_loop equ 0x2381
_format_filename_fat16_loop_copy equ 0x2394
_format_filename_fat16_loop_skip_8 equ 0x238B
_ide_readsector_512_floop equ 0xE73
_ideif_drv_sel_fail equ 0x15E8
_ideif_drv_sel_fstr0 equ 0x16A5
_ideif_drv_sel_pstr equ 0x169C
_ideif_drv_sel_sstr0 equ 0x16B3
_ideif_drv_sel_syn equ 0x16C0
_ideif_init_drive_charloop equ 0x14AF
_ideif_init_drive_found equ 0x1491
_ideif_init_drive_loop equ 0x1479
_ideif_init_drive_nodrv equ 0x148C
_ideif_init_drive_prt_fnd equ 0x150D
_ideif_init_drive_prt_l1 equ 0x14FB
_ideif_init_drive_prt_ln equ 0x1505
_ideif_prnt_devtable_hdr equ 0x1628
_ideif_prnt_devtable_l1 equ 0x1389
_ideif_prnt_devtable_l1_e2 equ 0x144F
_ideif_prnt_devtable_l1_es equ 0x13CE
_ideif_prnt_devtable_l1_ms equ 0x144C
_ideif_prnt_devtable_l1_nxt equ 0x1396
_ideif_prnt_devtable_l1_s00 equ 0x13BC
_ideif_prnt_devtable_l1_s01 equ 0x13C1
_ideif_prnt_devtable_l1_s02 equ 0x13C6
_ideif_prnt_devtable_l1_sFF equ 0x13CB
_ideif_prnt_devtable_l1_sel equ 0x1394
_ideif_prnt_devtable_master equ 0x168C
_ideif_prnt_devtable_s00 equ 0x1660
_ideif_prnt_devtable_s01 equ 0x166B
_ideif_prnt_devtable_s02 equ 0x1676
_ideif_prnt_devtable_sFF equ 0x1681
_ideif_prnt_devtable_slave equ 0x1694
_read_bcd_invalid equ 0x1A3
_shift4 equ 0x1E14
beep equ 0xDFE
beep_loop equ 0xE00
beep_pause equ 0xE16
compare_filename equ 0x235F
dasm_00 equ 0xA03
dasm_01 equ 0xCEF
dasm_02 equ 0xA89
dasm_03 equ 0xCC1
dasm_08 equ 0xB06
dasm_09 equ 0xC94
dasm_0A equ 0xA6B
dasm_0B equ 0xCD8
dasm_10 equ 0xA4B
dasm_12 equ 0xA94
dasm_18 equ 0xA0E
dasm_1A equ 0xA75
dasm_20 equ 0xA28
dasm_22 equ 0xD35
dasm_27 equ 0xACE
dasm_28 equ 0xA21
dasm_2A equ 0xD06
dasm_2F equ 0xAD2
dasm_30 equ 0xA19
dasm_32 equ 0xA9F
dasm_37 equ 0xADE
dasm_38 equ 0xA12
dasm_3A equ 0xA7F
dasm_3F equ 0xADA
dasm_76 equ 0xAE2
dasm_80C6 equ 0xB5F
dasm_BE equ 0xAFC
dasm_C3 equ 0xA07
dasm_C88E equ 0xB85
dasm_C9 equ 0xA57
dasm_CD equ 0xA51
dasm_D9 equ 0xB13
dasm_DD equ 0xA39
dasm_DD_01 equ 0xCF6
dasm_DD_09 equ 0xCAF
dasm_DD_22 equ 0xD4B
dasm_DD_23 equ 0xCC6
dasm_DD_2A equ 0xD1D
dasm_DD_2B equ 0xCDD
dasm_DD_34 equ 0xC5F
dasm_DD_35 equ 0xC7C
dasm_DD_86 equ 0xB67
dasm_DD_8E equ 0xB8D
dasm_DD_96 equ 0xBB0
dasm_DD_9E equ 0xBD0
dasm_DD_A6 equ 0xBF1
dasm_DD_AE equ 0xC28
dasm_DD_B6 equ 0xC0D
dasm_DD_BE equ 0xC44
dasm_DD_E1 equ 0xD9D
dasm_DD_E3 equ 0xB23
dasm_DD_E5 equ 0xD87
dasm_DD_F9 equ 0xD6D
dasm_E1 equ 0xD97
dasm_E3 equ 0xB17
dasm_E5 equ 0xD81
dasm_E9 equ 0xA30
dasm_ED_42 equ 0xCA6
dasm_ED_43 equ 0xD41
dasm_ED_44 equ 0xAD6
dasm_ED_45 equ 0xA61
dasm_ED_46 equ 0xAED
dasm_ED_4A equ 0xC9D
dasm_ED_4B equ 0xD12
dasm_ED_4D equ 0xA5C
dasm_ED_56 equ 0xAF2
dasm_ED_5E equ 0xAF7
dasm_ED_A0 equ 0xB3B
dasm_ED_A1 equ 0xB4D
dasm_ED_A8 equ 0xB44
dasm_ED_A9 equ 0xB56
dasm_ED_B0 equ 0xB3F
dasm_ED_B1 equ 0xB51
dasm_ED_B8 equ 0xB48
dasm_ED_B9 equ 0xB5A
dasm_F3 equ 0xAE7
dasm_F9 equ 0xD63
dasm_FB equ 0xAEA
dasm_FD equ 0xA42
dasm_FD_01 equ 0xCFE
dasm_FD_09 equ 0xCB8
dasm_FD_22 equ 0xD57
dasm_FD_23 equ 0xCCF
dasm_FD_2A equ 0xD29
dasm_FD_2B equ 0xCE6
dasm_FD_34 equ 0xC6B
dasm_FD_35 equ 0xC88
dasm_FD_86 equ 0xB76
dasm_FD_8E equ 0xB9C
dasm_FD_96 equ 0xBBC
dasm_FD_9E equ 0xBDE
dasm_FD_A6 equ 0xBFD
dasm_FD_AE equ 0xC34
dasm_FD_B6 equ 0xC18
dasm_FD_BE equ 0xC4F
dasm_FD_E1 equ 0xDA5
dasm_FD_E3 equ 0xB2F
dasm_FD_E5 equ 0xD8F
dasm_FD_F9 equ 0xD77
dasm_FF equ 0xA66
dasm_UU equ 0xDAD
dasm_UW equ 0xDB1
dasm__AND equ 0xBEC
dasm__CP equ 0xC40
dasm__DEC equ 0xC77
dasm__ED_47 equ 0xABE
dasm__ED_4F equ 0xAC6
dasm__ED_57 equ 0xAAE
dasm__ED_5F equ 0xAB6
dasm__INC equ 0xC5A
dasm__LD equ 0xAAA
dasm__OR equ 0xC09
dasm__SBC equ 0xBC8
dasm__SUB equ 0xBAB
dasm__XOR equ 0xC23
dasm_opcode_table equ 0x5AB
dasm_print16hex_addr equ 0x3D8
dasm_print8hex equ 0x3F0
dasm_printFlags_table equ 0xDB6
dasm_printRegister8_table equ 0xDC6
dasm_printRegister8_table_HL equ 0xDE6
dasm_printRegisterIX_table equ 0xDCE
dasm_printRegisterIY_table equ 0xDD6
dasm_printRegisterSP_table equ 0xDDE
disassemble equ 0x29C
disassemble_continue equ 0x382
disassemble_err equ 0x372
disassemble_next equ 0x2A0
disassemble_print_opcode_params_end equ 0x36F
disassemble_print_opcode_params_loop equ 0x31B
disassemble_print_opcode_raw equ 0x2DD
disassemble_print_opcode_raw_fill equ 0x2F1
disassemble_table_first_match equ 0x3B4
disassemble_table_found equ 0x3CE
disassemble_table_notfound equ 0x3D2
disassemble_table_seek equ 0x390
disassemble_table_seek_loop equ 0x394
dump_pretty equ 0x1826
dump_pretty_ascii equ 0x1850
dump_pretty_ascii_cont equ 0x186E
dump_pretty_ascii_loop equ 0x1858
dump_pretty_ascii_none equ 0x1869
dump_pretty_col equ 0x1843
dump_pretty_end equ 0x1880
dump_pretty_nextrow equ 0x1874
dump_pretty_row equ 0x182E
endPrint equ 0x1F4
fat_cd_single equ 0x24B4
fat_copy_lba_pointer equ 0x2356
fat_exec equ 0x25CF
fat_get_root_table equ 0x2086
fat_getfatsec equ 0x217B
fat_openfile equ 0x2230
fat_openfile_noprepare equ 0x2238
fat_print_directory equ 0x239B
fat_readfilesec equ 0x2203
fat_reset_pointer equ 0x2347
format_filename_fat16 equ 0x2375
ide_printerror equ 0xEAA
ide_readsector_512_fast equ 0xE5F
ide_readsector_timeout equ 0xE94
ide_regread_8 equ 0xE49
ide_regwrite_8 equ 0xE2F
ide_reset equ 0xE23
ide_writesector_256 equ 0xEA9
ideif_drv_sel equ 0x15B0
ideif_get_drv_pointer equ 0x1550
ideif_init_all equ 0x1564
ideif_init_devtable equ 0x135D
ideif_init_drive equ 0x1470
ideif_prnt_devtable equ 0x137B
iic_init equ 0x1732
iic_read_ack equ 0x1779
iic_receive_buffer equ 0x1703
iic_receive_buffer_done equ 0x1726
iic_receive_buffer_err equ 0x172C
iic_receive_buffer_loop equ 0x1714
iic_receive_byte equ 0x17FF
iic_receive_byte_loop equ 0x180C
iic_send_ack equ 0x179F
iic_send_buffer equ 0x16D9
iic_send_buffer_done equ 0x16F7
iic_send_buffer_err equ 0x16FD
iic_send_buffer_loop equ 0x16E9
iic_send_byte equ 0x17D9
iic_send_byte_loop equ 0x17E5
iic_send_ebit equ 0x1758
iic_send_nack equ 0x17BC
iic_send_sbit equ 0x173F
interrupt_vectors equ 0x4000
mon_var_template equ 0x44
mon_var_template_end equ 0x50F
nxtILC equ 0x1E9
param_01 equ 0x3FE
param_02 equ 0x425
param_03 equ 0x442
param_03_done equ 0x47A
param_03_neg equ 0x463
param_04 equ 0x47E
param_04_i equ 0x48E
param_05 equ 0x494
param_06 equ 0x4A1
param_07 equ 0x4BB
param_08 equ 0x4C8
param_09 equ 0x4DD
param_09_0A equ 0x4E3
param_0A equ 0x4D4
param_10 equ 0x4F2
param_11 equ 0x502
param_11_12 equ 0x511
param_11_12_all equ 0x531
param_11_12_def equ 0x524
param_11_12_ix equ 0x529
param_11_12_iy equ 0x52E
param_12 equ 0x50A
param_13 equ 0x542
param_80 equ 0x561
param_80_seek equ 0x568
param_81 equ 0x558
param_comma equ 0x59C
param_printRegister equ 0x577
param_printRegisterA equ 0x595
param_printRegisterHL equ 0x58D
print_16_hex equ 0x1BF
print_32_hex equ 0x1A6
print_a_hex equ 0x142
print_bcd equ 0x154
print_char equ 0x114
print_clear equ 0x125
print_newLine equ 0x12C
print_reg equ 0x1F9
print_str equ 0x11C
print_str_fixed equ 0x18C0
print_wait_out equ 0x137
read_bcd equ 0x18D
read_char equ 0x16C
read_char_raw equ 0x15A
read_in_sts equ 0x183
read_lba_sector equ 0x1577
str_dev_done equ 0x1620
str_dev_waitready equ 0x1608
str_error_start equ 0xEDF
str_error_start1 equ 0xEFC
str_error_start2 equ 0xF05
str_error_time equ 0xF0E
str_post_apu equ 0x1F80
str_post_ide_30 equ 0x1F2F
str_post_ide_40 equ 0x1F4A
str_post_nd equ 0x1FB6
str_post_ok equ 0x1FEE
str_post_pio equ 0x1F65
str_post_rtc equ 0x1F9B
str_post_rtc_iv equ 0x1FC4
var_apu_present equ 0x410A
var_buffer_len equ 0x4100
var_bytes_count equ 0x411A
var_curserchar equ 0x4106
var_curserlastaddr equ 0x4107
var_curseron equ 0x4105
var_curserstate equ 0x4104
var_curserx equ 0x4102
var_cursery equ 0x4103
var_dir equ 0x412B
var_idebuffer equ 0x41CB
var_input equ 0x417B
var_last_char equ 0x4101
var_opcode equ 0x4114
var_opcode_length equ 0x4116
var_opcode_pcount equ 0x4119
var_opcode_start equ 0x4110
var_opcode_string equ 0x4117
var_opcode_table equ 0x4112
var_opcode_x equ 0x4115
var_pio_present equ 0x4109
var_ps2mem equ 0x411B
var_scratch equ 0x410B

View File

@@ -7,6 +7,7 @@
beep:
push AF
push DE
di
beep_loop:
LD A,0x08
OUT (CS_PIO_AD), A
@@ -20,6 +21,7 @@ beep_loop:
jr NZ, beep_loop
pop de
pop af
ei
ret
beep_pause:

View File

@@ -23,6 +23,10 @@ COMMAND_LUT:
db "?", 0, [OP_DUMP], [OP_DUMP]>>8 ;Print memory
db 0xFF ;End of Table
COMMAND_ABORT:
;cleanup stack
ld sp, STACK_RAM_TOP
; return to prompt
COMMAND:
call print_newLine
ld hl,[var_dir]
@@ -148,6 +152,8 @@ COMMAND_PROCESS_FOUND:
_COMMAND_PROCESS_FOUND
JP (HL)
NOT_IMPLEMENTED:
LD HL,[_STR_NOT_IMPLEMENTED]
CALL print_str

View File

@@ -6,51 +6,19 @@
;9600 -> 12 / 00110000
;
CONSOLE_INIT:
CONSOLE_INIT_CTC:
;LD A,00001111b ; Set /16 Divider, CPU Trigger, Time COnstant Follows
LD A,01001111b ; External Trigger, Time COnstant Follows
OUT (CS_CTC_0),A
IN A,(CS_DIP) ; Read BAUD from DIP-Switches
;LD A,39
OUT (CS_CTC_0),A
CONSOLE_INIT_SIO:
LD A,00110000b ;write into WR0: error reset, select WR0
OUT (CS_SIO_A_C),A
LD a,018h ;write into WR0: channel reset
OUT (CS_SIO_A_C),A
LD a,004h ;write into WR0: select WR4
OUT (CS_SIO_A_C),A
LD a,01000100b ;write into WR4: clkx16,1 stop bit, no parity
OUT (CS_SIO_A_C),A
LD a,005h ;write into WR0: select WR5
OUT (CS_SIO_A_C),A
LD a,11101000b ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive
OUT (CS_SIO_A_C),A
LD a,01h ;write into WR0: select WR1
OUT (CS_SIO_A_C),A
LD a,00000100b ;no interrupt in CH B, special RX condition affects vect
OUT (CS_SIO_A_C),A
LD a,02h ;write into WR0: select WR2
OUT (CS_SIO_A_C),A
LD a,0h ;write into WR2: cmd line int vect (see int vec table)
;bits D3,D2,D1 are changed according to RX condition
OUT (CS_SIO_A_C),A
LD a,003h ;write into WR0: select WR3
OUT (CS_SIO_A_C),A
LD a,0C1h ;RX 8bit, auto enable off, RX on
OUT (CS_SIO_A_C),A
;Channel A RX active
RET
call con_rb_init; initialize ring buffer
call consio_init_a
ret
; A contains char
; Destroys A
print_char:
push af
out (CS_SIO_A_D),a
call print_wait_out
call consio_tx_a
pop af
;call print_char
ret
; HL contains pointer to string
; Destroy A, HL
@@ -105,7 +73,7 @@ print_bcd:
call print_char
ret
read_char:
read_char_raw:
call A_RTS_ON
nop
xor a ; a = 0
@@ -117,14 +85,8 @@ read_char:
in a, (CS_SIO_A_D) ; read char if avail
ret ; return
read_in_sts:
out (CS_SIO_A_C), a ; select reg 0
in a, (CS_SIO_A_C) ; read reg 0
and 1 ; mask D0 (recieve char available)
ret z
ld a, 0xFF
ret
read_char:
jp consio_rx_a
read_bcd;
call read_char
@@ -158,6 +120,59 @@ print_16_hex:
call print_a_hex
ret
;input ringbuffer
;initialize ringbuffer
con_rb_init:
xor a
ld (var_buffer_conin_in),a
ld (var_buffer_conin_out),a
ld (var_buffer_conin_sts),a
ret
con_rb_read:
push hl
push de
ld a,(var_buffer_conin_in)
ld b,a
ld a,(var_buffer_conin_out)
cp b ;check if equal
jp z, con_rb_read_empty
;if not equal, buffer contians data
ld h, high [var_buffer_conin_data] ;load high byte for pointer
ld l, a
ld a,(hl)
push af
;move pointer
ld a,(var_buffer_conin_out)
inc a
ld (var_buffer_conin_out),a
pop af
pop de
pop hl
ret
con_rb_read_empty:
ld a,1
ld (var_buffer_conin_sts),a
xor a
pop de
pop hl
ret
con_rb_write:
push hl
push af
ld h, high [var_buffer_conin_data] ;load high byte for pointer
ld a,(var_buffer_conin_in)
ld l,a
pop af
ld (hl),a
ld a,(var_buffer_conin_in)
inc a
ld (var_buffer_conin_in),a
;TODO: check for overflow
pop hl
ret
;MSG_CRSR_0:
; db 0x1B, "[?25h",0

View File

@@ -8,6 +8,7 @@
;================================================================
IDE_CMD_IDENT .EQU 0xEC ;Identify drive.
IDE_CMD_READSEC .EQU 0x20 ;Read sectors.
IDE_CMD_WRITESEC .EQU 0x30 ;Write sectors.
;================================================================
; IDE Variables

View File

@@ -0,0 +1,85 @@
INT_VEC_TABLE .equ [interrupt_vectors]
INT_PIO_ADDRD .equ CS_PIO_AD
INT_PIO_ADDRC .equ CS_PIO_AC
;initialize interrupt controller
intctrl_init:
;disable interrupt (just to make sure)
di
;setup interrupt table
ld a,high [INT_VEC_TABLE]
ld i,a
;setup PIO
ld a, 10000011b ;enable interrupt
out (INT_PIO_ADDRC), a
ld a, 00000010b ;set interrupt vector
out (INT_PIO_ADDRC), a
ld a, 11001111b ;setup as controll port
out (INT_PIO_ADDRC), a
ld a, 11110111b ;set all as inputs
out (INT_PIO_ADDRC), a
ld a, 10010111b ;enable interrupt; logic or, mask follows
out (INT_PIO_ADDRC), a
ld a, 11000000b ;set interrupt mask
out (INT_PIO_ADDRC), a
; set port
xor a
out (INT_PIO_ADDRD), a
;fill table
ld hl,[INT_VEC_TABLE]
ld b,128
_intctrl_init_fill_loop:
ld a, low [_int_invalid_int]
ld (hl),a
inc hl
ld a, high [_int_invalid_int]
ld (hl),a
inc hl
djnz _intctrl_init_fill_loop
;set int vector for PIO
ld hl, [_isr_pio]
ld (INT_VEC_TABLE + 2), hl
;enable interrupts
im 2
ret
;------------------------------------------------------------------------------
; setup interrupt for PIO pin
; inputs: a (interrupt pin)
; hl (jump addr)
;------------------------------------------------------------------------------
initctrl_int_register:
;------------------------------------------------------------------------------
; removes interrupt for PIO pin
; inputs: a (interrupt pin)
;------------------------------------------------------------------------------
initctrl_int_abandon:
; jumps to isr. MUST be exited with RETI opcode!
_isr_pio:
di
ld hl, [_str_pio_interrupt]
call print_str
;get int from pio
in a,(INT_PIO_ADDRD)
call print_a_hex
_int_invalid_int:
di
ld hl, [_str_invalid_interrupt]
call print_str
ei
reti
_str_invalid_interrupt:
db 10,13,"[KERNEL] INT: Invalid interrupt call! Exiting ISR.",10,13,0
_str_pio_interrupt:
db 10,13,"[KERNEL] INT: (DEBUG) Interrupt call from PIO.",10,13,0

View File

@@ -0,0 +1,124 @@
;----------------------------------------------------------------
;BIOS Driver for Serial Console
;by Dennis Gunia (07/2024)
;
;----------------------------------------------------------------
;================================================================
; I/O access functions
;================================================================
;initialize SIO Port A
consio_init_a:
call consio_init_ctc_a
call consio_init_a_sio
;call consio_init_a_int
ret
consio_init_a_sio:
ld A, 00110000b ;write into WR0: error reset, select WR0
out (CS_SIO_A_C), a
ld a, 018h ;write into WR0: channel reset
out (CS_SIO_A_C), a
ld a, 004h ;write into WR0: select WR4
out (CS_SIO_A_C), a
ld a, 01000100b ;write into WR4: clkx16,1 stop bit, no parity
out (CS_SIO_A_C), a
ld a, 005h ;write into WR0: select WR5
out (CS_SIO_A_C), a
ld a, 11101000b ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive
out (CS_SIO_A_C), a
ld a, 01h ;write into WR0: select WR1
out (CS_SIO_A_C), a
ld a, 00000100b ;no interrupt in CH B, special RX condition affects vect
out (CS_SIO_A_C), a
ld a, 02h ;write into WR0: select WR2
out (CS_SIO_A_C), a
ld a, 0h ;write into WR2: cmd line int vect (see int vec table)
;bits D3,D2,D1 are changed according to RX condition
out (CS_SIO_A_C), a
ld a, 003h ;write into WR0: select WR3
out (CS_SIO_A_C), a
ld a, 0C1h ;RX 8bit, auto enable off, RX on
out (CS_SIO_A_C), a
ret
consio_init_a_int:
;setup SIO interrupt vector
ld a, 2 ;write WR2
out (CS_SIO_B_C), a
ld a, 00000100b ;write Vector
out (CS_SIO_B_C), a
;setup SIO
ld a, 1 ;write WR1
out (CS_SIO_A_C), a
ld a, 00011000b ;enable INT on all RX
out (CS_SIO_A_C), a
;set ISR addr
ld hl, [consio_isr]
ld (INT_VEC_TABLE + 4), hl
ret
consio_init_ctc_a:
ld a, 01001111b; External Trigger, Time COnstant Follows
out (CS_CTC_0),a
in a, (CS_DIP) ; Read BAUD from DIP-Switches
out (CS_CTC_0),a
ret
consio_tx_a:
out (CS_SIO_A_D),a
consio_tx_a_waitout:
; check for TX buffer empty
sub a ;clear a, write into WR0: select RR0
inc a ;select RR1
out (CS_SIO_A_C),A
in A,(CS_SIO_A_C) ;read RRx
bit 0,A
jr z,consio_tx_a_waitout
ret
consio_rx_a:
call consio_rx_rts_a_on
xor a ; a = 0
out (CS_SIO_A_C), a ; select reg 0
in a, (CS_SIO_A_C) ; read reg 0
and 1 ; mask D0 (recieve char available)
call A_RTS_OFF
ret Z ; return 0 if no char
in a, (CS_SIO_A_D) ; read char if avail
ret ; return
consio_rx_rts_a_on:
ld a,005h ;write into WR0: select WR5
out (CS_SIO_A_C),A
ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active
out (CS_SIO_A_C),A
ret
consio_rx_rts_a_off:
ld a,005h ;write into WR0: select WR5
out (CS_SIO_A_C),A
ld a,068h ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive
out (CS_SIO_A_C),A
ret
consio_rx_a_sts:
out (CS_SIO_A_C), a ; select reg 0
in a, (CS_SIO_A_C) ; read reg 0
and 1 ; mask D0 (recieve char available)
ret z
ld a, 0xFF
ret
;Interrupt service routine
consio_isr:
di
ld a, 00111000b ;RET fro INT
out (CS_SIO_B_C), a ;read data
in a, (CS_SIO_A_D)
call con_rb_write ;write to ringbuffer
ei
reti

View File

@@ -2,7 +2,7 @@
; BIOS Routines entry points
; Do not move in memory!!!!
;-------------------------------------
.org 0x0050
org 0x0050
B_BEEP:
jp beep

View File

@@ -58,10 +58,23 @@ INT_VEC:
;================================================================
; Memory layout
;================================================================
mon_var_template_sof .EQU mon_var_template + 1024
mon_var_template:
phase SYS_RAM_START
interrupt_vectors:
defs 256
var_buffer_conin_data: ;contains console input
defs 256
var_buffer_conin_in: ;pointer to write position of buffer
defb 0
var_buffer_conin_out: ;pointer to read position of buffer
defb 0
var_buffer_conin_sts:
defb 0
var_buffer_conout:
defb 0
var_buffer_len:
defb 0
var_last_char:
@@ -100,8 +113,7 @@ mon_var_template_end:
;================================================================
; Start of monitor
;================================================================
org 0x0050
.include "ref.s" ;static bios calls for programs
.include "ref.s" ;static bios calls for programs
BOOT_PHASE0: ;Setup Hardware
;Setup Stack-Pointer
@@ -122,15 +134,23 @@ BOOT_PHASE0: ;Setup Hardware
ld a, " "
ld (var_curserchar),a
;setup interrupt table
ld a,[interrupt_vectors]>>8
ld i,a
;Enable interupts
call intctrl_init
;Initialize Console (Serial-Port)
call CONSOLE_INIT
call CONSOLE_INIT
;clear memory area
ld hl, [mon_var_template_sof]
ld bc, [mon_var_template_end-mon_var_template_sof]
ld de, [mon_var_template_sof+1]
xor a
ld (hl),a
ldir
jp BOOT_PHASE2 ;skip rest of table init
BOOT_PHASE1: ;Copy default values to RAM
ld hl,mon_var_template
ld hl,mon_var_template + 1024
ld de,mon_var_template_end
ld bc,SYS_RAM_START
BOOT_PHASE1_LOOP:
@@ -165,6 +185,8 @@ BOOT_PHASE2: ;Hardware initialized.
xor a ;set dir to empty
ld (var_dir),a
ld (var_dir+1),a
;enable interrupts
ei
; Start commandline
jp COMMAND
@@ -183,6 +205,8 @@ BOOT_PHASE2: ;Hardware initialized.
.include "kdrv_ide8255.s" ;include ide interface driver.
.include "kdrv_ideif.s" ;include ide driver.
.include "kdrv_siic.s"
.include "kdrv_int.s"
.include "kdrv_sio.s"
.include "prettydump.s"
.include "command.s"
.include "cmd_mem.s"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,270 +0,0 @@
!0000 C3 50 00
!0008 C3 B6 0E
!0010 C3 BA 0E
!0018 C3 C6 0E
!0044 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
!0054 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
!0064 00 00 00 00 00 00 00 00 00 00
!0050 31 FF FF AF 32 04 40 32 05 40 3E 20 32 06 40 CD
!0060 70 02 21 44 00 11 2A 40 01 00 40 7E 02 23 03 E5
!0070 ED 52 E1 C2 6B 00 CD BC 02 21 C9 0E CD B1 02 CD
!0080 8B 00 76 47 7A D3 40 78 D3 41 C9 CD C3 02 3E 3E
!0090 CD A9 02 AF 32 00 40 CD EA 02 CA 97 00 F5 F1 FE
!00A0 0D CA EE 00 FE 0A CA 97 00 FE 08 CA C8 00 F5 21
!00B0 29 40 16 00 3A 00 40 5F 19 3C 32 00 40 F1 77 CD
!00C0 A9 02 23 AF 77 C3 97 00 3A 00 40 A7 CA 97 00 3D
!00D0 32 00 40 5F 16 00 21 29 40 19 AF 77 3E 08 CD A9
!00E0 02 3E 20 CD A9 02 3E 08 CD A9 02 C3 97 00 3A 29
!00F0 40 FE 24 CA 21 01 FE 3F CA 40 01 FE 21 CA AA 01
!0100 FE 69 CA 0F 02 FE 6F CA E6 01 FE 64 CA 2B 02 FE
!0110 78 CA 15 0F CD C3 02 21 F4 0E CD B1 02 C3 8B 00
!0120 C9 AF 32 29 40 21 2A 40 CD 16 03 47 7B A7 C2 64
!0130 02 21 2C 40 CD 16 03 4F 7B A7 C2 64 02 60 69 E9
!0140 CD C3 02 21 2A 40 CD 16 03 47 7B A7 C2 64 02 21
!0150 2C 40 CD 16 03 4F 7B A7 C2 64 02 3A 2E 40 FE 20
!0160 C2 64 02 21 2F 40 CD 16 03 F5 7B A7 C2 64 02 21
!0170 F9 0E CD B1 02 F1 60 69 47 CD C3 02 7C CD D9 02
!0180 7D CD D9 02 3E 20 CD A9 02 0E 08 7E CD D9 02 23
!0190 05 0D 78 A7 CA A4 01 79 A7 CA 79 01 3E 20 CD A9
!01A0 02 C3 8B 01 CD C3 02 C3 8B 00 21 2A 40 CD 16 03
!01B0 47 7B A7 C2 64 02 21 2C 40 CD 16 03 4F 7B A7 C2
!01C0 64 02 21 2E 40 7E FE 00 CA E0 01 FE 20 C2 64 02
!01D0 23 CD 16 03 02 7B A7 C2 64 02 03 23 23 C3 C5 01
!01E0 CD C3 02 C3 8B 00 21 2A 40 CD 16 03 4F 7B A7 C2
!01F0 64 02 3A 2C 40 FE 20 C2 64 02 21 2D 40 CD 16 03
!0200 F5 7B A7 C2 64 02 F1 ED 79 CD C3 02 C3 8B 00 21
!0210 2A 40 CD 16 03 4F 7B A7 C2 64 02 ED 78 F5 CD C3
!0220 02 F1 CD D9 02 CD C3 02 C3 8B 00 CD C3 02 21 2A
!0230 40 CD 16 03 47 7B A7 C2 64 02 21 2C 40 CD 16 03
!0240 4F 7B A7 C2 64 02 3A 2E 40 FE 20 C2 64 02 21 2F
!0250 40 CD 16 03 F5 7B A7 C2 64 02 60 69 F1 47 CD 67
!0260 03 C3 8B 00 CD C3 02 21 EF 0E CD B1 02 C3 8B 00
!0270 3E 4F D3 04 DB 01 D3 04 3E 30 D3 09 3E 18 D3 09
!0280 3E 04 D3 09 3E 44 D3 09 3E 05 D3 09 3E E8 D3 09
!0290 3E 01 D3 09 3E 04 D3 09 3E 02 D3 09 3E 00 D3 09
!02A0 3E 03 D3 09 3E C1 D3 09 C9 F5 D3 08 CD CE 02 F1
!02B0 C9 7E B7 28 06 CD A9 02 23 18 F6 C9 21 FC 02 CD
!02C0 B1 02 C9 3E 0A CD A9 02 3E 0D CD A9 02 C9 97 3C
!02D0 D3 09 DB 09 CB 47 28 F6 C9 F5 C5 D5 CD 4D 03 78
!02E0 CD A9 02 79 CD A9 02 D1 C1 F1 CD 0D 03 00 AF D3
!02F0 09 DB 09 E6 01 CD 04 03 C8 DB 08 C9 1B 5B 32 4A
!0300 1B 5B 48 00 3E 05 D3 09 3E 68 D3 09 C9 3E 05 D3
!0310 09 3E EA D3 09 C9 E5 7E CD 36 03 38 15 CB 27 CB
!0320 27 CB 27 CB 27 57 23 7E CD 36 03 38 05 B2 E1 1E
!0330 00 C9 1E FF E1 C9 D6 30 EA 4B 03 FE 0A 38 05 D6
!0340 07 EA 4B 03 FE 10 30 03 E6 0F C9 37 C9 F5 1F 1F
!0350 1F 1F CD 5C 03 47 F1 CD 5C 03 4F C9 E6 0F C6 30
!0360 FE 3A D8 C6 07 C9 C9 78 32 1A 41 22 10 41 7E 32
!0370 14 41 23 7E 32 15 41 2B CD 5B 04 78 B1 CA 3D 04
!0380 ED 43 12 41 03 03 03 03 0A 32 16 41 03 0A 5F 03
!0390 0A 57 ED 53 17 41 03 0A 32 19 41 2A 10 41 CD A3
!03A0 04 3A 16 41 47 2A 10 41 7E CD D9 02 23 10 F9 3E
!03B0 68 CD A9 02 3A 16 41 47 3E 06 90 47 3E 20 CD A9
!03C0 02 3E 20 CD A9 02 10 F4 3E 20 CD A9 02 E5 2A 17
!03D0 41 CD B1 02 3A 19 41 B7 CA 3A 04 2A 12 41 01 08
!03E0 00 09 3A 19 41 47 7E FE 01 CC C9 04 FE 02 CC F0
!03F0 04 FE 03 CC 0D 05 FE 04 CC 49 05 FE 05 CC 5F 05
!0400 FE 06 CC 6C 05 FE 07 CC 86 05 FE 08 CC 93 05 FE
!0410 09 CC A8 05 FE 10 CC BD 05 FE 11 CC CD 05 FE 12
!0420 CC D5 05 FE 13 CC 0D 06 FE 0A CC 9F 05 FE 80 CC
!0430 2C 06 FE 81 CC 23 06 23 10 AC E1 18 10 CD A3 04
!0440 7E CD BB 04 23 E5 21 78 0E CD B1 02 E1 CD C3 02
!0450 3A 1A 41 3D 32 1A 41 C2 6B 03 C9 E5 21 76 06 3A
!0460 14 41 4F 7E FE FF CA 9D 04 F5 23 46 2B 79 A0 4F
!0470 F1 B9 28 0B 06 00 0E 07 09 7E 4F 09 23 18 E0 23
!0480 23 4E 23 3A 15 41 46 A0 B9 2B 2B 2B 28 0B 06 00
!0490 0E 07 09 7E 4F 09 23 18 C6 44 4D E1 C9 06 00 0E
!04A0 00 E1 C9 3E 24 CD A9 02 7C CD D9 02 7D CD D9 02
!04B0 3E 68 CD A9 02 3E 20 CD A9 02 C9 CD D9 02 3E 68
!04C0 CD A9 02 3E 20 CD A9 02 C9 E5 ED 5B 10 41 13 1A
!04D0 6F 13 1A 67 3E 24 CD A9 02 7C CD D9 02 7D CD D9
!04E0 02 3E 68 CD A9 02 3E 20 CD A9 02 CD 67 06 E1 C9
!04F0 C5 ED 5B 10 41 1A 1F 1F E6 0E E5 21 81 0E 06 00
!0500 4F 09 CD B1 02 3E 20 CD A9 02 E1 C1 C9 ED 5B 10
!0510 41 13 1A F5 E6 80 C2 2E 05 3E 24 CD A9 02 3E 2B
!0520 CD A9 02 F1 CD D9 02 3E 68 CD A9 02 18 17 3E 24
!0530 CD A9 02 3E 2D CD A9 02 F1 ED 44 CD D9 02 3E 68
!0540 CD A9 02 18 00 CD 67 06 C9 ED 5B 10 41 13 1A FE
!0550 4D 28 06 3E 4E CD A9 02 C9 3E 49 CD A9 02 C9 C5
!0560 ED 5B 10 41 1A E6 38 CD BB 04 C1 C9 C5 ED 5B 10
!0570 41 1A 1F 1F 1F E6 07 CD 42 06 3E 20 CD A9 02 3E
!0580 2C CD A9 02 C1 C9 C5 ED 5B 10 41 1A E6 07 CD 42
!0590 06 C1 C9 C5 ED 5B 10 41 13 1A CD BB 04 C1 C9 E5
!05A0 ED 5B 10 41 13 13 18 06 E5 ED 5B 10 41 13 1A 6F
!05B0 13 1A 67 7C CD D9 02 7D CD D9 02 E1 C9 C5 ED 5B
!05C0 10 41 1A 1F 1F 1F E6 07 CD 42 06 C1 C9 E5 C5 ED
!05D0 5B 10 41 18 07 E5 C5 ED 5B 10 41 13 1A 1F 1F 1F
!05E0 E6 06 F5 2A 10 41 7E FE DD 28 09 FE FD 28 0A 21
!05F0 91 0E 18 08 21 99 0E 18 03 21 A1 0E F1 06 00 4F
!0600 09 7E CD A9 02 23 7E CD A9 02 C1 E1 C9 E5 C5 ED
!0610 5B 10 41 1A 1F 1F 1F E6 06 F5 2A 10 41 7E 21 A9
!0620 0E 18 D9 E5 C5 2A 17 41 06 02 18 07 E5 C5 2A 17
!0630 41 06 01 7E 23 A7 20 FB 05 C2 33 06 CD B1 02 C1
!0640 E1 C9 E5 FE 06 28 11 FE 07 28 15 21 91 0E 06 00
!0650 4F 09 7E CD A9 02 E1 C9 21 B1 0E CD B1 02 E1 C9
!0660 3E 41 CD A9 02 E1 C9 78 FE 01 C8 3E 20 CD A9 02
!0670 3E 2C CD A9 02 C9 00 FF 00 00 01 CE 0A 00 27 FF
!0680 00 00 01 99 0B 00 2F FF 00 00 01 9D 0B 00 ED FF
!0690 44 FF 02 A1 0B 00 3F FF 00 00 01 A5 0B 00 37 FF
!06A0 00 00 01 A9 0B 00 76 FF 00 00 01 AD 0B 00 F3 FF
!06B0 00 00 01 B2 0B 00 FB FF 00 00 01 B5 0B 00 ED FF
!06C0 46 FF 02 B8 0B 00 ED FF 56 FF 02 BD 0B 00 ED FF
!06D0 5E FF 02 C2 0B 00 EB FF 00 00 01 C7 0B 00 08 FF
!06E0 00 00 01 D1 0B 00 D9 FF 00 00 01 DE 0B 00 E3 FF
!06F0 00 00 01 E2 0B 00 DD FF E3 FF 02 EE 0B 00 FD FF
!0700 E3 FF 02 FA 0B 00 ED FF A0 FF 02 06 0C 00 ED FF
!0710 B0 FF 02 0A 0C 00 ED FF A8 FF 02 0F 0C 00 ED FF
!0720 B8 FF 02 13 0C 00 ED FF A1 FF 02 18 0C 00 ED FF
!0730 B1 FF 02 1C 0C 00 ED FF A9 FF 02 21 0C 00 ED FF
!0740 B9 FF 02 25 0C 00 C3 FF 00 00 03 D2 0A 01 01 C2
!0750 C7 00 00 03 D2 0A 03 02 80 01 18 FF 00 00 02 D9
!0760 0A 01 03 38 FF 00 00 02 DD 0A 01 03 30 FF 00 00
!0770 02 E4 0A 01 03 28 FF 00 00 02 EC 0A 01 03 20 FF
!0780 00 00 02 F3 0A 01 03 E9 FF 00 00 02 FB 0A 00 DD
!0790 FF E9 FF 02 04 0B 00 FD FF E9 FF 02 0D 0B 00 10
!07A0 FF 00 00 02 16 0B 01 03 CD FF 00 00 03 1C 0B 01
!07B0 01 C4 C7 00 00 03 1C 0B 02 02 01 C9 FF 00 00 01
!07C0 22 0B 00 C0 C7 00 00 01 22 0B 01 02 ED FF 4D FF
!07D0 02 27 0B 00 ED FF 45 FF 02 2C 0B 00 C7 C7 00 00
!07E0 01 31 0B 01 05 0A FF 00 00 01 36 0B 00 1A FF 00
!07F0 00 01 40 0B 00 3A FF 00 00 03 4A 0B 02 09 80 02
!0800 FF 00 00 01 54 0B 00 12 FF 00 00 01 5F 0B 00 32
!0810 FF 00 00 03 6A 0B 02 09 80 ED FF 57 FF 02 79 0B
!0820 00 ED FF 5F FF 02 81 0B 00 ED FF 47 FF 02 89 0B
!0830 00 ED FF 4F FF 02 91 0B 00 06 C7 00 00 02 75 0B
!0840 02 06 08 40 C0 00 00 01 75 0B 02 06 07 80 F8 00
!0850 00 01 2A 0C 01 07 C6 FF 00 00 02 2A 0C 01 08 DD
!0860 FF 86 FF 03 32 0C 02 08 80 FD FF 86 FF 03 41 0C
!0870 02 08 80 C8 F8 00 00 01 50 0C 01 07 8E F8 00 00
!0880 02 50 0C 01 08 DD FF 8E FF 03 58 0C 02 08 80 FD
!0890 FF 8E FF 03 67 0C 02 08 80 90 F8 00 00 01 76 0C
!08A0 01 07 D6 FF 00 00 02 76 0C 01 08 DD FF 96 FF 03
!08B0 7B 0C 02 08 80 FD FF 96 FF 03 87 0C 02 08 80 94
!08C0 F8 00 00 01 93 0C 01 07 DE FF 00 00 02 93 0C 01
!08D0 08 DD FF 9E FF 03 9B 0C 02 08 80 FD FF 9E FF 03
!08E0 A9 0C 02 08 80 A0 F8 00 00 01 B7 0C 01 07 E6 FF
!08F0 00 00 02 B7 0C 01 08 DD FF A6 FF 03 BC 0C 02 08
!0900 80 FD FF A6 FF 03 C8 0C 02 08 80 B0 F8 00 00 01
!0910 D4 0C 01 07 F6 FF 00 00 02 D4 0C 01 08 DD FF B6
!0920 FF 03 D8 0C 02 08 80 FD FF B6 FF 03 E3 0C 02 08
!0930 80 A8 F8 00 00 01 EE 0C 01 07 EE FF 00 00 02 EE
!0940 0C 01 08 DD FF AE FF 03 F3 0C 02 08 80 FD FF AE
!0950 FF 03 FF 0C 02 08 80 B8 F8 00 00 01 0B 0D 01 07
!0960 FE FF 00 00 02 0B 0D 01 08 DD FF BE FF 03 0F 0D
!0970 02 08 80 FD FF BE FF 03 1A 0D 02 08 80 04 C7 00
!0980 00 01 25 0D 01 10 DD FF 34 FF 03 2A 0D 02 08 80
!0990 FD FF 34 FF 03 36 0D 02 08 80 05 C7 00 00 01 42
!09A0 0D 01 10 DD FF 35 FF 03 47 0D 02 08 80 FD FF 35
!09B0 FF 03 53 0D 02 08 80 09 CF 00 00 01 5F 0D 01 11
!09C0 ED FF 4A CF 02 68 0D 01 12 ED FF 42 CF 02 71 0D
!09D0 01 12 DD FF 09 CF 02 7A 0D 01 12 FD FF 09 CF 02
!09E0 83 0D 01 12 03 CF 00 00 01 8C 0D 01 11 DD FF 23
!09F0 FF 02 91 0D 00 FD FF 23 FF 02 9A 0D 00 0B CF 00
!0A00 00 01 A3 0D 01 11 DD FF 2B FF 02 A8 0D 00 FD FF
!0A10 2B FF 02 B1 0D 00 01 CF 00 00 03 BA 0D 03 11 80
!0A20 09 DD FF 21 FF 04 C1 0D 01 0A FD FF 21 FF 04 C9
!0A30 0D 01 0A 2A FF 00 00 03 D1 0D 02 09 80 ED FF 4B
!0A40 CF 04 DD 0D 04 12 80 0A 81 DD FF 2A FF 04 E8 0D
!0A50 01 0A FD FF 2A FF 04 F4 0D 01 0A 22 FF 00 00 03
!0A60 00 0E 02 0A 80 ED FF 43 CF 04 0C 0E 03 0A 80 12
!0A70 DD FF 22 CF 04 16 0E 02 0A 80 FD FF 22 CF 04 22
!0A80 0E 02 0A 80 F9 FF 00 00 01 2E 0E 00 DD FF F9 FF
!0A90 02 38 0E 00 FD FF F9 FF 02 42 0E 00 C5 CF 00 00
!0AA0 01 4C 0E 01 13 DD FF E5 FF 02 52 0E 00 FD FF E5
!0AB0 FF 02 5A 0E 00 C1 CF 00 00 01 62 0E 01 13 DD FF
!0AC0 E1 FF 02 68 0E 00 FD FF E1 FF 02 70 0E 00 4E 4F
!0AD0 50 00 4A 50 20 00 2C 20 00 4A 52 20 00 4A 52 20
!0AE0 43 2C 20 00 4A 52 20 4E 43 2C 20 00 4A 52 20 5A
!0AF0 2C 20 00 4A 52 20 4E 5A 2C 20 00 4A 50 20 28 48
!0B00 4C 29 20 00 4A 50 20 28 49 58 29 20 00 4A 50 20
!0B10 28 49 59 29 20 00 44 4A 4E 5A 20 00 43 41 4C 4C
!0B20 20 00 52 45 54 20 00 52 45 54 49 00 52 45 54 4E
!0B30 00 52 53 54 20 00 4C 44 20 41 2C 28 42 43 29 00
!0B40 4C 44 20 41 2C 28 44 45 29 00 4C 44 20 41 2C 28
!0B50 00 68 29 00 4C 44 20 28 42 43 29 2C 20 41 00 4C
!0B60 44 20 28 44 45 29 2C 20 41 00 4C 44 20 28 00 68
!0B70 29 2C 20 41 00 4C 44 20 00 4C 44 20 41 2C 20 49
!0B80 00 4C 44 20 41 2C 20 52 00 4C 44 20 49 2C 20 41
!0B90 00 4C 44 20 52 2C 20 41 00 44 41 41 00 43 50 4C
!0BA0 00 4E 45 47 00 43 43 46 00 53 43 46 00 48 41 4C
!0BB0 54 00 44 49 00 45 49 00 49 4D 20 30 00 49 4D 20
!0BC0 31 00 49 4D 20 32 00 45 58 20 44 45 2C 20 48 4C
!0BD0 00 45 58 20 41 46 2C 20 41 46 E2 80 B2 00 45 58
!0BE0 58 00 45 58 20 28 53 50 29 2C 20 48 4C 00 45 58
!0BF0 20 28 53 50 29 2C 20 49 58 00 45 58 20 28 53 50
!0C00 29 2C 20 49 59 00 4C 44 49 00 4C 44 49 52 00 4C
!0C10 44 44 00 4C 44 44 52 00 43 50 49 00 43 50 49 52
!0C20 00 43 50 44 00 43 50 44 52 00 41 44 44 20 41 2C
!0C30 20 00 41 44 44 20 41 2C 20 28 49 58 2B 00 68 29
!0C40 00 41 44 44 20 41 2C 20 28 49 59 2B 00 68 29 00
!0C50 41 44 43 20 41 2C 20 00 41 44 43 20 41 2C 20 28
!0C60 49 58 2B 00 68 29 00 41 44 43 20 41 2C 20 28 49
!0C70 59 2B 00 68 29 00 53 55 42 20 00 53 55 42 20 28
!0C80 49 58 2B 00 68 29 00 53 55 42 20 28 49 59 2B 00
!0C90 68 29 00 53 42 43 20 41 2C 20 00 53 42 43 20 41
!0CA0 2C 28 49 58 2B 00 68 29 00 53 42 43 20 41 2C 28
!0CB0 49 59 2B 00 68 29 00 41 4E 44 20 00 41 4E 44 20
!0CC0 28 49 58 2B 00 68 29 00 41 4E 44 20 28 49 59 2B
!0CD0 00 68 29 00 4F 52 20 00 4F 52 20 28 49 58 2B 00
!0CE0 68 29 00 4F 52 20 28 49 59 2B 00 68 29 00 58 4F
!0CF0 52 20 00 58 4F 52 20 28 49 58 2B 00 68 29 00 58
!0D00 4F 52 20 28 49 59 2B 00 68 29 00 43 50 20 00 43
!0D10 50 20 28 49 58 2B 00 68 29 00 43 50 20 28 49 59
!0D20 2B 00 68 29 00 49 4E 43 20 00 49 4E 43 20 28 49
!0D30 58 2B 00 68 29 00 49 4E 43 20 28 49 59 2B 00 68
!0D40 29 00 44 45 43 20 00 44 45 43 20 28 49 58 2B 00
!0D50 68 29 00 44 45 43 20 28 49 59 2B 00 68 29 00 41
!0D60 44 44 20 48 4C 2C 20 00 41 44 43 20 48 4C 2C 20
!0D70 00 53 42 43 20 48 4C 2C 20 00 41 44 44 20 49 58
!0D80 2C 20 00 41 44 44 20 49 59 2C 20 00 49 4E 43 20
!0D90 00 49 4E 43 20 49 58 2C 20 00 49 4E 43 20 49 59
!0DA0 2C 20 00 44 45 43 20 00 44 45 43 20 49 58 2C 20
!0DB0 00 44 45 43 20 49 59 2C 20 00 4C 44 20 00 2C 20
!0DC0 00 4C 44 20 49 58 2C 20 00 4C 44 20 49 59 2C 20
!0DD0 00 4C 44 20 48 4C 2C 20 28 00 68 29 00 4C 44 20
!0DE0 00 2C 20 28 00 68 29 00 4C 44 20 49 58 2C 20 28
!0DF0 00 68 29 00 4C 44 20 49 59 2C 20 28 00 68 29 00
!0E00 4C 44 20 28 00 68 29 2C 20 48 4C 00 4C 44 20 28
!0E10 00 68 29 2C 20 00 4C 44 20 28 00 68 29 2C 20 49
!0E20 58 00 4C 44 20 28 00 68 29 2C 20 49 59 00 4C 44
!0E30 20 53 50 2C 20 48 4C 00 4C 44 20 53 50 2C 20 49
!0E40 58 00 4C 44 20 53 50 2C 20 49 59 00 50 55 53 48
!0E50 20 00 50 55 53 48 20 49 58 00 50 55 53 48 20 49
!0E60 59 00 50 55 53 48 20 00 50 55 53 48 20 49 58 00
!0E70 50 55 53 48 20 49 59 00 2E 3F 2E 00 20 20 20 20
!0E80 00 4E 5A 5A 00 4E 43 43 00 50 4F 50 45 50 00 4D
!0E90 00 42 43 44 45 48 4C 53 50 42 43 44 45 49 58 53
!0EA0 50 42 43 44 45 49 59 53 50 42 43 44 45 48 4C 41
!0EB0 46 28 48 4C 29 00 CD A9 02 C9 C5 D5 E5 CD EA 02
!0EC0 F5 F1 E1 D1 C1 C9 3E 00 C9 5A 38 43 20 4D 6F 6E
!0ED0 69 74 6F 72 20 56 32 20 62 79 20 44 65 6E 6E 69
!0EE0 73 20 47 75 6E 69 61 20 28 32 30 32 32 29 00 73
!0EF0 79 6E 3F 00 63 6D 64 3F 00 42 41 53 45 20 30 20
!0F00 20 31 20 20 32 20 20 33 20 20 34 20 20 35 20 20
!0F10 36 20 20 37 00 CD 04 03 3E A7 D3 06 3E 0E D3 06
!0F20 3E 00 D3 04 21 F5 0F 22 04 42 21 00 00 22 FC 40
!0F30 22 FE 40 3E 42 ED 47 ED 5E 21 70 10 CD B1 02 FB
!0F40 CD A6 10 3E 43 CD 46 10 CD 19 10 DA 43 0F FE 04
!0F50 CA AC 0F FE 18 CA 43 0F FE 01 CA 60 0F C3 B4 0F
!0F60 CD 19 10 DA 98 10 47 32 FB 40 CD 19 10 DA 98 10
!0F70 80 FE FF C2 B4 0F 3D 78 1F E6 7F 67 78 3D 0F E6
!0F80 80 6F 11 00 44 19 06 80 0E 00 E5 CD 19 10 DA 98
!0F90 10 E1 77 23 0C 05 C2 8A 0F CD 19 10 DA 98 10 57
!0FA0 0C CD 19 10 DA 98 10 5F 0C C3 8A 10 3E 06 CD 46
!0FB0 10 C3 EE 0F 3E 18 CD 46 10 3E 18 CD 46 10 3E 18
!0FC0 CD 46 10 3E 18 CD 46 10 3E 18 CD 46 10 3E 18 CD
!0FD0 46 10 3E 18 CD 46 10 3E 18 CD 46 10 3E 18 CD 46
!0FE0 10 3E 18 CD 46 10 3E 18 21 57 10 CD B1 02 F3 CD
!0FF0 C3 02 C3 8B 00 F3 08 D9 2A FC 40 23 22 FC 40 11
!1000 04 04 ED 52 C2 14 10 21 00 00 22 FC 40 2A FE 40
!1010 23 22 FE 40 08 D9 FB ED 4D F3 21 00 00 22 FC 40
!1020 22 FE 40 FB CD 0D 03 2A FE 40 7D FE 03 CA 44 10
!1030 AF D3 09 DB 09 E6 01 CA 27 10 DB 08 F5 CD 04 03
!1040 F1 37 3F C9 37 C9 D3 08 CD 4C 10 C9 97 3C D3 09
!1050 DB 09 CB 47 28 F6 C9 45 72 72 6F 72 3A 20 75 6E
!1060 65 78 70 65 63 74 65 64 20 62 79 74 65 0D 0A 00
!1070 41 77 61 69 74 20 78 6D 6F 64 65 6D 20 63 6F 6E
!1080 6E 65 63 74 69 6F 6E 0D 0A 00 3E 06 CD 46 10 CD
!1090 19 10 DA 8A 10 C3 4E 0F 3E 15 CD 46 10 CD 19 10
!10A0 DA 98 10 C3 4E 0F 21 FF 00 01 01 00 00 00 00 00
!10B0 ED 42 C8 18 F7

File diff suppressed because it is too large Load Diff