diff --git a/SYS/KERNEL.S.ARG.txt b/SYS/KERNEL.S.ARG.txt index 9580b0aa..5c8ea2e7 100644 --- a/SYS/KERNEL.S.ARG.txt +++ b/SYS/KERNEL.S.ARG.txt @@ -28,10 +28,10 @@ K.GetArgC jsr S.InitArgPtr1 * CC : Y,A = PStr To Arg[A] * CS : Out Of Bound *-------------------------------------- -K.GetArgA sta K.GetArgA.Idx +K.GetArgA sta .2+1 jsr S.InitArgPtr1 - lda K.GetArgA.Idx + lda .2+1 beq .8 ldx #0 @@ -39,7 +39,7 @@ K.GetArgA sta K.GetArgA.Idx .1 lda (ZPQuickPtr1) beq .9 - cpx K.GetArgA.Idx +.2 cpx #$ff Self Modified beq .8 jsr S.NextArgPtr1 @@ -67,8 +67,6 @@ S.NextArgPtr1 lda ZPQuickPtr1 inc ZPQuickPtr1+1 .8 rts *-------------------------------------- -K.GetArgA.Idx .BS 1 -*-------------------------------------- MAN SAVE SYS/KERNEL.S.ARG LOAD SYS/KERNEL.S diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 7cb905a1..7e4d3d08 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -34,7 +34,15 @@ K.LoadBinYA >STYA K.LoadBin.Filename clc rts -.3 >PUSHWI $2000 Aux type +.3 >PUSHWI KrnBuf256 + >PUSHW K.LoadBin.Filename + jsr K.STAT Look for AUXTYPE + bcs .99 + + >LDYA KrnBuf256+S.STAT.AUXTYPE + >STYA K.LoadBin.OldBase + + >PUSHYA >PUSHBI 6 S.FILEINFO.TYPE.BIN >PUSHBI SYS.FOPEN.R >PUSHW K.LoadBin.Filename @@ -47,27 +55,8 @@ K.LoadBinYA >STYA K.LoadBin.Filename jsr K.GetMemPtrA >STYA K.LoadBin.NewBase - >LDYA K.LoadBin.Filename - jsr K.MLIGetFileInfoYA Get File Info for AUXTYPE - bcs .98 - - >STYA ZPQuickPtr1 - - ldy #2 get AUXTYPE - lda (ZPQuickPtr1),y - sta K.LoadBin.OldBase - iny - lda (ZPQuickPtr1),y - sta K.LoadBin.OldBase+1 - - bit RRAMWRAMBNK2 - bit RRAMWRAMBNK2 - jsr K.InsBin - bit RRAMWRAMBNK1 - bit RRAMWRAMBNK1 - bcs .98 relocation error, dicard Code segment >LDYA K.LoadBin.Filename get back bin path diff --git a/SYS/KERNEL.S.DIR.txt b/SYS/KERNEL.S.DIR.txt index 2d063776..49e1259a 100644 --- a/SYS/KERNEL.S.DIR.txt +++ b/SYS/KERNEL.S.DIR.txt @@ -507,26 +507,6 @@ K.READDIRA.AddToBuf inc ZPQuickPtr4+1 .8 rts *-------------------------------------- - lda MLICALL.PARAMS+S.FILEINFO.ACCESS - cmp #S.FILEINFO.ACCESS.FULL - bne .5 - - lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO - bra .6 - -.5 and #S.FILEINFO.ACCESS.R - beq .6 - lda #S.STAT.MODE.XO+S.STAT.MODE.RO - -.6 ldy #S.STAT.MODE - sta (ZPQuickPtr3),y - - ldy #S.STAT.BLOCKS - lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE - sta (ZPQuickPtr3),y - iny - lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE - sta (ZPQuickPtr3),y ldy #S.STAT.BLKSIZE+1 lda #2 Block size is $200 for ProDOS sta (ZPQuickPtr3),y diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 01e28872..ca20d6d0 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -46,14 +46,8 @@ K.LoadDrvYA >STYA K.LoadDrv.CmdArray bcs .97 - bit RRAMWRAMBNK2 - bit RRAMWRAMBNK2 - jsr K.InsDrv - bit RRAMWRAMBNK1 - bit RRAMWRAMBNK1 - bcs .97 ldy #S.DEV.F diff --git a/SYS/KERNEL.S.FILE.txt b/SYS/KERNEL.S.FILE.txt index 1739ec3f..ac0d9c7a 100644 --- a/SYS/KERNEL.S.FILE.txt +++ b/SYS/KERNEL.S.FILE.txt @@ -144,7 +144,7 @@ K.FCLOSEA.1 ldy #S.FILE.PRODOS.REF *-------------------------------------- K.FREAD jsr K.PFTCheckFileSTK >PULLA - jsr FIL.SetupPrt1A + jsr FILE.SetupPrt1A >PULLW MLICALL.PARAMS+4 >PULLW MLICALL.PARAMS+2 >MLICALL MLIREAD @@ -162,7 +162,7 @@ K.FREAD jsr K.PFTCheckFileSTK *-------------------------------------- K.FWRITE jsr K.PFTCheckFileSTK >PULLA - jsr FIL.SetupPrt1A + jsr FILE.SetupPrt1A >PULLW MLICALL.PARAMS+4 >PULLW MLICALL.PARAMS+2 >MLICALL MLIWRITE @@ -175,7 +175,7 @@ K.FWRITE jsr K.PFTCheckFileSTK * A = hFILE *-------------------------------------- K.FFLUSHA jsr K.PFTCheckFileA - jsr FIL.SetupPrt1A + jsr FILE.SetupPrt1A >MLICALL MLIFLUSH rts *-------------------------------------- @@ -188,7 +188,7 @@ K.FFLUSHA jsr K.PFTCheckFileA *-------------------------------------- K.FSEEK jsr K.PFTCheckFileSTK >PULLA - jsr FIL.SetupPrt1A + jsr FILE.SetupPrt1A >PULLB K.FSEEK.FROM >PULLW K.FSEEK.OFFSET >PULLW K.FSEEK.OFFSET+2 @@ -245,7 +245,7 @@ K.FSEEK.OFFSET .BS 4 * Y,A,X = Offset *-------------------------------------- K.FTELLA jsr K.PFTCheckFileA -K.FTELLA.1 jsr FIL.SetupPrt1A +K.FTELLA.1 jsr FILE.SetupPrt1A >MLICALL MLIGETMARK bcs .9 >LDYA MLICALL.PARAMS+2 @@ -262,7 +262,7 @@ K.FTELLA.1 jsr FIL.SetupPrt1A * CS : *-------------------------------------- K.FEOFA jsr K.PFTCheckFileA - jsr FIL.SetupPrt1A + jsr FILE.SetupPrt1A jsr K.FTELLA.1 bcs .9 >STYA K.FEOFA.MARK @@ -304,43 +304,48 @@ K.RENAME jsr K.PFTCheckPathSTK *-------------------------------------- * K.STAT * In : -* PULLB = hFILE -* PULLW = PTR to S.STAT buffer -*-------------------------------------- -K.STAT jsr K.PFTCheckFileA - >PULLA - jsr FIL.SetupPrt1A - >PULLW ZPQuickPtr2 - >MLICALL MLIGETFILEINFO - bcs .9 - >LDYAI MLICALL.PARAMS+3 - - - - -.9 rts -*-------------------------------------- -* K.FSTAT -* In : * PULLW = PTR to Filename * PULLW = PTR to S.STAT buffer *-------------------------------------- -K.FSTAT jsr K.PFTCheckPathSTK +K.STAT jsr K.PFTCheckPathSTK >PULLW MLICALL.PARAMS+1 >PULLW ZPQuickPtr2 >MLICALL MLIGETFILEINFO bcs .9 - >LDYAI MLICALL.PARAMS+3 - + jsr FILE.MLI2STAT.Types + clc .9 rts *-------------------------------------- -FIL.SetupPrt1A jsr K.GetMemPtrA +FILE.SetupPrt1A jsr K.GetMemPtrA >STYA ZPQuickPtr1 ldy #S.FILE.PRODOS.REF lda (ZPQuickPtr1),y sta MLICALL.PARAMS+1 rts -*-------------------------------------- +*-------------------------------------- +FILE.MLI2STAT.Types + lda MLICALL.PARAMS+S.FILEINFO.ACCESS + cmp #S.FILEINFO.ACCESS.FULL + bne .1 + + lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO + bra .2 + +.1 and #S.FILEINFO.ACCESS.R + beq .2 + lda #S.STAT.MODE.XO+S.STAT.MODE.RO + +.2 ldy #S.STAT.MODE + sta (ZPQuickPtr3),y + + ldy #S.STAT.BLOCKS + lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE + sta (ZPQuickPtr3),y + iny + lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE+1 + sta (ZPQuickPtr3),y + rts +*-------------------------------------- MAN SAVE SYS/KERNEL.S.FILE LOAD SYS/KERNEL.S diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 429060ba..fff2362f 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -5,30 +5,6 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -* PUBLIC -*-------------------------------------- -K.CheckPrefixYA >STYA MLICALL.PARAMS+1 - >STYA ZPQuickPtr1 - lda (ZPQuickPtr1) - beq .98 - tax - ldy #1 - lda (ZPQuickPtr1),y - cmp #'/' - bne .98 - cpx #1 "/" allowed for listing online volumes - beq .8 - >MLICALL MLIGETFILEINFO - bcs .98 No, invalid path... - lda MLICALL.PARAMS+4 Check file type - cmp #$0F Directory? - bne .98 -.8 clc - rts -.98 lda #SYSMGR.ERRIDIR -.99 sec - rts -*-------------------------------------- * K.FileSearch * in : * PULLW = PSTR to File Name (PSTRING) @@ -78,10 +54,11 @@ K.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA cmp (ZPQuickPtr4) bne .4 - stx KrnBuf256 set string length + stx KrnBuf256 set string length - >LDYAI KrnBuf256 - jsr K.MLIGetFileInfoYA + >PUSHWI KrnSTAT + >PUSHWI KrnBuf256 + jsr K.STAT bcs .1 Failed...retry next path... lda K.FileSearch.hSrch Discard Expanded hSrch list @@ -95,7 +72,6 @@ K.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA sec .99 rts *-------------------------------------- -K.FileSearch.File .BS 2 K.FileSearch.hSrch .BS 1 K.FileSearch.Index .BS 1 *-------------------------------------- diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 09cc0091..7e3af235 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -5,14 +5,16 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -* A2osX.SYSCALL (AUXLC to AUXLC) +* SYSCALL (AUXLC to AUXLC) +* Used by user & kernel for inter bank Calls * In: * X = SYSfnc.Index * Y,A = free for Inline param *-------------------------------------- -A2osX.GP.Start jmp A2osX.SYSCALL1 + jmp A2osX.SYSCALL1 *-------------------------------------- * LIBCALL (AUXLC to AUXLC) +* Used by user * In: * Y = LIB.ID * X = LIBfnc.Index @@ -20,7 +22,8 @@ A2osX.GP.Start jmp A2osX.SYSCALL1 *-------------------------------------- jmp A2osX.LIBCALL1 *-------------------------------------- -* Kernel.MLICALL (AUXLC to MAINLC) +* MLICALL (AUXLC to MAINLC) +* Used by Kernel * In: * X = MLI Function * A = Param Count @@ -35,46 +38,66 @@ A2osX.GP.Start jmp A2osX.SYSCALL1 jmp (pDev) pDevJmp .BS $BE20-* *-------------------------------------- -GO.Reset jsr GO.AUXLC +GO.Reset jsr GO.A2osX jmp K.KernelRun *-------------------------------------- -A2osX.SYSCALL1 phx - bit KERNEL.SYSCALL.FLAGS,x - bmi .2 - ldx #RRAMWRAMBNK1 - .HS 2C -.2 ldx #RRAMWRAMBNK2 - bit $C000,x - bit $C000,x - plx - jmp (KERNEL.SYSCALL,x) +* *** MUST BE REINTRANT *** *-------------------------------------- -A2osX.LIBCALL1 pha - phx - tya - >SYSCALL SYS.GetMemPtrA - >STYA .1+1 - plx +A2osX.SYSCALL1 bit KERNEL.SYSCALL.FLAGS,x + bpl .8 in $E000, no BNK change + + sta .7+1 save A (Func Arg) + + lda KERNEL.SYSCALL.FLAGS+1,x Get Target BNK + + cmp $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2 + beq .7 same as actual BNK...go restore A and JMP + + stx .6+1 save X (Func ID) + + tax set Target BNK in x + lda $D000 get source BNK + bit $C000,x switch to Target BNK + bit $C000,x + pha + + jsr .7 go to kernel..... + + stx .5+1 save X + plx get back Source BNK + bit $C000,x + bit $C000,x +.5 ldx #$FF Self Modified + rts Unmodified Carry + +.6 ldx #$FF Self Modified +.7 lda #$FF Self Modified +.8 jmp (KERNEL.SYSCALL,x) +*-------------------------------------- +A2osX.LIBCALL1 pha No need to save X, K.GetMemPtrA will leave it unmodified + tya Get LIB hMem in A + jsr K.GetMemPtrA Get LIB Code Segment (MemMgr in $E000, no BNK change) + >STYA pLib pla -.1 jmp $FFFF + jmp (pLib) *-------------------------------------- -A2osX.MLICALL1 jsr GO.MAINLC - stx .1 +A2osX.MLICALL1 stx .1 sta MLICALL.PARAMS + jsr GO.ProDOS jsr MLI .1 .BS 1 .DA MLICALL.PARAMS - jsr GO.AUXLC + jsr GO.A2osX rts *-------------------------------------- -GO.MAINLC asl RDLCBNK2 We re coming from AUXLC, saving bank... - ror A2osX.SaveLCBNK +GO.ProDOS lda $D000 We re coming from AUXLC, saving bank... + sta GO.A2osX.BNK+1 php clc .HS 2C bit abs -GO.AUXLC php +GO.A2osX php sec sei @@ -96,7 +119,7 @@ GO.AUXLC php ldy pStack - bcs .2 if CS, go AUXLC + bcs GO.A2osX.BNK if CS, go AUXLC bit RRAMWRAMBNK1 Go MAINLC (ProDOS), always BNK1 bit RRAMWRAMBNK1 @@ -108,11 +131,7 @@ GO.AUXLC php sta CLRALTZP bra GO.EXIT -.2 bit A2osX.SaveLCBNK Go AUXLC....Previous Go MAINLC Coming from BNK2 ? - bmi .3 - ldx #RRAMWRAMBNK1 - .HS 2C bit abs -.3 ldx #RRAMWRAMBNK2 +GO.A2osX.BNK ldx #$FF Self Modified bit $C000,x bit $C000,x @@ -129,9 +148,8 @@ GO.EXIT sty pStack ldx A2osX.SaveX lda A2osX.SaveA plp -GO.EXIT.JMP jmp $FFFF +GO.EXIT.JMP jmp $FFFF Self Modified *-------------------------------------- -A2osX.SaveLCBNK .BS 1 A2osX.SaveA .BS 1 A2osX.SaveX .BS 1 A2osX.SaveY .BS 1 @@ -140,14 +158,6 @@ BrkHandler bra * *-------------------------------------- IrqHandler bra * *-------------------------------------- -A2osX.GP.End .EQ * -*-------------------------------------- -* CONTROL SECTION : -*-------------------------------------- - .DO A2osX.GP.End>$BEDF - ERROR:GP too big - .FIN -*-------------------------------------- MAN SAVE SYS/KERNEL.S.GP LOAD SYS/KERNEL.S diff --git a/SYS/KERNEL.S.INIT2.txt b/SYS/KERNEL.S.INIT2.txt index 90bbbb03..b8c54563 100644 --- a/SYS/KERNEL.S.INIT2.txt +++ b/SYS/KERNEL.S.INIT2.txt @@ -71,7 +71,7 @@ Kernel.Init2 >LDAXI MSG.Init2 >LDAXI MSG.Setup jsr PrintCStrAX - jsr GO.AUXLC + jsr GO.A2osX jsr K.IrqMgrInit bcs * @@ -86,7 +86,7 @@ Kernel.Init2 >LDAXI MSG.Init2 jsr K.TskMgrInit bcs * - jsr GO.MAINLC Make sure MAIN ZP... + jsr GO.ProDOS Make sure MAIN ZP... lda RROMBNK1 ... & ROM is enabled for X.PRINT.F >LDAXI MSG.Init2.OK diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index bb21a764..d0147c40 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -43,7 +43,7 @@ KERNEL.SYSCALL .DA K.GetMem $00 .DA K.GetEnvYA .DA K.UnsetEnvYA *-------------------------------------- - .DA K.MLICreateFile $40 + .DA 0 $40 .DA 0 .DA 0 .DA 0 @@ -52,32 +52,32 @@ KERNEL.SYSCALL .DA K.GetMem $00 .DA 0 .DA 0 *-------------------------------------- - .DA K.MLIGetFileInfoYA $50 + .DA 0 $50 .DA 0 .DA 0 .DA 0 .DA 0 .DA 0 .DA 0 - .DA K.MLIOpenYA -*-------------------------------------- - .DA K.MLINewLine $60 - .DA K.MLIRead - .DA K.MLIWrite - .DA K.MLICloseA - .DA 0 - .DA 0 - .DA 0 .DA 0 *-------------------------------------- - .DA 0 $70 - .DA 0 - .DA 0 - .DA 0 - .DA 0 - .DA 0 - .DA 0 + .DA K.FOPEN $60 + .DA K.FCLOSEA + .DA K.FREAD + .DA K.FWRITE + .DA K.FFLUSHA + .DA K.FSEEK + .DA K.FTELLA + .DA K.FEOFA +*-------------------------------------- + .DA K.REMOVEYA $70 + .DA K.RENAME + .DA K.STAT .DA 0 + .DA K.OPENDIRYA + .DA K.READDIRA + .DA K.CLOSEDIRA + .DA K.MKDIRYA *-------------------------------------- .DA K.GetDevByIDA $80 .DA 0 @@ -97,7 +97,7 @@ KERNEL.SYSCALL .DA K.GetMem $00 .DA K.Sleep .DA 0 *-------------------------------------- - .DA K.CheckPrefixYA $A0 + .DA 0 $A0 .DA K.FileSearch .DA K.GetFullPathYA .DA 0 @@ -133,26 +133,32 @@ KERNEL.SYSCALL .DA K.GetMem $00 .DA K.DecOutA .DA K.DecOutYA *-------------------------------------- - .DA K.FOPEN $E0 - .DA K.FCLOSEA - .DA K.FREAD - .DA K.FWRITE - .DA K.FFLUSHA - .DA K.FSEEK - .DA K.FTELLA - .DA K.FEOFA + .DA 0 $E0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 *-------------------------------------- - .DA K.REMOVEYA $F0 - .DA K.RENAME - .DA K.STAT - .DA K.FSTAT - .DA K.OPENDIRYA - .DA K.READDIRA - .DA K.CLOSEDIRA - .DA K.MKDIRYA + .DA 0 $F0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + +*-------------------------------------- +* LO Byte : +* #RRAMWRAMBNK1 or #RRAMWRAMBNK2 +* LO Byte : *-------------------------------------- KERNEL.SYSCALL.FLAGS - .DA 0 $00 +*-------------------------------------- + .DA 0 $00 : MEM $E000 .DA 0 .DA 0 .DA 0 @@ -161,7 +167,7 @@ KERNEL.SYSCALL.FLAGS .DA 0 .DA 0 *-------------------------------------- - .DA 0 $10 + .DA 0 $10 : STR $D001 .DA 0 .DA 0 .DA 0 @@ -170,14 +176,22 @@ KERNEL.SYSCALL.FLAGS .DA 0 .DA 0 *-------------------------------------- - .DA 0 $20 - .DA 0 - .DA 0 - .DA 0 - .DA $80 - .DA $80 - .DA $80 - .DA $80 + .DA #RRAMWRAMBNK2 $20 : BIN,DRV,LIB (REL) $D002 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA 0 + + .DA #RRAMWRAMBNK2 $28 : TIME $D002 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 *-------------------------------------- .DA 0 $30 .DA 0 diff --git a/SYS/KERNEL.S.MLI.txt b/SYS/KERNEL.S.MLI.txt deleted file mode 100644 index 0dd35dfd..00000000 --- a/SYS/KERNEL.S.MLI.txt +++ /dev/null @@ -1,117 +0,0 @@ -PR#3 -PREFIX /A2OSX.SRC -NEW -INC 1 -AUTO 6 - .LIST OFF -*-------------------------------------- -* PUBLIC -*-------------------------------------- -K.MLICreateFile >PULLW MLICALL.PARAMS+1 - >PULLB MLICALL.PARAMS+3 Access - >PULLB MLICALL.PARAMS+4 File type - >PULLW MLICALL.PARAMS+5 Aux type - lda #$01 Storage=Standard Files - sta MLICALL.PARAMS+7 - >MLICALL MLICREATE - rts -*-------------------------------------- -* K.MLIGetFileInfoYA -* in : -* Y,A = FileName -* out : -* Y,A = PTR To Buffer (L=15) -*-------------------------------------- -K.MLIGetFileInfoYA - >STYA MLICALL.PARAMS+1 - >MLICALL MLIGETFILEINFO - bcs .9 - >LDYAI MLICALL.PARAMS+3 -.9 rts -*-------------------------------------- -* K.MLIOpenYA -* in : -* YA = FileName -* out : -* A = ref_num -* X = buf hMem -*-------------------------------------- -K.MLIOpenYA >STYA MLICALL.PARAMS+1 - >PUSHWI 1024 get a ProDOS IO buffer - >PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE - jsr K.GetMem - bcs .99 - - phx save Prodos Buffer hMem - >STYA MLICALL.PARAMS+3 - >MLICALL MLIOPEN - bcs .98 - lda MLICALL.PARAMS+5 get ref_num - plx get back Prodos Buffer hMem - rts CC - -.98 plx get back Prodos Buffer hMem - pha save MLI error - txa - jsr K.FreeMemA discard Prodos Buffer - pla get back MLI error - sec -.99 rts -*-------------------------------------- -* K.MLINewline -* in : -* PULLB = ref_num -* PULLB = Enable Mask -* PULLB = Newline Char -*-------------------------------------- -K.MLINewLine >PULLB MLICALL.PARAMS+1 - >PULLB MLICALL.PARAMS+2 - >PULLB MLICALL.PARAMS+3 - >MLICALL MLINEWLINE - rts -*-------------------------------------- -* K.MLIRead -* in : -* PULLB = ref_num -* PULLW = Dest PTR -* PULLW = Bytes To Read -* out : -* Y,A = Bytes Read -*-------------------------------------- -K.MLIRead >PULLB MLICALL.PARAMS+1 - >PULLW MLICALL.PARAMS+2 - >PULLW MLICALL.PARAMS+4 - >MLICALL MLIREAD - bcs .9 - >LDYA MLICALL.PARAMS+6 -.9 rts -*-------------------------------------- -* K.MLIWrite -* in : -* PULLB = ref_num -* PULLW = Src PTR -* PULLW = Bytes To Write -* out : -* Y,A = Bytes Written -*-------------------------------------- -K.MLIWrite >PULLB MLICALL.PARAMS+1 - >PULLW MLICALL.PARAMS+2 - >PULLW MLICALL.PARAMS+4 - >MLICALL MLIWRITE - bcs .9 - >LDYA MLICALL.PARAMS+6 -.9 rts -*-------------------------------------- -* K.MLICloseA -* in : -* A = ref_num -* out : -*-------------------------------------- -K.MLICloseA sta MLICALL.PARAMS+1 - >MLICALL MLICLOSE - rts -*-------------------------------------- -MAN -SAVE SYS/KERNEL.S.MLI -LOAD SYS/KERNEL.S -ASM diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 1ad10ab1..e207b094 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -5,9 +5,26 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -* In : -* PULLW/Y,A = PATH (PSTR) -* Out : +* K.PFTAdd +* In : +* Out : +*-------------------------------------- +K.PFTAdd + clc + rts +*-------------------------------------- +* K.PFTRemove +* In : +* Out : +*-------------------------------------- +K.PFTRemove + clc + rts +*-------------------------------------- +* K.PFTCheckPath___ +* In : +* PULLW/Y,A = PATH (PSTR) +* Out : *-------------------------------------- K.PFTCheckPathSTK lda (pStack) read PTR.LO on top of stack @@ -63,9 +80,10 @@ K.PFTCheckPathYA ldx S.PFT.SYSCALL rts *-------------------------------------- -* In : -* PULLB/A = hFILE/hDIR -* Out : +* K.PFTCheck___ +* In : +* PULLB/A = hFILE/hDIR +* Out : *-------------------------------------- K.PFTCheckFileSTK lda (pStack) read hFILE on top of stack diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index bc5aad59..da058559 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -38,7 +38,7 @@ ZPQuickPtr4 .EQ ZPKERNEL+6 *-------------------------------------- * Kernel Init Stage 3 *-------------------------------------- - jsr GO.AUXLC + jsr GO.A2osX jsr Kernel.Init3 >DEBUGOA @@ -61,13 +61,13 @@ A2osX.BE00.END .EQ * *-------------------------------------- A2osX.D001 .EQ * .PH $D000 + .DA #RRAMWRAMBNK1 .INB SYS/KERNEL.S.RUN .INB SYS/KERNEL.S.STR - .INB SYS/KERNEL.S.CIO - .INB SYS/KERNEL.S.FIO - .INB SYS/KERNEL.S.MLI .INB SYS/KERNEL.S.ARG .INB SYS/KERNEL.S.ENV + .INB SYS/KERNEL.S.CIO + .INB SYS/KERNEL.S.FIO .INB SYS/KERNEL.S.EVT .INB SYS/KERNEL.S.TSK .INB SYS/KERNEL.S.PS @@ -78,8 +78,15 @@ A2osX.D001.END .EQ * *-------------------------------------- A2osX.D002 .EQ * .PH $D000 + .DA #RRAMWRAMBNK2 + .INB SYS/KERNEL.S.BIN + .INB SYS/KERNEL.S.DRV + .INB SYS/KERNEL.S.LIB .INB SYS/KERNEL.S.REL .INB SYS/KERNEL.S.TIME + .INB SYS/KERNEL.S.FILE + .INB SYS/KERNEL.S.DIR + .INB SYS/KERNEL.S.PFT .EP A2osX.D002.END .EQ * *-------------------------------------- @@ -90,19 +97,14 @@ A2osX.E000 .EQ * .INB SYS/KERNEL.S.JMP .INB SYS/KERNEL.S.IRQ .INB SYS/KERNEL.S.MEM - .INB SYS/KERNEL.S.BIN - .INB SYS/KERNEL.S.DRV - .INB SYS/KERNEL.S.LIB -*-------------------------------------- - .INB SYS/KERNEL.S.PFT - .INB SYS/KERNEL.S.FILE - .INB SYS/KERNEL.S.DIR *-------------------------------------- * Make sure KERNEL.S.DEV is the last one *-------------------------------------- .INB SYS/KERNEL.S.DEV .EP A2osX.E000.END .EQ * +*-------------------------------------- +* CONTROL SECTION : *-------------------------------------- .LIST ON *-------------------------------------- @@ -112,6 +114,22 @@ A2osX.D002.SIZE .EQ A2osX.D002.END-A2osX.D002 A2osX.E000.SIZE .EQ A2osX.E000.END-A2osX.E000 *-------------------------------------- .LIST OFF + .DO A2osX.BE00.SIZE>$E0 + .LIST ON +* !!!!!!!!!!!!! ERROR:GP too big !!!!!!!!!!!! + .LIST OFF + .FIN + .DO A2osX.D001.SIZE>$1000 + .LIST ON +* !!!!!!!!!!!!! ERROR:BNK1 too big !!!!!!!!!! + .LIST OFF + .FIN + .DO A2osX.D002.SIZE>$1000 + .LIST ON +* !!!!!!!!!!!!! ERROR:BNK2 too big !!!!!!!!!! + .LIST OFF + .FIN +*-------------------------------------- MAN SAVE SYS/KERNEL.S ASM