Eliminated AUXBLK from *CAT/*EX/*INFO code

This commit is contained in:
Bobbi Webber-Manners 2022-12-22 18:26:50 -05:00
parent 79278f124d
commit bcc74e1582
5 changed files with 23 additions and 27 deletions

Binary file not shown.

View File

@ -476,16 +476,18 @@ STARCATRET >>> ENTAUX
RTS RTS
* Print one block of a catalog. Called by CATALOG * Print one block of a catalog. Called by CATALOG
* Block is in AUXBLK * Block is in BLKBUF in main memory
PRONEBLK >>> ENTAUX PRONEBLK >>> ENTAUX
LDA #<AUXBLK+4 ; FSPTR1=>first entry LDA #<BLKBUF+4 ; FSPTR1=>first entry
STA FSPTR1+0 STA FSPTR1+0
LDA #>AUXBLK+4 LDA #>BLKBUF+4
STA FSPTR1+1 STA FSPTR1+1
LDA #13 ; Max 13 entries per block LDA #13 ; Max 13 entries per block
STA FSNUM STA FSNUM
:CATLP LDY #$00 :CATLP LDY #$00
>>> RDMAIN
LDA (FSPTR1),Y ; Get storage type LDA (FSPTR1),Y ; Get storage type
>>> RDAUX
CMP #$E0 CMP #$E0
BCC :NOTKEY ; Not a key block BCC :NOTKEY ; Not a key block
@ -509,16 +511,20 @@ PRONEBLK >>> ENTAUX
DB $00 DB $00
* Print a single directory entry * Print a single directory entry
* On entry: A = dirent index in AUXBLK * On entry: FSPTR1 points to dirent in BLKBUF (in main memory)
* CC=entry, CS=header * CC=entry, CS=header
PRONEENT LDY #$00 ; Characters printed PRONEENT LDY #$00 ; Characters printed
>>> RDMAIN
LDA (FSPTR1),Y LDA (FSPTR1),Y
>>> RDAUX
AND #$0F ; Len of filename AND #$0F ; Len of filename
BEQ NULLENT ; Inactive entry BEQ NULLENT ; Inactive entry
PHP PHP
TAX TAX
:L2 INY :L2 INY
>>> RDMAIN
LDA (FSPTR1),Y LDA (FSPTR1),Y
>>> RDAUX
JSR OSWRCH ; Print filename JSR OSWRCH ; Print filename
DEX DEX
BNE :L2 BNE :L2

View File

@ -47,5 +47,5 @@ RESETHW SEC
RTS ; AUDIOCARD=1 RTS ; AUDIOCARD=1
:NOTGS :NOTGS
JSR MOCKINIT ; Initialize Mockingboard (sl4) JSR MOCKINIT ; Initialize Mockingboard (sl4)
RTS ; AUDIOCARD=0 RTSINSTR RTS ; AUDIOCARD=0

View File

@ -6,6 +6,7 @@
FKEYLENS DS 16 ; Length of f-key definitions 0..15 FKEYLENS DS 16 ; Length of f-key definitions 0..15
FKEYBUF DS 256 ; 256 bytes for f-key definitions FKEYBUF DS 256 ; 256 bytes for f-key definitions
* Copy a block of main memory * Copy a block of main memory
* A1L/A1H: Start address * A1L/A1H: Start address
* A2L/A2H: End address * A2L/A2H: End address
@ -27,19 +28,6 @@ MEMCPY LDA (A1L)
INC A4H INC A4H
:S3 BRA MEMCPY :S3 BRA MEMCPY
* Copy 512 bytes from BLKBUF to AUXBLK in aux LC
COPYAUXBLK >>> ALTZP ; Alt ZP & Alt LC on
LDY #$00
STA WRCARDRAM ; Write aux mem
:L1 LDA BLKBUF+$000,Y
STA AUXBLK+$000,Y
LDA BLKBUF+$100,Y
STA AUXBLK+$100,Y
INY
BNE :L1
STA WRMAINRAM ; Write main mem
:S2 >>> MAINZP ; Alt ZP off, ROM back in
RTSINSTR RTS
* Search FILEREFS for value in A * Search FILEREFS for value in A
* On return, buffer number is in X (or $FF if no bufs) * On return, buffer number is in X (or $FF if no bufs)
@ -52,6 +40,7 @@ FINDBUF LDX #$00
LDX #$FF ; $FF for not found LDX #$FF ; $FF for not found
:END RTS :END RTS
* Obtain I/O buffer address * Obtain I/O buffer address
* On entry: buffer number in X * On entry: buffer number in X
* On exit: buffer address in AY * On exit: buffer address in AY
@ -110,12 +99,14 @@ COPYFB PHA
PLA PLA
RTS RTS
* Get file info * Get file info
GETINFO JSR MLI GETINFO JSR MLI
DB GINFOCMD DB GINFOCMD
DW GINFOPL DW GINFOPL
RTS RTS
* Set file info * Set file info
SETINFO LDA #$07 ; SET_FILE_INFO 7 parms SETINFO LDA #$07 ; SET_FILE_INFO 7 parms
STA GINFOPL STA GINFOPL
@ -126,6 +117,7 @@ SETINFO LDA #$07 ; SET_FILE_INFO 7 parms
STA GINFOPL STA GINFOPL
RTS RTS
* Create disk file * Create disk file
* Uses filename in MOSFILE * Uses filename in MOSFILE
CRTFILE JSR MLI ; GET_TIME CRTFILE JSR MLI ; GET_TIME
@ -149,6 +141,7 @@ CRTFILE JSR MLI ; GET_TIME
DW CREATEPL DW CREATEPL
RTS RTS
* Open disk file * Open disk file
OPENMOSFILE LDA #<MOSFILE ; Open filename in MOSFILE OPENMOSFILE LDA #<MOSFILE ; Open filename in MOSFILE
STA OPENPL+1 STA OPENPL+1
@ -159,36 +152,35 @@ OPENFILE JSR MLI
DW OPENPL DW OPENPL
RTS RTS
* Close disk file * Close disk file
CLSFILE JSR MLI CLSFILE JSR MLI
DB CLSCMD DB CLSCMD
DW CLSPL DW CLSPL
RTS RTS
* Read 512 bytes into BLKBUF * Read 512 bytes into BLKBUF
RDFILE JSR MLI RDFILE JSR MLI
DB READCMD DB READCMD
DW READPL DW READPL
RTS RTS
* Write data in BLKBUF to disk * Write data in BLKBUF to disk
WRTFILE JSR MLI WRTFILE JSR MLI
DB WRITECMD DB WRITECMD
DW WRITEPL DW WRITEPL
RTS RTS
* Put ProDOS prefix in PREFIX * Put ProDOS prefix in PREFIX
GETPREF JSR MLI GETPREF JSR MLI
DB GPFXCMD DB GPFXCMD
DW GPFXPL DW GPFXPL
RTS RTS
* Map of file reference numbers to IOBUF1..4 * Map of file reference numbers to IOBUF1..4
FILEREFS DB $00,$00,$00,$00 FILEREFS DB $00,$00,$00,$00

View File

@ -1008,7 +1008,6 @@ CATREENTRY LDA OPENPL+5 ; File ref num
STA READPL+1 STA READPL+1
JSR RDFILE JSR RDFILE
BCS :CATERR BCS :CATERR
JSR COPYAUXBLK
>>> XF2AUX,PRONEBLK >>> XF2AUX,PRONEBLK
:CATERR CMP #$4C ; EOF :CATERR CMP #$4C ; EOF
@ -1049,8 +1048,7 @@ INFOFIRST LDA WILDIDX
BEQ :DONEBLK ; If so, print this blk first BEQ :DONEBLK ; If so, print this blk first
JSR WILDNEXT2 JSR WILDNEXT2
BCC INFOFIRST ; Find more entries BCC INFOFIRST ; Find more entries
:DONEBLK JSR COPYAUXBLK :DONEBLK >>> XF2AUX,PRONEBLK
>>> XF2AUX,PRONEBLK
CATARG DB $00 CATARG DB $00