diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 13ed511f..78fb8e03 100644 Binary files a/A2OSX.BOOT.po and b/A2OSX.BOOT.po differ diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 74422368..b85212b5 100644 Binary files a/A2OSX.SRC.po and b/A2OSX.SRC.po differ diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index eda55638..77f8a864 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -215,21 +215,21 @@ EXP.Compute dec .8 clc rts *--------------------------------------- -EXP.Compute.EOR +EXP.OP.EOR *--------------------------------------- -EXP.Compute.ORA +EXP.OP.ORA *--------------------------------------- -EXP.Compute.AND +EXP.OP.AND *--------------------------------------- -EXP.Compute.LOW +EXP.OP.LOW *--------------------------------------- -EXP.Compute.EQU +EXP.OP.EQU *--------------------------------------- -EXP.Compute.GRT +EXP.OP.GRT clc rts *--------------------------------------- -EXP.Compute.ADD ldx #0 ARG-ACC->ACC +EXP.OP.ADD ldx #0 ARG-ACC->ACC ldy #4 clc @@ -246,7 +246,7 @@ EXP.Compute.ADD ldx #0 ARG-ACC->ACC lda #ERR.VAL.TOO.BIG .8 rts *--------------------------------------- -EXP.Compute.SUB ldx #0 ARG-ACC->ACC +EXP.OP.SUB ldx #0 ARG-ACC->ACC ldy #4 sec @@ -267,9 +267,9 @@ EXP.Compute.SUB ldx #0 ARG-ACC->ACC .8 clc rts *--------------------------------------- -EXP.Compute.MUL +EXP.OP.MUL *--------------------------------------- -EXP.Compute.DIV +EXP.OP.DIV clc rts *--------------------------------------- diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index d0331f3c..9223326b 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -5,7 +5,7 @@ INC 1 AUTO 6 .LIST OFF *--------------------------------------- -FIO.Init ldy #S.PS.hCMD +FIO.Init ldy #S.PS.hCMDLINE lda (pPS),y >SYSCALL SYS.GetMemPtrA bcs .99 @@ -299,7 +299,7 @@ FIO.LOAD.ASM.T ldy #ASM.T.hMem >PUSHBI 6 S.FILEINFO.TYPE.BIN >PUSHBI SYS.FOPEN.R >PUSHW L.ASM.T.FILENAME - >SYSCALL SYS.LoadFileYA + >SYSCALL SYS.LoadFile bcs .9 txa diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index f008c956..87dec8e1 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -72,8 +72,7 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBSTR .DA LIBSTR -L.MSG.HELP1 .DA MSG.HELP1 -L.MSG.HELP2 .DA MSG.HELP2 +L.MSG.HELP .DA MSG.HELP L.MSG.SRCLINE .DA MSG.SRCLINE L.MSG.ERROR .DA MSG.ERROR L.MSG.SYMBOLS .DA MSG.SYMBOLS @@ -139,29 +138,30 @@ J.LI .DA DIR.LI.CON .DA DIR.LI.XOFF .DA DIR.LI.ON .DA DIR.LI.OFF -J.EXP.OP .DA EXP.Compute.EOR ^!|&<=>+-*/ - .DA EXP.Compute.ORA - .DA EXP.Compute.ORA - .DA EXP.Compute.AND - .DA EXP.Compute.LOW - .DA EXP.Compute.EQU - .DA EXP.Compute.GRT - .DA EXP.Compute.ADD - .DA EXP.Compute.SUB - .DA EXP.Compute.MUL - .DA EXP.Compute.DIV +J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/ + .DA EXP.OP.ORA + .DA EXP.OP.ORA + .DA EXP.OP.AND + .DA EXP.OP.LOW + .DA EXP.OP.EQU + .DA EXP.OP.GRT + .DA EXP.OP.ADD + .DA EXP.OP.SUB + .DA EXP.OP.MUL + .DA EXP.OP.DIV .DA 0 *--------------------------------------- CS.INIT >LDYA L.LIBSTR >SYSCALL SYS.LoadLibYA sta hLIBSTR - ldy #S.PS.hARGS - lda (pPs),y - beq .99 + >SYSCALL SYS.GetArgC + cmp #1 + beq .99 No arg, new file.... - >SYSCALL SYS.GetMemPtrA - >SYSCALL SYS.NewPStrYA + lda #1 + >SYSCALL SYS.GetArgA + >SYSCALL SYS.GetFullPathYA txa ldy #SRC.hFILENAME @@ -183,9 +183,7 @@ CS.INIT >LDYA L.LIBSTR clc rts -.99 >PUSHW L.MSG.HELP1 - >LIBCALL hLIBSTR,LIBSTR.PRINTF - >PUSHW L.MSG.HELP2 +.99 >PUSHW L.MSG.HELP >LIBCALL hLIBSTR,LIBSTR.PRINTF lda #ERR.INV.ARGS sec @@ -327,7 +325,7 @@ CS.QUIT jsr FIO.FileClose .INB BIN/ASM.S.SYM *--------------------------------------- CS.END -SRC.DIR.MAXLEN .EQ 5 (DUMMY) +SRC.DIR.MAXLEN .EQ 5 T.DIRECTIVES .HS 02 .AS "AC" .HS 02 @@ -425,8 +423,7 @@ T.LI .HS 03 .HS 00 *--------------------------------------- LIBSTR >PSTRING "libstr.o" -MSG.HELP1 >CSTRING "A2osX-Macro Assembler (S-C MASM 3.0 Based)\n" -MSG.HELP2 >CSTRING "Usage : ASM [type TXT ($04) or S-C/BAS ($FA)]\n" +MSG.HELP >CSTRING "A2osX-Macro Assembler (S-C MASM 3.0 Based)\nUsage : ASM [type TXT ($04) or S-C/BAS ($FA)]\n" MSG.PASS >CSTRING "Pass:#%d\n" MSG.SRC.FILE >CSTRING "Reading SRC File:%S\n" MSG.OBJ.FILE >CSTRING "Writing OBJ File:%S, Type=%02x\n" diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 9b5db0e2..7f5e5736 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -66,9 +66,9 @@ CS.INIT >LDYA L.LIBSTR >SYSCALL SYS.GetFullPathYA stx hFullPath -.2 >SYSCALL SYS.ListDirInitYA +.2 >SYSCALL SYS.OPENDIRYA bcs .99 - ldy #hS.LISTDIR + ldy #hDIR sta (pData),y jsr .99 @@ -99,206 +99,43 @@ CS.RUN ldy #bCANCEL clc rts -.2 ldy #hS.LISTDIR +.2 ldy #hDIR lda (pData),y - >SYSCALL SYS.ListDirNextA - bcc .3 + >SYSCALL SYS.READDIRA + bcs .9 - jmp Push.Footer - -.3 pha - >SYSCALL SYS.GetMemPtrA + phx Save hDIRENT >STYA ZPPtr1 - lda (ZPPtr1) - pha - and #$0F - sta (ZPPtr1) Adjust Filename len +.3 lda (ZPPtr1) + + beq .8 - pla - and #$F0 - cmp #$F0 Volume ($F) HEADER ? - bne .31 + >LDYA ZPPtr1 + >SYSCALL SYS.PStrOutYA - pla - ldy #hVOLHEADER - sta (pData),y - >PUSHW ZPPtr1 - >PUSHW L.MSG.VOL.HEADER - >LIBCALL hLIBSTR,LIBSTR.PRINTF + lda ZPPtr1 + sec + adc (ZPPtr1) + sta ZPPtr1 + bcc .4 + inc ZPPtr1+1 + +.4 lda #13 + >SYSCALL SYS.COutA + +.7 lda ZPPtr1 clc - rts + adc #S.STAT + sta ZPPtr1 + bcc .3 + inc ZPPtr1+1 + bcs .3 Always -.31 cmp #$E0 Dir ($E) HEADER ? - bne .4 - - pla - ldy #hDIRHEADER - sta (pData),y - - >PUSHW ZPPtr1 - >PUSHW L.MSG.DIR.HEADER - >LIBCALL hLIBSTR,LIBSTR.PRINTF - clc - rts - -.4 cmp #$D0 Directory ? - bne .5 - - jsr Push.Dates - jsr Push.Dir - >PUSHW L.MSG.DIR - bra .8 - -.5 cmp #$C0 Volume Name ? - bne .6 - - >PUSHW ZPPtr1 - >PUSHW L.MSG.VOL - bra .8 - -.6 jsr Push.Dates File - jsr Push.File - >PUSHW L.MSG.FILE - -.8 >LIBCALL hLIBSTR,LIBSTR.PRINTF - -.9 pla +.8 pla >SYSCALL SYS.FreeMemA clc - rts -*-------------------------------------- -Push.Dir ldy #$1E get access mask - lda (ZPPtr1),y - >PUSHA - >PUSHW ZPPtr1 - rts -*-------------------------------------- -Push.File >PUSHBI 0 4th byte of file len=0 - ldy #$17 get file len (3 bytes) - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - - ldy #$1E get access mask - lda (ZPPtr1),y - >PUSHA - - ldy #$20 get aux type - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - - ldy #$10 get filetype - - lda L.PRODOS.FT.TXT - sta ZPPtr2 - lda L.PRODOS.FT.TXT+1 - sta ZPPtr2+1 - ldx #0 - -.1 lda (ZPPtr1),y - cmp PRODOS.FT.ID,x - beq .3 - lda ZPPtr2 - clc - adc #4 - sta ZPPtr2 - bcc .2 - inc ZPPtr2+1 -.2 inx - cpx PRODOS.FT.COUNT - bne .1 - - lda (ZPPtr1),y - lsr - lsr - lsr - lsr - tax - lda HEXDIGIT,x - sta PRODOS.FT.DFLT+2 - lda (ZPPtr1),y - and #$0F - tax - lda HEXDIGIT,x - sta PRODOS.FT.DFLT+3 - -.3 >PUSHW ZPPtr2 - >PUSHW ZPPtr1 - >LIBCALL hLIBSTR,LIBSTR.LCASEP - >PUSHW ZPPtr1 - rts -*-------------------------------------- -Push.Dates ldy #$24 get modification time - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - ldy #$22 - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - ldy #$1B get creation time - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - ldy #$19 - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - rts -*-------------------------------------- -Push.Footer ldy #hVOLHEADER - lda (pData),y - beq .20 - - >SYSCALL SYS.GetMemPtrA - >STYA ZPPtr1 - - ldy #$22 file_count - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - - >PUSHW L.MSG.VOL.END - >LIBCALL hLIBSTR,LIBSTR.PRINTF - -.20 ldy #hDIRHEADER - lda (pData),y - beq .21 - - >SYSCALL SYS.GetMemPtrA - >STYA ZPPtr1 - - ldy #$22 file_count - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - - >PUSHW L.MSG.DIR.END - >LIBCALL hLIBSTR,LIBSTR.PRINTF - -.21 sec - rts +.9 rts *-------------------------------------- CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device? lda (pEvent),y @@ -338,22 +175,10 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device? .9 sec rts *-------------------------------------- -CS.QUIT ldy #hVOLHEADER - lda (pData),y - beq .1 - - >SYSCALL SYS.FreeMemA - -.1 ldy #hDIRHEADER - lda (pData),y - beq .2 - - >SYSCALL SYS.FreeMemA - -.2 ldy #hS.LISTDIR +CS.QUIT ldy #hDIR lda (pData),y - >SYSCALL SYS.ListDirCloseA + >SYSCALL SYS.CLOSEDIRA ldy #hDIRPATH lda (pData),y @@ -395,7 +220,7 @@ hFullPath .BS 1 .OR 0 DS.START hDIRPATH .BS 1 -hS.LISTDIR .BS 1 +hDIR .BS 1 hVOLHEADER .BS 1 hDIRHEADER .BS 1 bSTOP .BS 1 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index eec47bed..845b573d 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -445,34 +445,16 @@ S.EVT.DATAW2 .EQ 6 * S.EVT .EQ 8 *-------------------------------------- -* S.LISTDIR STRUCT (Obsolete) -*-------------------------------------- -S.LISTDIR.hONLINE .EQ 0 -S.LISTDIR.ONLINEPTR .EQ 1 -S.LISTDIR.REFNUM .EQ 2 ref_num file -S.LISTDIR.hIOBUF .EQ 3 hMem to ProDOS IO buffer -S.LISTDIR.hREADBUF .EQ 4 hMem to 512 Read Buffer -S.LISTDIR.EL .EQ 5 entry_length -S.LISTDIR.EIB .EQ 6 ENTRY_INDEX in block -S.LISTDIR.EPB .EQ 7 entry_per_block -S.LISTDIR.BLKPTR .EQ 8 entry PTR in block -S.LISTDIR.FI .EQ 10 FILE_INDEX in DIR -S.LISTDIR.FC .EQ 12 file_count -S.LISTDIR.hPATH .EQ 14 Base path for file filtering -S.LISTDIR.hPATTERN .EQ 15 Pattern for file filtering +S.TIME.CENTURY .EQ 0 19,20,21.... +S.TIME.YEAR .EQ 1 0.99 +S.TIME.MONTH .EQ 2 1..12 +S.TIME.DAY .EQ 3 1..31 +S.TIME.HOUR .EQ 4 0..23 +S.TIME.MINUTE .EQ 5 0..59 +S.TIME.SECOND .EQ 6 0..61 +S.TIME.WDAY .EQ 7 1..7 * -S.LISTDIR.SIZE .EQ 16 -*-------------------------------------- -S.Time.CENTURY .EQ 0 19,20,21.... -S.Time.YEAR .EQ 1 0.99 -S.Time.MONTH .EQ 2 1..12 -S.Time.DAY .EQ 3 1..31 -S.Time.HOUR .EQ 4 0..23 -S.Time.MINUTE .EQ 5 0..59 -S.Time.SECOND .EQ 6 0..61 -S.Time.WDAY .EQ 7 1..7 -* -S.Time .EQ 8 +S.TIME .EQ 8 *-------------------------------------- * S.STAT *-------------------------------------- diff --git a/SYS/KERNEL.S.DIR.txt b/SYS/KERNEL.S.DIR.txt index 9882f6f6..ae7e4305 100644 --- a/SYS/KERNEL.S.DIR.txt +++ b/SYS/KERNEL.S.DIR.txt @@ -12,7 +12,7 @@ AUTO 6 * CC : Y,A = PTR to S.DIR * CS : A = EC *-------------------------------------- -K.OPENDIRYA jsr S.PFTCHECKPATHYA +K.OPENDIRYA jsr K.PFTCheckPathYA >STYA ZPQuickPtr2 >STYA MLICALL.PARAMS+1 For MLIOPEN @@ -71,7 +71,7 @@ hDIR .BS 1 * CC : X = hDIREND, Y,A = PTR to S.DIRENT * CS : A = EC, A = 0 : no more entry *-------------------------------------- -K.READDIRA jsr S.PFTCHECKDIRA +K.READDIRA jsr K.PFTCheckDirA jsr K.GetMemPtrA >STYA ZPQuickPtr1 @@ -267,10 +267,12 @@ K.READDIRA.DIR ldy #S.DIR.PRODOS.REF .99 rts .2 ldy #S.DIR.PRODOS.EL+3 + ldx #3 -.3 lda(ZPQuickPtr1),y get this session parameters from S.DIR - sta EntryLength-S.DIR.PRODOS.EL,y +.3 lda (ZPQuickPtr1),y get this session parameters from S.DIR + sta EntryLength,x dey + dex bpl .3 .4 ldx EntryCount @@ -336,10 +338,13 @@ K.READDIRA.DIR ldy #S.DIR.PRODOS.REF * lda #0 S.MEM.F.INIT0 already did this * sta (ZPQuickPtr4) Ending 0 + ldx #3 ldy #S.DIR.PRODOS.EL+3 -.8 lda EntryLength-S.DIR.PRODOS.EL,y Store back this session prameters to S.DIR + +.8 lda EntryLength,x Store back this session prameters to S.DIR sta (ZPQuickPtr1),y dey + dex bpl .8 jsr .98 Discard READBUFFER @@ -383,7 +388,7 @@ K.READDIRA.ADD and #$F0 lda #1 jsr K.READDIRA.AddToBuf - lda #'.' + lda #'.' filename="1." jsr K.READDIRA.AddToBuf ldy #$25 total_blocks @@ -398,35 +403,27 @@ K.READDIRA.ADD and #$F0 txa sta (ZPQuickPtr4),y + bra .80 + .10 cmp #$E0 directory header ? bne .20 lda #2 jsr K.READDIRA.AddToBuf - lda #'.' + lda #'.' filename="2.." jsr K.READDIRA.AddToBuf jsr K.READDIRA.AddToBuf - + bra .80 .20 cmp #$D0 directory ? bne .30 + jsr K.READDIRA.AddFNToBuf - lda (ZPQuickPtr3) - and #$0F get filename len - tax - jsr K.READDIRA.AddToBuf - ldy #1 + bra .80 -.21 lda (ZPQuickPtr3),y - jsr K.READDIRA.AddToBuf - iny - dex - bne .21 - - -.30 +.30 jsr K.READDIRA.AddFNToBuf .80 lda ZPQuickPtr4 clc @@ -444,6 +441,21 @@ K.READDIRA.AddBufSize inc BufSize+1 .9 rts *-------------------------------------- +K.READDIRA.AddFNToBuf + lda (ZPQuickPtr3) + and #$0F get filename len + tax + jsr K.READDIRA.AddToBuf + + ldy #1 + +.1 lda (ZPQuickPtr3),y + jsr K.READDIRA.AddToBuf + iny + dex + bne .1 + rts +*-------------------------------------- K.READDIRA.AddToBuf sta (ZPQuickPtr4) inc ZPQuickPtr4 @@ -467,8 +479,8 @@ K.READDIRA.hDIR .BS 1 * In : * A = hDIR *-------------------------------------- -K.CLOSEDIRA jsr S.PFTCHECKDIRA - sta hDIR +K.CLOSEDIRA jsr K.PFTCheckDirA + pha jsr K.GetMemPtrA >STYA ZPQuickPtr1 @@ -483,12 +495,12 @@ K.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF beq .2 jsr K.FreeMemA -.2 lda hDIR +.2 pla jsr K.FreeMemA clc rts *-------------------------------------- -K.MKDIRYA jsr S.PFTCHECKPATHYA +K.MKDIRYA jsr K.PFTCheckPathYA >STYA MLICALL.PARAMS+1 lda #S.FILEINFO.ACCESS.FULL sta MLICALL.PARAMS+S.FILEINFO.ACCESS diff --git a/SYS/KERNEL.S.FILE.txt b/SYS/KERNEL.S.FILE.txt index cc800cfa..1739ec3f 100644 --- a/SYS/KERNEL.S.FILE.txt +++ b/SYS/KERNEL.S.FILE.txt @@ -7,7 +7,7 @@ AUTO 6 *-------------------------------------- * For All SYS.xxxx calls, X = #SYSCall * Must be kept in X before calling -* S.PFTCheckXYZ +* K.PFTCheck* *-------------------------------------- * K.FOPEN * In : @@ -24,7 +24,7 @@ AUTO 6 * CC : A = hFILE * CS : A = EC *-------------------------------------- -K.FOPEN jsr S.PFTCHECKPATHSTK +K.FOPEN jsr K.PFTCheckPathSTK >PULLW MLICALL.PARAMS+1 >PULLB K.FOPEN.MODE >PULLB K.FOPEN.TYPE @@ -114,7 +114,7 @@ hFILE .BS 1 * In : * A = hFILE *-------------------------------------- -K.FCLOSEA jsr S.PFTCHECKFILEA +K.FCLOSEA jsr K.PFTCheckFileA sta hFILE jsr K.GetMemPtrA >STYA ZPQuickPtr1 @@ -142,7 +142,7 @@ K.FCLOSEA.1 ldy #S.FILE.PRODOS.REF * Out : * Y,A = Bytes Read *-------------------------------------- -K.FREAD jsr S.PFTCHECKFILESTK +K.FREAD jsr K.PFTCheckFileSTK >PULLA jsr FIL.SetupPrt1A >PULLW MLICALL.PARAMS+4 @@ -160,7 +160,7 @@ K.FREAD jsr S.PFTCHECKFILESTK * Out : * Y,A = Bytes Written *-------------------------------------- -K.FWRITE jsr S.PFTCHECKFILESTK +K.FWRITE jsr K.PFTCheckFileSTK >PULLA jsr FIL.SetupPrt1A >PULLW MLICALL.PARAMS+4 @@ -174,7 +174,7 @@ K.FWRITE jsr S.PFTCHECKFILESTK * In : * A = hFILE *-------------------------------------- -K.FFLUSHA jsr S.PFTCHECKFILEA +K.FFLUSHA jsr K.PFTCheckFileA jsr FIL.SetupPrt1A >MLICALL MLIFLUSH rts @@ -186,27 +186,35 @@ K.FFLUSHA jsr S.PFTCHECKFILEA * PULLW = OffsetLo * PULLW = OffsetHi *-------------------------------------- -K.FSEEK jsr S.PFTCHECKFILESTK +K.FSEEK jsr K.PFTCheckFileSTK >PULLA jsr FIL.SetupPrt1A >PULLB K.FSEEK.FROM >PULLW K.FSEEK.OFFSET >PULLW K.FSEEK.OFFSET+2 + lda K.FSEEK.FROM - beq .3 cmp #SYS.FSEEK.SET - cmp #SYS.FSEEK.CUR +* cmp #SYS.FSEEK.SET =0 + bne .1 - >MLICALL MLIGETMARK - bcs .9 - bcc .2 + stz MLICALL.PARAMS+2 + stz MLICALL.PARAMS+3 + stz MLICALL.PARAMS+4 + bra .8 -.1 cmp #SYS.FSEEK.END - bne .3 +.1 cmp #SYS.FSEEK.CUR + bne .2 + >MLICALL MLIGETMARK + bcc .8 + rts + +.2 cmp #SYS.FSEEK.END + bne .98 >MLICALL MLIGETEOF bcs .9 -.2 lda MLICALL.PARAMS+2 +.8 lda MLICALL.PARAMS+2 adc K.FSEEK.OFFSET sta MLICALL.PARAMS+2 lda MLICALL.PARAMS+3 @@ -215,13 +223,14 @@ K.FSEEK jsr S.PFTCHECKFILESTK lda MLICALL.PARAMS+4 adc K.FSEEK.OFFSET+2 sta MLICALL.PARAMS+4 - bcs .99 Offset out of range! + bcs .99 Offset out of range! - -.3 >MLICALL MLISETMARK + >MLICALL MLISETMARK .9 rts +.98 lda #SYSMGR.ERRSYN + .HS 2C bit abs .99 lda #SYSMGR.ERRFTB sec rts @@ -235,7 +244,7 @@ K.FSEEK.OFFSET .BS 4 * Out : * Y,A,X = Offset *-------------------------------------- -K.FTELLA jsr S.PFTCHECKFILEA +K.FTELLA jsr K.PFTCheckFileA K.FTELLA.1 jsr FIL.SetupPrt1A >MLICALL MLIGETMARK bcs .9 @@ -252,7 +261,7 @@ K.FTELLA.1 jsr FIL.SetupPrt1A * A !=0 NOT EOF * CS : *-------------------------------------- -K.FEOFA jsr S.PFTCHECKFILEA +K.FEOFA jsr K.PFTCheckFileA jsr FIL.SetupPrt1A jsr K.FTELLA.1 bcs .9 @@ -277,7 +286,7 @@ K.FEOFA.MARK .BS 3 *-------------------------------------- * K.REMOVEYA *-------------------------------------- -K.REMOVEYA jsr S.PFTCHECKPATHYA +K.REMOVEYA jsr K.PFTCheckPathYA >STYA MLICALL.PARAMS+1 >MLICALL MLIDESTROY rts @@ -287,7 +296,7 @@ K.REMOVEYA jsr S.PFTCHECKPATHYA * PULLW = Old Name * PULLW = New Name *-------------------------------------- -K.RENAME jsr S.PFTCHECKPATHYA +K.RENAME jsr K.PFTCheckPathSTK >PULLW MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+3 >MLICALL MLIRENAME @@ -298,7 +307,7 @@ K.RENAME jsr S.PFTCHECKPATHYA * PULLB = hFILE * PULLW = PTR to S.STAT buffer *-------------------------------------- -K.STAT jsr S.PFTCHECKFILEA +K.STAT jsr K.PFTCheckFileA >PULLA jsr FIL.SetupPrt1A >PULLW ZPQuickPtr2 @@ -316,7 +325,7 @@ K.STAT jsr S.PFTCHECKFILEA * PULLW = PTR to Filename * PULLW = PTR to S.STAT buffer *-------------------------------------- -K.FSTAT jsr S.PFTCHECKPATHYA +K.FSTAT jsr K.PFTCheckPathSTK >PULLW MLICALL.PARAMS+1 >PULLW ZPQuickPtr2 >MLICALL MLIGETFILEINFO diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 7cf9120c..098933a8 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -143,8 +143,7 @@ K.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy * Y,A = File Length * X = hMem of Loaded File *-------------------------------------- -K.LoadFile >DEBUG - jsr K.FOPEN +K.LoadFile jsr K.FOPEN bcs .9 sta K.LoadFile.hFile @@ -201,65 +200,6 @@ K.LoadFile.Seek >PUSHWI 0 >PUSHB K.LoadFile.hFile jmp K.FSEEK *-------------------------------------- -* K.LoadFileYA -* in : -* Y,A = FilePath (PSTRING) -* out : -* Y,A = File Length -* X = hMem of Loaded File -*-------------------------------------- -K.LoadFileYA jsr K.MLIOpenYA - bcc .10 - rts - -.10 sta K.LoadFile.hRef save ref_num - stx K.LoadFile.hBuf save Prodos Buffer for freemem - jsr K.MLIGetEOFA - bcs .98 - - phx Larger than 64k? - plx - beq .1 File too big!!!! - lda #SYSMGR.ERRFTB - bra .98 - -.1 >STYA K.LoadFile.Len save Length - >PUSHYA Push Length for K.GetMem - >PUSHBI 0 - jsr K.GetMem - bcs .98 - - >STYA K.LoadFile.Mem - - stx K.LoadFile.hMem save Segment hMem - >PUSHW K.LoadFile.Len Push Length for K.MLIRead - >PUSHW K.LoadFile.Mem Push PTR - >PUSHB K.LoadFile.hRef Push ref_num - jsr K.MLIRead - bcs .97 - - jsr .98 Close File.... - - >LDYA K.LoadFile.Len Return File Length... - ldx K.LoadFile.hMem ...and hMem to Caller - clc - rts - -.97 pha - lda K.LoadFile.hMem - jsr K.FreeMemA freemem because of failed load - pla - -.98 pha - lda K.LoadFile.hRef - jsr K.MLICloseA - lda K.LoadFile.hBuf - jsr K.FreeMemA ProDOS IO Buffer - pla - -.99 sec - rts -*-------------------------------------- * PULLW = SrcPtr * PULLW = SrcLen * PULLW = PATH (Handled by.... diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 2fa502c9..1ad10ab1 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -9,13 +9,13 @@ AUTO 6 * PULLW/Y,A = PATH (PSTR) * Out : *-------------------------------------- -S.PFTCHECKPATHSTK +K.PFTCheckPathSTK lda (pStack) read PTR.LO on top of stack pha ldy #1 lda (pStack),y read PTR.HI on top of stack ply -S.PFTCHECKPATHYA +K.PFTCheckPathYA stx S.PFT.SYSCALL save #SYSCALL >STYA ZPQuickPtr1 @@ -67,10 +67,10 @@ S.PFTCHECKPATHYA * PULLB/A = hFILE/hDIR * Out : *-------------------------------------- -S.PFTCHECKFILESTK +K.PFTCheckFileSTK lda (pStack) read hFILE on top of stack -S.PFTCHECKFILEA -S.PFTCHECKDIRA stx S.PFT.SYSCALL save #SYSCALL +K.PFTCheckFileA +K.PFTCheckDirA stx S.PFT.SYSCALL save #SYSCALL sta S.PFT.hFILE jsr K.GetMemPtrA X = unmidified >STYA ZPQuickPtr1 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index bbec28b8..bc5aad59 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -79,7 +79,7 @@ A2osX.D001.END .EQ * A2osX.D002 .EQ * .PH $D000 .INB SYS/KERNEL.S.REL - .INB SYS/KERNEL.S.Time + .INB SYS/KERNEL.S.TIME .EP A2osX.D002.END .EQ * *--------------------------------------