diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 8d732b4e..094b8fce 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/A2osX.S.txt b/A2osX.S.txt index e0c72e3c..4ea214a1 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -17,12 +17,12 @@ TmpPtr1 .EQ $0 main & aux ZP TmpPtr2 .EQ $2 main & aux ZP *-------------------------------------- A2osX.KMLOAD .EQ $2000 -A2osX.KMMAXLEN .EQ $4000 -A2osX.OpenBuff1 .EQ $6000 1024 Buffer for MLIOPEN01 -A2osX.OpenBuff2 .EQ $6400 1024 Buffer for MLIOPEN02 -A2osX.ReadBuff .EQ $6800 512 Buffer for MLIREAD01 -Boot.Prefix .EQ $6A00 MLI.MAXPATH -KM.Filename .EQ $6A80 MLI.MAXPATH +A2osX.KMMAXLEN .EQ $6000 +A2osX.OpenBuff1 .EQ $8000 1024 Buffer for MLIOPEN01 +A2osX.OpenBuff2 .EQ $8400 1024 Buffer for MLIOPEN02 +A2osX.ReadBuff .EQ $8800 512 Buffer for MLIREAD01 +Boot.Prefix .EQ $8A00 MLI.MAXPATH +KM.Filename .EQ $8A80 MLI.MAXPATH *-------------------------------------- * Kernel Stage 0 *-------------------------------------- diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index 569db2ea..3ea6b671 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -11,7 +11,12 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/KERNEL.I *-------------------------------------- -ZPFDPtr .EQ ZPBIN + .DUMMY + .OR ZPBIN +ZS.START +ZPFDPtr .BS 2 +ZS.END + .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -19,11 +24,12 @@ CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 - .DA 0 - .DA CS.END-CS.START CS - .DA DS.END-DS.START DS - .DA #16 SS - .DA #4 ZP + .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 #16 Stack Size + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index e61ef89d..381498af 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -483,7 +483,6 @@ DIB .DA #0 .BS 3 .DA #S.DIB.T.GFX .DA #0 - .DA #0 .DA K.VER *-------------------------------------- DCB .DA #S.DCB.T.GFX diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 621b06d2..b7ae1357 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -51,7 +51,7 @@ Dev.Detect >STYA ARGS ldx #$70 ldy #7 - + .1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index 366a06ff..f56d84a6 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -13,7 +13,7 @@ MOU.Init bne .1 clc -.9 rts + rts .2 stx hDevMouse txa diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 7ea6fb62..5692975a 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -39,7 +39,7 @@ L.MouseData .DA MouseData *-------------------------------------- CS.INIT >LDYA L.LIBGUI >SYSCALL LoadLib - bcs .98 + bcs CS.INIT.RTS sta hLIBGUI lda (pPs) @@ -103,18 +103,18 @@ CS.QUIT clc *-------------------------------------- Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor - >LIBCALL hLIBGUI,LIBGUI.GetScreenGC - >PUSHYA - >PUSHW L.CB.Paint - >LIBCALL hLIBGUI,LIBGUI.Draw +* >LIBCALL hLIBGUI,LIBGUI.GetScreenGC +* >PUSHYA +* >PUSHW L.CB.Paint +* >LIBCALL hLIBGUI,LIBGUI.Draw * >LIBCALL hLIBGUI,LIBGUI.GetScreenGC * >PUSHYA - >PUSHW L.GC.Clip +* >PUSHW L.GC.Clip - >PUSHW L.CB.Marylin - >LIBCALL hLIBGUI,LIBGUI.Draw +* >PUSHW L.CB.Marylin +* >LIBCALL hLIBGUI,LIBGUI.Draw >LIBCALL hLIBGUI,LIBGUI.ShowCursor rts diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index d29dfc23..fcc71dae 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -69,6 +69,7 @@ CS.RUN >LDYA L.FILENAME >SYSCALL ExpandStr txa >STA.G hFileName + >PUSHBI 0 >LDYA L.MSG.TOPBAR >SYSCALL printf @@ -78,6 +79,7 @@ CS.RUN >LDYA L.FILENAME >PUSHBI 0 >LDYA L.MSG.TOPBAR.OK bra .2 + .1 >PUSHBI 0 >LDYA L.MSG.TOPBAR.KO @@ -168,22 +170,21 @@ CS.RUN.Loop >SLEEP CS.RUN.Load >PUSHEA.G StatBuf >LDA.G hFileName >SYSCALL GetMemPtr - >PUSHYA + >SYSCALL Stat bcs .99 - sec - >LDA.G StatBuf+S.STAT.SIZE - eor #16 - bne .99 +* >LDA.G StatBuf+S.STAT.SIZE +* eor #16 +* bne .99 - iny - lda (pData),y - iny - ora (pData),y - iny - ora (pData),y - bne .99 +* iny +* lda (pData),y +* iny +* ora (pData),y +* iny +* ora (pData),y +* bne .99 >LDA.G StatBuf+S.STAT.P.TYPE eor #S.FI.T.SYS @@ -212,8 +213,12 @@ CS.RUN.Load >PUSHEA.G StatBuf txa >STA.G hFileBuf - lda #6 + lda #6 60 Hz sta (ZPCfgPtr) + + ldy #1 + lda #4 4 TTYs + sta (ZPCfgPtr),y sec rts @@ -224,7 +229,6 @@ CS.RUN.Save >PUSHWI A2osX.KCONFIG >LDA.G hFileName >SYSCALL GetMemPtr - >SYSCALL FOpen bcs .9 diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index c987dfec..915b241b 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -1,6 +1,17 @@ NEW PREFIX AUTO 4,1 +*-------------------------------------- + .DUMMY + .OR FAC 15 Bytes +BIN.CmdLine .BS 2 +BIN.hMem .BS 1 +BIN.Move.Len .BS 2 +BIN.R.CS.Start .BS 2 +BIN.R.CS.End .BS 2 +BIN.R.End .BS 2 +BIN.R.Offset .BS 2 + .ED *-------------------------------------- * LoadLib * in : @@ -117,7 +128,7 @@ BIN.FindDRV sec .1 jsr K.GetEnv get value for Search Path bcs .9 - >STYA K.FileSearch.SearchPath + >STYA ENV.SearchPath >LDYA BIN.CmdLine @@ -139,7 +150,6 @@ BIN.Find.ENV.LIB .AZ "LIB" * X = hMem of Code Segment *-------------------------------------- BIN.Load >STYA BIN.CmdLine - >STYA .2+1 ldx #0 @@ -163,7 +173,7 @@ BIN.Load >STYA BIN.CmdLine ldy #0 -.2 lda $ffff,y SELF MODIFIED +.2 lda (BIN.CmdLine),y .3 cmp $ffff,y SELF MODIFIED bne .1 iny @@ -261,9 +271,6 @@ BIN.Load.1 sec .99 rts -*-------------------------------------- -BIN.CmdLine .BS 2 -BIN.hMem .BS 1 */-------------------------------------- * # InsDrv * ## C @@ -340,8 +347,6 @@ K.InsDrv >STYA ZPPtr1 sec rts *-------------------------------------- -BIN.Move.Len .BS 2 -*-------------------------------------- BIN.MoveToYA >STYA ZPPtr2 lda BIN.Move.Len+1 @@ -371,13 +376,6 @@ BIN.MoveToYA >STYA ZPPtr2 .3 rts *-------------------------------------- -* BIN.Rel___ : -*-------------------------------------- -BIN.R.CS.Start .BS 2 -BIN.R.CS.End .BS 2 -BIN.R.End .BS 2 -BIN.R.Offset .BS 2 -*-------------------------------------- BIN.RelExe ldy #H.BIN.T+1 lda (ZPPtr1),y cmp /H.BIN.T.BIN65 @@ -510,6 +508,35 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE .8 rts *-------------------------------------- +* 6502/65C02/65816 OPCODES +* Bit 3 : 1 = absolute addressing +* Bit 2-1-0 : opcode + @ length +*-------------------------------------- +* 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F +BIN.65816 +* TO DO : Make 2 different tables +* http://axis.llx.com/~nparker/a2/opcodes.html +*-------------------------------------- +* 65R02 OPCODES +*-------------------------------------- +* 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F +BIN.65R02 .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 + .HS B.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 + .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3 + .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 + .HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3 +*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.BIN LOAD USR/SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.DEF.txt b/SYS/KERNEL.S.DEF.txt index 4a5af890..a18a1a36 100644 --- a/SYS/KERNEL.S.DEF.txt +++ b/SYS/KERNEL.S.DEF.txt @@ -3,7 +3,6 @@ PREFIX AUTO 4,1 *-------------------------------------- ZPKERNEL .EQ $0 -ZPMEMMGR .EQ $10 *-------------------------------------- ZPPtr1 .EQ ZPKERNEL ZPPtr2 .EQ ZPKERNEL+2 @@ -15,7 +14,9 @@ pDRV .EQ ZPKERNEL+10 pIOCTL .EQ ZPKERNEL+12 pIOBuf .EQ ZPKERNEL+14 *-------------------------------------- -SYS.BASL0 .EQ $400 +ZPMEMMGR .EQ $10 +*-------------------------------------- +SIGNFLG .EQ $16 COS,SIN,TAN *-------------------------------------- * AuxMove / XFer *-------------------------------------- @@ -37,14 +38,19 @@ DRV.BLK.BlkNum .EQ $47 *-------------------------------------- * $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP) *-------------------------------------- -SIGNFLG .EQ $16 COS,SIN,TAN INDEX .EQ $5E ->$5F +RESULT .EQ $62 ->$66 used in FMULT FDIV +*-------------------------------------- +ZPTMP .EQ $67 ->$84 29 bytes +*-------------------------------------- FORPNT .EQ $85 ->$86 FAC .EQ $9D ->$A1 FAC.SIGN .EQ $A2 ARG .EQ $A5 -> $A9 (5 bytes) ARG.SIGN .EQ $AA -*FAC.EXTENSION .EQ $AC +* FAC.EXTENSION .EQ $AC +* CHARGET .EQ $B1 +* CHARGOT .EQ $B7 TXTPTR .EQ $B8 *-------------------------------------- * ROM Entry Point @@ -93,6 +99,8 @@ K.STACKTOP .EQ $03ED XFer !!! down to $3E0 *-------------------------------------- *** $3F0-$3FF IRQ Handler.... *** *-------------------------------------- +SYS.BASL0 .EQ $400 +*-------------------------------------- * Main/Aux $400 -> $7FF : TXT PAGE1 Screens *-------------------------------------- * MemMgr : $0800->$0FFF MAIN/AUX (2 kBytes) diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index 00c9e23d..9a6ed750 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -79,7 +79,7 @@ K.GetDevStatus.I K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name ldx DevMgr.DevCnt - cmp #K.DEV.MAX + cpx #K.DEV.MAX beq .9 >LDYAI S.FD.DEV diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index a6564703..3c3f1da8 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -77,13 +77,15 @@ K.OpenDir jsr PFT.CheckPathYA * A = EC * note : A = 0 means no more entry *\-------------------------------------- + .DUMMY + .OR ZPTMP+15 conflict with PTime2Time K.ReadDir.hMem .BS 1 K.ReadDir.BufSize .BS 2 K.ReadDir.ECIB .BS 1 -*--S.DIR Cache ------------------------ K.ReadDir.EL .BS 1 K.ReadDir.EPB .BS 1 K.ReadDir.EC .BS 2 + .ED *-------------------------------------- K.ReadDir jsr PFT.CheckNodeA bcs K.ReadDir.RTS @@ -520,7 +522,8 @@ K.ReadDir.AddStat .8 rts *-------------------------------------- ADDF.SRC .HS 1013141516171f20 -ADDF.DST .DA #S.STAT.P.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1 +ADDF.DST .DA #S.STAT.P.TYPE + .DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1 .DA #S.STAT.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2 .DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1 *-------------------------------------- diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 55a3ca66..53cc71ca 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -9,6 +9,16 @@ AUTO 4,1 * X = hMem to Expanded String (C-String) * Y,A = PTR to Expanded String *\-------------------------------------- + .DUMMY + .OR ZPDRV +ENV.SearchPath .BS 2 +ENV.BufLen .BS 1 +ENV.bNoExp .BS 1 +ENV.VarLen .BS 1 +ENV.VarName .BS 16 +ENV.ZPSIZE .EQ * + .ED +*-------------------------------------- K.ExpandStr stz .88+1 Reset Intermediate string... .1 >STYA ZPPtr2 @@ -140,7 +150,7 @@ K.ExpandStr stz .88+1 Reset Intermediate string... * CS : not found *\-------------------------------------- K.FileSearch pha - >PULLW K.FileSearch.SearchPath + >PULLW ENV.SearchPath >PULLW .2+1 DstBuf >PULLW .4+1 DstStat @@ -166,7 +176,7 @@ K.FileSearch pha K.FileSearch.YA >STYA .4+1 - >LDYA K.FileSearch.SearchPath + >LDYA ENV.SearchPath jsr K.ExpandStr Y,A = Search Path, Expand it bcs .99 @@ -221,8 +231,6 @@ K.FileSearch.YA >STYA .4+1 lda #MLI.E.FNOTFND sec rts -*-------------------------------------- -K.FileSearch.SearchPath .BS 2 */-------------------------------------- * # PutEnv * Change or add an environment variable, string is 'NAME=VALUE' @@ -703,11 +711,6 @@ ENV.AddAToBuf ldx ENV.BufLen inc ENV.BufLen rts *-------------------------------------- -ENV.BufLen .BS 1 -ENV.bNoExp .BS 1 -ENV.VarLen .BS 1 -ENV.VarName .BS 16 -*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.ENV LOAD USR/SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index ac25b2b7..7184f10c 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -17,6 +17,16 @@ AUTO 4,1 * Y,A = File Length (without ending 0) * X = hMem of Loaded File *\-------------------------------------- + .DUMMY + .OR ZPTMP +FIO.bTXT .BS 1 +FIO.hFILE .BS 1 +FIO.MemPtr .BS 2 +FIO.hMem .BS 1 +FIO.BytesRead .BS 2 +FIO.ZPSIZE .EQ * + .ED +*-------------------------------------- K.LoadTxtFile sec .HS 90 BCC */-------------------------------------- @@ -41,7 +51,7 @@ K.LoadFile clc jsr K.FOpen bcs .9 -.12 sta .99+2 hFILE +.12 sta FIO.hFILE pha >PUSHWI K.S.Stat @@ -67,29 +77,28 @@ K.LoadFile clc .1 jsr K.GetMem bcs .99 - >STYA FIO.Mem - stx .8+1 + >STYA FIO.MemPtr + stx FIO.hMem >PUSHW K.S.Stat+S.STAT.SIZE - >PUSHW FIO.Mem - lda .99+2 + >PUSHW FIO.MemPtr + lda FIO.hFILE jsr K.FRead bcc .2 pha - lda .8+1 + lda FIO.hMem jsr K.FreeMem pla .99 pha - lda #$ff SELF MODIFIED + lda FIO.hFILE jsr K.FClose pla sec .9 rts -.2 sty .6+1 - sta .7+1 Save Bytes read +.2 >STYA FIO.BytesRead bit FIO.bTXT bpl .5 @@ -99,25 +108,21 @@ K.LoadFile clc * clc - adc FIO.Mem + adc FIO.MemPtr sta .4+1 pla - adc FIO.Mem+1 + adc FIO.MemPtr+1 sta .4+2 .4 stz $ffff Self Modified .5 jsr .99 close file -.6 ldy #$ff Self Modified -.7 lda #$ff Self Modified -.8 ldx #$ff Self Modified + >LDYA FIO.BytesRead + ldx FIO.hMem clc rts -*-------------------------------------- -FIO.bTXT .BS 1 -FIO.Mem .BS 2 */-------------------------------------- * # ChTyp * Change The type of a ProDOS File diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 71eb1589..a76b9b16 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -43,7 +43,6 @@ GP.CodeStart jmp GP.SysCall * SLEEP *-------------------------------------- php - sei phy @@ -78,13 +77,14 @@ GP.CodeStart jmp GP.SysCall tsx - inx skip P - inx skip PC HI,LO - inx + inx + inx keep PC HI,LO from KERNEL jsr PSExec/PSResume + + inx Stack Ptr is $1ff if empty txa - beq .8 + beq .3 tay Save !Byte count for later @@ -95,9 +95,13 @@ GP.CodeStart jmp GP.SysCall tya -.8 >PUSHA push CPU Stack BC to restore on top of Soft Stack +.3 >PUSHA push CPU Stack BC to restore on top of Soft Stack - lda (pPs) + inc $1fe PC=PC+1 + bne .4 + inc $1ff because of RTI + +.4 lda (pPs) ora #S.PS.F.SLEEP sta (pPs) @@ -156,10 +160,10 @@ GP.LibCall dec IRQ.InKernel pha No need to save X, K.GetMemPtr will leave it unmodified tya Get LIB hMem in A - jsr K.GetMemPtr Get LIB Code Segment (MemMgr in $E000, no BNK change) + jsr K.GetMemPtr Get LIB Code Segment (MemMgr in $E000, no BNK change) >STYA .1+1 pla -.1 jsr * SELF MODIFIED +.1 jsr $FFFF SELF MODIFIED inc IRQ.InKernel @@ -177,6 +181,23 @@ GP.AtkCall dec IRQ.InKernel inc IRQ.InKernel rts *-------------------------------------- +GP.RomCallPushFAC + jsr GP.ROMCALL + + lda pStack + sec + sbc #5 + sta pStack + sta FORPNT Ptr to dst buffer + lda pStack+1 + sta FORPNT+1 + + ldx #ROM.GETFAC + jsr GP.ROMCALL + + clc + rts +*-------------------------------------- GP.RomCall dec IRQ.InKernel phx @@ -329,6 +350,7 @@ IRQ.InKernel .BS 1 IRQ.IntNum .BS 1 IRQ.VBL.n0 .BS 1 IRQ.VBL.0n .BS 1 +IRQ.Vectors .BS K.IRQDEV.MAX*2 *-------------------------------------- *GO.Reset jsr GO.A2osX * jmp CORE.Run diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 2a54d548..1dc16ea3 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -154,7 +154,7 @@ Kernel.Init3 sta SETALTZP lda KBD bpl .1 sta KBDSTROBE - cmp #146 CTRL-R for Maintenance mode + cmp #146 CTRL-R for ROOT mode bne .1 >PUSHBI 0 @@ -636,7 +636,7 @@ IrqMgrInit >LDYAI MSG.IRQ rts *-------------------------------------- IrqMgrInit.TClock - stz ZPPtr1 Try finding a Mouse Card... + stz ZPPtr1 Try finding a TClock Card... lda #$C1 sta ZPPtr1+1 @@ -1073,7 +1073,7 @@ MSG.EVT .AZ "Event Manager..." MSG.TSK .AZ "Task Manager..." MSG.Prefix .AZ "Root:%s\r\n" MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..." -MSG.ETCINIT .AZ "Executing ETC/INIT Script:%s " +MSG.ETCINIT .AZ "Executing %s..." MSG.StartupErr .AZ "Failed : [$%h]\r\n" MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n" *-------------------------------------- diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 48be6b21..f7e980af 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -17,6 +17,7 @@ AUTO 4,1 K.Open.FLAGS .BS 1 K.Open.TYPE .BS 1 K.Open.AUXTYPE .BS 2 +IO.hFD .BS 1 *-------------------------------------- K.Open jsr PFT.YAToMLIPATH >PULLB K.Open.FLAGS @@ -474,7 +475,6 @@ K.Pipe rts *-------------------------------------- IO.DEVDIR >PSTR "/DEV/" -IO.hFD .BS 1 *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.IO diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 2e427b0f..18fd40b9 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -236,8 +236,6 @@ K.IrqH.DEV ldx #0 .8 clv clear V (no task switching) rts *-------------------------------------- -IRQ.Vectors .BS K.IRQDEV.MAX*2 -*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.IRQ LOAD USR/SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index 102a0e71..03672bb2 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -92,21 +92,7 @@ K.Float ldx #4 ldx #ROM.LTOF -MATH.Go jsr GP.ROMCALL - - lda pStack - sec - sbc #5 - sta pStack - sta FORPNT - lda pStack+1 - sta FORPNT+1 - - ldx #ROM.GETFAC - jsr GP.ROMCALL - - clc - rts +MATH.Go jmp GP.RomCallPushFAC */-------------------------------------- * # lrintf * Return float rounded into a long diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 5cfe09e3..ac1539cb 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -707,40 +707,12 @@ MEM.AddYToPtr1 clc .8 rts *-------------------------------------- MEM.PutCharPtr2 sta (ZPPtr2) +MEM.NextCharPtr2 inc ZPPtr2 bne .8 inc ZPPtr2+1 .8 rts *-------------------------------------- -* 6502/65C02/65816 OPCODES -* Bit 3 : 1 = absolute addressing -* Bit 2-1-0 : opcode + @ length -*-------------------------------------- -* 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F -BIN.65816 -* TO DO : Make 2 different tables -* http://axis.llx.com/~nparker/a2/opcodes.html -*-------------------------------------- -* 65R02 OPCODES -*-------------------------------------- -* 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F -BIN.65R02 .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 - .HS B.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 - .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3 - .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3 - .HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3 -*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.MEM LOAD USR/SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 841eef40..994319ba 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -2,8 +2,13 @@ NEW PREFIX AUTO 4,1 *-------------------------------------- + .DUMMY + .OR ZPTMP+21 PS.Flags .BS 1 PS.ArgV .BS 2 +PS.ArgSize .BS 2 +PS.hMem .BS 1 + .ED */-------------------------------------- * # ExecL * ## C @@ -126,7 +131,7 @@ PS.CreateChild ldx CORE.PSCount bcs .99 >STYA ZPPtr3 - stx PS.Load.hMem + stx PS.hMem txa plx sta PS.Table.hPS,x @@ -255,7 +260,7 @@ PS.Load >PUSHWI K.S.STAT >SYSCALL stat BANK 1 bcs .99 - lda PS.Load.hMem Restore ZPPtr3 trashed by GetEnv + lda PS.hMem Restore ZPPtr3 trashed by GetEnv jsr K.GetMemPtr >STYA ZPPtr3 @@ -386,8 +391,6 @@ PS.LoadGetHeader.RTS *-------------------------------------- PS.Load.ROOT .AZ "ROOT" PS.Load.HEADER .AZ "#!/" -PS.Load.ArgSize .BS 2 -PS.Load.hMem .BS 1 *-------------------------------------- * PS.DupEnv * In: @@ -418,8 +421,8 @@ PS.DupEnv jsr K.GetMemPtr *-------------------------------------- * hBIN + PS.ArgV -> #S.PS.hARGV *-------------------------------------- -PS.AddArgV stz PS.Load.ArgSize - stz PS.Load.ArgSize+1 +PS.AddArgV stz PS.ArgSize + stz PS.ArgSize+1 lda K.IOBuf beq .10 @@ -427,7 +430,7 @@ PS.AddArgV stz PS.Load.ArgSize >LDYAI K.IOBuf jsr K.strlen iny +1 for \0 - >STYA PS.Load.ArgSize + >STYA PS.ArgSize ldx #0 ARGC-1 .HS 2C @@ -448,11 +451,11 @@ PS.AddArgV stz PS.Load.ArgSize tya sec - adc PS.Load.ArgSize - sta PS.Load.ArgSize + adc PS.ArgSize + sta PS.ArgSize bcc .3 - inc PS.Load.ArgSize+1 + inc PS.ArgSize+1 .3 jsr MEM.AddYp1ToPtr1 bra .1 @@ -461,7 +464,7 @@ PS.AddArgV stz PS.Load.ArgSize ldy #S.PS.ARGC sta (ZPPtr3),y - >LDYA PS.Load.ArgSize Add 1 for ending 0 + >LDYA PS.ArgSize Add 1 for ending 0 iny bne .5 inc diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index f4012aa7..6997141e 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -170,6 +170,11 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD * + %011s : 'ABCDEFGH000' * + %2f : '3.14' *\-------------------------------------- + .DUMMY + .OR ZPTMP +PrintF.Cnt .BS 2 + .ED +*-------------------------------------- K.SPrintF >STYA pIOBuf Out Buffer >PULLW ZPPtr1 format bra K.PrintF.1 @@ -184,7 +189,7 @@ K.PrintF >STYA ZPPtr1 format ldy #S.PS.hStdOut lda (pPs),y -K.PrintF.0 sta PrintF.hFILE +K.PrintF.0 sta PrintF.Flush.hFILE+1 >LDYAI K.IOBuf >STYA pIOBuf @@ -673,15 +678,13 @@ PrintF.COut phy PrintF.Flush >PUSHW PrintF.Cnt >PUSHWI K.IOBuf - lda PrintF.hFILE +PrintF.Flush.hFILE + lda #$ff SELF MODIFIED jsr PFT.CheckNodeA bcs .9 jmp IO.Write.I .9 >RET 4 -*-------------------------------------- -PrintF.hFILE .BS 1 -PrintF.Cnt .BS 2 */-------------------------------------- * # FGetS * read bytes from stream into the array @@ -1161,6 +1164,11 @@ K.FSeek jsr PFT.CheckNodeA * A !=0 NOT EOF * CS : *\-------------------------------------- + .DUMMY + .OR ZPTMP +K.FEOF.MARK .BS 3 + .ED +*-------------------------------------- K.FEOF jsr PFT.CheckNodeA bcs .9 @@ -1185,10 +1193,9 @@ K.FEOF jsr PFT.CheckNodeA dey bpl .2 -.8 clc +.8 +* clc .9 rts - -K.FEOF.MARK .BS 3 */-------------------------------------- * # FTell * Return the current value of the file-position indicator diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 017c1684..0261549c 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -42,22 +42,7 @@ K.AToF >STYA TXTPTR Ptr to source string K.AToF.I jsr CHARGOT ldx #ROM.FIN -**** DUP code in MATH.Go **** - jsr GP.ROMCALL - - lda pStack - sec - sbc #5 - sta pStack - sta FORPNT Ptr to dst buffer - lda pStack+1 - sta FORPNT+1 - - ldx #ROM.GETFAC - jsr GP.ROMCALL - - clc - rts + jmp GP.RomCallPushFAC */-------------------------------------- * # StrToL/StrToUL * Convert String to 32 bits (unsigned) int diff --git a/SYS/KERNEL.S.TIME.txt b/SYS/KERNEL.S.TIME.txt index 83835d6c..b8cf16e7 100644 --- a/SYS/KERNEL.S.TIME.txt +++ b/SYS/KERNEL.S.TIME.txt @@ -8,6 +8,18 @@ SECSDAY .EQ 86400 60*60*24 CENTURY0 .EQ 19 YEAR0 .EQ 70 DAY0 .EQ 4 day 0 was a thursday +*-------------------------------------- + .DUMMY + .OR ZPTMP +TIME.DWORD .BS 4 +TIME.DivDay .BS 2 +TIME.ModDay .BS 3 +TIME.Div60 .BS 2 +TIME.Mod .BS 1 +TIME.Div3600 .BS 1 +TIME.Century .BS 1 +TIME.Year .BS 1 + .ED */-------------------------------------- * # Time * Get System Time in Buffer @@ -42,7 +54,7 @@ TIME.PTime2TimeP1P2 lsr C is high bit of month ldy #S.Time.YEAR sta (ZPPtr2),y set year - sta K.CTime.Year for conputing Century/WDAY later + sta TIME.Year for conputing Century/WDAY later lda (ZPPtr1) Get Month/day pha save Day @@ -59,7 +71,7 @@ TIME.PTime2TimeP1P2 iny sta (ZPPtr2),y set day - lda K.CTime.Year get back year + lda TIME.Year get back year cmp #69 if before 70 CC,if > 70, CS lda #0 @@ -67,7 +79,7 @@ TIME.PTime2TimeP1P2 eor #1 toggle C adc #19 set date before 1970 -> 20xx sta (ZPPtr2) set Century - sta K.CTime.Century for conputing WDAY later + sta TIME.Century for conputing WDAY later ldy #2 lda (ZPPtr1),y Get Min @@ -89,16 +101,16 @@ TIME.PTime2TimeP1P2 K.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7) pha lda #19 - sta K.CTime.DWORD + sta TIME.DWORD lda #70 - sta K.CTime.DWORD+1 + sta TIME.DWORD+1 -.1 ldy K.CTime.DWORD - lda K.CTime.DWORD+1 +.1 ldy TIME.DWORD + lda TIME.DWORD+1 - cpy K.CTime.Century + cpy TIME.Century bne .2 - cmp K.CTime.Year + cmp TIME.Year beq .4 .2 jsr TIME.IsLeapYearYA CS = Leap @@ -110,13 +122,13 @@ K.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7) sbc #7 MOD 7 .3 pha - inc K.CTime.DWORD+1 - lda K.CTime.DWORD+1 + inc TIME.DWORD+1 + lda TIME.DWORD+1 cmp #100 bne .1 lda #0 - sta K.CTime.DWORD+1 - inc K.CTime.DWORD + sta TIME.DWORD+1 + inc TIME.DWORD bra .1 .4 ldy #S.Time.MONTH @@ -126,8 +138,8 @@ K.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7) .5 lda K.StrFTime.MDAY-1,x get day count in this month bne .6 february ? - ldy K.CTime.Century - lda K.CTime.Year + ldy TIME.Century + lda TIME.Year jsr TIME.IsLeapYearYA CS = Leap .6 pla @@ -173,145 +185,145 @@ K.CTime2Time jsr MEM.SPtr1PPtr2 ldy #3 .1 lda (ZPPtr1),y - sta K.CTime.DWORD,y + sta TIME.DWORD,y dey bpl .1 - stz K.CTime.DivDay - stz K.CTime.DivDay+1 + stz TIME.DivDay + stz TIME.DivDay+1 -.2 lda K.CTime.DWORD - sta K.CTime.ModDay +.2 lda TIME.DWORD + sta TIME.ModDay sec sbc #SECSDAY pha - lda K.CTime.DWORD+1 - sta K.CTime.ModDay+1 + lda TIME.DWORD+1 + sta TIME.ModDay+1 sbc /SECSDAY pha - lda K.CTime.DWORD+2 - sta K.CTime.ModDay+2 - sbc #0 + lda TIME.DWORD+2 + sta TIME.ModDay+2 + sbc ^SECSDAY pha - lda K.CTime.DWORD+3 + lda TIME.DWORD+3 sbc #0 bcc .3 end of DIV/MOD ? - sta K.CTime.DWORD+3 + sta TIME.DWORD+3 ldx #2 .21 pla - sta K.CTime.DWORD,x + sta TIME.DWORD,x dex bpl .21 - inc K.CTime.DivDay + inc TIME.DivDay bne .2 - inc K.CTime.DivDay+1 + inc TIME.DivDay+1 bne .2 .3 pla pla pla - stz K.CTime.Div60 - stz K.CTime.Div60+1 + stz TIME.Div60 + stz TIME.Div60+1 -.4 lda K.CTime.ModDay - sta K.CTime.Mod +.4 lda TIME.ModDay + sta TIME.Mod sec sbc #60 pha - lda K.CTime.ModDay+1 + lda TIME.ModDay+1 sbc #0 pha - lda K.CTime.ModDay+2 + lda TIME.ModDay+2 sbc #0 bcc .5 - sta K.CTime.ModDay+2 + sta TIME.ModDay+2 pla - sta K.CTime.ModDay+1 + sta TIME.ModDay+1 pla - sta K.CTime.ModDay + sta TIME.ModDay - inc K.CTime.Div60 + inc TIME.Div60 bne .4 - inc K.CTime.Div60+1 + inc TIME.Div60+1 bne .4 .5 pla pla - lda K.CTime.Mod + lda TIME.Mod ldy #S.Time.SECOND sta (ZPPtr2),y - stz K.CTime.Div3600 + stz TIME.Div3600 -.6 lda K.CTime.Div60 - sta K.CTime.Mod +.6 lda TIME.Div60 + sta TIME.Mod sec sbc #60 pha - lda K.CTime.Div60+1 + lda TIME.Div60+1 sbc #0 pha bcc .7 - sta K.CTime.Div60+1 + sta TIME.Div60+1 pla - sta K.CTime.Div60 + sta TIME.Div60 - inc K.CTime.Div3600 + inc TIME.Div3600 bne .6 .7 pla - lda K.CTime.Mod + lda TIME.Mod dey ldy #S.Time.MINUTE sta (ZPPtr2),y - lda K.CTime.Div3600 + lda TIME.Div3600 dey ldy #S.Time.HOUR sta (ZPPtr2),y - lda K.CTime.DivDay WDAY computation : (DivDay + DAY0) mod 7 + lda TIME.DivDay WDAY computation : (DivDay + DAY0) mod 7 clc adc #DAY0 pha - lda K.CTime.DivDay+1 + lda TIME.DivDay+1 adc /DAY0 eor #$ff tax pla -.8 sta K.CTime.Mod +.8 sta TIME.Mod sec sbc #7 bcs .8 inx bne .8 - lda K.CTime.Mod + lda TIME.Mod ldy #S.Time.WDAY sta (ZPPtr2),y lda #CENTURY0 - sta K.CTime.Century + sta TIME.Century lda #YEAR0 - sta K.CTime.Year + sta TIME.Year K.CTime2Time.Year -.1 ldy K.CTime.Century - lda K.CTime.Year +.1 ldy TIME.Century + lda TIME.Year jsr TIME.IsLeapYearYA if Leap year CS lda #0 Toggle Carry @@ -319,31 +331,31 @@ K.CTime2Time.Year eor #1 lsr - lda K.CTime.DivDay + lda TIME.DivDay sbc #365 pha - lda K.CTime.DivDay+1 + lda TIME.DivDay+1 sbc /365 bcc .2 - sta K.CTime.DivDay+1 + sta TIME.DivDay+1 pla - sta K.CTime.DivDay + sta TIME.DivDay - inc K.CTime.Year - lda K.CTime.Year + inc TIME.Year + lda TIME.Year cmp #100 bne .1 - stz K.CTime.Year - inc K.CTime.Century + stz TIME.Year + inc TIME.Century bne .1 .2 pla - lda K.CTime.Century + lda TIME.Century * ldy #S.Time.CENTURY sta (ZPPtr2) ldy #S.Time.YEAR - lda K.CTime.Year + lda TIME.Year sta (ZPPtr2),y clc @@ -377,19 +389,11 @@ TIME.IsLeapYearYA rts *-------------------------------------- K.StrFTime.MDAY .DA #3,#0,#3,#2,#3,#2,#3,#3,#2,#3,#2,#3 -K.CTime.DWORD .BS 4 -K.CTime.DivDay .BS 2 -K.CTime.ModDay .BS 3 -K.CTime.Div60 .BS 2 -K.CTime.Div3600 .BS 1 -K.CTime.Mod .BS 1 -K.CTime.Century .BS 1 -K.CTime.Year .BS 1 */-------------------------------------- * # StrFTime * ## C * Convert S.TIME struct to CSTR -* `size_t strftime (char* ptr, const char* format, const struct S.TIME* timeptr );` +* `void strftime (char* ptr, const char* format, const struct S.TIME* timeptr );` * ## ASM * `PUSHW timeptr` * `PUSHW format` @@ -415,12 +419,10 @@ K.CTime.Year .BS 1 K.StrFTime jsr MEM.SPtr1PPtr2 >PULLW ZPPtr3 timeptr - ldy #0 - -.1 lda (ZPPtr2),y +.1 lda (ZPPtr2) beq .8 - iny + jsr MEM.NextCharPtr2 cmp #'%' beq .2 @@ -428,11 +430,12 @@ K.StrFTime jsr MEM.SPtr1PPtr2 jsr K.StrFTime.addChar bra .1 -.2 ldx #K.StrFTime.JMPL-K.StrFTime.Tbl-1 +.2 ldx #K.StrFTime.JMP-K.StrFTime.Tbl-1 - lda (ZPPtr2),y + lda (ZPPtr2) beq .8 - iny + + jsr MEM.NextCharPtr2 .3 cmp K.StrFTime.Tbl,x beq .4 @@ -440,49 +443,33 @@ K.StrFTime jsr MEM.SPtr1PPtr2 bpl .3 bra .1 -.4 lda K.StrFTime.JMPL,x - sta .5+1 - lda K.StrFTime.JMPH,x - sta .5+2 - phy -.5 jsr $ffff - ply - bra .1 +.4 txa + asl + tax + jsr .5 + bra .1 + +.5 jmp (K.StrFTime.JMP,x) .8 lda #0 Terminate C string sta (ZPPtr1) rts *-------------------------------------- K.StrFTime.TBL .AS "aAbBdHImMpSwyY" -K.StrFTime.JMPL .DA #K.StrFTime.A - .DA #K.StrFTime.AA - .DA #K.StrFTime.B - .DA #K.StrFTime.BB - .DA #K.StrFTime.D - .DA #K.StrFTime.HH - .DA #K.StrFTime.II - .DA #K.StrFTime.M - .DA #K.StrFTime.MM - .DA #K.StrFTime.P - .DA #K.StrFTime.SS - .DA #K.StrFTime.W - .DA #K.StrFTime.Y - .DA #K.StrFTime.YY -*-------------------------------------- -K.StrFTime.JMPH .DA /K.StrFTime.A - .DA /K.StrFTime.AA - .DA /K.StrFTime.B - .DA /K.StrFTime.BB - .DA /K.StrFTime.D - .DA /K.StrFTime.HH - .DA /K.StrFTime.II - .DA /K.StrFTime.M - .DA /K.StrFTime.MM - .DA /K.StrFTime.P - .DA /K.StrFTime.SS - .DA /K.StrFTime.W - .DA /K.StrFTime.Y - .DA /K.StrFTime.YY +K.StrFTime.JMP .DA K.StrFTime.A + .DA K.StrFTime.AA + .DA K.StrFTime.B + .DA K.StrFTime.BB + .DA K.StrFTime.D + .DA K.StrFTime.HH + .DA K.StrFTime.II + .DA K.StrFTime.M + .DA K.StrFTime.MM + .DA K.StrFTime.P + .DA K.StrFTime.SS + .DA K.StrFTime.W + .DA K.StrFTime.Y + .DA K.StrFTime.YY *-------------------------------------- K.StrFTime.A ldx #3 Short day of week, 3 chars... .HS 2C Bit abs @@ -536,20 +523,12 @@ K.StrFTime.STR lda (ZPPtr3),y get required S.Time field value bne .99 rts *-------------------------------------- -K.StrFTime.D ldy #S.Time.DAY - bra K.StrFTime.addDecPtr1Y -K.StrFTime.HH ldy #S.Time.HOUR - bra K.StrFTime.addDecPtr1Y K.StrFTime.II ldy #S.Time.HOUR lda (ZPPtr3),y cmp #12 bcc .1 sbc #12 .1 bra K.StrFTime.addDecA -K.StrFTime.M ldy #S.Time.MONTH - bra K.StrFTime.addDecPtr1Y -K.StrFTime.MM ldy #S.Time.MINUTE - bra K.StrFTime.addDecPtr1Y K.StrFTime.P ldy #S.Time.HOUR lda (ZPPtr3),y cmp #12 @@ -560,13 +539,21 @@ K.StrFTime.P ldy #S.Time.HOUR jsr K.StrFTime.addChar lda #'m' bra K.StrFTime.addChar -K.StrFTime.SS ldy #S.Time.SECOND - bra K.StrFTime.addDecPtr1Y -K.StrFTime.W ldy #S.Time.WDAY - bra K.StrFTime.addDecPtr1Y K.StrFTime.YY ldy #S.Time.CENTURY jsr K.StrFTime.addDecPtr1Y K.StrFTime.Y ldy #S.Time.YEAR + .HS 2C bit abs +K.StrFTime.D ldy #S.Time.DAY + .HS 2C bit abs +K.StrFTime.HH ldy #S.Time.HOUR + .HS 2C bit abs +K.StrFTime.SS ldy #S.Time.SECOND + .HS 2C bit abs +K.StrFTime.W ldy #S.Time.WDAY + .HS 2C bit abs +K.StrFTime.M ldy #S.Time.MONTH + .HS 2C bit abs +K.StrFTime.MM ldy #S.Time.MINUTE *-------------------------------------- K.StrFTime.addDecPtr1Y lda (ZPPtr3),y @@ -604,10 +591,7 @@ K.StrFTime.addDecA *-------------------------------------- K.StrFTime.addChar sta (ZPPtr1) - inc ZPPtr1 - bne .8 - inc ZPPtr1+1 -.8 rts + jmp MEM.NextCharPtr1 *-------------------------------------- K.StrFTime.DAY >PSTR "Monday" >PSTR "Tuesday" diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 55867ef0..beb2500b 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -47,6 +47,7 @@ A2osX.D1 .PH $D000 .INB USR/SRC/SYS/KERNEL.S.STDLIB .INB USR/SRC/SYS/KERNEL.S.DEV .INB USR/SRC/SYS/KERNEL.S.FIO + .INB USR/SRC/SYS/KERNEL.S.PFT .EP A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 @@ -56,6 +57,7 @@ A2osX.D2 .PH $D000 .INB USR/SRC/SYS/KERNEL.S.PS .INB USR/SRC/SYS/KERNEL.S.ARG .INB USR/SRC/SYS/KERNEL.S.ENV + .INB USR/SRC/SYS/KERNEL.S.MATH .EP A2osX.E0 .PH $E000 .INB USR/SRC/SYS/KERNEL.S.JMP @@ -63,10 +65,8 @@ A2osX.E0 .PH $E000 .INB USR/SRC/SYS/KERNEL.S.MEM .INB USR/SRC/SYS/KERNEL.S.TERMLC ********* TMP ***** go to A2osX.D1 - .INB USR/SRC/SYS/KERNEL.S.PFT .INB USR/SRC/SYS/KERNEL.S.IO ********* TMP ***** go to A2osX.D2 - .INB USR/SRC/SYS/KERNEL.S.MATH .LIST ON DevMgr.FreeMem .EQ * .LIST OFF