nathanriggs 9b12b6fd9b HOUSEKEEPING
- getting ready for major changes for 0.6.0.
- be sure to download the 0.5.0 release to ensure proper functionality, as these rountines will not work together in the SRC or BIN folder during the transition
- Beginning to significantly alter documentation
2019-12-17 17:19:24 -05:00

48 lines
1.6 KiB
NASM

*``````````````````````````````*
* DISKRW (NATHAN RIGGS) *
* *
* GENERAL PURPOSE ROUTINE FOR *
* READING AND WRITING TO A *
* *
* INPUT: *
* *
* SLOT, DRIVE, VOLUME AND *
* SECTOR, AS WELL AS READ OR *
* WRITE FLAG, SHOULD BE SET *
* BEFORE CALLING SUBROUTINE *
* *
* RETURN = BYTE TO WRITE, IF *
* IN WRITE MODE *
* *
* OUTPUT: *
* *
* .A = ERROR CODE, IF ANY *
* RETURN = BYTE RETURNED, IF *
* IN READ MODE *
* RETLEN = 1 *
* *
* DESTROY: AXYNVBDIZCMS *
* ^^^^^ ^^^ *
* *
* CYCLES: 41+ *
* SIZE: 34 BYTES *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
DISKRW
*
:CLEAR
LDA #00 ; CLEAR EXPECTED
STA IOB_EVOL ; VOLUME BYTE
LDA #1 ; BUFFER IS ALWAYS
STA RETLEN ; A SINGLE BYTE
LDA #>RETURN ; PASS BUFFER TO RWTS, WHICH
LDY #<RETURN ; IS THE MOMLOC WHERE THE READ
JSR RWTS ; OR WRITE DATA IS PASSED; CALL RWTS
LDA #0 ; CLEAR .A TO INDICATE NO ERRORS
BCC :EXIT ; IF CARRY IS CLEAR, NO ERRORS
:ERR LDA IOB_ERR ; .A HOLDS ERROR CODE
:EXIT
LDX #00 ; CLEAR THE SCRATCH LOCATION
STX $48 ; USED BY RWTS
RTS