Cleaned up CRTFILE.

This commit is contained in:
Bobbi Webber-Manners 2021-09-06 23:43:42 -04:00
parent 043fa29c05
commit 54a656f33e
18 changed files with 55 additions and 51 deletions

Binary file not shown.

View File

@ -183,3 +183,5 @@ MAINZP MAC
* Automatically save the object file:
SAV APPLECORN

View File

@ -539,3 +539,5 @@ OSBM2 ASC ').'

View File

@ -443,3 +443,5 @@ KBDDONE RTS

View File

@ -899,3 +899,5 @@ ERROR2E DW $C800

View File

@ -156,3 +156,5 @@ HELLO ASC 'Applecorn MOS 2021-09-06 snapshot'

View File

@ -470,3 +470,5 @@ AUXBLK ASC '**ENDOFCODE**'

View File

@ -72,3 +72,5 @@ OSFILECB EQU $2EE ; OSFILE control block

View File

@ -572,3 +572,5 @@ ECHO3 PHP

View File

@ -501,3 +501,5 @@ BYTEA0 LDY #79 ; Read VDU variable $09,$0A

View File

@ -48,3 +48,5 @@ GEOFCMD EQU $D1

View File

@ -94,3 +94,5 @@ RESET TSX

View File

@ -123,3 +123,5 @@ CANTOPEN ASC "Unable to open ROM file"

View File

@ -98,3 +98,5 @@ QUITPL HEX 04 ; Number of parameters

View File

@ -129,3 +129,5 @@ ROM8 STR "USERROM2.ROM"

View File

@ -87,7 +87,24 @@ SETINFO LDA #$07 ; SET_FILE_INFO 7 parms
RTS
* Create disk file
CRTFILE JSR MLI
* Uses filename in MOSFILE
CRTFILE JSR MLI ; GET_TIME
DB GTIMECMD
LDA #<MOSFILE
STA CREATEPL+1
LDA #>MOSFILE
STA CREATEPL+2
LDA #$C3 ; Open permissions
STA CREATEPL+3
LDA $BF90 ; Current date
STA CREATEPL+8
LDA $BF91
STA CREATEPL+9
LDA $BF92 ; Current time
STA CREATEPL+10
LDA $BF93
STA CREATEPL+11
JSR MLI
DB CREATCMD
DW CREATEPL
RTS
@ -130,3 +147,5 @@ FILEREFS DB $00,$00,$00,$00

View File

@ -274,3 +274,5 @@ PREFIX DS 65 ; Buffer for ProDOS prefix

View File

@ -52,31 +52,13 @@ MAKEDIR >>> ENTMAIN
JSR COPYFB ; Copy back to aux mem
CMP #$02
BEQ :EXIT ; Dir already exists
* Make into a subroutine
LDA #$0D ; 'Directory'
STA CREATEPL+7 ; ->Storage type
LDA #$0F ; 'Directory'
STA CREATEPL+4 ; ->File type
* subroutine....
LDA #<MOSFILE
STA CREATEPL+1
LDA #>MOSFILE
STA CREATEPL+2
LDA #$C3 ; 'Default access'
STA CREATEPL+3 ; ->Access
STZ CREATEPL+5 ; Aux type LSB
STZ CREATEPL+6 ; Aux type MSB
* Don't we have to make a call to update BF90-BF93?
LDA $BF90 ; Current date
STA CREATEPL+8
LDA $BF91
STA CREATEPL+9
LDA $BF92 ; Current time
STA CREATEPL+10
LDA $BF93
STA CREATEPL+11
JSR CRTFILE
* ...
JSR CRTFILE ; Create MOSFILE
BCS :EXIT ; Failed, exit with ProDOS result
JSR UPDFB ; Update FILEBLK
JSR COPYFB ; Copy FILEBLK to aux mem
@ -118,33 +100,19 @@ OFILE >>> ENTMAIN
CMP #$80 ; Write mode
BNE :S0
JSR DESTROY
* Make into a subroutine
LDA #$01 ; Storage type - file
STA CREATEPL+7
LDA #$06 ; Filetype BIN
STA CREATEPL+4
LDA #<MOSFILE ; Attempt to create file
STA CREATEPL+1
LDA #<MOSFILE
STA OPENPL+1
LDA #>MOSFILE
STA CREATEPL+2
STA OPENPL+2
LDA #$C3 ; Access unlocked
STA CREATEPL+3
LDA #$00 ; Auxtype
STA CREATEPL+5
LDA #$00
STA CREATEPL+6
LDA $BF90 ; Current date
STA CREATEPL+8
LDA $BF91
STA CREATEPL+9
LDA $BF92 ; Current time
STA CREATEPL+10
LDA $BF93
STA CREATEPL+11
JSR CRTFILE
* ...
JSR CRTFILE ; Create MOSFILE
:S0 LDA #$00 ; Look for empty slot
JSR FINDBUF
STX BUFIDX
@ -435,34 +403,19 @@ SAVEFILE >>> ENTMAIN
DB DESTCMD
DW DESTPL
STZ :BLOCKS
* TO DO: Make this a subroutine
LDA #$01 ; Storage type - file
STA CREATEPL+7
LDA #$06 ; Filetype BIN
STA CREATEPL+4
* subroutine....
LDA #<MOSFILE
STA CREATEPL+1
STA OPENPL+1
LDA #>MOSFILE
STA CREATEPL+2
STA OPENPL+2
LDA #$C3 ; Access unlocked
STA CREATEPL+3
LDA FBLOAD ; Auxtype = load address
STA CREATEPL+5
LDA FBLOAD+1
STA CREATEPL+6
LDA $BF90 ; Current date
STA CREATEPL+8
LDA $BF91
STA CREATEPL+9
LDA $BF92 ; Current time
STA CREATEPL+10
LDA $BF93
STA CREATEPL+11
JSR CRTFILE
* ...
BCS :FWD1 ; :CANTOPEN error
JSR OPENFILE
BCS :FWD1 ; :CANTOPEN error
@ -845,3 +798,5 @@ MAINRDEXIT >>> XF2AUX,NULLRTS ; Back to an RTS