1851 lines
76 KiB
Plaintext
1851 lines
76 KiB
Plaintext
1: .include "extern_symbols.s" ;include monitor symbols.
|
|
**** include/extern_symbols.s ****
|
|
1: ;This file is generated by the build script.
|
|
2: ;Do not make any changes here!
|
|
3:
|
|
4: - 00D0 ADDR_RTC equ 0xD0
|
|
5: - 0152 A_RTS_OFF equ 0x152
|
|
6: - 015B A_RTS_ON equ 0x15B
|
|
7: - 0050 BOOT_PHASE0 equ 0x50
|
|
8: - 006E BOOT_PHASE1 equ 0x6E
|
|
9: - 0077 BOOT_PHASE1_LOOP equ 0x77
|
|
10: - 0082 BOOT_PHASE2 equ 0x82
|
|
11: - 17EB COMMAND equ 0x17EB
|
|
12: - 1826 COMMAND_BACKSPACE equ 0x1826
|
|
13: - 176B COMMAND_LUT equ 0x176B
|
|
14: - 184C COMMAND_PROCESS equ 0x184C
|
|
15: - 1887 COMMAND_PROCESS_FOUND equ 0x1887
|
|
16: - 184F COMMAND_PROCESS_LOOP equ 0x184F
|
|
17: - 1858 COMMAND_PROCESS_LOOP_STR1 equ 0x1858
|
|
18: - 186E COMMAND_PROCESS_LOOP_STR2 equ 0x186E
|
|
19: - 1873 COMMAND_PROCESS_NEXT_ENTRY equ 0x1873
|
|
20: - 1872 COMMAND_PROCESS_NEXT_ENTRYI equ 0x1872
|
|
21: - 187E COMMAND_PROCESS_NOT_FOUND equ 0x187E
|
|
22: - 17F7 COMMAND_READ equ 0x17F7
|
|
23: - 009E CONSOLE_INIT equ 0x9E
|
|
24: - 009E CONSOLE_INIT_CTC equ 0x9E
|
|
25: - 00A6 CONSOLE_INIT_SIO equ 0xA6
|
|
26: - 00F9 CS_APU_CTRL equ 0xF9
|
|
27: - 00F8 CS_APU_DATA equ 0xF8
|
|
28: - 0000 CS_BANK equ 0x00
|
|
29: - 0004 CS_CTC_0 equ 0x04
|
|
30: - 0005 CS_CTC_1 equ 0x05
|
|
31: - 0006 CS_CTC_2 equ 0x06
|
|
32: - 0007 CS_CTC_3 equ 0x07
|
|
33: - 0001 CS_DIP equ 0x01
|
|
34: - 0033 CS_PIA_CR equ 0x33
|
|
35: - 0030 CS_PIA_PA equ 0x30
|
|
36: - 0031 CS_PIA_PB equ 0x31
|
|
37: - 0032 CS_PIA_PC equ 0x32
|
|
38: - 00F6 CS_PIO_AC equ 0xF6
|
|
39: - 00F4 CS_PIO_AD equ 0xF4
|
|
40: - 00F7 CS_PIO_BC equ 0xF7
|
|
41: - 00F5 CS_PIO_BD equ 0xF5
|
|
42: - 0009 CS_SIO_A_C equ 0x09
|
|
43: - 0008 CS_SIO_A_D equ 0x08
|
|
44: - 000B CS_SIO_B_C equ 0x0B
|
|
45: - 000A CS_SIO_B_D equ 0x0A
|
|
46: - 0164 DHEX_TO_BYTE equ 0x164
|
|
47: - 0180 DHEX_TO_BYTE_FAILED equ 0x180
|
|
48: - 189D ERR_SYNTAX equ 0x189D
|
|
49: - 0D04 EXEC_RST_08 equ 0xD04
|
|
50: - 0D08 EXEC_RST_10 equ 0xD08
|
|
51: - 0D14 EXEC_RST_18 equ 0xD14
|
|
52: - 0184 HEX_TO_BIN equ 0x184
|
|
53: - 0192 HEX_TO_BIN_2 equ 0x192
|
|
54: - 0199 HEX_TO_INVALID_2 equ 0x199
|
|
55: - 00EC IDE_CMD_IDENT equ 0xEC
|
|
56: - 0020 IDE_CMD_READSEC equ 0x20
|
|
57: - 1275 IDE_DEV_TABLE equ 0x1275
|
|
58: - 0040 IDE_RD equ 0x40
|
|
59: - 0016 IDE_REG_ALTSTS equ 0x16
|
|
60: - 000F IDE_REG_CMDSTS equ 0x0F
|
|
61: - 0008 IDE_REG_DATA equ 0x08
|
|
62: - 0017 IDE_REG_DRVADDR equ 0x17
|
|
63: - 0009 IDE_REG_ERROR equ 0x09
|
|
64: - 000D IDE_REG_HCYL equ 0x0D
|
|
65: - 000E IDE_REG_HEAD equ 0x0E
|
|
66: - 000B IDE_REG_LBA0 equ 0x0B
|
|
67: - 000C IDE_REG_LBA1 equ 0x0C
|
|
68: - 000D IDE_REG_LBA2 equ 0x0D
|
|
69: - 000E IDE_REG_LBA3 equ 0x0E
|
|
70: - 000C IDE_REG_LCYL equ 0x0C
|
|
71: - 000A IDE_REG_SECTOR equ 0x0A
|
|
72: - 000B IDE_REG_SSECTOR equ 0x0B
|
|
73: - 0080 IDE_RST equ 0x80
|
|
74: - 0020 IDE_WR equ 0x20
|
|
75: - 0001 IIC_CLK equ 0x01
|
|
76: - 0002 IIC_DATA equ 0x02
|
|
77: - 001B INT_VEC equ 0x1B
|
|
78: - 402B IN_BUFFER equ 0x402B
|
|
79: - 0040 IO_AY0_ADDR equ 0x40
|
|
80: - 0041 IO_AY0_DATA equ 0x41
|
|
81: - 0042 IO_AY1_ADDR equ 0x42
|
|
82: - 0043 IO_AY1_DATA equ 0x43
|
|
83: - 0020 IO_REG0 equ 0x20
|
|
84: - 0025 IO_RTC_AMPM equ 0x25
|
|
85: - 002D IO_RTC_CTR_D equ 0x2D
|
|
86: - 002E IO_RTC_CTR_E equ 0x2E
|
|
87: - 002F IO_RTC_CTR_F equ 0x2F
|
|
88: - 0026 IO_RTC_DAY0 equ 0x26
|
|
89: - 0027 IO_RTC_DAY1 equ 0x27
|
|
90: - 0024 IO_RTC_HOUR equ 0x24
|
|
91: - 0022 IO_RTC_MIN0 equ 0x22
|
|
92: - 0023 IO_RTC_MIN1 equ 0x23
|
|
93: - 0028 IO_RTC_MON0 equ 0x28
|
|
94: - 0029 IO_RTC_MON1 equ 0x29
|
|
95: - 0020 IO_RTC_SEC0 equ 0x20
|
|
96: - 0021 IO_RTC_SEC1 equ 0x21
|
|
97: - 002C IO_RTC_WEEK equ 0x2C
|
|
98: - 002B IO_RTC_YEAR1 equ 0x2B
|
|
99: - 002A IO_RTC_YERR0 equ 0x2A
|
|
100: - 4117 MEM_IDE_BUFFER equ 0x4117
|
|
101: - 402C MEM_IDE_DEVICE equ 0x402C
|
|
102: - 4036 MEM_IDE_DEV_TABLE equ 0x4036
|
|
103: - 4317 MEM_IDE_FSBUFFER equ 0x4317
|
|
104: - 402E MEM_IDE_PARTITION equ 0x402E
|
|
105: - 4032 MEM_IDE_POINTER equ 0x4032
|
|
106: - 4076 MEM_IDE_SELECTED equ 0x4076
|
|
107: - 402D MEM_IDE_STATUS equ 0x402D
|
|
108: - 4077 MEM_IDE_STRING_0 equ 0x4077
|
|
109: - 409F MEM_IDE_STRING_1 equ 0x409F
|
|
110: - 40C7 MEM_IDE_STRING_2 equ 0x40C7
|
|
111: - 40EF MEM_IDE_STRING_3 equ 0x40EF
|
|
112: - 014A MSG_CLEAR equ 0x14A
|
|
113: - 1896 NOT_IMPLEMENTED equ 0x1896
|
|
114: - 18F8 OP_CALL equ 0x18F8
|
|
115: - 1A8C OP_CLR equ 0x1A8C
|
|
116: - 1979 OP_DASM equ 0x1979
|
|
117: - 1918 OP_DUMP equ 0x1918
|
|
118: - 18DF OP_EXEC equ 0x18DF
|
|
119: - 1A40 OP_IIC_IN equ 0x1A40
|
|
120: - 19E0 OP_IIC_OUT equ 0x19E0
|
|
121: - 19A9 OP_IO_IN equ 0x19A9
|
|
122: - 19BF OP_IO_OUT equ 0x19BF
|
|
123: - 1CA1 OP_LSDSK equ 0x1CA1
|
|
124: - 1A90 OP_RTIME equ 0x1A90
|
|
125: - 1CA5 OP_SELDSK equ 0x1CA5
|
|
126: - 1948 OP_SET equ 0x1948
|
|
127: - 1C28 OP_STIME equ 0x1C28
|
|
128: - 1D12 POST_CHECK_APU equ 0x1D12
|
|
129: - 1D3D POST_CHECK_IDE_30 equ 0x1D3D
|
|
130: - 1D50 POST_CHECK_IDE_40 equ 0x1D50
|
|
131: - 1CED POST_CHECK_PIO equ 0x1CED
|
|
132: - 1CDD POST_START equ 0x1CDD
|
|
133: - 1D6A POST_TEST_RTC equ 0x1D6A
|
|
134: - 4110 PRG_RAM_START equ 0x4110
|
|
135: - FF00 PRG_RAM_TOP equ 0xFF00
|
|
136: - 4000 PROG_MEM_START equ 0x4000
|
|
137: - 0100 PROG_ROM_START equ 0x100
|
|
138: - 0000 RST_00 equ 0x00
|
|
139: - 0008 RST_08 equ 0x08
|
|
140: - 0010 RST_10 equ 0x10
|
|
141: - 0018 RST_18 equ 0x18
|
|
142: - FFFF STACK_RAM_TOP equ 0xFFFF
|
|
143: - 0000 START_ROM equ 0x00
|
|
144: - 019B STRCONV_BYTES_TO_HEX equ 0x19B
|
|
145: - 01AA STRCONV_BYTES_TO_HEX_1 equ 0x1AA
|
|
146: - 01B4 STRCONV_BYTES_TO_HEX_2 equ 0x1B4
|
|
147: - 1E6F STR_Banner_Start equ 0x1E6F
|
|
148: - 1724 STR_PD_HEADER equ 0x1724
|
|
149: - 4010 SYS_BUF_START equ 0x4010
|
|
150: - 4000 SYS_RAM_START equ 0x4000
|
|
151: - 0018 VAR_CONSOLE_BAUD equ 0x18
|
|
152: - 000F VAR_CONSOLE_CONF equ 0x0F
|
|
153: - 0080 VDP_MEM equ 0x80
|
|
154: - 0081 VDP_REG equ 0x81
|
|
155: - 1895 _COMMAND_PROCESS_FOUND equ 0x1895
|
|
156: - 1917 _OP_CALL equ 0x1917
|
|
157: - 1A25 _OP_IIC_ACK_ERR equ 0x1A25
|
|
158: - 1A2C _OP_IIC_ACK_ERR_str equ 0x1A2C
|
|
159: - 1A72 _OP_IIC_IN_LOOP equ 0x1A72
|
|
160: - 1A7F _OP_IIC_IN_LOOP_TEXT equ 0x1A7F
|
|
161: - 19F6 _OP_IIC_OUT_LOOP equ 0x19F6
|
|
162: - 1A12 _OP_IIC_OUT_SEND equ 0x1A12
|
|
163: - 1A93 _OP_RTIME_NN equ 0x1A93
|
|
164: - 1B4B _OP_RTIME_RD_CMD equ 0x1B4B
|
|
165: - 1CB4 _OP_SELDSK_INVALID equ 0x1CB4
|
|
166: - 1CC4 _OP_SELDSK_INVALID_STR equ 0x1CC4
|
|
167: - 1960 _OP_SET_LOOP equ 0x1960
|
|
168: - 1BEE _OP_STIME_INVALID equ 0x1BEE
|
|
169: - 1C05 _OP_STIME_PROMPT equ 0x1C05
|
|
170: - 1C1D _OP_STIME_PROMPT_ERR equ 0x1C1D
|
|
171: - 1B4C _OP_STIME_STR_DAY equ 0x1B4C
|
|
172: - 1B9D _OP_STIME_STR_HOUR equ 0x1B9D
|
|
173: - 1BB8 _OP_STIME_STR_MIN equ 0x1BB8
|
|
174: - 1B67 _OP_STIME_STR_MON equ 0x1B67
|
|
175: - 1BD3 _OP_STIME_STR_SEC equ 0x1BD3
|
|
176: - 1B82 _OP_STIME_STR_YEAR equ 0x1B82
|
|
177: - 1D31 _POST_CHECK_APU_FAILED equ 0x1D31
|
|
178: - 1D63 _POST_CHECK_IDE_FAILED equ 0x1D63
|
|
179: - 1D06 _POST_CHECK_PIO_FAILED equ 0x1D06
|
|
180: - 1DA4 _POST_TEST_RTC_INVALID equ 0x1DA4
|
|
181: - 1D9D _POST_TEST_RTC_NOTFOUND equ 0x1D9D
|
|
182: - 18B8 _STR_NOT_FOUND equ 0x18B8
|
|
183: - 18A4 _STR_NOT_IMPLEMENTED equ 0x18A4
|
|
184: - 18CC _STR_SYNTAX equ 0x18CC
|
|
185: - 0D30 _beep_pause_l1 equ 0xD30
|
|
186: - 13E9 _ideif_init_drive_found equ 0x13E9
|
|
187: - 13D1 _ideif_init_drive_loop equ 0x13D1
|
|
188: - 13E4 _ideif_init_drive_nodrv equ 0x13E4
|
|
189: - 1454 _ideif_init_drive_prt_fnd equ 0x1454
|
|
190: - 1442 _ideif_init_drive_prt_l1 equ 0x1442
|
|
191: - 144C _ideif_init_drive_prt_ln equ 0x144C
|
|
192: - 1510 _ideif_prnt_devtable_hdr equ 0x1510
|
|
193: - 12E1 _ideif_prnt_devtable_l1 equ 0x12E1
|
|
194: - 13A7 _ideif_prnt_devtable_l1_e2 equ 0x13A7
|
|
195: - 1326 _ideif_prnt_devtable_l1_es equ 0x1326
|
|
196: - 13A4 _ideif_prnt_devtable_l1_ms equ 0x13A4
|
|
197: - 12EE _ideif_prnt_devtable_l1_nxt equ 0x12EE
|
|
198: - 1314 _ideif_prnt_devtable_l1_s00 equ 0x1314
|
|
199: - 1319 _ideif_prnt_devtable_l1_s01 equ 0x1319
|
|
200: - 131E _ideif_prnt_devtable_l1_s02 equ 0x131E
|
|
201: - 1323 _ideif_prnt_devtable_l1_sFF equ 0x1323
|
|
202: - 12EC _ideif_prnt_devtable_l1_sel equ 0x12EC
|
|
203: - 1574 _ideif_prnt_devtable_master equ 0x1574
|
|
204: - 1548 _ideif_prnt_devtable_s00 equ 0x1548
|
|
205: - 1553 _ideif_prnt_devtable_s01 equ 0x1553
|
|
206: - 155E _ideif_prnt_devtable_s02 equ 0x155E
|
|
207: - 1569 _ideif_prnt_devtable_sFF equ 0x1569
|
|
208: - 157C _ideif_prnt_devtable_slave equ 0x157C
|
|
209: - 0147 _read_bcd_invalid equ 0x147
|
|
210: - 1C9C _shift4 equ 0x1C9C
|
|
211: - 0D17 beep equ 0xD17
|
|
212: - 0D19 beep_loop equ 0xD19
|
|
213: - 0D2F beep_pause equ 0xD2F
|
|
214: - 091C dasm_00 equ 0x91C
|
|
215: - 0C08 dasm_01 equ 0xC08
|
|
216: - 09A2 dasm_02 equ 0x9A2
|
|
217: - 0BDA dasm_03 equ 0xBDA
|
|
218: - 0A1F dasm_08 equ 0xA1F
|
|
219: - 0BAD dasm_09 equ 0xBAD
|
|
220: - 0984 dasm_0A equ 0x984
|
|
221: - 0BF1 dasm_0B equ 0xBF1
|
|
222: - 0964 dasm_10 equ 0x964
|
|
223: - 09AD dasm_12 equ 0x9AD
|
|
224: - 0927 dasm_18 equ 0x927
|
|
225: - 098E dasm_1A equ 0x98E
|
|
226: - 0941 dasm_20 equ 0x941
|
|
227: - 0C4E dasm_22 equ 0xC4E
|
|
228: - 09E7 dasm_27 equ 0x9E7
|
|
229: - 093A dasm_28 equ 0x93A
|
|
230: - 0C1F dasm_2A equ 0xC1F
|
|
231: - 09EB dasm_2F equ 0x9EB
|
|
232: - 0932 dasm_30 equ 0x932
|
|
233: - 09B8 dasm_32 equ 0x9B8
|
|
234: - 09F7 dasm_37 equ 0x9F7
|
|
235: - 092B dasm_38 equ 0x92B
|
|
236: - 0998 dasm_3A equ 0x998
|
|
237: - 09F3 dasm_3F equ 0x9F3
|
|
238: - 09FB dasm_76 equ 0x9FB
|
|
239: - 0A78 dasm_80C6 equ 0xA78
|
|
240: - 0A15 dasm_BE equ 0xA15
|
|
241: - 0920 dasm_C3 equ 0x920
|
|
242: - 0A9E dasm_C88E equ 0xA9E
|
|
243: - 0970 dasm_C9 equ 0x970
|
|
244: - 096A dasm_CD equ 0x96A
|
|
245: - 0A2C dasm_D9 equ 0xA2C
|
|
246: - 0952 dasm_DD equ 0x952
|
|
247: - 0C0F dasm_DD_01 equ 0xC0F
|
|
248: - 0BC8 dasm_DD_09 equ 0xBC8
|
|
249: - 0C64 dasm_DD_22 equ 0xC64
|
|
250: - 0BDF dasm_DD_23 equ 0xBDF
|
|
251: - 0C36 dasm_DD_2A equ 0xC36
|
|
252: - 0BF6 dasm_DD_2B equ 0xBF6
|
|
253: - 0B78 dasm_DD_34 equ 0xB78
|
|
254: - 0B95 dasm_DD_35 equ 0xB95
|
|
255: - 0A80 dasm_DD_86 equ 0xA80
|
|
256: - 0AA6 dasm_DD_8E equ 0xAA6
|
|
257: - 0AC9 dasm_DD_96 equ 0xAC9
|
|
258: - 0AE9 dasm_DD_9E equ 0xAE9
|
|
259: - 0B0A dasm_DD_A6 equ 0xB0A
|
|
260: - 0B41 dasm_DD_AE equ 0xB41
|
|
261: - 0B26 dasm_DD_B6 equ 0xB26
|
|
262: - 0B5D dasm_DD_BE equ 0xB5D
|
|
263: - 0CB6 dasm_DD_E1 equ 0xCB6
|
|
264: - 0A3C dasm_DD_E3 equ 0xA3C
|
|
265: - 0CA0 dasm_DD_E5 equ 0xCA0
|
|
266: - 0C86 dasm_DD_F9 equ 0xC86
|
|
267: - 0CB0 dasm_E1 equ 0xCB0
|
|
268: - 0A30 dasm_E3 equ 0xA30
|
|
269: - 0C9A dasm_E5 equ 0xC9A
|
|
270: - 0949 dasm_E9 equ 0x949
|
|
271: - 0BBF dasm_ED_42 equ 0xBBF
|
|
272: - 0C5A dasm_ED_43 equ 0xC5A
|
|
273: - 09EF dasm_ED_44 equ 0x9EF
|
|
274: - 097A dasm_ED_45 equ 0x97A
|
|
275: - 0A06 dasm_ED_46 equ 0xA06
|
|
276: - 0BB6 dasm_ED_4A equ 0xBB6
|
|
277: - 0C2B dasm_ED_4B equ 0xC2B
|
|
278: - 0975 dasm_ED_4D equ 0x975
|
|
279: - 0A0B dasm_ED_56 equ 0xA0B
|
|
280: - 0A10 dasm_ED_5E equ 0xA10
|
|
281: - 0A54 dasm_ED_A0 equ 0xA54
|
|
282: - 0A66 dasm_ED_A1 equ 0xA66
|
|
283: - 0A5D dasm_ED_A8 equ 0xA5D
|
|
284: - 0A6F dasm_ED_A9 equ 0xA6F
|
|
285: - 0A58 dasm_ED_B0 equ 0xA58
|
|
286: - 0A6A dasm_ED_B1 equ 0xA6A
|
|
287: - 0A61 dasm_ED_B8 equ 0xA61
|
|
288: - 0A73 dasm_ED_B9 equ 0xA73
|
|
289: - 0A00 dasm_F3 equ 0xA00
|
|
290: - 0C7C dasm_F9 equ 0xC7C
|
|
291: - 0A03 dasm_FB equ 0xA03
|
|
292: - 095B dasm_FD equ 0x95B
|
|
293: - 0C17 dasm_FD_01 equ 0xC17
|
|
294: - 0BD1 dasm_FD_09 equ 0xBD1
|
|
295: - 0C70 dasm_FD_22 equ 0xC70
|
|
296: - 0BE8 dasm_FD_23 equ 0xBE8
|
|
297: - 0C42 dasm_FD_2A equ 0xC42
|
|
298: - 0BFF dasm_FD_2B equ 0xBFF
|
|
299: - 0B84 dasm_FD_34 equ 0xB84
|
|
300: - 0BA1 dasm_FD_35 equ 0xBA1
|
|
301: - 0A8F dasm_FD_86 equ 0xA8F
|
|
302: - 0AB5 dasm_FD_8E equ 0xAB5
|
|
303: - 0AD5 dasm_FD_96 equ 0xAD5
|
|
304: - 0AF7 dasm_FD_9E equ 0xAF7
|
|
305: - 0B16 dasm_FD_A6 equ 0xB16
|
|
306: - 0B4D dasm_FD_AE equ 0xB4D
|
|
307: - 0B31 dasm_FD_B6 equ 0xB31
|
|
308: - 0B68 dasm_FD_BE equ 0xB68
|
|
309: - 0CBE dasm_FD_E1 equ 0xCBE
|
|
310: - 0A48 dasm_FD_E3 equ 0xA48
|
|
311: - 0CA8 dasm_FD_E5 equ 0xCA8
|
|
312: - 0C90 dasm_FD_F9 equ 0xC90
|
|
313: - 097F dasm_FF equ 0x97F
|
|
314: - 0CC6 dasm_UU equ 0xCC6
|
|
315: - 0CCA dasm_UW equ 0xCCA
|
|
316: - 0B05 dasm__AND equ 0xB05
|
|
317: - 0B59 dasm__CP equ 0xB59
|
|
318: - 0B90 dasm__DEC equ 0xB90
|
|
319: - 09D7 dasm__ED_47 equ 0x9D7
|
|
320: - 09DF dasm__ED_4F equ 0x9DF
|
|
321: - 09C7 dasm__ED_57 equ 0x9C7
|
|
322: - 09CF dasm__ED_5F equ 0x9CF
|
|
323: - 0B73 dasm__INC equ 0xB73
|
|
324: - 09C3 dasm__LD equ 0x9C3
|
|
325: - 0B22 dasm__OR equ 0xB22
|
|
326: - 0AE1 dasm__SBC equ 0xAE1
|
|
327: - 0AC4 dasm__SUB equ 0xAC4
|
|
328: - 0B3C dasm__XOR equ 0xB3C
|
|
329: - 04C4 dasm_opcode_table equ 0x4C4
|
|
330: - 02F1 dasm_print16hex_addr equ 0x2F1
|
|
331: - 0309 dasm_print8hex equ 0x309
|
|
332: - 0CCF dasm_printFlags_table equ 0xCCF
|
|
333: - 0CDF dasm_printRegister8_table equ 0xCDF
|
|
334: - 0CFF dasm_printRegister8_table_HL equ 0xCFF
|
|
335: - 0CE7 dasm_printRegisterIX_table equ 0xCE7
|
|
336: - 0CEF dasm_printRegisterIY_table equ 0xCEF
|
|
337: - 0CF7 dasm_printRegisterSP_table equ 0xCF7
|
|
338: - 01B5 disassemble equ 0x1B5
|
|
339: - 029B disassemble_continue equ 0x29B
|
|
340: - 028B disassemble_err equ 0x28B
|
|
341: - 01B9 disassemble_next equ 0x1B9
|
|
342: - 0288 disassemble_print_opcode_params_end equ 0x288
|
|
343: - 0234 disassemble_print_opcode_params_loop equ 0x234
|
|
344: - 01F6 disassemble_print_opcode_raw equ 0x1F6
|
|
345: - 020A disassemble_print_opcode_raw_fill equ 0x20A
|
|
346: - 02CD disassemble_table_first_match equ 0x2CD
|
|
347: - 02E7 disassemble_table_found equ 0x2E7
|
|
348: - 02EB disassemble_table_notfound equ 0x2EB
|
|
349: - 02A9 disassemble_table_seek equ 0x2A9
|
|
350: - 02AD disassemble_table_seek_loop equ 0x2AD
|
|
351: - 16C9 dump_pretty equ 0x16C9
|
|
352: - 16F3 dump_pretty_ascii equ 0x16F3
|
|
353: - 1711 dump_pretty_ascii_cont equ 0x1711
|
|
354: - 16FB dump_pretty_ascii_loop equ 0x16FB
|
|
355: - 170C dump_pretty_ascii_none equ 0x170C
|
|
356: - 16E6 dump_pretty_col equ 0x16E6
|
|
357: - 1723 dump_pretty_end equ 0x1723
|
|
358: - 1717 dump_pretty_nextrow equ 0x1717
|
|
359: - 16D1 dump_pretty_row equ 0x16D1
|
|
360: - 0E04 ide_printerror equ 0xE04
|
|
361: - 0D83 ide_readsector_256 equ 0xD83
|
|
362: - 0DB2 ide_readsector_256_done equ 0xDB2
|
|
363: - 0D85 ide_readsector_256_waitloop equ 0xD85
|
|
364: - 0DB3 ide_readsector_512_inv equ 0xDB3
|
|
365: - 0DB8 ide_readsector_512_inv_waitloop equ 0xDB8
|
|
366: - 0DEE ide_readsector_timeout equ 0xDEE
|
|
367: - 0D65 ide_regread_8 equ 0xD65
|
|
368: - 0D49 ide_regwrite_8 equ 0xD49
|
|
369: - 0D3C ide_reset equ 0xD3C
|
|
370: - 0E03 ide_writesector_256 equ 0xE03
|
|
371: - 1497 ideif_get_drv_pointer equ 0x1497
|
|
372: - 14AB ideif_init_all equ 0x14AB
|
|
373: - 12B5 ideif_init_devtable equ 0x12B5
|
|
374: - 13C8 ideif_init_drive equ 0x13C8
|
|
375: - 12D3 ideif_prnt_devtable equ 0x12D3
|
|
376: - 15DD iic_init equ 0x15DD
|
|
377: - 161C iic_read_ack equ 0x161C
|
|
378: - 15AE iic_receive_buffer equ 0x15AE
|
|
379: - 15D1 iic_receive_buffer_done equ 0x15D1
|
|
380: - 15D7 iic_receive_buffer_err equ 0x15D7
|
|
381: - 15BF iic_receive_buffer_loop equ 0x15BF
|
|
382: - 16A2 iic_receive_byte equ 0x16A2
|
|
383: - 16AF iic_receive_byte_loop equ 0x16AF
|
|
384: - 1642 iic_send_ack equ 0x1642
|
|
385: - 1584 iic_send_buffer equ 0x1584
|
|
386: - 15A2 iic_send_buffer_done equ 0x15A2
|
|
387: - 15A8 iic_send_buffer_err equ 0x15A8
|
|
388: - 1594 iic_send_buffer_loop equ 0x1594
|
|
389: - 167C iic_send_byte equ 0x167C
|
|
390: - 1688 iic_send_byte_loop equ 0x1688
|
|
391: - 15FB iic_send_ebit equ 0x15FB
|
|
392: - 165F iic_send_nack equ 0x165F
|
|
393: - 15E6 iic_send_sbit equ 0x15E6
|
|
394: - 0044 mon_var_template equ 0x44
|
|
395: - 0370 mon_var_template_end equ 0x370
|
|
396: - 0317 param_01 equ 0x317
|
|
397: - 033E param_02 equ 0x33E
|
|
398: - 035B param_03 equ 0x35B
|
|
399: - 0393 param_03_done equ 0x393
|
|
400: - 037C param_03_neg equ 0x37C
|
|
401: - 0397 param_04 equ 0x397
|
|
402: - 03A7 param_04_i equ 0x3A7
|
|
403: - 03AD param_05 equ 0x3AD
|
|
404: - 03BA param_06 equ 0x3BA
|
|
405: - 03D4 param_07 equ 0x3D4
|
|
406: - 03E1 param_08 equ 0x3E1
|
|
407: - 03F6 param_09 equ 0x3F6
|
|
408: - 03FC param_09_0A equ 0x3FC
|
|
409: - 03ED param_0A equ 0x3ED
|
|
410: - 040B param_10 equ 0x40B
|
|
411: - 041B param_11 equ 0x41B
|
|
412: - 042A param_11_12 equ 0x42A
|
|
413: - 044A param_11_12_all equ 0x44A
|
|
414: - 043D param_11_12_def equ 0x43D
|
|
415: - 0442 param_11_12_ix equ 0x442
|
|
416: - 0447 param_11_12_iy equ 0x447
|
|
417: - 0423 param_12 equ 0x423
|
|
418: - 045B param_13 equ 0x45B
|
|
419: - 047A param_80 equ 0x47A
|
|
420: - 0481 param_80_seek equ 0x481
|
|
421: - 0471 param_81 equ 0x471
|
|
422: - 04B5 param_comma equ 0x4B5
|
|
423: - 0490 param_printRegister equ 0x490
|
|
424: - 04AE param_printRegisterA equ 0x4AE
|
|
425: - 04A6 param_printRegisterHL equ 0x4A6
|
|
426: - 0107 print_a_hex equ 0x107
|
|
427: - 0119 print_bcd equ 0x119
|
|
428: - 00D7 print_char equ 0xD7
|
|
429: - 00EA print_clear equ 0xEA
|
|
430: - 00F1 print_newLine equ 0xF1
|
|
431: - 00DF print_str equ 0xDF
|
|
432: - 00E9 print_str_end equ 0xE9
|
|
433: - 1763 print_str_fixed equ 0x1763
|
|
434: - 00FC print_wait_out equ 0xFC
|
|
435: - 0131 read_bcd equ 0x131
|
|
436: - 011F read_char equ 0x11F
|
|
437: - 14BE read_lba_sector equ 0x14BE
|
|
438: - 1508 str_dev_done equ 0x1508
|
|
439: - 14F0 str_dev_waitready equ 0x14F0
|
|
440: - 0E37 str_error_start equ 0xE37
|
|
441: - 0E54 str_error_start1 equ 0xE54
|
|
442: - 0E5D str_error_start2 equ 0xE5D
|
|
443: - 0E66 str_error_time equ 0xE66
|
|
444: - 1DFC str_post_apu equ 0x1DFC
|
|
445: - 1DAB str_post_ide_30 equ 0x1DAB
|
|
446: - 1DC6 str_post_ide_40 equ 0x1DC6
|
|
447: - 1E32 str_post_nd equ 0x1E32
|
|
448: - 1E6A str_post_ok equ 0x1E6A
|
|
449: - 1DE1 str_post_pio equ 0x1DE1
|
|
450: - 1E17 str_post_rtc equ 0x1E17
|
|
451: - 1E40 str_post_rtc_iv equ 0x1E40
|
|
452: - 400A var_apu_present equ 0x400A
|
|
453: - 402B var_buffer equ 0x402B
|
|
454: - 4000 var_buffer_len equ 0x4000
|
|
455: - 411A var_bytes_count equ 0x411A
|
|
456: - 4006 var_curserchar equ 0x4006
|
|
457: - 4007 var_curserlastaddr equ 0x4007
|
|
458: - 4005 var_curseron equ 0x4005
|
|
459: - 4004 var_curserstate equ 0x4004
|
|
460: - 4002 var_curserx equ 0x4002
|
|
461: - 4003 var_cursery equ 0x4003
|
|
462: - 402C var_idebuffer equ 0x402C
|
|
463: - 4001 var_last_char equ 0x4001
|
|
464: - 4114 var_opcode equ 0x4114
|
|
465: - 4116 var_opcode_length equ 0x4116
|
|
466: - 4119 var_opcode_pcount equ 0x4119
|
|
467: - 4110 var_opcode_start equ 0x4110
|
|
468: - 4117 var_opcode_string equ 0x4117
|
|
469: - 4112 var_opcode_table equ 0x4112
|
|
470: - 4115 var_opcode_x equ 0x4115
|
|
471: - 4009 var_pio_present equ 0x4009
|
|
472: - 401B var_ps2mem equ 0x401B
|
|
473: - 400B var_scratch equ 0x400B
|
|
**** test.asm ****
|
|
2: - 8000 org 0x8000
|
|
3:
|
|
4: - 8000 sel_dsk:
|
|
5: 0+17 8000 CD5A82 call ideif_drv_sel
|
|
6: 17+17 8003 CD3A80 call fat_print_dbg
|
|
7: 34+10 8006 C9 ret
|
|
8:
|
|
9: - 8010 org 0x8010
|
|
10: 44+17 8010 CD3A80 call fat_print_dbg
|
|
11: 61+10 8013 C9 ret
|
|
12:
|
|
13: - 8020 org 0x8020
|
|
14: 71+17 8020 CD8583 call fat_print_directory
|
|
15: 88+10 8023 C9 ret
|
|
16:
|
|
17: - 8030 org 0x8030
|
|
18: 98+10 8030 210600 ld hl,0x0006
|
|
19: 108+16 8033 223543 ld (MEM_FAT_OF0_CCLUST),hl
|
|
20: 124+17 8036 CDBB85 call fat_getfatsec
|
|
21: 141+10 8039 C9 ret
|
|
22:
|
|
23: - 803A fat_print_dbg:
|
|
24: 151+17 803A CD0C86 call PRINTINLINE
|
|
25: - 803D 0A0D5054 db 10,13,"PTR.MEM_IDE_POINTER: 0x",0
|
|
522E4D45
|
|
4D5F4944
|
|
455F504F
|
|
494E5445
|
|
523A2020
|
|
20203078
|
|
00
|
|
26: 168+14 805A DD213240 ld ix,MEM_IDE_POINTER
|
|
27: 182+17 805E CD3482 call print_32_hex
|
|
28: 199+17 8061 CD0C86 call PRINTINLINE
|
|
29: - 8064 20207C20 db " | PTR.MEM_IDE_PARTITION: 0x",0
|
|
20505452
|
|
2E4D454D
|
|
5F494445
|
|
5F504152
|
|
54495449
|
|
4F4E3A20
|
|
20203078
|
|
00
|
|
30: 216+14 8085 DD212E40 ld ix,MEM_IDE_PARTITION
|
|
31: 230+17 8089 CD3482 call print_32_hex
|
|
32:
|
|
33: 247+17 808C CD0C86 call PRINTINLINE
|
|
34: - 808F 0A0D5054 db 10,13,"PTR.MEM_FAT_TMPPOINTER: 0x",0
|
|
522E4D45
|
|
4D5F4641
|
|
545F544D
|
|
50504F49
|
|
4E544552
|
|
3A203078
|
|
00
|
|
35: 264+14 80AC DD211D43 ld ix,MEM_FAT_TMPPOINTER
|
|
36: 278+17 80B0 CD3482 call print_32_hex
|
|
37: 295+17 80B3 CD0C86 call PRINTINLINE
|
|
38: - 80B6 20207C20 db " | PTR.MEM_FAT_TMPPOINTER1: 0x",0
|
|
20505452
|
|
2E4D454D
|
|
5F464154
|
|
5F544D50
|
|
504F494E
|
|
54455231
|
|
3A203078
|
|
00
|
|
39: 312+14 80D7 DD212143 ld ix,MEM_FAT_TMPPOINTER1
|
|
40: 326+17 80DB CD3482 call print_32_hex
|
|
41:
|
|
42: 343+17 80DE CD0C86 call PRINTINLINE
|
|
43: - 80E1 0A0D5641 db 10,13,"VAL.MEM_FAT_RESERVED: 0x",0
|
|
4C2E4D45
|
|
4D5F4641
|
|
545F5245
|
|
53455256
|
|
45443A20
|
|
20203078
|
|
00
|
|
44: 360+14 80FE DD211743 ld ix,MEM_FAT_RESERVED
|
|
45: 374+17 8102 CD4D82 call print_16_hex
|
|
46: 391+17 8105 CD0C86 call PRINTINLINE
|
|
47: - 8108 20202020 db " | VAL.MEM_FAT_AMOUNT: 0x",0
|
|
20207C20
|
|
2056414C
|
|
2E4D454D
|
|
5F464154
|
|
5F414D4F
|
|
554E543A
|
|
20202020
|
|
20203078
|
|
00
|
|
48: 408+13 812D 3A1943 ld a,(MEM_FAT_AMOUNT)
|
|
49: 421+17 8130 CD0701 call print_a_hex
|
|
50:
|
|
51: 438+17 8133 CD0C86 call PRINTINLINE
|
|
52: - 8136 0A0D5641 db 10,13,"VAL.MEM_FAT_SECTORS: 0x",0
|
|
4C2E4D45
|
|
4D5F4641
|
|
545F5345
|
|
43544F52
|
|
533A2020
|
|
20203078
|
|
00
|
|
53: 455+14 8153 DD211A43 ld ix,MEM_FAT_SECTORS
|
|
54: 469+17 8157 CD4D82 call print_16_hex
|
|
55: 486+17 815A CD0C86 call PRINTINLINE
|
|
56: - 815D 20202020 db " | VAL.MEM_FAT_COUNT1: 0x",0
|
|
20207C20
|
|
2056414C
|
|
2E4D454D
|
|
5F464154
|
|
5F434F55
|
|
4E54313A
|
|
20202020
|
|
20203078
|
|
00
|
|
57: 503+13 8182 3A1C43 ld a,(MEM_FAT_COUNT1)
|
|
58: 516+17 8185 CD0701 call print_a_hex
|
|
59:
|
|
60: 533+17 8188 CD0C86 call PRINTINLINE
|
|
61: - 818B 0A0D5641 db 10,13,"VAL.MEM_FAT_OF0_CCLUST: 0x",0
|
|
4C2E4D45
|
|
4D5F4641
|
|
545F4F46
|
|
305F4343
|
|
4C555354
|
|
3A203078
|
|
00
|
|
62: 550+14 81A8 DD213543 ld ix,MEM_FAT_OF0_CCLUST
|
|
63: 564+17 81AC CD4D82 call print_16_hex
|
|
64: 581+17 81AF CD0C86 call PRINTINLINE
|
|
65: - 81B2 20202020 db " | PTR.MEM_FAT_OF0_FATSEC: 0x",0
|
|
20207C20
|
|
20505452
|
|
2E4D454D
|
|
5F464154
|
|
5F4F4630
|
|
5F464154
|
|
5345433A
|
|
20203078
|
|
00
|
|
66: 598+14 81D7 DD213743 ld ix,MEM_FAT_OF0_FATSEC
|
|
67: 612+17 81DB CD3482 call print_32_hex
|
|
68:
|
|
69: 629+17 81DE CD0C86 call PRINTINLINE
|
|
70: - 81E1 0A0D5641 db 10,13,"VAL.MEM_FAT_OF0_DATSEC: 0x",0
|
|
4C2E4D45
|
|
4D5F4641
|
|
545F4F46
|
|
305F4441
|
|
54534543
|
|
3A203078
|
|
00
|
|
71: 646+14 81FE DD213B43 ld ix,MEM_FAT_OF0_DATSEC
|
|
72: 660+17 8202 CD3482 call print_32_hex
|
|
73: 677+17 8205 CD0C86 call PRINTINLINE
|
|
74: - 8208 20207C20 db " | PTR.MEM_FAT_OF0_DATREM: 0x",0
|
|
20505452
|
|
2E4D454D
|
|
5F464154
|
|
5F4F4630
|
|
5F444154
|
|
52454D3A
|
|
20203078
|
|
00
|
|
75: 694+14 8229 DD213F43 ld ix,MEM_FAT_OF0_DATREM
|
|
76: 708+17 822D CD4D82 call print_16_hex
|
|
77:
|
|
78: 725+17 8230 CDF100 call print_newLine
|
|
79: 742+10 8233 C9 ret
|
|
80:
|
|
81: - 8234 print_32_hex:
|
|
82: 752+19 8234 DD7E03 ld a,(ix+3)
|
|
83: 771+17 8237 CD0701 call print_a_hex
|
|
84: 788+19 823A DD7E02 ld a,(ix+2)
|
|
85: 807+17 823D CD0701 call print_a_hex
|
|
86: 824+19 8240 DD7E01 ld a,(ix+1)
|
|
87: 843+17 8243 CD0701 call print_a_hex
|
|
88: 860+19 8246 DD7E00 ld a,(ix+0)
|
|
89: 879+17 8249 CD0701 call print_a_hex
|
|
90: 896+10 824C C9 ret
|
|
91:
|
|
92: - 824D print_16_hex:
|
|
93: 906+19 824D DD7E01 ld a,(ix+1)
|
|
94: 925+17 8250 CD0701 call print_a_hex
|
|
95: 942+19 8253 DD7E00 ld a,(ix+0)
|
|
96: 961+17 8256 CD0701 call print_a_hex
|
|
97: 978+10 8259 C9 ret
|
|
98:
|
|
99: ; a contains drive to select
|
|
100: ; populate fs vars as well
|
|
101: - 825A ideif_drv_sel:
|
|
102: 988+13 825A 327640 ld (MEM_IDE_SELECTED),a
|
|
103: 1001+11 825D F5 push af
|
|
104: 1012+17 825E CD9714 call ideif_get_drv_pointer ;test if drive is marked as available
|
|
105: 1029+19 8261 DD7E00 ld a,(ix+0)
|
|
106: 1048+4 8264 B7 or a
|
|
107: 1052+10 8265 C28882 jp nz, _ideif_drv_sel_fail ;if not-> fail
|
|
108:
|
|
109: 1062+17 8268 CD0B83 call fat_get_root_table ;else get root table
|
|
110: ;backup tmp pointer
|
|
111: 1079+16 826B 2A3240 ld hl,(MEM_IDE_POINTER)
|
|
112: 1095+20 826E ED5B2E40 ld de,(MEM_IDE_PARTITION) ;use MEM_IDE_PARTITION to backup the pointer
|
|
113: 1115+17 8272 CD5485 call fat_copy_lba_pointer
|
|
114: 1132+10 8275 21A482 ld hl,[_ideif_drv_sel_pstr] ;print success message
|
|
115: 1142+17 8278 CDDF00 call print_str
|
|
116: 1159+10 827B F1 pop af
|
|
117: 1169+7 827C C645 add 69
|
|
118: 1176+17 827E CDD700 call print_char
|
|
119: 1193+10 8281 21BB82 ld hl,[_ideif_drv_sel_sstr0]
|
|
120: 1203+17 8284 CDDF00 call print_str
|
|
121: 1220+10 8287 C9 ret
|
|
122: - 8288 _ideif_drv_sel_fail:
|
|
123: 1230+10 8288 21A482 ld hl,[_ideif_drv_sel_pstr]
|
|
124: 1240+17 828B CDDF00 call print_str
|
|
125: 1257+10 828E F1 pop af
|
|
126: 1267+7 828F C645 add 69
|
|
127: 1274+17 8291 CDD700 call print_char
|
|
128: 1291+10 8294 21AD82 ld hl,[_ideif_drv_sel_fstr0]
|
|
129: 1301+17 8297 CDDF00 call print_str
|
|
130: 1318+10 829A 112000 LD DE,0x20
|
|
131: 1328+10 829D 017000 LD BC,0x70
|
|
132: 1338+17 82A0 CD170D CALL beep
|
|
133: 1355+10 82A3 C9 ret
|
|
134:
|
|
135: - 82A4 _ideif_drv_sel_pstr:
|
|
136: - 82A4 0A0D4472 db 10,13,"Drive ",0
|
|
69766520
|
|
00
|
|
137: - 82AD _ideif_drv_sel_fstr0:
|
|
138: - 82AD 3A206E6F db ": not ready",10,13,0
|
|
74207265
|
|
6164790A
|
|
0D00
|
|
139: - 82BB _ideif_drv_sel_sstr0:
|
|
140: - 82BB 3A207365 db ": selected",10,13,0
|
|
6C656374
|
|
65640A0D
|
|
00
|
|
141: - 82C8 _ideif_drv_sel_syn:
|
|
142: - 82C8 0A0D496E db 10,13,"Invalid drive letter",10,13,0
|
|
76616C69
|
|
64206472
|
|
69766520
|
|
6C657474
|
|
65720A0D
|
|
00
|
|
143: .include "fat16.s" ;include monitor symbols.
|
|
**** include/fat16.s ****
|
|
1: ; VARS
|
|
2:
|
|
3: - 4317 phase MEM_IDE_FSBUFFER
|
|
4: - 4317 MEM_FAT_RESERVED: ; Reserved sectors (2byte)
|
|
5: - 4317 ..4318 00 defs 2
|
|
6: - 4319 MEM_FAT_AMOUNT: ; Amount of FATs (1byte)
|
|
7: - 4319 ..4319 00 defs 1
|
|
8: - 431A MEM_FAT_SECTORS: ; Length of FAT (2byte)
|
|
9: - 431A ..431B 00 defs 2
|
|
10: - 431C MEM_FAT_COUNT1: ; Counter Var for reading FAT (2byte)
|
|
11: - 431C ..431C 00 defs 1
|
|
12: - 431D MEM_FAT_TMPPOINTER: ; Temporary working pointer
|
|
13: - 431D ..4320 00 defs 4
|
|
14: - 4321 MEM_FAT_TMPPOINTER1: ; Temporary working pointer
|
|
15: - 4321 ..4324 00 defs 4
|
|
16: - 4325 MEM_FAT_TMPFNAME: ; Temporary filename
|
|
17: - 4325 ..4334 00 defs 16
|
|
18:
|
|
19: - 4335 MEM_FAT_OF0_CCLUST: ;Current cluster of file
|
|
20: - 4335 0000 defw 0
|
|
21: - 4337 MEM_FAT_OF0_FATSEC: ;Current sector in FAT
|
|
22: - 4337 ..433A 00 defs 4
|
|
23: - 433B MEM_FAT_OF0_DATSEC: ;Current sector in Data
|
|
24: - 433B ..433E 00 defs 4
|
|
25: - 433F MEM_FAT_OF0_DATREM: ;Remaining sector in Data
|
|
26: - 433F ..4340 00 defs 2
|
|
27:
|
|
28:
|
|
29: - 830B dephase
|
|
30:
|
|
31: ;-------------------------------------
|
|
32: ; Get FAT Root-Table position
|
|
33: ;-------------------------------------
|
|
34: - 830B fat_get_root_table:
|
|
35: 1365+17 830B CD4585 call fat_reset_pointer ;reset fat pointer
|
|
36:
|
|
37: ;call fat_print_dbg
|
|
38: ; Load first sector on active partition
|
|
39: 1382+10 830E 213240 LD HL, MEM_IDE_POINTER ; pointer to LBA address
|
|
40: 1392+7 8311 3E01 LD A,1 ;read 1 sector
|
|
41: 1399+17 8313 CDBE14 call read_lba_sector
|
|
42:
|
|
43: ; check for valid Boot sector
|
|
44: 1416+13 8316 3A1741 ld a,(MEM_IDE_BUFFER)
|
|
45: 1429+7 8319 FEEB cp 0xEB ;first byte should be 0xEB
|
|
46: 1436+10 831B C25D83 jp nz, _fat_get_root_table_invalid
|
|
47:
|
|
48: ;debug sector
|
|
49: ;ld hl, MEM_IDE_BUFFER
|
|
50: ;ld b,20
|
|
51: ;call dump_pretty
|
|
52:
|
|
53: ; Read and store FS Properties
|
|
54: 1446+14 831E DD211741 LD IX,MEM_IDE_BUFFER
|
|
55: 1460+19 8322 DD7E0E LD A,(IX+0x0E)
|
|
56: 1479+13 8325 321743 LD (MEM_FAT_RESERVED),A
|
|
57: 1492+19 8328 DD7E0F LD A,(IX+0x0F)
|
|
58: 1511+13 832B 321843 LD (MEM_FAT_RESERVED+1),A
|
|
59: 1524+19 832E DD7E10 LD A,(IX+0x10)
|
|
60: 1543+13 8331 321943 LD (MEM_FAT_AMOUNT),A
|
|
61: 1556+19 8334 DD7E16 LD A,(IX+0x16)
|
|
62: 1575+13 8337 321A43 LD (MEM_FAT_SECTORS),A
|
|
63: 1588+19 833A DD7E17 LD A,(IX+0x17)
|
|
64: 1607+13 833D 321B43 LD (MEM_FAT_SECTORS+1),A
|
|
65:
|
|
66: ;Get Root FAT
|
|
67: 1620+13 8340 3A1B43 LD A, (MEM_FAT_SECTORS+1) ; load FAT Sector size to DE
|
|
68: 1633+4 8343 57 LD D,A
|
|
69: 1637+13 8344 3A1A43 LD A, (MEM_FAT_SECTORS)
|
|
70: 1650+4 8347 5F LD E,A
|
|
71: 1654+4 8348 AF XOR A ; clear HL
|
|
72: 1658+4 8349 67 LD H,A
|
|
73: 1662+4 834A 6F LD L,A
|
|
74: 1666+13 834B 3A1943 LD A,(MEM_FAT_AMOUNT) ; Load counter for multiplication
|
|
75: 1679+4 834E 47 LD B,A
|
|
76: - 834F _fat_get_root_table_loop: ; multiply
|
|
77: 1683+11 834F 19 ADD HL,DE
|
|
78: 1694+8+5 8350 10FD DJNZ _fat_get_root_table_loop
|
|
79:
|
|
80: ; add reserved sectors
|
|
81: 1702+7 8352 1600 LD D,0
|
|
82: 1709+13 8354 3A1743 LD A,(MEM_FAT_RESERVED)
|
|
83: 1722+4 8357 5F LD E,A
|
|
84: 1726+11 8358 19 ADD HL,DE
|
|
85:
|
|
86: ; add
|
|
87: 1737+17 8359 CD0085 call _fat_math_sector_add_16
|
|
88: 1754+10 835C C9 ret
|
|
89:
|
|
90: - 835D _fat_get_root_table_invalid:
|
|
91: 1764+17 835D CD0C86 call PRINTINLINE
|
|
92: - 8360 0A0D4361 db 10,13,"Cannot find boot sector.",10,13,0
|
|
6E6E6F74
|
|
2066696E
|
|
6420626F
|
|
6F742073
|
|
6563746F
|
|
722E0A0D
|
|
00
|
|
93: 1781+17 837D CD9714 call ideif_get_drv_pointer
|
|
94: 1798+19 8380 DD360002 ld (ix+0),0x02
|
|
95: 1817+10 8384 C9 ret
|
|
96:
|
|
97: ;-------------------------------------
|
|
98: ; Print current fat directory of MEM_IDE_POINTER
|
|
99: ;-------------------------------------
|
|
100: - 8385 fat_print_directory:
|
|
101:
|
|
102: 1827+20 8385 ED5B1A43 LD DE,(MEM_FAT_SECTORS)
|
|
103: 1847+20 8389 ED531C43 LD (MEM_FAT_COUNT1),DE
|
|
104: 1867+10 838D 213240 LD HL,MEM_IDE_POINTER ;read first sector
|
|
105: 1877+7 8390 0601 LD B,1
|
|
106: 1884+17 8392 CDBE14 call read_lba_sector
|
|
107:
|
|
108: 1901+17 8395 CD0C86 call PRINTINLINE
|
|
109: - 8398 0A0D2020 db 10,13," Filename Cluster Size",10,13,0
|
|
46696C65
|
|
6E616D65
|
|
20202020
|
|
20436C75
|
|
73746572
|
|
2053697A
|
|
650A0D00
|
|
110:
|
|
111: 1918+10 83B8 211741 LD HL, MEM_IDE_BUFFER ;set buffer start
|
|
112: 1928+7 83BB 0E10 LD C,16 ;set entries counter
|
|
113:
|
|
114: - 83BD _fat_print_directory_loop: ;loop over each entry (32byte)
|
|
115: 1935+7 83BD 7E LD A,(HL) ; check first byte
|
|
116: 1942+11 83BE E5 PUSH HL ;backup start of entry
|
|
117: 1953+14 83BF DDE1 POP IX
|
|
118: 1967+11 83C1 E5 PUSH HL
|
|
119: ;ignore unwanted entries
|
|
120: 1978+7 83C2 FE41 CP 0x41 ;skip invisible
|
|
121: 1985+10 83C4 CA6384 JP Z, _fat_print_directory_loop_next
|
|
122: 1995+7 83C7 FEE5 CP 0xE5 ;skip deleted
|
|
123: 2002+10 83C9 CA6384 JP Z, _fat_print_directory_loop_next
|
|
124: 2012+7 83CC FE00 CP 0x00 ;reached end
|
|
125: 2019+10 83CE CA9484 JP Z, _fat_print_directory_loop_break
|
|
126:
|
|
127: ;check file attribute
|
|
128: 2029+19 83D1 DD7E0B ld a,(IX+0x0B)
|
|
129: 2048+7 83D4 FE10 cp 0x10 ;if subdirectors
|
|
130: 2055+10 83D6 CA3184 jp z, _fat_print_directory_dir ;print dir
|
|
131: ;else print file
|
|
132: - 83D9 _fat_print_directory_loop_file
|
|
133: ;print filename
|
|
134: 2065+7 83D9 3E20 ld a,' '
|
|
135: 2072+17 83DB CDD700 call print_char
|
|
136: 2089+7 83DE 3E20 ld a,' '
|
|
137: 2096+17 83E0 CDD700 call print_char
|
|
138: 2113+7 83E3 0608 LD B,8
|
|
139: 2120+17 83E5 CD6317 call print_str_fixed
|
|
140: 2137+7 83E8 3E2E ld A,'.'
|
|
141: 2144+17 83EA CDD700 call print_char
|
|
142: 2161+7 83ED 0603 LD B,3
|
|
143: 2168+17 83EF CD6317 call print_str_fixed
|
|
144:
|
|
145: 2185+17 83F2 CD0C86 call PRINTINLINE
|
|
146: - 83F5 20307800 db " 0x",0
|
|
147: ;first cluster number
|
|
148: 2202+19 83F9 DD7E1B ld a,(ix+0x1B)
|
|
149: 2221+17 83FC CD0701 call print_a_hex
|
|
150: 2238+19 83FF DD7E1A ld a,(ix+0x1A)
|
|
151: 2257+17 8402 CD0701 call print_a_hex
|
|
152: 2274+17 8405 CD0C86 call PRINTINLINE
|
|
153: - 8408 20203078 db " 0x",0
|
|
00
|
|
154: 2291+19 840D DD7E1F ld a,(ix+0x1F)
|
|
155: 2310+17 8410 CD0701 call print_a_hex
|
|
156: 2327+19 8413 DD7E1E ld a,(ix+0x1E)
|
|
157: 2346+17 8416 CD0701 call print_a_hex
|
|
158: 2363+19 8419 DD7E1D ld a,(ix+0x1D)
|
|
159: 2382+17 841C CD0701 call print_a_hex
|
|
160: 2399+19 841F DD7E1C ld a,(ix+0x1C)
|
|
161: 2418+17 8422 CD0701 call print_a_hex
|
|
162:
|
|
163: 2435+7 8425 3E0A LD A,10 ;New line
|
|
164: 2442+17 8427 CDD700 CALL print_char
|
|
165: 2459+7 842A 3E0D LD A,13
|
|
166: 2466+17 842C CDD700 CALL print_char
|
|
167: 2483+12 842F 1832 jr _fat_print_directory_loop_next
|
|
168: - 8431 _fat_print_directory_dir
|
|
169: 2495+7 8431 3E44 ld a,'D'
|
|
170: 2502+17 8433 CDD700 call print_char
|
|
171: 2519+7 8436 3E20 ld a,' '
|
|
172: 2526+17 8438 CDD700 call print_char
|
|
173: 2543+7 843B 0608 LD B,8
|
|
174: 2550+17 843D CD6317 call print_str_fixed
|
|
175: 2567+17 8440 CD0C86 call PRINTINLINE
|
|
176: - 8443 20202020 db " 0x",0
|
|
20307800
|
|
177: ;first cluster number
|
|
178: 2584+19 844B DD7E1B ld a,(ix+0x1B)
|
|
179: 2603+17 844E CD0701 call print_a_hex
|
|
180: 2620+19 8451 DD7E1A ld a,(ix+0x1A)
|
|
181: 2639+17 8454 CD0701 call print_a_hex
|
|
182:
|
|
183: 2656+7 8457 3E0A LD A,10 ;New line
|
|
184: 2663+17 8459 CDD700 CALL print_char
|
|
185: 2680+7 845C 3E0D LD A,13
|
|
186: 2687+17 845E CDD700 CALL print_char
|
|
187: 2704+12 8461 1800 jr _fat_print_directory_loop_next
|
|
188:
|
|
189: - 8463 _fat_print_directory_loop_next: ; read next entry
|
|
190: 2716+4 8463 0D DEC C ;next sector after 32 entries
|
|
191: 2720+7+5 8464 2808 JR Z,_fat_print_directory_loop_next_sector
|
|
192: 2727+10 8466 E1 POP HL ;restore start
|
|
193: 2737+10 8467 112000 LD DE, 32 ;length of entry
|
|
194: 2747+11 846A 19 ADD HL,DE ;increment
|
|
195: 2758+10 846B C3BD83 JP _fat_print_directory_loop
|
|
196:
|
|
197: - 846E _fat_print_directory_loop_next_sector: ; end fo sector. read next sector from disk
|
|
198: 2768+10 846E E1 POP HL ;clear stack from old hl
|
|
199: 2778+7 846F 2600 LD H,0
|
|
200: 2785+7 8471 2E01 LD L,1
|
|
201: 2792+17 8473 CD0085 call _fat_math_sector_add_16 ;increment sector
|
|
202:
|
|
203: 2809+20 8476 ED5B1C43 LD DE,(MEM_FAT_COUNT1) ; decrement sector count (max FAT length)
|
|
204: 2829+6 847A 1B DEC DE
|
|
205: 2835+20 847B ED531C43 LD (MEM_FAT_COUNT1),DE
|
|
206: 2855+4 847F 7A LD A,D
|
|
207: 2859+4 8480 B3 OR E
|
|
208: 2863+10 8481 CA9584 JP Z, _fat_print_directory_loop_break_dirty ; if DE is 0, mmax is reached. End here
|
|
209:
|
|
210: 2873+10 8484 213240 LD HL,MEM_IDE_POINTER ;read next sector
|
|
211: 2883+7 8487 0601 LD B,1
|
|
212: 2890+17 8489 CDBE14 call read_lba_sector
|
|
213:
|
|
214: 2907+10 848C 211741 LD HL, MEM_IDE_BUFFER ;set buffer start
|
|
215: 2917+7 848F 0E10 LD C,16 ;set entries counter
|
|
216: 2924+10 8491 C3BD83 JP _fat_print_directory_loop
|
|
217:
|
|
218: - 8494 _fat_print_directory_loop_break
|
|
219: 2934+10 8494 E1 POP HL
|
|
220: - 8495 _fat_print_directory_loop_break_dirty
|
|
221: ; ld hl, [str_sum]
|
|
222: ; call print_str ;print
|
|
223: ; ld a,c
|
|
224: ; call print_a_hex
|
|
225: ; ld hl, [str_files]
|
|
226: ; call print_str ;print
|
|
227: 2944+10 8495 C9 ret
|
|
228:
|
|
229: ;-------------------------------------
|
|
230: ; FAT locate file startcluster
|
|
231: ;
|
|
232: ; DE pointer to file name
|
|
233: ;-------------------------------------
|
|
234: - 8496 fat_lfs:
|
|
235: 2954+11 8496 D5 PUSH DE
|
|
236: 2965+10 8497 212543 LD HL,[MEM_FAT_TMPFNAME] ; prepare filename
|
|
237: 2975+17 849A CD7385 CALL format_filename_fat16
|
|
238:
|
|
239: 2992+7 849D 3E10 LD A,16 ;init counter for FAT sectors
|
|
240: 2999+13 849F 321C43 LD (MEM_FAT_COUNT1),A
|
|
241:
|
|
242: 3012+10 84A2 213240 LD HL,MEM_IDE_POINTER ;read first sector
|
|
243: 3022+7 84A5 0601 LD B,1
|
|
244: 3029+17 84A7 CDBE14 call read_lba_sector
|
|
245:
|
|
246: 3046+10 84AA 211741 LD HL, MEM_IDE_BUFFER ;set buffer start
|
|
247: 3056+7 84AD 0E10 LD C,16 ;set entries counter
|
|
248:
|
|
249: - 84AF _fat_lfs_loop:
|
|
250: 3063+10 84AF D1 POP DE
|
|
251: 3073+11 84B0 D5 PUSH DE
|
|
252: 3084+17 84B1 CD5D85 CALL compare_filename
|
|
253: 3101+7+5 84B4 3833 JR C, _fat_lfs_loop_compare_match ;on match
|
|
254:
|
|
255: ; prepare next entry
|
|
256: 3108+4 84B6 0D DEC C ;next sector after 16 entries
|
|
257: 3112+7+5 84B7 2807 JR Z,_fat_lfs_loop_compare_next_sector
|
|
258: 3119+10 84B9 112000 LD DE, 32 ;length of entry
|
|
259: 3129+11 84BC 19 ADD HL,DE ;increment
|
|
260: 3140+10 84BD C3AF84 JP _fat_lfs_loop
|
|
261:
|
|
262: - 84C0 _fat_lfs_loop_compare_next_sector:
|
|
263: 3150+7 84C0 2600 LD H,0
|
|
264: 3157+7 84C2 2E01 LD L,1
|
|
265: 3164+17 84C4 CD0085 call _fat_math_sector_add_16 ;increment sector
|
|
266: 3181+13 84C7 3A1C43 LD A,(MEM_FAT_COUNT1) ; decrement sector count (max FAT length)
|
|
267: 3194+4 84CA 3D DEC A
|
|
268: 3198+13 84CB 321C43 LD (MEM_FAT_COUNT1),A
|
|
269: 3211+10 84CE CAE184 JP Z, _fat_lfs_loop_compare_end ; if DE is 0, mmax is reached. End here
|
|
270: ;call print_a_hex
|
|
271:
|
|
272: 3221+10 84D1 213240 LD HL,MEM_IDE_POINTER ;read next sector
|
|
273: 3231+7 84D4 0601 LD B,1
|
|
274: 3238+17 84D6 CDBE14 call read_lba_sector
|
|
275:
|
|
276: 3255+10 84D9 211741 LD HL, MEM_IDE_BUFFER ;set buffer start
|
|
277: 3265+7 84DC 0E10 LD C,16 ;set entries counter
|
|
278: 3272+10 84DE C3AF84 JP _fat_lfs_loop
|
|
279:
|
|
280: - 84E1 _fat_lfs_loop_compare_end:
|
|
281: 3282+10 84E1 D1 POP DE
|
|
282: 3292+10 84E2 219885 LD HL, [str_file_notfound]
|
|
283: 3302+17 84E5 CDDF00 CALL print_str ;print
|
|
284: 3319+10 84E8 C9 RET
|
|
285:
|
|
286: - 84E9 _fat_lfs_loop_compare_match:
|
|
287: ; get entry
|
|
288: 3329+10 84E9 D1 POP DE
|
|
289: 3339+7 84EA 0608 LD B,8
|
|
290: 3346+17 84EC CD6317 call print_str_fixed
|
|
291: 3363+7 84EF 3E2E ld A,'.'
|
|
292: 3370+17 84F1 CDD700 call print_char
|
|
293: 3387+7 84F4 0603 LD B,3
|
|
294: 3394+17 84F6 CD6317 call print_str_fixed
|
|
295:
|
|
296: 3411+10 84F9 21AA85 LD HL, [str_file_found]
|
|
297: 3421+17 84FC CDDF00 CALL print_str ;print
|
|
298:
|
|
299: 3438+10 84FF C9 RET
|
|
300:
|
|
301:
|
|
302:
|
|
303: ;=================== UTIL Functions ===========================
|
|
304: ; 32 Bit addition to pointer
|
|
305: ; HL has value
|
|
306: - 8500 _fat_math_sector_add_16:
|
|
307: 3448+16 8500 221D43 ld (MEM_FAT_TMPPOINTER), hl
|
|
308: 3464+4 8503 AF xor a
|
|
309: 3468+13 8504 321F43 ld (MEM_FAT_TMPPOINTER+2),a
|
|
310: 3481+13 8507 322043 ld (MEM_FAT_TMPPOINTER+3),a
|
|
311:
|
|
312: 3494+10 850A 111D43 ld de,[MEM_FAT_TMPPOINTER]
|
|
313: 3504+10 850D 013240 ld bc,[MEM_IDE_POINTER]
|
|
314: 3514+17 8510 CD1485 call _fat_math_add32
|
|
315: 3531+10 8513 C9 ret
|
|
316:
|
|
317: ;bc contains pointer to a (also result)
|
|
318: ;de contains pointer to b
|
|
319: - 8514 _fat_math_add32
|
|
320: 3541+11 8514 E5 push hl
|
|
321: 3552+11 8515 C5 push bc
|
|
322: 3563+11 8516 D5 push de
|
|
323: 3574+7 8517 1A ld a,(de) ; load lower 16bit for B int from (DE) to HL
|
|
324: 3581+4 8518 6F ld l,a
|
|
325: 3585+6 8519 13 inc de
|
|
326: 3591+7 851A 1A ld a,(de)
|
|
327: 3598+4 851B 67 ld h,a
|
|
328: 3602+6 851C 13 inc de
|
|
329: ; HL, DE dirty
|
|
330: 3608+7 851D 0A ld a,(bc) ; load lower 16bit for A int from (BC) to DE
|
|
331: 3615+4 851E 5F ld e,a
|
|
332: 3619+6 851F 03 inc bc
|
|
333: 3625+7 8520 0A ld a,(bc)
|
|
334: 3632+4 8521 57 ld d,a
|
|
335: ; HL now contains A, DE now contains D
|
|
336: 3636+11 8522 19 add hl,de ;add lower bytes, store carry
|
|
337: 3647+10 8523 D1 pop de ;restore pointers
|
|
338: 3657+10 8524 C1 pop bc ;both now cointain first byte of long-value
|
|
339: 3667+4 8525 7D ld a,l ;store lower result in (bc)
|
|
340: 3671+7 8526 02 ld (bc),a
|
|
341: 3678+6 8527 03 inc bc
|
|
342: 3684+4 8528 7C ld a,h
|
|
343: 3688+7 8529 02 ld (bc),a
|
|
344: 3695+6 852A 03 inc bc
|
|
345: 3701+6 852B 13 inc de ;also increment de to next byte
|
|
346: 3707+6 852C 13 inc de
|
|
347: ; DE and HL now start at the upper byte
|
|
348: 3713+11 852D C5 push bc
|
|
349: 3724+11 852E D5 push de
|
|
350: 3735+7 852F 1A ld a,(de) ; load upper 16bit for B
|
|
351: 3742+4 8530 6F ld l,a
|
|
352: 3746+6 8531 13 inc de
|
|
353: 3752+7 8532 1A ld a,(de)
|
|
354: 3759+4 8533 67 ld h,a
|
|
355: 3763+6 8534 13 inc de
|
|
356: 3769+7 8535 0A ld a,(bc) ; load upper 16bit for A
|
|
357: 3776+4 8536 5F ld e,a
|
|
358: 3780+6 8537 03 inc bc
|
|
359: 3786+7 8538 0A ld a,(bc)
|
|
360: 3793+4 8539 57 ld d,a
|
|
361: 3797+15 853A ED5A adc hl,de ;add upper bytes, store carry
|
|
362: 3812+10 853C D1 pop de
|
|
363: 3822+10 853D C1 pop bc
|
|
364: 3832+4 853E 7D ld a,l ;store lower result in (bc)
|
|
365: 3836+7 853F 02 ld(bc),a
|
|
366: 3843+6 8540 03 inc bc
|
|
367: 3849+4 8541 7C ld a,h
|
|
368: 3853+7 8542 02 ld(bc),a
|
|
369: 3860+10 8543 E1 pop hl
|
|
370: 3870+10 8544 C9 ret
|
|
371:
|
|
372: ; reset LBA pointer to first sector in selected partition
|
|
373: - 8545 fat_reset_pointer:
|
|
374: 3880+17 8545 CD9714 call ideif_get_drv_pointer
|
|
375: 3897+10 8548 DD23 inc ix
|
|
376: 3907+10 854A DD23 inc ix
|
|
377: 3917+15 854C DDE5 push ix
|
|
378: 3932+10 854E E1 pop hl ;copy poiter to hl
|
|
379: 3942+10 854F 113240 ld de, MEM_IDE_POINTER
|
|
380: 3952+12 8552 1800 jr fat_copy_lba_pointer
|
|
381:
|
|
382: ; resets LBA pointer (4-byte) to partition start
|
|
383: ; HL = from here
|
|
384: ; DE = to this destimation
|
|
385: - 8554 fat_copy_lba_pointer:
|
|
386: 3964+11 8554 C5 PUSH BC
|
|
387: 3975+7 8555 0600 LD B,0
|
|
388: 3982+7 8557 0E04 LD C,4
|
|
389: 3989+16+5 8559 EDB0 LDIR
|
|
390: 4005+10 855B C1 POP BC
|
|
391: 4015+10 855C C9 ret
|
|
392:
|
|
393: ; compares filenames
|
|
394: ; HL points to name1
|
|
395: ; DE points to name2
|
|
396: ; Carry is set if match
|
|
397: ; Destroys DE, AF
|
|
398: - 855D compare_filename:
|
|
399: 4025+11 855D E5 PUSH HL
|
|
400: 4036+11 855E C5 PUSH BC
|
|
401: 4047+7 855F 060B LD B, 11 ;Counter
|
|
402: - 8561 _compare_filename_loop:
|
|
403: 4054+7 8561 1A LD A,(DE)
|
|
404: 4061+4 8562 4F LD C,A
|
|
405: 4065+7 8563 7E LD A,(HL)
|
|
406: 4072+4 8564 A9 XOR C ;check if identical (should return 0)
|
|
407: 4076+7+5 8565 2007 JR NZ, _compare_filename_nomatch
|
|
408: 4083+4 8567 05 DEC B ;decrement counter
|
|
409: 4087+7+5 8568 20F7 JR NZ, _compare_filename_loop ;if not last, continue
|
|
410: 4094+10 856A C1 POP BC ;if last, it matches
|
|
411: 4104+10 856B E1 POP HL
|
|
412: 4114+4 856C 37 SCF
|
|
413: 4118+10 856D C9 RET
|
|
414: - 856E _compare_filename_nomatch:
|
|
415: 4128+10 856E C1 POP BC
|
|
416: 4138+10 856F E1 POP HL
|
|
417: 4148+4 8570 37 SCF
|
|
418: 4152+4 8571 3F CCF
|
|
419: 4156+10 8572 C9 RET
|
|
420:
|
|
421: ; formats filename to 8+3 format
|
|
422: ; DE points to source filename to string
|
|
423: ; HL points to destination
|
|
424: - 8573 format_filename_fat16:
|
|
425: 4166+7 8573 060B LD B, 11 ;counter
|
|
426: 4173+11 8575 E5 PUSH HL
|
|
427: 4184+4 8576 AF XOR A
|
|
428: - 8577 _format_filename_fat16_clean:
|
|
429: 4188+7 8577 77 LD (HL),A
|
|
430: 4195+6 8578 23 INC HL
|
|
431: 4201+8+5 8579 10FC DJNZ _format_filename_fat16_clean
|
|
432: 4209+10 857B E1 POP HL ; continue with copy
|
|
433: 4219+7 857C 060D LD B, 13
|
|
434: - 857E _format_filename_fat16_loop:
|
|
435: 4226+7 857E 1A LD A, (DE) ; load byte
|
|
436: 4233+4 857F B7 OR A
|
|
437: 4237+5+6 8580 C8 RET Z ;exit on 0byte
|
|
438: 4242+4 8581 05 DEC B ;reduce counter
|
|
439: 4246+5+6 8582 C8 RET Z ;exit after 12 bytes 8+.+3
|
|
440: 4251+7 8583 FE2E CP '.' ; check if dot
|
|
441: 4258+7+5 8585 200A JR NZ, _format_filename_fat16_loop_copy ; if not continue as usual
|
|
442: 4265+6 8587 13 INC DE ;else skip char
|
|
443: - 8588 _format_filename_fat16_loop_skip_8:
|
|
444: 4271+4 8588 78 LD A,B
|
|
445: 4275+7 8589 FE05 CP 5
|
|
446: 4282+7+5 858B 38F1 JR C, _format_filename_fat16_loop
|
|
447: 4289+6 858D 23 INC HL
|
|
448: 4295+4 858E 05 DEC B
|
|
449: 4299+12 858F 18F7 JR _format_filename_fat16_loop_skip_8
|
|
450:
|
|
451: - 8591 _format_filename_fat16_loop_copy:
|
|
452: 4311+7 8591 1A LD A, (DE) ; load byte
|
|
453: 4318+7 8592 77 LD (HL), A ; copy byte
|
|
454: 4325+6 8593 23 INC HL
|
|
455: 4331+6 8594 13 INC DE
|
|
456: 4337+10 8595 C37E85 JP _format_filename_fat16_loop
|
|
457:
|
|
458: - 8598 str_file_notfound:
|
|
459: - 8598 46696C65 db "File not found!",13,10,0
|
|
206E6F74
|
|
20666F75
|
|
6E64210D
|
|
0A00
|
|
460:
|
|
461: - 85AA str_file_found:
|
|
**** test.asm ****
|
|
144: - 85AA 2046696C db " File located!",13,10,0
|
|
65206C6F
|
|
63617465
|
|
64210D0A
|
|
00
|
|
145: .include "fat16_file.s" ;include monitor symbols.
|
|
**** include/fat16_file.s ****
|
|
1:
|
|
2:
|
|
3: ;1. find sector for given cluster
|
|
4: ;2. read sector
|
|
5: ;3. store first data sector to MEM_FAT_OF0_DATSEC
|
|
6: ;4. set MEM_FAT_OF0_DATREM to amount uf sectors per cluster
|
|
7: ;5. find next cluster in FAt and update MEM_FAT_OF0_CCLUST
|
|
8:
|
|
9:
|
|
10: ; gets sector in FAT table for the cluster stored in MEM_FAT_OF0_CCLUST
|
|
11: ; store result in MEM_FAT_OF0_FATSEC
|
|
12: - 85BB fat_getfatsec:
|
|
13: 4347+16 85BB 2A3543 ld HL,(MEM_FAT_OF0_CCLUST) ;load cluster
|
|
14: ;each sector contains 256 clusters
|
|
15: ;first 8bits are not needed (/256)
|
|
16:
|
|
17: 4363+4 85BE 7C ld a,h ;divide by 256
|
|
18: 4367+4 85BF 6F ld l,a
|
|
19: 4371+4 85C0 AF xor a
|
|
20: 4375+4 85C1 67 ld h,a
|
|
21:
|
|
22: 4379+20 85C2 ED4B1743 ld bc,(MEM_FAT_RESERVED) ;add reserved sectors
|
|
23: 4399+11 85C6 09 add hl,bc
|
|
24: 4410+16 85C7 223743 ld(MEM_FAT_OF0_FATSEC+0),hl;store sector to MEM_FAT_TMPPOINTER1
|
|
25: 4426+4 85CA AF xor a
|
|
26: 4430+13 85CB 323943 ld(MEM_FAT_OF0_FATSEC+2),a
|
|
27: 4443+13 85CE 323A43 ld(MEM_FAT_OF0_FATSEC+3),a
|
|
28:
|
|
29: 4456+17 85D1 CD9714 call ideif_get_drv_pointer
|
|
30: 4473+10 85D4 DD23 inc ix
|
|
31: 4483+10 85D6 DD23 inc ix
|
|
32: 4493+15 85D8 DDE5 push ix
|
|
33: 4508+10 85DA D1 pop de ;copy poiter to hl
|
|
34: 4518+10 85DB 013743 ld bc,[MEM_FAT_OF0_FATSEC]
|
|
35: 4528+17 85DE CD1485 call _fat_math_add32 ;MEM_FAT_OF0_FATSEC now contains the correct sector
|
|
36: ;in the FAT
|
|
37:
|
|
38: 4545+17 85E1 CD3A80 call fat_print_dbg
|
|
39:
|
|
40: ;read FAT sector
|
|
41: 4562+10 85E4 213743 ld hl,MEM_FAT_OF0_FATSEC ;read next sector
|
|
42: 4572+7 85E7 0601 ld b,1
|
|
43: 4579+17 85E9 CDBE14 call read_lba_sector
|
|
44:
|
|
45: 4596+10 85EC 211741 ld hl, MEM_IDE_BUFFER
|
|
46: 4606+7 85EF 0614 ld b,20
|
|
47: 4613+17 85F1 CDC916 call dump_pretty
|
|
48:
|
|
49: ;calculate offset address
|
|
50: 4630+13 85F4 3A3543 ld a,(MEM_FAT_OF0_CCLUST)
|
|
51: 4643+4 85F7 17 RLA ;shift to left (x2)
|
|
52: 4647+4 85F8 6F ld l, a
|
|
53: 4651+7 85F9 3E00 ld a,0
|
|
54: 4658+4 85FB 17 RLA ;shift in carry flag
|
|
55: 4662+4 85FC 67 ld h,a
|
|
56: 4666+10 85FD 111741 ld de,MEM_IDE_BUFFER
|
|
57: 4676+11 8600 19 add hl,de
|
|
58: ;copy pointer
|
|
59: 4687+10 8601 113543 ld de,MEM_FAT_OF0_CCLUST
|
|
60: 4697+16 8604 EDA0 ldi ;copy byte for next cluster from FAT
|
|
61: 4713+16 8606 EDA0 ldi
|
|
62:
|
|
63:
|
|
64: 4729+17 8608 CD3A80 call fat_print_dbg
|
|
65:
|
|
66: 4746+10 860B C9 ret
|
|
67: ;store data
|
|
68:
|
|
**** test.asm ****
|
|
146:
|
|
147: ;------------------------------------------------------------------------------
|
|
148: ; PRINTINLINE
|
|
149: ;
|
|
150: ; String output function
|
|
151: ;
|
|
152: ; Prints in-line data (bytes immediately following the PRINTINLINE call)
|
|
153: ; until a string terminator is encountered (0 - null char).
|
|
154: ;------------------------------------------------------------------------------
|
|
155: - 860C PRINTINLINE:
|
|
156: 4756+19 860C E3 EX (SP),HL ; PUSH HL and put RET ADDress into HL
|
|
157: 4775+11 860D F5 PUSH AF
|
|
158: 4786+11 860E C5 PUSH BC
|
|
159: - 860F nxtILC:
|
|
160: 4797+7 860F 7E LD A,(HL)
|
|
161: 4804+7 8610 FE00 CP 0
|
|
162: 4811+7+5 8612 2806 JR Z,endPrint
|
|
163: 4818+17 8614 CDD700 CALL print_char
|
|
164: 4835+6 8617 23 INC HL
|
|
165: 4841+12 8618 18F5 JR nxtILC
|
|
166: - 861A endPrint:
|
|
167: 4853+6 861A 23 INC HL ; Get past "null" terminator
|
|
168: 4859+10 861B C1 POP BC
|
|
169: 4869+10 861C F1 POP AF
|
|
170: 4879+19 861D E3 EX (SP),HL ; PUSH new RET ADDress on stack and restore HL
|
|
**** test.asm ****
|
|
171: 4898+10 861E C9 RET
|
|
|
|
|
|
|
|
Statistics:
|
|
|
|
4 passes
|
|
0 jr promotions
|
|
525 symbols
|
|
1534 bytes
|
|
|
|
|
|
|
|
Symbol Table:
|
|
|
|
ADDR_RTC =D0 208
|
|
A_RTS_OFF = 152 338
|
|
A_RTS_ON = 15B 347
|
|
BOOT_PHASE0 =50 80
|
|
BOOT_PHASE1 =6E 110
|
|
BOOT_PHASE1_LOOP=77 119
|
|
BOOT_PHASE2 =82 130
|
|
COMMAND =17EB 6123
|
|
COMMAND_BACKSPACE=1826 6182
|
|
COMMAND_LUT =176B 5995
|
|
COMMAND_PROCESS=184C 6220
|
|
COMMAND_PROCESS_FOUND=1887 6279
|
|
COMMAND_PROCESS_LOOP=184F 6223
|
|
COMMAND_PROCESS_LOOP_STR1=1858 6232
|
|
COMMAND_PROCESS_LOOP_STR2=186E 6254
|
|
COMMAND_PROCESS_NEXT_ENTRY=1873 6259
|
|
COMMAND_PROCESS_NEXT_ENTRYI=1872 6258
|
|
COMMAND_PROCESS_NOT_FOUND=187E 6270
|
|
COMMAND_READ =17F7 6135
|
|
CONSOLE_INIT =9E 158
|
|
CONSOLE_INIT_CTC=9E 158
|
|
CONSOLE_INIT_SIO=A6 166
|
|
CS_APU_CTRL =F9 249
|
|
CS_APU_DATA =F8 248
|
|
CS_BANK =00 0
|
|
CS_CTC_0 =04 4
|
|
CS_CTC_1 =05 5
|
|
CS_CTC_2 =06 6
|
|
CS_CTC_3 =07 7
|
|
CS_DIP =01 1
|
|
CS_PIA_CR =33 51
|
|
CS_PIA_PA =30 48
|
|
CS_PIA_PB =31 49
|
|
CS_PIA_PC =32 50
|
|
CS_PIO_AC =F6 246
|
|
CS_PIO_AD =F4 244
|
|
CS_PIO_BC =F7 247
|
|
CS_PIO_BD =F5 245
|
|
CS_SIO_A_C =09 9
|
|
CS_SIO_A_D =08 8
|
|
CS_SIO_B_C =0B 11
|
|
CS_SIO_B_D =0A 10
|
|
DHEX_TO_BYTE = 164 356
|
|
DHEX_TO_BYTE_FAILED= 180 384
|
|
ERR_SYNTAX =189D 6301
|
|
EXEC_RST_08 = D04 3332
|
|
EXEC_RST_10 = D08 3336
|
|
EXEC_RST_18 = D14 3348
|
|
HEX_TO_BIN = 184 388
|
|
HEX_TO_BIN_2 = 192 402
|
|
HEX_TO_INVALID_2= 199 409
|
|
IDE_CMD_IDENT =EC 236
|
|
IDE_CMD_READSEC=20 32
|
|
IDE_DEV_TABLE =1275 4725
|
|
IDE_RD =40 64
|
|
IDE_REG_ALTSTS =16 22
|
|
IDE_REG_CMDSTS =0F 15
|
|
IDE_REG_DATA =08 8
|
|
IDE_REG_DRVADDR=17 23
|
|
IDE_REG_ERROR =09 9
|
|
IDE_REG_HCYL =0D 13
|
|
IDE_REG_HEAD =0E 14
|
|
IDE_REG_LBA0 =0B 11
|
|
IDE_REG_LBA1 =0C 12
|
|
IDE_REG_LBA2 =0D 13
|
|
IDE_REG_LBA3 =0E 14
|
|
IDE_REG_LCYL =0C 12
|
|
IDE_REG_SECTOR =0A 10
|
|
IDE_REG_SSECTOR=0B 11
|
|
IDE_RST =80 128
|
|
IDE_WR =20 32
|
|
IIC_CLK =01 1
|
|
IIC_DATA =02 2
|
|
INT_VEC =1B 27
|
|
IN_BUFFER =402B 16427
|
|
IO_AY0_ADDR =40 64
|
|
IO_AY0_DATA =41 65
|
|
IO_AY1_ADDR =42 66
|
|
IO_AY1_DATA =43 67
|
|
IO_REG0 =20 32
|
|
IO_RTC_AMPM =25 37
|
|
IO_RTC_CTR_D =2D 45
|
|
IO_RTC_CTR_E =2E 46
|
|
IO_RTC_CTR_F =2F 47
|
|
IO_RTC_DAY0 =26 38
|
|
IO_RTC_DAY1 =27 39
|
|
IO_RTC_HOUR =24 36
|
|
IO_RTC_MIN0 =22 34
|
|
IO_RTC_MIN1 =23 35
|
|
IO_RTC_MON0 =28 40
|
|
IO_RTC_MON1 =29 41
|
|
IO_RTC_SEC0 =20 32
|
|
IO_RTC_SEC1 =21 33
|
|
IO_RTC_WEEK =2C 44
|
|
IO_RTC_YEAR1 =2B 43
|
|
IO_RTC_YERR0 =2A 42
|
|
MEM_FAT_AMOUNT 4319 17177
|
|
MEM_FAT_COUNT1 431C 17180
|
|
MEM_FAT_OF0_CCLUST 4335 17205
|
|
MEM_FAT_OF0_DATREM 433F 17215
|
|
MEM_FAT_OF0_DATSEC 433B 17211
|
|
MEM_FAT_OF0_FATSEC 4337 17207
|
|
MEM_FAT_RESERVED 4317 17175
|
|
MEM_FAT_SECTORS 431A 17178
|
|
MEM_FAT_TMPFNAME 4325 17189
|
|
MEM_FAT_TMPPOINTER 431D 17181
|
|
MEM_FAT_TMPPOINTER1 4321 17185
|
|
MEM_IDE_BUFFER =4117 16663
|
|
MEM_IDE_DEVICE =402C 16428
|
|
MEM_IDE_DEV_TABLE=4036 16438
|
|
MEM_IDE_FSBUFFER=4317 17175
|
|
MEM_IDE_PARTITION=402E 16430
|
|
MEM_IDE_POINTER=4032 16434
|
|
MEM_IDE_SELECTED=4076 16502
|
|
MEM_IDE_STATUS =402D 16429
|
|
MEM_IDE_STRING_0=4077 16503
|
|
MEM_IDE_STRING_1=409F 16543
|
|
MEM_IDE_STRING_2=40C7 16583
|
|
MEM_IDE_STRING_3=40EF 16623
|
|
MSG_CLEAR = 14A 330
|
|
NOT_IMPLEMENTED=1896 6294
|
|
OP_CALL =18F8 6392
|
|
OP_CLR =1A8C 6796
|
|
OP_DASM =1979 6521
|
|
OP_DUMP =1918 6424
|
|
OP_EXEC =18DF 6367
|
|
OP_IIC_IN =1A40 6720
|
|
OP_IIC_OUT =19E0 6624
|
|
OP_IO_IN =19A9 6569
|
|
OP_IO_OUT =19BF 6591
|
|
OP_LSDSK =1CA1 7329
|
|
OP_RTIME =1A90 6800
|
|
OP_SELDSK =1CA5 7333
|
|
OP_SET =1948 6472
|
|
OP_STIME =1C28 7208
|
|
POST_CHECK_APU =1D12 7442
|
|
POST_CHECK_IDE_30=1D3D 7485
|
|
POST_CHECK_IDE_40=1D50 7504
|
|
POST_CHECK_PIO =1CED 7405
|
|
POST_START =1CDD 7389
|
|
POST_TEST_RTC =1D6A 7530
|
|
PRG_RAM_START =4110 16656
|
|
PRG_RAM_TOP =FF00 65280
|
|
PRINTINLINE 860C 34316
|
|
PROG_MEM_START =4000 16384
|
|
PROG_ROM_START = 100 256
|
|
RST_00 =00 0
|
|
RST_08 =08 8
|
|
RST_10 =10 16
|
|
RST_18 =18 24
|
|
STACK_RAM_TOP =FFFF 65535
|
|
START_ROM =00 0
|
|
STRCONV_BYTES_TO_HEX= 19B 411
|
|
STRCONV_BYTES_TO_HEX_1= 1AA 426
|
|
STRCONV_BYTES_TO_HEX_2= 1B4 436
|
|
STR_Banner_Start=1E6F 7791
|
|
STR_PD_HEADER =1724 5924
|
|
SYS_BUF_START =4010 16400
|
|
SYS_RAM_START =4000 16384
|
|
VAR_CONSOLE_BAUD=18 24
|
|
VAR_CONSOLE_CONF=0F 15
|
|
VDP_MEM =80 128
|
|
VDP_REG =81 129
|
|
_COMMAND_PROCESS_FOUND=1895 6293
|
|
_OP_CALL =1917 6423
|
|
_OP_IIC_ACK_ERR=1A25 6693
|
|
_OP_IIC_ACK_ERR_str=1A2C 6700
|
|
_OP_IIC_IN_LOOP=1A72 6770
|
|
_OP_IIC_IN_LOOP_TEXT=1A7F 6783
|
|
_OP_IIC_OUT_LOOP=19F6 6646
|
|
_OP_IIC_OUT_SEND=1A12 6674
|
|
_OP_RTIME_NN =1A93 6803
|
|
_OP_RTIME_RD_CMD=1B4B 6987
|
|
_OP_SELDSK_INVALID=1CB4 7348
|
|
_OP_SELDSK_INVALID_STR=1CC4 7364
|
|
_OP_SET_LOOP =1960 6496
|
|
_OP_STIME_INVALID=1BEE 7150
|
|
_OP_STIME_PROMPT=1C05 7173
|
|
_OP_STIME_PROMPT_ERR=1C1D 7197
|
|
_OP_STIME_STR_DAY=1B4C 6988
|
|
_OP_STIME_STR_HOUR=1B9D 7069
|
|
_OP_STIME_STR_MIN=1BB8 7096
|
|
_OP_STIME_STR_MON=1B67 7015
|
|
_OP_STIME_STR_SEC=1BD3 7123
|
|
_OP_STIME_STR_YEAR=1B82 7042
|
|
_POST_CHECK_APU_FAILED=1D31 7473
|
|
_POST_CHECK_IDE_FAILED=1D63 7523
|
|
_POST_CHECK_PIO_FAILED=1D06 7430
|
|
_POST_TEST_RTC_INVALID=1DA4 7588
|
|
_POST_TEST_RTC_NOTFOUND=1D9D 7581
|
|
_STR_NOT_FOUND =18B8 6328
|
|
_STR_NOT_IMPLEMENTED=18A4 6308
|
|
_STR_SYNTAX =18CC 6348
|
|
_beep_pause_l1 = D30 3376
|
|
_compare_filename_loop 8561 34145
|
|
_compare_filename_nomatch 856E 34158
|
|
_fat_get_root_table_invalid 835D 33629
|
|
_fat_get_root_table_loop 834F 33615
|
|
_fat_lfs_loop 84AF 33967
|
|
_fat_lfs_loop_compare_end 84E1 34017
|
|
_fat_lfs_loop_compare_match 84E9 34025
|
|
_fat_lfs_loop_compare_next_sector 84C0 33984
|
|
_fat_math_add32 8514 34068
|
|
_fat_math_sector_add_16 8500 34048
|
|
_fat_print_directory_dir 8431 33841
|
|
_fat_print_directory_loop 83BD 33725
|
|
_fat_print_directory_loop_break 8494 33940
|
|
_fat_print_directory_loop_break_dirty 8495 33941
|
|
_fat_print_directory_loop_file 83D9 33753
|
|
_fat_print_directory_loop_next 8463 33891
|
|
_fat_print_directory_loop_next_sector 846E 33902
|
|
_format_filename_fat16_clean 8577 34167
|
|
_format_filename_fat16_loop 857E 34174
|
|
_format_filename_fat16_loop_copy 8591 34193
|
|
_format_filename_fat16_loop_skip_8 8588 34184
|
|
_ideif_drv_sel_fail 8288 33416
|
|
_ideif_drv_sel_fstr0 82AD 33453
|
|
_ideif_drv_sel_pstr 82A4 33444
|
|
_ideif_drv_sel_sstr0 82BB 33467
|
|
_ideif_drv_sel_syn 82C8 33480
|
|
_ideif_init_drive_found=13E9 5097
|
|
_ideif_init_drive_loop=13D1 5073
|
|
_ideif_init_drive_nodrv=13E4 5092
|
|
_ideif_init_drive_prt_fnd=1454 5204
|
|
_ideif_init_drive_prt_l1=1442 5186
|
|
_ideif_init_drive_prt_ln=144C 5196
|
|
_ideif_prnt_devtable_hdr=1510 5392
|
|
_ideif_prnt_devtable_l1=12E1 4833
|
|
_ideif_prnt_devtable_l1_e2=13A7 5031
|
|
_ideif_prnt_devtable_l1_es=1326 4902
|
|
_ideif_prnt_devtable_l1_ms=13A4 5028
|
|
_ideif_prnt_devtable_l1_nxt=12EE 4846
|
|
_ideif_prnt_devtable_l1_s00=1314 4884
|
|
_ideif_prnt_devtable_l1_s01=1319 4889
|
|
_ideif_prnt_devtable_l1_s02=131E 4894
|
|
_ideif_prnt_devtable_l1_sFF=1323 4899
|
|
_ideif_prnt_devtable_l1_sel=12EC 4844
|
|
_ideif_prnt_devtable_master=1574 5492
|
|
_ideif_prnt_devtable_s00=1548 5448
|
|
_ideif_prnt_devtable_s01=1553 5459
|
|
_ideif_prnt_devtable_s02=155E 5470
|
|
_ideif_prnt_devtable_sFF=1569 5481
|
|
_ideif_prnt_devtable_slave=157C 5500
|
|
_read_bcd_invalid= 147 327
|
|
_shift4 =1C9C 7324
|
|
beep = D17 3351
|
|
beep_loop = D19 3353
|
|
beep_pause = D2F 3375
|
|
compare_filename 855D 34141
|
|
dasm_00 = 91C 2332
|
|
dasm_01 = C08 3080
|
|
dasm_02 = 9A2 2466
|
|
dasm_03 = BDA 3034
|
|
dasm_08 = A1F 2591
|
|
dasm_09 = BAD 2989
|
|
dasm_0A = 984 2436
|
|
dasm_0B = BF1 3057
|
|
dasm_10 = 964 2404
|
|
dasm_12 = 9AD 2477
|
|
dasm_18 = 927 2343
|
|
dasm_1A = 98E 2446
|
|
dasm_20 = 941 2369
|
|
dasm_22 = C4E 3150
|
|
dasm_27 = 9E7 2535
|
|
dasm_28 = 93A 2362
|
|
dasm_2A = C1F 3103
|
|
dasm_2F = 9EB 2539
|
|
dasm_30 = 932 2354
|
|
dasm_32 = 9B8 2488
|
|
dasm_37 = 9F7 2551
|
|
dasm_38 = 92B 2347
|
|
dasm_3A = 998 2456
|
|
dasm_3F = 9F3 2547
|
|
dasm_76 = 9FB 2555
|
|
dasm_80C6 = A78 2680
|
|
dasm_BE = A15 2581
|
|
dasm_C3 = 920 2336
|
|
dasm_C88E = A9E 2718
|
|
dasm_C9 = 970 2416
|
|
dasm_CD = 96A 2410
|
|
dasm_D9 = A2C 2604
|
|
dasm_DD = 952 2386
|
|
dasm_DD_01 = C0F 3087
|
|
dasm_DD_09 = BC8 3016
|
|
dasm_DD_22 = C64 3172
|
|
dasm_DD_23 = BDF 3039
|
|
dasm_DD_2A = C36 3126
|
|
dasm_DD_2B = BF6 3062
|
|
dasm_DD_34 = B78 2936
|
|
dasm_DD_35 = B95 2965
|
|
dasm_DD_86 = A80 2688
|
|
dasm_DD_8E = AA6 2726
|
|
dasm_DD_96 = AC9 2761
|
|
dasm_DD_9E = AE9 2793
|
|
dasm_DD_A6 = B0A 2826
|
|
dasm_DD_AE = B41 2881
|
|
dasm_DD_B6 = B26 2854
|
|
dasm_DD_BE = B5D 2909
|
|
dasm_DD_E1 = CB6 3254
|
|
dasm_DD_E3 = A3C 2620
|
|
dasm_DD_E5 = CA0 3232
|
|
dasm_DD_F9 = C86 3206
|
|
dasm_E1 = CB0 3248
|
|
dasm_E3 = A30 2608
|
|
dasm_E5 = C9A 3226
|
|
dasm_E9 = 949 2377
|
|
dasm_ED_42 = BBF 3007
|
|
dasm_ED_43 = C5A 3162
|
|
dasm_ED_44 = 9EF 2543
|
|
dasm_ED_45 = 97A 2426
|
|
dasm_ED_46 = A06 2566
|
|
dasm_ED_4A = BB6 2998
|
|
dasm_ED_4B = C2B 3115
|
|
dasm_ED_4D = 975 2421
|
|
dasm_ED_56 = A0B 2571
|
|
dasm_ED_5E = A10 2576
|
|
dasm_ED_A0 = A54 2644
|
|
dasm_ED_A1 = A66 2662
|
|
dasm_ED_A8 = A5D 2653
|
|
dasm_ED_A9 = A6F 2671
|
|
dasm_ED_B0 = A58 2648
|
|
dasm_ED_B1 = A6A 2666
|
|
dasm_ED_B8 = A61 2657
|
|
dasm_ED_B9 = A73 2675
|
|
dasm_F3 = A00 2560
|
|
dasm_F9 = C7C 3196
|
|
dasm_FB = A03 2563
|
|
dasm_FD = 95B 2395
|
|
dasm_FD_01 = C17 3095
|
|
dasm_FD_09 = BD1 3025
|
|
dasm_FD_22 = C70 3184
|
|
dasm_FD_23 = BE8 3048
|
|
dasm_FD_2A = C42 3138
|
|
dasm_FD_2B = BFF 3071
|
|
dasm_FD_34 = B84 2948
|
|
dasm_FD_35 = BA1 2977
|
|
dasm_FD_86 = A8F 2703
|
|
dasm_FD_8E = AB5 2741
|
|
dasm_FD_96 = AD5 2773
|
|
dasm_FD_9E = AF7 2807
|
|
dasm_FD_A6 = B16 2838
|
|
dasm_FD_AE = B4D 2893
|
|
dasm_FD_B6 = B31 2865
|
|
dasm_FD_BE = B68 2920
|
|
dasm_FD_E1 = CBE 3262
|
|
dasm_FD_E3 = A48 2632
|
|
dasm_FD_E5 = CA8 3240
|
|
dasm_FD_F9 = C90 3216
|
|
dasm_FF = 97F 2431
|
|
dasm_UU = CC6 3270
|
|
dasm_UW = CCA 3274
|
|
dasm__AND = B05 2821
|
|
dasm__CP = B59 2905
|
|
dasm__DEC = B90 2960
|
|
dasm__ED_47 = 9D7 2519
|
|
dasm__ED_4F = 9DF 2527
|
|
dasm__ED_57 = 9C7 2503
|
|
dasm__ED_5F = 9CF 2511
|
|
dasm__INC = B73 2931
|
|
dasm__LD = 9C3 2499
|
|
dasm__OR = B22 2850
|
|
dasm__SBC = AE1 2785
|
|
dasm__SUB = AC4 2756
|
|
dasm__XOR = B3C 2876
|
|
dasm_opcode_table= 4C4 1220
|
|
dasm_print16hex_addr= 2F1 753
|
|
dasm_print8hex = 309 777
|
|
dasm_printFlags_table= CCF 3279
|
|
dasm_printRegister8_table= CDF 3295
|
|
dasm_printRegister8_table_HL= CFF 3327
|
|
dasm_printRegisterIX_table= CE7 3303
|
|
dasm_printRegisterIY_table= CEF 3311
|
|
dasm_printRegisterSP_table= CF7 3319
|
|
disassemble = 1B5 437
|
|
disassemble_continue= 29B 667
|
|
disassemble_err= 28B 651
|
|
disassemble_next= 1B9 441
|
|
disassemble_print_opcode_params_end= 288 648
|
|
disassemble_print_opcode_params_loop= 234 564
|
|
disassemble_print_opcode_raw= 1F6 502
|
|
disassemble_print_opcode_raw_fill= 20A 522
|
|
disassemble_table_first_match= 2CD 717
|
|
disassemble_table_found= 2E7 743
|
|
disassemble_table_notfound= 2EB 747
|
|
disassemble_table_seek= 2A9 681
|
|
disassemble_table_seek_loop= 2AD 685
|
|
dump_pretty =16C9 5833
|
|
dump_pretty_ascii=16F3 5875
|
|
dump_pretty_ascii_cont=1711 5905
|
|
dump_pretty_ascii_loop=16FB 5883
|
|
dump_pretty_ascii_none=170C 5900
|
|
dump_pretty_col=16E6 5862
|
|
dump_pretty_end=1723 5923
|
|
dump_pretty_nextrow=1717 5911
|
|
dump_pretty_row=16D1 5841
|
|
endPrint 861A 34330
|
|
fat_copy_lba_pointer 8554 34132
|
|
fat_get_root_table 830B 33547
|
|
fat_getfatsec 85BB 34235
|
|
fat_lfs 8496 33942
|
|
fat_print_dbg 803A 32826
|
|
fat_print_directory 8385 33669
|
|
fat_reset_pointer 8545 34117
|
|
format_filename_fat16 8573 34163
|
|
ide_printerror = E04 3588
|
|
ide_readsector_256= D83 3459
|
|
ide_readsector_256_done= DB2 3506
|
|
ide_readsector_256_waitloop= D85 3461
|
|
ide_readsector_512_inv= DB3 3507
|
|
ide_readsector_512_inv_waitloop= DB8 3512
|
|
ide_readsector_timeout= DEE 3566
|
|
ide_regread_8 = D65 3429
|
|
ide_regwrite_8 = D49 3401
|
|
ide_reset = D3C 3388
|
|
ide_writesector_256= E03 3587
|
|
ideif_drv_sel 825A 33370
|
|
ideif_get_drv_pointer=1497 5271
|
|
ideif_init_all =14AB 5291
|
|
ideif_init_devtable=12B5 4789
|
|
ideif_init_drive=13C8 5064
|
|
ideif_prnt_devtable=12D3 4819
|
|
iic_init =15DD 5597
|
|
iic_read_ack =161C 5660
|
|
iic_receive_buffer=15AE 5550
|
|
iic_receive_buffer_done=15D1 5585
|
|
iic_receive_buffer_err=15D7 5591
|
|
iic_receive_buffer_loop=15BF 5567
|
|
iic_receive_byte=16A2 5794
|
|
iic_receive_byte_loop=16AF 5807
|
|
iic_send_ack =1642 5698
|
|
iic_send_buffer=1584 5508
|
|
iic_send_buffer_done=15A2 5538
|
|
iic_send_buffer_err=15A8 5544
|
|
iic_send_buffer_loop=1594 5524
|
|
iic_send_byte =167C 5756
|
|
iic_send_byte_loop=1688 5768
|
|
iic_send_ebit =15FB 5627
|
|
iic_send_nack =165F 5727
|
|
iic_send_sbit =15E6 5606
|
|
mon_var_template=44 68
|
|
mon_var_template_end= 370 880
|
|
nxtILC 860F 34319
|
|
param_01 = 317 791
|
|
param_02 = 33E 830
|
|
param_03 = 35B 859
|
|
param_03_done = 393 915
|
|
param_03_neg = 37C 892
|
|
param_04 = 397 919
|
|
param_04_i = 3A7 935
|
|
param_05 = 3AD 941
|
|
param_06 = 3BA 954
|
|
param_07 = 3D4 980
|
|
param_08 = 3E1 993
|
|
param_09 = 3F6 1014
|
|
param_09_0A = 3FC 1020
|
|
param_0A = 3ED 1005
|
|
param_10 = 40B 1035
|
|
param_11 = 41B 1051
|
|
param_11_12 = 42A 1066
|
|
param_11_12_all= 44A 1098
|
|
param_11_12_def= 43D 1085
|
|
param_11_12_ix = 442 1090
|
|
param_11_12_iy = 447 1095
|
|
param_12 = 423 1059
|
|
param_13 = 45B 1115
|
|
param_80 = 47A 1146
|
|
param_80_seek = 481 1153
|
|
param_81 = 471 1137
|
|
param_comma = 4B5 1205
|
|
param_printRegister= 490 1168
|
|
param_printRegisterA= 4AE 1198
|
|
param_printRegisterHL= 4A6 1190
|
|
print_16_hex 824D 33357
|
|
print_32_hex 8234 33332
|
|
print_a_hex = 107 263
|
|
print_bcd = 119 281
|
|
print_char =D7 215
|
|
print_clear =EA 234
|
|
print_newLine =F1 241
|
|
print_str =DF 223
|
|
print_str_end =E9 233
|
|
print_str_fixed=1763 5987
|
|
print_wait_out =FC 252
|
|
read_bcd = 131 305
|
|
read_char = 11F 287
|
|
read_lba_sector=14BE 5310
|
|
sel_dsk 8000 32768
|
|
str_dev_done =1508 5384
|
|
str_dev_waitready=14F0 5360
|
|
str_error_start= E37 3639
|
|
str_error_start1= E54 3668
|
|
str_error_start2= E5D 3677
|
|
str_error_time = E66 3686
|
|
str_file_found 85AA 34218
|
|
str_file_notfound 8598 34200
|
|
str_post_apu =1DFC 7676
|
|
str_post_ide_30=1DAB 7595
|
|
str_post_ide_40=1DC6 7622
|
|
str_post_nd =1E32 7730
|
|
str_post_ok =1E6A 7786
|
|
str_post_pio =1DE1 7649
|
|
str_post_rtc =1E17 7703
|
|
str_post_rtc_iv=1E40 7744
|
|
var_apu_present=400A 16394
|
|
var_buffer =402B 16427
|
|
var_buffer_len =4000 16384
|
|
var_bytes_count=411A 16666
|
|
var_curserchar =4006 16390
|
|
var_curserlastaddr=4007 16391
|
|
var_curseron =4005 16389
|
|
var_curserstate=4004 16388
|
|
var_curserx =4002 16386
|
|
var_cursery =4003 16387
|
|
var_idebuffer =402C 16428
|
|
var_last_char =4001 16385
|
|
var_opcode =4114 16660
|
|
var_opcode_length=4116 16662
|
|
var_opcode_pcount=4119 16665
|
|
var_opcode_start=4110 16656
|
|
var_opcode_string=4117 16663
|
|
var_opcode_table=4112 16658
|
|
var_opcode_x =4115 16661
|
|
var_pio_present=4009 16393
|
|
var_ps2mem =401B 16411
|
|
var_scratch =400B 16395
|