diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 72ac8fec..a8c21e43 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 8ed49da9..da3d29b5 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -20,63 +20,63 @@ MAX.COL .EQ 4 .DUMMY .OR ZPBIN ZS.START -ZPPtr1 .BS 2 -ZPPtr2 .BS 2 -ZPFileName .BS 2 -ZPFileStat .BS 2 +ZPPtr1 .BS 2 +ZPPtr2 .BS 2 +ZPFileName .BS 2 +ZPFileStat .BS 2 -ZPLineBuf .BS 2 -ZPPWBuf .BS 2 +ZPLineBuf .BS 2 +ZPPWBuf .BS 2 -ArgCount .BS 1 +ArgCount .BS 1 -ColCount .BS 1 -bPass2 .BS 1 +ColCount .BS 1 +bPass2 .BS 1 -bPause .BS 1 -bAllmostAll .BS 1 -bColumn .BS 1 -bFullPath .BS 1 -bLong .BS 1 -bRecurse .BS 1 -bIsTTY .BS 1 +bPause .BS 1 +bAllmostAll .BS 1 +bColumn .BS 1 +bFullPath .BS 1 +bLong .BS 1 +bRecurse .BS 1 +bIsTTY .BS 1 -ZS.END .ED +ZS.END .ED *-------------------------------------- -* File Header (16 Bytes) +* File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) - .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 - .DA #0 S.PS.F.EVENT + .DA #$61 6502,Level 1 (65c02) + .DA #1 BIN Layout Version 1 + .DA #0 S.PS.F.EVENT .DA #0 - .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data SegmentSize - .DA #64 Stack Size - .DA #ZS.END-ZS.START Zero Page Size + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data SegmentSize + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- -.1 .DA CS.INIT - .DA CS.RUN - .DA CS.DOEVENT - .DA CS.QUIT -L.MSG.USAGE .DA MSG.USAGE -L.MSG.REG .DA MSG.REG -L.MSG.REGEXT .DA MSG.REGEXT -L.MSG.DIR .DA MSG.DIR -L.MSG.DIREXT .DA MSG.DIREXT -L.MSG.BDEV .DA MSG.BDEV -L.MSG.BDEVEXT .DA MSG.BDEVEXT -L.MSG.ENTER .DA MSG.ENTER -L.PRODOS.FT.TXT .DA PRODOS.FT.TXT -L.FMT.Date .DA FMT.Date -L.FMT.Time .DA FMT.Time -L.FMT.string6 .DA FMT.string6 -L.FMT.int16 .DA FMT.int16 -J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.DOEVENT + .DA CS.QUIT +L.MSG.USAGE .DA MSG.USAGE +L.MSG.ENTER .DA MSG.ENTER +L.MSG.REG .DA MSG.REG +L.MSG.REGEXT .DA MSG.REGEXT +L.MSG.DIR .DA MSG.DIR +L.MSG.DIREXT .DA MSG.DIREXT +L.MSG.BDEV .DA MSG.BDEV +L.MSG.BDEVEXT .DA MSG.BDEVEXT +L.PRODOS.FT.TXT .DA PRODOS.FT.TXT +L.FMT.Date .DA FMT.Date +L.FMT.Time .DA FMT.Time +L.FMT.string6 .DA FMT.string6 +L.FMT.int16 .DA FMT.int16 +J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG .DA CS.RUN.PRINT.DIR .DA CS.RUN.PRINT.CDEV .DA CS.RUN.PRINT.BDEV @@ -86,742 +86,741 @@ J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG .DA CS.RUN.PRINT.CDEV .DA 0 *-------------------------------------- -CS.INIT clc - rts +CS.INIT clc + rts *-------------------------------------- -CS.RUN stz bIsTTY - jsr CS.RUN.ISATTY +CS.RUN jsr CS.RUN.ISATTY -.1 inc ArgCount - lda ArgCount - >SYSCALL ArgV - bcs .6 +.1 inc ArgCount + lda ArgCount + >SYSCALL ArgV + bcs .6 - >STYA ZPPtr1 - lda (ZPPtr1) - cmp #'-' - bne .4 + >STYA ZPPtr1 + lda (ZPPtr1) + cmp #'-' + bne .4 - ldy #1 - lda (ZPPtr1),y + ldy #1 + lda (ZPPtr1),y - ldx #OptionVars-OptionList-1 + ldx #OptionVars-OptionList-1 -.2 cmp OptionList,x - beq .3 +.2 cmp OptionList,x + beq .3 - dex - bpl .2 + dex + bpl .2 - >PUSHW L.MSG.USAGE - >PUSHBI 0 - >SYSCALL PrintF + >PUSHW L.MSG.USAGE + >PUSHBI 0 + >SYSCALL PrintF - lda #E.SYN - sec - rts + lda #E.SYN + sec + rts -.3 ldy OptionVars,x - lda #$80 - sta $0,y - bra .1 +.3 ldy OptionVars,x + lda #$80 + sta $0,y + bra .1 -.4 >LDYA ZPPtr1 - jsr InitSrcDirYA - bcc .1 scan for any other args +.4 >LDYA ZPPtr1 + jsr InitSrcDirYA + bcc .1 scan for any other args -.9 rts +.9 rts -.6 >LDA.G index do we have a Source dir ? - bne .8 +.6 >LDA.G index do we have a Source dir ? + bne .8 - ldy #S.PS.hCWD - lda (pPS),y - >SYSCALL GetMemPtr - jsr InitSrcDirYA - bcs .9 + ldy #S.PS.hCWD + lda (pPS),y + >SYSCALL GetMemPtr + jsr InitSrcDirYA + bcs .9 -.8 >PUSHEA.G TIME.SysTime - >SYSCALL Time +.8 >PUSHEA.G TIME.SysTime + >SYSCALL Time - >LDYAI S.PW - >SYSCALL GetMem - bcs .9 + >LDYAI S.PW + >SYSCALL GetMem + bcs .9 - >STYA ZPPWBuf - txa - >STA.G hPWBuf + >STYA ZPPWBuf + txa + >STA.G hPWBuf - >LDYAI 256 - >SYSCALL GetMem - bcs .9 + >LDYAI 256 + >SYSCALL GetMem + bcs .9 - >STYA ZPLineBuf - txa + >STYA ZPLineBuf + txa - >STA.G hLineBuf + >STA.G hLineBuf *-------------------------------------- -CS.RUN.LOOP stz bPass2 +CS.RUN.LOOP stz bPass2 -.1 ldy #S.PS.hStdIn - lda (pPS),y - >SYSCALL FEOF - bcs .99 I/O error +.1 ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL FEOF + bcs .99 I/O error - tay - bne .2 no char + tay + bne .2 no char - >SYSCALL GetChar - cmp #$03 Ctrl-C - beq .99 Abort.... + >SYSCALL GetChar + cmp #$03 Ctrl-C + beq .99 Abort.... - cmp #$13 Ctrl-S - bne .2 + cmp #$13 Ctrl-S + bne .2 - lda bPause - eor #$ff - sta bPause - bne .1 + lda bPause + eor #$ff + sta bPause + bne .1 -.2 bit bPause - bmi .1 +.2 bit bPause + bmi .1 - jsr GetEntry - bcs .9 + jsr GetEntry + bcs .9 - jsr FilterMatch - bcs .8 no match, skip.... + jsr FilterMatch + bcs .8 no match, skip.... - bit bAllmostAll - bmi .4 + bit bAllmostAll + bmi .4 - lda (ZPFileName) - cmp #'.' - beq .8 + lda (ZPFileName) + cmp #'.' + beq .8 -.4 ldy #S.STAT.MODE+1 - lda (ZPFileStat),y +.4 ldy #S.STAT.MODE+1 + lda (ZPFileStat),y - and #$70 - lsr - lsr - lsr - tax - jsr CS.RUN.PRINT.JMP - bcs .99 + and #$70 + lsr + lsr + lsr + tax + jsr CS.RUN.PRINT.JMP + bcs .99 -.8 jsr GetNextEntry - bcc .1 +.8 jsr GetNextEntry + bcc .1 - bit bPass2 - bmi .9 + bit bPass2 + bmi .9 - jsr ResetSrcDir - bcs .99 + jsr ResetSrcDir + bcs .99 - dec bPass2 - bra .1 + dec bPass2 + bra .1 -.9 bit bLong - bmi .91 +.9 bit bLong + bmi .91 - jsr CS.RUN.NewLine - bcs .99 + jsr CS.RUN.NewLine + bcs .99 -.91 jsr LeaveSubDir - bcs .98 +.91 jsr LeaveSubDir + bcs .98 - jsr BasePath.. + jsr BasePath.. - jsr CS.RUN.ENTER.MSG - bcs .99 + jsr CS.RUN.ENTER.MSG + bcs .99 - jsr GetNextEntry - jmp CS.RUN.LOOP + jsr GetNextEntry + jmp CS.RUN.LOOP -.98 lda #0 - sec -.99 rts +.98 lda #0 + sec +.99 rts *-------------------------------------- CS.RUN.PRINT.JMP - jmp (J.CS.RUN.PRINT,x) + jmp (J.CS.RUN.PRINT,x) *-------------------------------------- CS.RUN.PRINT.REG - bit bPass2 - bpl .8 - - bit bLong - bmi .1 + bit bPass2 + bpl .8 - bit bColumn - bmi .23 + bit bLong + bmi .1 - bit bFullPath - bpl .22 + bit bColumn + bmi .23 - jsr CS.RUN.PRINT.SRCPATH + bit bFullPath + bpl .22 -.23 >LDYA ZPFileName - >SYSCALL PutS - rts + jsr CS.RUN.PRINT.SRCPATH -.22 >PUSHW L.MSG.REG - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 +.23 >LDYA ZPFileName + >SYSCALL PutS + rts - jmp CS.RUN.UpdateColCnt +.22 >PUSHW L.MSG.REG + >PUSHW ZPFileName + >PUSHBI 2 + >SYSCALL PrintF + bcs .9 -.8 clc -.9 rts + jmp CS.RUN.UpdateColCnt + +.8 clc +.9 rts *-------------------------------------- -.1 >PUSHW L.MSG.REGEXT +.1 >PUSHW L.MSG.REGEXT - jsr Mod2CSTR (2) + jsr Mod2CSTR (2) - jsr CS.RUN.PushUidGid (4) + jsr CS.RUN.PushUidGid (4) - ldy #S.STAT.SIZE+3 - ldx #4 + ldy #S.STAT.SIZE+3 + ldx #4 -.2 lda (ZPFileStat),y - >PUSHA - dey - dex - bne .2 (4) +.2 lda (ZPFileStat),y + >PUSHA + dey + dex + bne .2 (4) - jsr CS.RUN.PUSHDATES (4) + jsr CS.RUN.PUSHDATES (4) - ldy #S.STAT.P.TYPE - lda (ZPFileStat),y - jsr FileType2PSTR - >PUSHYA (2) + ldy #S.STAT.P.TYPE + lda (ZPFileStat),y + jsr FileType2PSTR + >PUSHYA (2) - ldy #S.STAT.P.AUXTYPE+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA (2) + ldy #S.STAT.P.AUXTYPE+1 + lda (ZPFileStat),y + >PUSHA + dey + lda (ZPFileStat),y + >PUSHA (2) - >PUSHW ZPFileName (2) + >PUSHW ZPFileName (2) - >PUSHBI 20 - >SYSCALL PrintF - bcs .9 + >PUSHBI 20 + >SYSCALL PrintF + bcs .9 - jmp CS.RUN.NewLine.1 + jmp CS.RUN.NewLine.1 *-------------------------------------- CS.RUN.PRINT.DIR - bit bPass2 - bmi .8 + bit bPass2 + bmi .8 - bit bLong - bmi .4 + bit bLong + bmi .4 - bit bColumn - bmi .23 + bit bColumn + bmi .23 - bit bFullPath - bpl .22 + bit bFullPath + bpl .22 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.PRINT.SRCPATH -.23 >LDYA ZPFileName - >SYSCALL PutS - bcs .9 +.23 >LDYA ZPFileName + >SYSCALL PutS + bcs .9 - bit bRecurse - bpl .8 + bit bRecurse + bpl .8 - lda (ZPFileName) - cmp #'.' - beq .8 + lda (ZPFileName) + cmp #'.' + beq .8 - >LDYA ZPFileName - jmp EnterSubDirYA + >LDYA ZPFileName + jmp EnterSubDirYA -.8 clc -.9 rts +.8 clc +.9 rts -.22 >PUSHW L.MSG.DIR - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 +.22 >PUSHW L.MSG.DIR + >PUSHW ZPFileName + >PUSHBI 2 + >SYSCALL PrintF + bcs .9 - ldy #0 + ldy #0 -.1 iny - lda (ZPFileName),y - bne .1 +.1 iny + lda (ZPFileName),y + bne .1 -.11 iny - cpy #19 - bcs .2 +.11 iny + cpy #19 + bcs .2 - lda #C.SPACE - phy - >SYSCALL PutChar - ply - bcc .11 - rts + lda #C.SPACE + phy + >SYSCALL PutChar + ply + bcc .11 + rts -.2 jsr CS.RUN.UpdateColCnt - bcc .5 - rts +.2 jsr CS.RUN.UpdateColCnt + bcc .5 + rts *-------------------------------------- -.4 >PUSHW L.MSG.DIREXT +.4 >PUSHW L.MSG.DIREXT - jsr Mod2CSTR + jsr Mod2CSTR - jsr CS.RUN.PushUidGid - jsr CS.RUN.PUSHDATES - >PUSHW ZPFileName - >PUSHBI 12 - >SYSCALL PrintF - bcs .90 + jsr CS.RUN.PushUidGid + jsr CS.RUN.PUSHDATES + >PUSHW ZPFileName + >PUSHBI 12 + >SYSCALL PrintF + bcs .90 - jsr CS.RUN.NewLine.1 - bcs .90 + jsr CS.RUN.NewLine.1 + bcs .90 -.5 bit bRecurse - bpl .80 +.5 bit bRecurse + bpl .80 - lda (ZPFileName) - cmp #'.' - beq .80 + lda (ZPFileName) + cmp #'.' + beq .80 - jsr CS.RUN.NewLine - bcs .90 + jsr CS.RUN.NewLine + bcs .90 - >LDYA ZPFileName - jsr EnterSubDirYA - bcs .90 + >LDYA ZPFileName + jsr EnterSubDirYA + bcs .90 - jmp CS.RUN.ENTER.MSG + jmp CS.RUN.ENTER.MSG -.80 clc -.90 rts +.80 clc +.90 rts *-------------------------------------- CS.RUN.PRINT.CDEV - clc - rts + clc + rts *-------------------------------------- CS.RUN.PRINT.BDEV - bit bPass2 - bmi .8 - - bit bLong - bmi .20 + bit bPass2 + bmi .8 - bit bColumn - bmi .23 + bit bLong + bmi .20 - bit bFullPath - bpl .22 + bit bColumn + bmi .23 - jsr CS.RUN.PRINT.SRCPATH + bit bFullPath + bpl .22 -.23 >LDYA ZPFileName - >SYSCALL PutS - bcs .9 + jsr CS.RUN.PRINT.SRCPATH - bit bRecurse - bpl .8 +.23 >LDYA ZPFileName + >SYSCALL PutS + bcs .9 - lda (ZPFileName) - cmp #'.' - beq .8 + bit bRecurse + bpl .8 - >LDYA ZPFileName - jmp EnterSubDirYA + lda (ZPFileName) + cmp #'.' + beq .8 -.8 clc -.9 rts + >LDYA ZPFileName + jmp EnterSubDirYA -.22 >PUSHW L.MSG.BDEV - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 +.8 clc +.9 rts - ldy #0 +.22 >PUSHW L.MSG.BDEV + >PUSHW ZPFileName + >PUSHBI 2 + >SYSCALL PrintF + bcs .9 -.1 iny - lda (ZPFileName),y - bne .1 + ldy #0 -.11 iny - cpy #19 - bcs .2 +.1 iny + lda (ZPFileName),y + bne .1 - lda #C.SPACE - phy - >SYSCALL PutChar - ply - bcc .11 +.11 iny + cpy #19 + bcs .2 - rts + lda #C.SPACE + phy + >SYSCALL PutChar + ply + bcc .11 -.2 jsr CS.RUN.UpdateColCnt -* bcc .5 - rts + rts + +.2 jsr CS.RUN.UpdateColCnt +* bcc .5 + rts *-------------------------------------- -.20 >PUSHW L.MSG.BDEVEXT - >PUSHW ZPFileName +.20 >PUSHW L.MSG.BDEVEXT + >PUSHW ZPFileName - ldy #S.STAT.P.SLOT - >PUSHB (ZPFileStat),y - iny DRIVE - >PUSHB (ZPFileStat),y + ldy #S.STAT.P.SLOT + >PUSHB (ZPFileStat),y + iny DRIVE + >PUSHB (ZPFileStat),y - ldy #S.STAT.BLOCKS+1 - >PUSHB (ZPFileStat),y - dey - >PUSHB (ZPFileStat),y + ldy #S.STAT.BLOCKS+1 + >PUSHB (ZPFileStat),y + dey + >PUSHB (ZPFileStat),y - ldy #S.STAT.P.DEVBLOCKS+1 - >PUSHB (ZPFileStat),y - dey - >PUSHB (ZPFileStat),y + ldy #S.STAT.P.DEVBLOCKS+1 + >PUSHB (ZPFileStat),y + dey + >PUSHB (ZPFileStat),y - >PUSHBI 8 + >PUSHBI 8 - >SYSCALL PrintF - bcs .90 + >SYSCALL PrintF + bcs .90 - jsr CS.RUN.NewLine.1 - bcs .90 + jsr CS.RUN.NewLine.1 + bcs .90 - bit bRecurse - bpl .80 + bit bRecurse + bpl .80 - >LDYA ZPFileName - jsr EnterSubDirYA - bcs .90 + >LDYA ZPFileName + jsr EnterSubDirYA + bcs .90 - jmp CS.RUN.ENTER.MSG + jmp CS.RUN.ENTER.MSG -.80 clc -.90 rts +.80 clc +.90 rts *-------------------------------------- CS.RUN.PRINT.SRCPATH - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtr - >PUSHYA - >PUSHBI 0 - >SYSCALL PrintF - rts + ldy #hSrcBasePath + lda (pData),y + >SYSCALL GetMemPtr + >PUSHYA + >PUSHBI 0 + >SYSCALL PrintF + rts *-------------------------------------- CS.RUN.PushUidGid - ldy #S.STAT.UID - lda (ZPFileStat),y - >PUSHA - >PUSHW ZPPWBuf - >SYSCALL GetPWUID - bcs .2 + ldy #S.STAT.UID + lda (ZPFileStat),y + >PUSHA + >PUSHW ZPPWBuf + >SYSCALL GetPWUID + bcs .2 - >PUSHEA.G USER - jsr CS.RUN.PushUidGidStr - bra .3 + >PUSHEA.G USER + jsr CS.RUN.PushUidGidStr + bra .3 -.2 >PUSHEA.G USER - >PUSHW L.FMT.int16 +.2 >PUSHEA.G USER + >PUSHW L.FMT.int16 - ldy #S.STAT.UID+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA - >PUSHBI 2 - >SYSCALL SPrintF + ldy #S.STAT.UID+1 + lda (ZPFileStat),y + >PUSHA + dey + lda (ZPFileStat),y + >PUSHA + >PUSHBI 2 + >SYSCALL SPrintF -.3 ldy #S.STAT.GID - lda (ZPFileStat),y - >PUSHA - >PUSHW ZPPWBuf - >SYSCALL GetGRGID - bcs .5 +.3 ldy #S.STAT.GID + lda (ZPFileStat),y + >PUSHA + >PUSHW ZPPWBuf + >SYSCALL GetGRGID + bcs .5 - >PUSHEA.G GROUP - jsr CS.RUN.PushUidGidStr + >PUSHEA.G GROUP + jsr CS.RUN.PushUidGidStr - bra .8 + bra .8 -.5 >PUSHEA.G GROUP - >PUSHW L.FMT.int16 +.5 >PUSHEA.G GROUP + >PUSHW L.FMT.int16 - ldy #S.STAT.GID+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA - >PUSHBI 2 - >SYSCALL SPrintF + ldy #S.STAT.GID+1 + lda (ZPFileStat),y + >PUSHA + dey + lda (ZPFileStat),y + >PUSHA + >PUSHBI 2 + >SYSCALL SPrintF -.8 >PUSHEA.G USER - >PUSHEA.G GROUP - clc - rts +.8 >PUSHEA.G USER + >PUSHEA.G GROUP + clc + rts CS.RUN.PushUidGidStr - >PUSHW L.FMT.string6 - >PUSHW ZPPWBuf - >PUSHBI 2 - >SYSCALL SPrintF - rts + >PUSHW L.FMT.string6 + >PUSHW ZPPWBuf + >PUSHBI 2 + >SYSCALL SPrintF + rts *-------------------------------------- CS.RUN.PUSHDATES - ldy #TIME.Mod-1 Set NODATE as default - jsr CS.RUN.NODATES.INIT + ldy #TIME.Mod-1 Set NODATE as default + jsr CS.RUN.NODATES.INIT - ldy #TIME.Create-1 Set NODATE as default - jsr CS.RUN.NODATES.INIT + ldy #TIME.Create-1 Set NODATE as default + jsr CS.RUN.NODATES.INIT - ldy #S.STAT.MTIME+S.TIME.MONTH - lda (ZPFileStat),y - beq .1 Month=0.....invalid date/time + ldy #S.STAT.MTIME+S.TIME.MONTH + lda (ZPFileStat),y + beq .1 Month=0, invalid date/time - >PUSHEA.G TIME.Mod + >PUSHEA.G TIME.Mod - lda ZPFileStat - clc - adc #S.STAT.MTIME - tay - lda ZPFileStat+1 - adc #0 - jsr CS.RUN.DATEFMT.SELECT - >SYSCALL StrFTime + lda ZPFileStat + clc + adc #S.STAT.MTIME + tay + lda ZPFileStat+1 + adc #0 + jsr CS.RUN.DATEFMT.SELECT + >SYSCALL StrFTime -.1 ldy #S.STAT.CTIME+S.TIME.MONTH - lda (ZPFileStat),y - beq .2 Month=0.....invalid date/time +.1 ldy #S.STAT.CTIME+S.TIME.MONTH + lda (ZPFileStat),y + beq .2 Month=0, nvalid date/time - >PUSHEA.G TIME.Create + >PUSHEA.G TIME.Create - lda ZPFileStat - clc - adc #S.STAT.CTIME - tay - lda ZPFileStat+1 - adc #0 - jsr CS.RUN.DATEFMT.SELECT - >SYSCALL StrFTime + lda ZPFileStat + clc + adc #S.STAT.CTIME + tay + lda ZPFileStat+1 + adc #0 + jsr CS.RUN.DATEFMT.SELECT + >SYSCALL StrFTime -.2 >PUSHEA.G TIME.Mod - >PUSHEA.G TIME.Create - rts +.2 >PUSHEA.G TIME.Mod + >PUSHEA.G TIME.Create + rts *-------------------------------------- CS.RUN.NODATES.INIT - ldx #$ff + ldx #$ff -.1 inx - iny - lda MSG.NODATE,x - sta (pData),y - bne .1 +.1 inx + iny + lda MSG.NODATE,x + sta (pData),y + bne .1 - rts + rts *-------------------------------------- CS.RUN.DATEFMT.SELECT - >STYA ZPPtr1 + >STYA ZPPtr1 - ldy #S.TIME.CENTURY - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.CENTURY - cmp (pData),y - bne .9 + ldy #S.TIME.CENTURY + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.CENTURY + cmp (pData),y + bne .9 - ldy #S.TIME.YEAR - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.YEAR - cmp (pData),y - bne .9 + ldy #S.TIME.YEAR + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.YEAR + cmp (pData),y + bne .9 - ldy #S.TIME.MONTH - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.MONTH - cmp (pData),y - bne .9 + ldy #S.TIME.MONTH + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.MONTH + cmp (pData),y + bne .9 - ldy #S.TIME.DAY - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.DAY - cmp (pData),y - bne .9 + ldy #S.TIME.DAY + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.DAY + cmp (pData),y + bne .9 -.8 >PUSHW L.FMT.Time - >PUSHW ZPPtr1 - rts +.8 >PUSHW L.FMT.Time + >PUSHW ZPPtr1 + rts -.9 >PUSHW L.FMT.Date - >PUSHW ZPPtr1 - rts +.9 >PUSHW L.FMT.Date + >PUSHW ZPPtr1 + rts *-------------------------------------- CS.RUN.UpdateColCnt - inc ColCount - lda ColCount - cmp #MAX.COL - bne CS.RUN.NewLine.8 + inc ColCount + lda ColCount + cmp #MAX.COL + bne CS.RUN.NewLine.8 - stz ColCount - - bra CS.RUN.NewLine.1 + stz ColCount + + bra CS.RUN.NewLine.1 *-------------------------------------- CS.RUN.ENTER.MSG - >PUSHW L.MSG.ENTER - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtr - >PUSHYA - >PUSHBI 2 + >PUSHW L.MSG.ENTER + ldy #hSrcBasePath + lda (pData),y + >SYSCALL GetMemPtr + >PUSHYA + >PUSHBI 2 - >SYSCALL PrintF - bcc CS.RUN.NewLine.1 - rts + >SYSCALL PrintF + bcc CS.RUN.NewLine.1 + rts *-------------------------------------- CS.RUN.NewLine lda ColCount - beq CS.RUN.NewLine.8 + beq CS.RUN.NewLine.8 CS.RUN.NewLine.1 - lda #C.CR - >SYSCALL PutChar + lda #C.CR + >SYSCALL PutChar - lda bIsTTY - beq CS.RUN.NewLine.8 + lda bIsTTY + beq CS.RUN.NewLine.8 - lda #C.LF - >SYSCALL PutChar + lda #C.LF + >SYSCALL PutChar CS.RUN.NewLine.8 - clc - rts + clc + rts *-------------------------------------- -CS.RUN.ISATTY ldy #S.PS.hStdOut - lda (pPS),y - tax - lda hFDs-1,x - >SYSCALL GetMemPtr - >STYA ZPPtr1 - lda (ZPPtr1) - beq .9 - - inc bIsTTY +CS.RUN.ISATTY ldy #S.PS.hStdOut + lda (pPS),y + tax + lda hFDs-1,x + >SYSCALL GetMemPtr + >STYA ZPPtr1 + lda (ZPPtr1) + beq .9 -.9 rts + inc bIsTTY + +.9 rts *-------------------------------------- -CS.DOEVENT sec - rts +CS.DOEVENT sec + rts *-------------------------------------- -CS.QUIT jsr LeaveSubDir - bcc CS.QUIT +CS.QUIT jsr LeaveSubDir + bcc CS.QUIT - ldy #hFilter - jsr .7 + ldy #hFilter + jsr .7 - ldy #hPWBuf - jsr .7 + ldy #hPWBuf + jsr .7 - ldy #hLineBuf + ldy #hLineBuf -.7 lda (pData),y - beq .8 +.7 lda (pData),y + beq .8 - >SYSCALL FreeMem + >SYSCALL FreeMem -.8 clc - rts +.8 clc + rts *-------------------------------------- FileType2PSTR ldy #0 -.1 cmp PRODOS.FT.HEX,y - beq .8 +.1 cmp PRODOS.FT.HEX,y + beq .8 - iny - cpy #PRODOS.FT.TXT-PRODOS.FT.HEX - bne .1 + iny + cpy #PRODOS.FT.TXT-PRODOS.FT.HEX + bne .1 - pha - lsr - lsr - lsr - lsr - ora #$30 - cmp #'9'+1 - bcc .2 + pha + lsr + lsr + lsr + lsr + ora #$30 + cmp #'9'+1 + bcc .2 - adc #6 + adc #6 -.2 sta PRODOS.FT.DFLT+1 - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .3 +.2 sta PRODOS.FT.DFLT+1 + pla + and #$0F + ora #$30 + cmp #'9'+1 + bcc .3 - adc #6 + adc #6 -.3 sta PRODOS.FT.DFLT+2 +.3 sta PRODOS.FT.DFLT+2 -.8 tya - asl - asl CC - adc L.PRODOS.FT.TXT - tay +.8 tya + asl + asl CC + adc L.PRODOS.FT.TXT + tay - lda L.PRODOS.FT.TXT+1 - adc #0 + lda L.PRODOS.FT.TXT+1 + adc #0 - rts + rts *-------------------------------------- -Mod2CSTR ldy #S.STAT.MODE+1 - lda (ZPFileStat),y - lsr - php C = RU +Mod2CSTR ldy #S.STAT.MODE+1 + lda (ZPFileStat),y + lsr + php C = RU - lsr - lsr - lsr - tax - lda TYPES,x - >STA.G MOD + lsr + lsr + lsr + tax + lda TYPES,x + >STA.G MOD - plp + plp - ldy #S.STAT.MODE - lda (ZPFileStat),y + ldy #S.STAT.MODE + lda (ZPFileStat),y - ldy #MOD+1 - ldx #8 + ldy #MOD+1 + ldx #8 -.1 pha - lda #'-' - bcc .2 +.1 pha + lda #'-' + bcc .2 - lda ACCESS,x + lda ACCESS,x -.2 sta (pData),y +.2 sta (pData),y - iny - pla - asl + iny + pla + asl - dex - bpl .1 + dex + bpl .1 - >PUSHEA.G MOD - rts + >PUSHEA.G MOD + rts *-------------------------------------- - .INB usr/src/shared/x.fileenum.s + .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END *-------------------------------------- -OptionList .AS "ACFLRacflr" -OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse +OptionList .AS "ACFLRacflr" +OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse *-------------------------------------- MSG.USAGE .AS "Usage : LS [-A] [-C] [-F] [-L] [-R] [filespec]\r\n" .AS " -A : Show dot files\r\n" @@ -829,50 +828,52 @@ MSG.USAGE .AS "Usage : LS [-A] [-C] [-F] [-L] [-R] [filespec]\r\n" .AS " -F : Show full paths\r\n" .AS " -L : Use long listing format\r\n" .AZ " -R : Recursively list subdirectories\r\n" -MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %s %H %s" -MSG.REG .AZ "%19s" -MSG.DIREXT .AZ "%s %6s %6s %s %s %s" -MSG.DIR .AZ "\e[32m%s/\e[0m" -MSG.BDEVEXT .AZ "/%15s s%dd%d Blocks Used:%5D Total:%5D" -MSG.BDEV .AZ "\e[32m%s/\e[0m" -MSG.ENTER .AZ "Directory:%s" +*-------------------------------------- +MSG.ENTER .AZ "Directory:%s" +MSG.REG .AZ "%19s" +MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %s %H %s" +MSG.DIR .AZ "\e[32m%s/\e[0m" +MSG.DIREXT .AZ "%s %6s %6s %s %s %s" +MSG.BDEV .AZ "\e[32m%s/\e[0m" +MSG.BDEVEXT .AZ "/%15s s%dd%d Blocks Used:%5D Total:%5D" *-------------------------------------- PRODOS.FT.HEX .HS 0406FAFCFDE2CBCCCFFF PRODOS.FT.TXT .AZ "txt" - .AZ "bin" - .AZ "asm" - .AZ "bas" - .AZ "var" - .AZ "atk" - .AZ "pix" - .AZ "fon" - .AZ "pak" - .AZ "sys" + .AZ "bin" + .AZ "asm" + .AZ "bas" + .AZ "var" + .AZ "atk" + .AZ "pix" + .AZ "fon" + .AZ "pak" + .AZ "sys" PRODOS.FT.DFLT .AZ "$ " -MSG.NODATE .AZ "" -FMT.Date .AZ "%d-%b-%y" -FMT.Time .AZ "%H:%M:%S " -FMT.string6 .AZ "%6s" -FMT.int16 .AZ "%6D" -TYPES .AS "-dbclssp" -ACCESS .AS "xwrxwrxwr" +MSG.NODATE .AZ "" +FMT.Date .AZ "%d-%b-%y" +FMT.Time .AZ "%H:%M:%S " +FMT.string6 .AZ "%6s" +FMT.int16 .AZ "%6D" +TYPES .AS "-dbclssp" +ACCESS .AS "xwrxwrxwr" *-------------------------------------- - .DUMMY - .OR 0 + .DUMMY + .OR 0 DS.START -MOD .BS 11 drwxrwxrwx0 -USER .BS 7 -GROUP .BS 7 +MOD .BS 11 drwxrwxrwx\0 +USER .BS 7 +GROUP .BS 7 -TIME.Create .BS 20 -TIME.Mod .BS 20 TIME.SysTime .BS S.TIME -hLineBuf .BS 1 -hPWBuf .BS 1 +TIME.Create .BS 10 DD-mmm-YY\0 +TIME.Mod .BS 10 - .INB usr/src/shared/x.fileenum.g -DS.END .ED +hLineBuf .BS 1 +hPWBuf .BS 1 + + .INB usr/src/shared/x.fileenum.g +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/ls.s diff --git a/LIB/LIBCIFS.S.IO.txt b/LIB/LIBCIFS.S.IO.txt index 05c4f0a3..bd1c1cd0 100644 --- a/LIB/LIBCIFS.S.IO.txt +++ b/LIB/LIBCIFS.S.IO.txt @@ -124,27 +124,19 @@ CIFS2.MKDir jsr ReadSocket *-------------------------------------- CIFS.OpenDir >STYA pPath resolved path - >LDYAI S.FD.DIR - >SYSCALL2 GetMem + jsr CIFS.NewFD bcs .9 - >STYA ZPPtr2 - stx hFD - lda #S.FD.T.DIR - sta (ZPPtr2) - - lda hHandler - ldy #S.FD.PFT - sta (ZPPtr2),y + sta (pFD) lda #0 ldy #S.FD.DIR.EPB - sta (ZPPtr2),y EOF Flag + sta (pFD),y EOF Flag iny - sta (ZPPtr2),y + sta (pFD),y iny - sta (ZPPtr2),y + sta (pFD),y >PUSHW pPath >PUSHWZ @@ -153,6 +145,8 @@ CIFS.OpenDir >STYA pPath resolved path bcc .9 jsr CIFS.FreeFD + stz CIFS.Status + sec .9 rts @@ -161,7 +155,7 @@ CIFS2.OpenDir lda #MLI.E.BADCALL sec rts *-------------------------------------- -CIFS.ReadDir jsr GetPFD +CIFS.ReadDir jsr CIFS.GetFD * jsr ClearSocket @@ -247,7 +241,7 @@ CIFS.ReadDir.Send .9 rts *-------------------------------------- -CIFS2.ReadDir jsr GetPFD +CIFS2.ReadDir jsr CIFS.GetFD jsr ReadSocket bcs .9 @@ -588,6 +582,9 @@ CIFS2.FOpen jsr ReadSocket jsr CIFS.NewFD bcs .91 + + lda #S.FD.T.REG + sta (pFD) ldy #S.NETBIOS+S.SMB.H+6 FileID lda (ZPRespPtr),y @@ -644,7 +641,7 @@ CIFS2.FOpen jsr ReadSocket sec .91 stz CIFS.Status - jmp FreeRespData + jsr FreeRespData bra .90 .9 jsr Exit.NODATA @@ -654,7 +651,7 @@ CIFS2.FOpen jsr ReadSocket .99 rts *-------------------------------------- -CIFS.FClose jsr GetPFD +CIFS.FClose jsr CIFS.GetFD jsr GetCtx @@ -713,10 +710,10 @@ CIFS2.FClose sta hFILE .99 rts *-------------------------------------- -CIFS.FRead ldy #4 hNod +CIFS.FRead ldy #4 hFILE lda (pStack),y - jsr GetPFD + jsr CIFS.GetFD jsr GetCtx @@ -856,10 +853,10 @@ CIFS2.FRead jsr ReadSocket .90 >POP 5 .99 rts *-------------------------------------- -CIFS.FWrite ldy #4 hNod +CIFS.FWrite ldy #4 hFILE lda (pStack),y - jsr GetPFD + jsr CIFS.GetFD jsr GetCtx @@ -1006,14 +1003,14 @@ CIFS.FFlush clc Nothing to do *-------------------------------------- CIFS2.FFlush *-------------------------------------- -CIFS.FSeek ldy #5 hNod +CIFS.FSeek ldy #5 hFILE lda (pStack),y - jsr GetPFD + jsr CIFS.GetFD >PULLA tax whence - >PULLL DWORD + >PULLL ZPPtr1 ZPPtr2 inc pStack @@ -1165,16 +1162,34 @@ CIFS2.Rename jsr ReadSocket .99 >RET 4 *-------------------------------------- -CIFS.NewFD >LDYAI S.FD.REG +CIFS.NewFD ldx #1 + +.1 lda hFDs-1,x + beq .2 + + inx + cpx #K.hFD.MAX+1 + bne .1 + + lda #E.OOH +* sec + rts + +.2 stx hFILE + + >LDYAI 16 S.FD.REG = S.FD.DIR = 16 >SYSCALL2 GetMem bcs .9 >STYA pFD stx hFD - - lda #S.FD.T.REG - sta (pFD) - + + txa + ldx hFILE + + sta hFDs-1,x + stz hFDs.hName-1,x + lda hHandler ldy #S.FD.PFT sta (pFD),y @@ -1183,9 +1198,28 @@ CIFS.NewFD >LDYAI S.FD.REG .9 rts *-------------------------------------- +CIFS.GetFD sta hFILE + + tax + phx + + lda hFDs.hName-1,x + >SYSCALL2 GetMemPtr + >STYA pPath + + plx + lda hFDs-1,x + >SYSCALL2 GetMemPtr + >STYA pFD + rts +*-------------------------------------- CIFS.FreeFD pha lda hFD >SYSCALL2 FreeMem + + ldx hFILE + stz hFDs-1,x + pla rts *-------------------------------------- @@ -1212,10 +1246,10 @@ CIFS.RWGetFidOfs *-------------------------------------- CIFS2.RWSetOfsY phy - ldy #4 hNod + ldy #4 hFILE lda (pStack),y - jsr GetPFD + jsr CIFS.GetFD ply Count LO phy diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index ae426b88..27c36bd0 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -19,7 +19,7 @@ ZS.START ZPReqPtr .BS 2 ZPReqLen .BS 2 ZPCtxPtr .BS 2 -pFD .BS 2 +ZPRespPtr .BS 2 ZPPtr1 .BS 2 ZPPtr2 .BS 2 @@ -31,11 +31,10 @@ pPath .BS 2 flags .BS 1 ftype .BS 1 auxtype .BS 2 -ZPRespPtr .BS 2 +pFD .BS 2 bFlag .BS 1 ByteCountOfs .BS 1 -DWORD .BS 4 ZS.END .ED *-------------------------------------- @@ -521,19 +520,6 @@ CIFS.CallBack bit CIFS.Status ply jmp (J.CIFS2,x) *-------------------------------------- -GetPFD tax - phx - - lda hFDs.hName-1,x - >SYSCALL2 GetMemPtr - >STYA pPath - - plx - lda hFDs-1,x - >SYSCALL2 GetMemPtr - >STYA pFD - rts -*-------------------------------------- GetCTX lda MountTable+2 >SYSCALL2 GetMemPtr >STYA ZPCtxPtr diff --git a/ProDOS.FX/ProDOS.S.LDR.txt b/ProDOS.FX/ProDOS.S.LDR.txt index 47dcc8be..3ae6f5dd 100644 --- a/ProDOS.FX/ProDOS.S.LDR.txt +++ b/ProDOS.FX/ProDOS.S.LDR.txt @@ -356,10 +356,10 @@ DS1216E.DATA2 .EQ A1L *-------------------------------------- LDR.ClkDevScan php sei - + lda RDCXROM php - + sta SETCXROM * sta $C100 @@ -387,9 +387,9 @@ LDR.ClkDevScan php .3 lda DS1216E.SIG-1,y phy - + ldy #8 ....of 8 bits - + .4 ldx #0 lsr bcc .5 @@ -420,7 +420,7 @@ LDR.ClkDevScan php plp bmi .8 - + sta CLRCXROM .8 plp @@ -444,7 +444,7 @@ LDR.ClkDevScan php LDR.ClkDevTCLK stz idxl lda #$C1 sta idxl+1 - + lda #1 sta LDR.SlotIdx @@ -615,7 +615,7 @@ LDR.BlkDevScan stz idxl cpx #2 CS if 2 devs or more jsr LDR.AddBlkDevs install 1 or 2 devices from this slot. -.7 +.7 .8 dec idxl+1 next lower slot. dec LDR.SlotIdx have all slots been checked ? @@ -875,7 +875,7 @@ LDR.CheckDiskID ldy #5 clc php - + .8 ldx LDR.SlotIdx lda sltbit-1,x @@ -883,18 +883,18 @@ LDR.CheckDiskID ldy #5 .9 plp rts - + .3 sec php - - ldx #0 - + + ldx #0 + .4 cmp (idxl),y bne .9 - + inx bne .4 - + bra .8 *-------------------------------------- LDR.SetDevID ldy #$FE check attributes byte. @@ -907,34 +907,37 @@ LDR.SetDevID ldy #$FE check attributes byte. sta devid rts *-------------------------------------- -LDR.Scr80Select php +LDR.Scr80Select jsr LDR.IsIIc + bcs .99 + + php sei - + sta SETC3ROM ldx #COL80IDX.Cnt-1 - -.1 ldy COL80IDX,x + +.1 ldy COL80IDX,x lda $C300,y cmp COL80VAL,x bne .9 dex bpl .1 - + lda $C30C is it an apple 80 col compatible card? and #$F0 cmp #$80 bne .9 - - + + plp rts .9 sta CLRC3ROM plp - rts +.99 rts *-------------------------------------- LDR.Scr80Init lda #$8C Reset 80 col screen ($0C:HOME) jsr $C300 @@ -965,6 +968,7 @@ LDR.Scr80Init lda #$8C Reset 80 col screen ($0C:HOME) sta SETIOUDIS sta SETDHIRES bmi .10 + sta CLRIOUDIS .10 sta CLRTEXT @@ -1088,6 +1092,15 @@ LDR.PrintX bit RROMBNK2 sta CLRPAGE2 for screen holes proper access rts *-------------------------------------- +LDR.IsIIc lda MACHID + and #MACHID.T + cmp #MACHID.T.IIc + beq .9 + + clc + +.9 rts +*-------------------------------------- PALETTE.MAIN .HS 00.02.04.06.08.0A.0C.0E .HS 01.03.05.07.09.0B.0D.0F PALETTE.AUX .HS 00.01.02.03.04.05.06.07 diff --git a/SHARED/X.FILEENUM.S.txt b/SHARED/X.FILEENUM.S.txt index 3be4cbb6..770871ed 100644 --- a/SHARED/X.FILEENUM.S.txt +++ b/SHARED/X.FILEENUM.S.txt @@ -190,7 +190,7 @@ InitSrcDirYA >PUSHYA bne .2 .3 txa - beq .91 no wc, file not found.... + beq .90 no wc, file not found.... .4 jsr GetPtr1Len Search end of string..... @@ -253,8 +253,8 @@ InitSrcDirYA >PUSHYA clc rts - -.91 lda #MLI.E.FNOTFND + +.90 lda #MLI.E.FNOTFND .9 pha >LDA.G hFullPath @@ -357,7 +357,7 @@ InitDstDirYA >PUSHYA .7 jsr .9 Cleanup clc -.99 rts + rts .9 pha >LDA.G hFullPath @@ -551,43 +551,47 @@ EnterSubDirY lda (pData),y .8 rts *-------------------------------------- LeaveSubDir >LDA.G index - beq .9 + beq .7 jsr GethDIRENT.A + jsr LeaveSubDir.free + + jsr GethDIR beq .1 - pha - lda #0 - sta (pData),y - pla - >SYSCALL FreeMem - -.1 jsr GethDIR - pha lda #0 sta (pData),y pla >SYSCALL CloseDir - >DEC.G index +.1 >DEC.G index bne .8 - ldy #hSrcBasePath - lda (pData),y - >SYSCALL FreeMem +.7 >LDA.G hSrcBasePath + jsr LeaveSubDir.free .DO X.COPY.TO.DEST=1 - ldy #hDstBasePath - lda (pData),y - >SYSCALL FreeMem + >LDA.G hDstBasePath + jsr LeaveSubDir.free .FIN -.9 sec + sec rts .8 clc rts +*-------------------------------------- +LeaveSubDir.free + tax + beq .8 + + lda #0 + sta (pData),y + txa + >SYSCALL FreeMem + +.8 rts *-------------------------------------- BasePath.. .DO X.COPY.TO.DEST=1 diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index 12c3b51e..12d2ce13 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -142,11 +142,6 @@ DEV.WRITE ldx #IOCTL.WRITE *\-------------------------------------- K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd - jsr DEV.GetFreeFD - bcs .9 - - stx IO.hFILE - ldy #$ff ldx #S.FD.DEV @@ -157,22 +152,13 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd txa tay - lda #0 + lda #S.FD.T.CDEV - jsr K.GetMem + jsr DEV.MkFDy bcs .9 - >STYA pFD >STYA .4+1 - stx IO.hFD - - txa - - ldx IO.hFILE - sta hFDs-1,x - stz hFDs.hName-1,x - ldy #S.FD.DEV-1 .2 lda (ZPPtr1),y @@ -267,15 +253,25 @@ DEV.GetPDrv ldy #S.FD.DEV.DRVPTR rts *-------------------------------------- -DEV.MkFD sta .8+1 S.FD.T - - jsr DEV.GetFreeFD - bcs .9 - - stx IO.hFILE - - ldy #16 MAX=16 for S.FD.DIR +DEV.MkFD ldy #16 Y = Size, MAX=16 for S.FD.DIR +DEV.MkFDy sta .8+1 A = S.FD.T + + ldx #1 + +.1 lda hFDs-1,x + beq .2 + + inx + cpx #K.hFD.MAX+1 + bne .1 + + lda #E.OOH +* sec + rts + +.2 stx IO.hFILE + lda #0 ldx #S.MEM.F.INIT0+S.MEM.F.FD jsr MEM.GetMem.YAX @@ -284,6 +280,8 @@ DEV.MkFD sta .8+1 S.FD.T >STYA pFD stx IO.hFD + pha + txa .7 ldx IO.hFILE @@ -292,27 +290,13 @@ DEV.MkFD sta .8+1 S.FD.T stz hFDs.hName-1,x .8 lda #$ff SELF MODIFIED - sta (pFD) X = hFD, A = T + sta (pFD) + + pla Y,A = pFD, X = hFILE * clc .9 rts *-------------------------------------- -DEV.GetFreeFD ldx #1 - - clc - -.1 lda hFDs-1,x - beq .8 - - inx - cpx #K.hFD.MAX+1 - bne .1 - - lda #E.OOH -* sec - -.8 rts -*-------------------------------------- DEV.hFDFree lda IO.hFD beq .8