FoenixMCP/src/fatfs/diskio.lst

797 lines
32 KiB
Plaintext
Raw Normal View History

2021-09-14 18:23:33 -04:00
Thu May 20 2021 21:34 Page 1
***************************************
** WDC 65C816 Macro Assembler **
** **
** Version 3.49.1- Feb 6 2006 **
***************************************
1 ;:ts=8
2 00000001 R0 equ 1
3 00000005 R1 equ 5
4 00000009 R2 equ 9
5 0000000D R3 equ 13
6 ;/*-----------------------------------------------
------------------------*/
7 ;/* Low level disk I/O module SKELETON for FatFs
(C)ChaN, 2019 */
8 ;/*-----------------------------------------------
------------------------*/
9 ;/* If a working storage control module is availab
le, it should be */
10 ;/* attached to the FatFs via a glue function rath
er than modifying it. */
11 ;/* This is an example of glue functions to attach
various exsisting */
12 ;/* storage control modules to the FatFs module wi
th a defined API. */
13 ;/*-----------------------------------------------
------------------------*/
14 ;
15 ;#include "ff.h" /* Obtains integ
er types */
16 ;#include "diskio.h" /* Declarations
of disk functions */
17 ;
18 ;/* Definitions of physical drive number for each
drive */
19 ;#define DEV_SDC 0 /* Example: Map
Ramdisk to physical drive 0 */
20 ;
21 ;
22 ;/*-----------------------------------------------
------------------------*/
23 ;/* Get Drive Status
*/
24 ;/*-----------------------------------------------
------------------------*/
25 ;
26 ;DSTATUS disk_status (
27 ; BYTE pdrv /* Physical drive nmuber
to identify the drive */
28 ;)
29 ;{
30 code
31 xdef ~~disk_status
32 func
33 ~~disk_status:
34 longa on
35 longi on
36 00:0000: 3B tsc
Thu May 20 2021 21:34 Page 2
37 00:0001: 38 sec
38 00:0002: E9 03 00 sbc #L2
39 00:0005: 1B tcs
40 00:0006: 0B phd
41 00:0007: 5B tcd
42 00000004 pdrv_0 set 4
43 ; DSTATUS stat;
44 ; int result;
45 ;
46 ; k_prints("disk_status\r");
47 00000000 stat_1 set 0
48 00000001 result_1 set 1
49 00:0008: F4 xx xx pea #^L1
50 00:000B: F4 xx xx pea #<L1
51 00:000E: 22 xx xx xx jsl ~~k_prints
52 ;
53 ; switch (pdrv) {
54 00:0012: A5 07 lda <L2+pdrv_0
55 00:0014: 29 FF 00 and #$ff
56 00:0017: 82 15 00 brl L10001
57 ; case DEV_SDC:
58 L10003:
59 ;
60 ; // translate the reslut code here
61 ;
62 ; return 0;
63 00:001A: A9 00 00 lda #$0
64 L4:
65 00:001D: A8 tay
66 00:001E: A5 05 lda <L2+2
67 00:0020: 85 07 sta <L2+2+2
68 00:0022: A5 04 lda <L2+1
69 00:0024: 85 06 sta <L2+1+2
70 00:0026: 2B pld
71 00:0027: 3B tsc
72 00:0028: 18 clc
73 00:0029: 69 05 00 adc #L2+2
74 00:002C: 1B tcs
75 00:002D: 98 tya
76 00:002E: 6B rtl
77 ;
78 ; }
79 L10001:
80 xref ~~~swt
81 00:002F: 22 xx xx xx jsl ~~~swt
82 00:0033: 01 00 dw 1
83 00:0035: 00 00 dw 0
84 00:0037: xx xx dw L10003-1
85 00:0039: xx xx dw L10002-1
86 L10002:
87 ; return STA_NOINIT;
88 00:003B: A9 01 00 lda #$1
89 00:003E: 82 DC FF brl L4
90 ;}
91 00000003 L2 equ 3
92 00000001 L3 equ 1
93 ends
94 efunc
Thu May 20 2021 21:34 Page 3
95 data
96 L1:
97 00:0000: 64 69 73 6B db $64,$69,$73,$6B,$5F,$73,$74,$61,$74,$75,
$73,$0D,$00
00:0004: 5F 73 74 61
00:0008: 74 75 73 0D
00:000C: 00
98 00:000D: ends
99 ;
100 ;
101 ;
102 ;/*-----------------------------------------------
------------------------*/
103 ;/* Inidialize a Drive
*/
104 ;/*-----------------------------------------------
------------------------*/
105 ;
106 ;DSTATUS disk_initialize (
107 ; BYTE pdrv /* Physi
cal drive nmuber to identify the drive */
108 ;)
109 ;{
110 code
111 xdef ~~disk_initialize
112 func
113 ~~disk_initialize:
114 longa on
115 longi on
116 00:0041: 3B tsc
117 00:0042: 38 sec
118 00:0043: E9 03 00 sbc #L6
119 00:0046: 1B tcs
120 00:0047: 0B phd
121 00:0048: 5B tcd
122 00000004 pdrv_0 set 4
123 ; DSTATUS stat;
124 ; int result;
125 ;
126 ; k_prints("disk_initialize\r");
127 00000000 stat_1 set 0
128 00000001 result_1 set 1
129 00:0049: F4 xx xx pea #^L5
130 00:004C: F4 xx xx pea #<L5
131 00:004F: 22 xx xx xx jsl ~~k_prints
132 ;
133 ; switch (pdrv) {
134 00:0053: A5 07 lda <L6+pdrv_0
135 00:0055: 29 FF 00 and #$ff
136 00:0058: 82 28 00 brl L10004
137 ; case DEV_SDC :
138 L10006:
139 ; if (bios_mount(2)) {
140 00:005B: F4 02 00 pea #<$2
141 00:005E: 22 xx xx xx jsl ~~bios_mount
142 00:0062: AA tax
143 00:0063: D0 03 bne L8
144 00:0065: 82 15 00 brl L10007
Thu May 20 2021 21:34 Page 4
145 L8:
146 ; return STA_NOINIT;
147 00:0068: A9 01 00 lda #$1
148 L9:
149 00:006B: A8 tay
150 00:006C: A5 05 lda <L6+2
151 00:006E: 85 07 sta <L6+2+2
152 00:0070: A5 04 lda <L6+1
153 00:0072: 85 06 sta <L6+1+2
154 00:0074: 2B pld
155 00:0075: 3B tsc
156 00:0076: 18 clc
157 00:0077: 69 05 00 adc #L6+2
158 00:007A: 1B tcs
159 00:007B: 98 tya
160 00:007C: 6B rtl
161 ; } else {
162 L10007:
163 ; return 0;
164 00:007D: A9 00 00 lda #$0
165 00:0080: 82 E8 FF brl L9
166 ; }
167 ; }
168 L10004:
169 xref ~~~swt
170 00:0083: 22 xx xx xx jsl ~~~swt
171 00:0087: 01 00 dw 1
172 00:0089: 00 00 dw 0
173 00:008B: xx xx dw L10006-1
174 00:008D: xx xx dw L10005-1
175 L10005:
176 ; return STA_NOINIT;
177 00:008F: A9 01 00 lda #$1
178 00:0092: 82 D6 FF brl L9
179 ;}
180 00000003 L6 equ 3
181 00000001 L7 equ 1
182 ends
183 efunc
184 data
185 L5:
186 00:000D: 64 69 73 6B db $64,$69,$73,$6B,$5F,$69,$6E,$69,$74,$69,
$61,$6C,$69,$7A,$65
00:0011: 5F 69 6E 69
00:0015: 74 69 61 6C
00:0019: 69 7A 65
187 00:001C: 0D 00 db $0D,$00
188 00:001E: ends
189 ;
190 ;
191 ;
192 ;/*-----------------------------------------------
------------------------*/
193 ;/* Read Sector(s)
*/
194 ;/*-----------------------------------------------
------------------------*/
195 ;
Thu May 20 2021 21:34 Page 5
196 ;DRESULT disk_read (
197 ; BYTE pdrv, /* Physical drive nmuber
to identify the drive */
198 ; BYTE *buff, /* Data buffer to store
read data */
199 ; LBA_t sector, /* Start sector in LBA */
200 ; UINT count /* Number of sectors to
read */
201 ;)
202 ;{
203 code
204 xdef ~~disk_read
205 func
206 ~~disk_read:
207 longa on
208 longi on
209 00:0095: 3B tsc
210 00:0096: 38 sec
211 00:0097: E9 04 00 sbc #L11
212 00:009A: 1B tcs
213 00:009B: 0B phd
214 00:009C: 5B tcd
215 00000004 pdrv_0 set 4
216 00000006 buff_0 set 6
217 0000000A sector_0 set 10
218 0000000E count_0 set 14
219 ; DRESULT res;
220 ; int result;
221 ;
222 ; k_prints("disk_read\r");
223 00000000 res_1 set 0
224 00000002 result_1 set 2
225 00:009D: F4 xx xx pea #^L10
226 00:00A0: F4 xx xx pea #<L10
227 00:00A3: 22 xx xx xx jsl ~~k_prints
228 ;
229 ; switch (pdrv) {
230 00:00A7: A5 08 lda <L11+pdrv_0
231 00:00A9: 29 FF 00 and #$ff
232 00:00AC: 82 21 00 brl L10008
233 ; case DEV_SDC:
234 L10010:
235 ; // translate the arguments here
236 ;
237 ; return bios_getblock(2, sector, buff);
238 00:00AF: D4 0C pei <L11+buff_0+2
239 00:00B1: D4 0A pei <L11+buff_0
240 00:00B3: D4 10 pei <L11+sector_0+2
241 00:00B5: D4 0E pei <L11+sector_0
242 00:00B7: F4 02 00 pea #<$2
243 00:00BA: 22 xx xx xx jsl ~~bios_getblock
244 L13:
245 00:00BE: A8 tay
246 00:00BF: A5 06 lda <L11+2
247 00:00C1: 85 12 sta <L11+2+12
248 00:00C3: A5 05 lda <L11+1
249 00:00C5: 85 11 sta <L11+1+12
250 00:00C7: 2B pld
Thu May 20 2021 21:34 Page 6
251 00:00C8: 3B tsc
252 00:00C9: 18 clc
253 00:00CA: 69 10 00 adc #L11+12
254 00:00CD: 1B tcs
255 00:00CE: 98 tya
256 00:00CF: 6B rtl
257 ; }
258 L10008:
259 xref ~~~swt
260 00:00D0: 22 xx xx xx jsl ~~~swt
261 00:00D4: 01 00 dw 1
262 00:00D6: 00 00 dw 0
263 00:00D8: xx xx dw L10010-1
264 00:00DA: xx xx dw L10009-1
265 L10009:
266 ;
267 ; return RES_PARERR;
268 00:00DC: A9 04 00 lda #$4
269 00:00DF: 82 DC FF brl L13
270 ;}
271 00000004 L11 equ 4
272 00000001 L12 equ 1
273 ends
274 efunc
275 data
276 L10:
277 00:001E: 64 69 73 6B db $64,$69,$73,$6B,$5F,$72,$65,$61,$64,$0D,
$00
00:0022: 5F 72 65 61
00:0026: 64 0D 00
278 00:0029: ends
279 ;
280 ;
281 ;
282 ;/*-----------------------------------------------
------------------------*/
283 ;/* Write Sector(s)
*/
284 ;/*-----------------------------------------------
------------------------*/
285 ;
286 ;#if FF_FS_READONLY == 0
287 ;
288 ;DRESULT disk_write (
289 ; BYTE pdrv, /* Physical driv
e nmuber to identify the drive */
290 ; const BYTE *buff, /* Data to be written */
291 ; LBA_t sector, /* Start sector in LBA *
/
292 ; UINT count /* Number of sec
tors to write */
293 ;)
294 ;{
295 code
296 xdef ~~disk_write
297 func
298 ~~disk_write:
299 longa on
Thu May 20 2021 21:34 Page 7
300 longi on
301 00:00E2: 3B tsc
302 00:00E3: 38 sec
303 00:00E4: E9 04 00 sbc #L15
304 00:00E7: 1B tcs
305 00:00E8: 0B phd
306 00:00E9: 5B tcd
307 00000004 pdrv_0 set 4
308 00000006 buff_0 set 6
309 0000000A sector_0 set 10
310 0000000E count_0 set 14
311 ; DRESULT res;
312 ; int result;
313 ;
314 ; k_prints("disk_write\r");
315 00000000 res_1 set 0
316 00000002 result_1 set 2
317 00:00EA: F4 xx xx pea #^L14
318 00:00ED: F4 xx xx pea #<L14
319 00:00F0: 22 xx xx xx jsl ~~k_prints
320 ;
321 ; switch (pdrv) {
322 00:00F4: A5 08 lda <L15+pdrv_0
323 00:00F6: 29 FF 00 and #$ff
324 00:00F9: 82 15 00 brl L10011
325 ; case DEV_SDC:
326 L10013:
327 ; // translate the arguments here
328 ;
329 ;
330 ; // translate the reslut code here
331 ;
332 ; return 0;
333 00:00FC: A9 00 00 lda #$0
334 L17:
335 00:00FF: A8 tay
336 00:0100: A5 06 lda <L15+2
337 00:0102: 85 12 sta <L15+2+12
338 00:0104: A5 05 lda <L15+1
339 00:0106: 85 11 sta <L15+1+12
340 00:0108: 2B pld
341 00:0109: 3B tsc
342 00:010A: 18 clc
343 00:010B: 69 10 00 adc #L15+12
344 00:010E: 1B tcs
345 00:010F: 98 tya
346 00:0110: 6B rtl
347 ; }
348 L10011:
349 xref ~~~swt
350 00:0111: 22 xx xx xx jsl ~~~swt
351 00:0115: 01 00 dw 1
352 00:0117: 00 00 dw 0
353 00:0119: xx xx dw L10013-1
354 00:011B: xx xx dw L10012-1
355 L10012:
356 ;
357 ; return RES_PARERR;
Thu May 20 2021 21:34 Page 8
358 00:011D: A9 04 00 lda #$4
359 00:0120: 82 DC FF brl L17
360 ;}
361 00000004 L15 equ 4
362 00000001 L16 equ 1
363 ends
364 efunc
365 data
366 L14:
367 00:0029: 64 69 73 6B db $64,$69,$73,$6B,$5F,$77,$72,$69,$74,$65,
$0D,$00
00:002D: 5F 77 72 69
00:0031: 74 65 0D 00
368 00:0035: ends
369 ;
370 ;#endif
371 ;
372 ;
373 ;/*-----------------------------------------------
------------------------*/
374 ;/* Miscellaneous Functions
*/
375 ;/*-----------------------------------------------
------------------------*/
376 ;
377 ;DRESULT disk_ioctl (
378 ; BYTE pdrv, /* Physical drive nmuber
(0..) */
379 ; BYTE cmd, /* Control code */
380 ; void *buff /* Buffer to send/receiv
e control data */
381 ;)
382 ;{
383 code
384 xdef ~~disk_ioctl
385 func
386 ~~disk_ioctl:
387 longa on
388 longi on
389 00:0123: 3B tsc
390 00:0124: 38 sec
391 00:0125: E9 04 00 sbc #L19
392 00:0128: 1B tcs
393 00:0129: 0B phd
394 00:012A: 5B tcd
395 00000004 pdrv_0 set 4
396 00000006 cmd_0 set 6
397 00000008 buff_0 set 8
398 ; DRESULT res;
399 ; int result;
400 ;
401 ; k_prints("disk_ioctl\r");
402 00000000 res_1 set 0
403 00000002 result_1 set 2
404 00:012B: F4 xx xx pea #^L18
405 00:012E: F4 xx xx pea #<L18
406 00:0131: 22 xx xx xx jsl ~~k_prints
407 ;
Thu May 20 2021 21:34 Page 9
408 ; switch (pdrv) {
409 00:0135: A5 08 lda <L19+pdrv_0
410 00:0137: 29 FF 00 and #$ff
411 00:013A: 82 15 00 brl L10014
412 ; case DEV_SDC:
413 L10016:
414 ;
415 ; // Process of the command for the RAM dr
ive
416 ;
417 ; return 0;
418 00:013D: A9 00 00 lda #$0
419 L21:
420 00:0140: A8 tay
421 00:0141: A5 06 lda <L19+2
422 00:0143: 85 0E sta <L19+2+8
423 00:0145: A5 05 lda <L19+1
424 00:0147: 85 0D sta <L19+1+8
425 00:0149: 2B pld
426 00:014A: 3B tsc
427 00:014B: 18 clc
428 00:014C: 69 0C 00 adc #L19+8
429 00:014F: 1B tcs
430 00:0150: 98 tya
431 00:0151: 6B rtl
432 ; }
433 L10014:
434 xref ~~~swt
435 00:0152: 22 xx xx xx jsl ~~~swt
436 00:0156: 01 00 dw 1
437 00:0158: 00 00 dw 0
438 00:015A: xx xx dw L10016-1
439 00:015C: xx xx dw L10015-1
440 L10015:
441 ;
442 ; return RES_PARERR;
443 00:015E: A9 04 00 lda #$4
444 00:0161: 82 DC FF brl L21
445 ;}
446 00000004 L19 equ 4
447 00000001 L20 equ 1
448 ends
449 efunc
450 data
451 L18:
452 00:0035: 64 69 73 6B db $64,$69,$73,$6B,$5F,$69,$6F,$63,$74,$6C,
$0D,$00
00:0039: 5F 69 6F 63
00:003D: 74 6C 0D 00
453 00:0041: ends
454 ;
455 ;#define BIOS_STATUS ((volatile char *)0x000320)
456 ;#define BIOS_DEV ((volatile char *)0x000321)
457 ;#define BIOS_LBA ((volatile long *)0x000322)
458 ;#define BIOS_BUFFER ((volatile long *)0x000326)
459 ;
460 ;/**
461 ; * Call the C256 F_MOUNT kernel routine
Thu May 20 2021 21:34 Page 10
462 ; */
463 ;int bios_mount(char dev) {
464 code
465 xdef ~~bios_mount
466 func
467 ~~bios_mount:
468 longa on
469 longi on
470 00:0164: 3B tsc
471 00:0165: 38 sec
472 00:0166: E9 00 00 sbc #L23
473 00:0169: 1B tcs
474 00:016A: 0B phd
475 00:016B: 5B tcd
476 00000004 dev_0 set 4
477 ; asm {
478 ; LDA %%dev
479 ; jsl $001128
480 ; }
481 asmstart
482 00:016C: A5 04 LDA <L23+dev_0
483 00:016E: 22 28 11 00 jsl $001128
484 asmend
485 ;
486 ; if ((*BIOS_STATUS & 0x80) != 0) {
487 00:0172: E2 20 sep #$20
488 longa off
489 00:0174: AF 20 03 00 lda >800 ; volatile
490 00:0178: 29 80 and #<$80
491 00:017A: C2 20 rep #$20
492 longa on
493 00:017C: D0 03 bne L25
494 00:017E: 82 15 00 brl L10017
495 L25:
496 ; return RES_ERROR;
497 00:0181: A9 01 00 lda #$1
498 L26:
499 00:0184: A8 tay
500 00:0185: A5 02 lda <L23+2
501 00:0187: 85 04 sta <L23+2+2
502 00:0189: A5 01 lda <L23+1
503 00:018B: 85 03 sta <L23+1+2
504 00:018D: 2B pld
505 00:018E: 3B tsc
506 00:018F: 18 clc
507 00:0190: 69 02 00 adc #L23+2
508 00:0193: 1B tcs
509 00:0194: 98 tya
510 00:0195: 6B rtl
511 ; } else {
512 L10017:
513 ; return RES_OK;
514 00:0196: A9 00 00 lda #$0
515 00:0199: 82 E8 FF brl L26
516 ; }
517 ;}
518 00000000 L23 equ 0
519 00000001 L24 equ 1
Thu May 20 2021 21:34 Page 11
520 ends
521 efunc
522 ;
523 ;/**
524 ; * Call the C256 GETBLOCK kernel routine
525 ; */
526 ;int bios_getblock(char dev, long lba, char * buff
er) {
527 code
528 xdef ~~bios_getblock
529 func
530 ~~bios_getblock:
531 longa on
532 longi on
533 00:019C: 3B tsc
534 00:019D: 38 sec
535 00:019E: E9 04 00 sbc #L27
536 00:01A1: 1B tcs
537 00:01A2: 0B phd
538 00:01A3: 5B tcd
539 00000004 dev_0 set 4
540 00000006 lba_0 set 6
541 0000000A buffer_0 set 10
542 ; *BIOS_DEV = dev;
543 00:01A4: E2 20 sep #$20
544 longa off
545 00:01A6: A5 08 lda <L27+dev_0
546 00:01A8: 8F 21 03 00 sta >801 ; volatile
547 00:01AC: C2 20 rep #$20
548 longa on
549 ; *BIOS_LBA = lba;
550 00:01AE: A5 0A lda <L27+lba_0
551 00:01B0: 8F 22 03 00 sta >802 ; volatile
552 00:01B4: A5 0C lda <L27+lba_0+2
553 00:01B6: 8F 24 03 00 sta >802+2 ; volatile
554 ; *BIOS_BUFFER = (long)buffer;
555 00:01BA: A5 0E lda <L27+buffer_0
556 00:01BC: 8F 26 03 00 sta >806 ; volatile
557 00:01C0: A5 10 lda <L27+buffer_0+2
558 00:01C2: 8F 28 03 00 sta >806+2 ; volatile
559 ; k_prints("getblock: ");
560 00:01C6: F4 xx xx pea #^L22
561 00:01C9: F4 xx xx pea #<L22
562 00:01CC: 22 xx xx xx jsl ~~k_prints
563 ; k_printh(dev);
564 00:01D0: A5 08 lda <L27+dev_0
565 00:01D2: 29 FF 00 and #$ff
566 00:01D5: 48 pha
567 00:01D6: 22 xx xx xx jsl ~~k_printh
568 ; k_prints(" ");
569 00:01DA: F4 xx xx pea #^L22+11
570 00:01DD: F4 xx xx pea #<L22+11
571 00:01E0: 22 xx xx xx jsl ~~k_prints
572 ; k_printh(lba >> 16);
573 00:01E4: D4 0C pei <L27+lba_0+2
574 00:01E6: D4 0A pei <L27+lba_0
575 00:01E8: A9 10 00 lda #$10
576 xref ~~~lasr
Thu May 20 2021 21:34 Page 12
577 00:01EB: 22 xx xx xx jsl ~~~lasr
578 00:01EF: 85 01 sta <R0
579 00:01F1: 86 03 stx <R0+2
580 00:01F3: D4 03 pei <R0+2
581 00:01F5: D4 01 pei <R0
582 00:01F7: 22 xx xx xx jsl ~~k_printh
583 ; k_printh(lba & 0xffff);
584 00:01FB: A5 0A lda <L27+lba_0
585 00:01FD: 85 01 sta <R0
586 00:01FF: 64 03 stz <R0+2
587 00:0201: D4 03 pei <R0+2
588 00:0203: D4 01 pei <R0
589 00:0205: 22 xx xx xx jsl ~~k_printh
590 ; asm {
591 ; jsl $001044
592 ; };
593 asmstart
594 00:0209: 22 44 10 00 jsl $001044
595 asmend
596 ;
597 ; if ((*BIOS_STATUS & 0x80) != 0) {
598 00:020D: E2 20 sep #$20
599 longa off
600 00:020F: AF 20 03 00 lda >800 ; volatile
601 00:0213: 29 80 and #<$80
602 00:0215: C2 20 rep #$20
603 longa on
604 00:0217: D0 03 bne L29
605 00:0219: 82 36 00 brl L10018
606 L29:
607 ; k_prints(" Error: ");
608 00:021C: F4 xx xx pea #^L22+13
609 00:021F: F4 xx xx pea #<L22+13
610 00:0222: 22 xx xx xx jsl ~~k_prints
611 ; k_printh(*BIOS_STATUS);
612 00:0226: E2 20 sep #$20
613 longa off
614 00:0228: AF 20 03 00 lda >800 ; volatile
615 00:022C: C2 20 rep #$20
616 longa on
617 00:022E: 29 FF 00 and #$ff
618 00:0231: 48 pha
619 00:0232: 22 xx xx xx jsl ~~k_printh
620 ; k_putc('\r');
621 00:0236: F4 0D 00 pea #<$d
622 00:0239: 22 xx xx xx jsl ~~k_putc
623 ; return RES_ERROR;
624 00:023D: A9 01 00 lda #$1
625 L30:
626 00:0240: A8 tay
627 00:0241: A5 06 lda <L27+2
628 00:0243: 85 10 sta <L27+2+10
629 00:0245: A5 05 lda <L27+1
630 00:0247: 85 0F sta <L27+1+10
631 00:0249: 2B pld
632 00:024A: 3B tsc
633 00:024B: 18 clc
634 00:024C: 69 0E 00 adc #L27+10
Thu May 20 2021 21:34 Page 13
635 00:024F: 1B tcs
636 00:0250: 98 tya
637 00:0251: 6B rtl
638 ; } else {
639 L10018:
640 ; k_prints(" OK\r");
641 00:0252: F4 xx xx pea #^L22+22
642 00:0255: F4 xx xx pea #<L22+22
643 00:0258: 22 xx xx xx jsl ~~k_prints
644 ; return RES_OK;
645 00:025C: A9 00 00 lda #$0
646 00:025F: 82 DE FF brl L30
647 ; }
648 ;}
649 00000004 L27 equ 4
650 00000005 L28 equ 5
651 ends
652 efunc
653 data
654 L22:
655 00:0041: 67 65 74 62 db $67,$65,$74,$62,$6C,$6F,$63,$6B,$3A,$20,
$00,$20,$00,$20,$45
00:0045: 6C 6F 63 6B
00:0049: 3A 20 00 20
00:004D: 00 20 45
656 00:0050: 72 72 6F 72 db $72,$72,$6F,$72,$3A,$20,$00,$20,$4F,$4B,
$0D,$00
00:0054: 3A 20 00 20
00:0058: 4F 4B 0D 00
657 00:005C: ends
658 ;
659 ;/**
660 ; * Call the C256 PUTBLOCK kernel routine
661 ; */
662 ;// int bios_putblock(char dev, long lba, char * b
uffer) {
663 ;// *BIOS_DEV = dev;
664 ;// *BIOS_LBA = lba;
665 ;// *BIOS_BUFFER = (long)buffer;
666 ;// asm {
667 ;// jsl $001024
668 ;// };
669 ;
670 ;// if (*BIOS_STATUS != 0) {
671 ;// return RES_ERROR;
672 ;// } else {
673 ;// return RES_OK;
674 ;// }
675 ;// }
676 ;
677 xref ~~k_putc
678 xref ~~k_printh
679 xref ~~k_prints
680 end
Lines assembled: 680
Errors: 0
Thu May 20 2021 21:34 Page 14