Kernel version 0.8 : API cleanup/reorg

This commit is contained in:
Rémy GIBERT 2016-09-21 17:20:37 +02:00
parent 2ed4cf6587
commit d2334df796
61 changed files with 1050 additions and 990 deletions

Binary file not shown.

Binary file not shown.

View File

@ -32,14 +32,14 @@ SRC.PrintLineErr ldx #0
.1 lda TmpBuffer256,x
beq .2
phx
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
plx
inx
bcc .1
rts
.2 lda #13
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
ldx #0
@ -50,19 +50,19 @@ SRC.PrintLineErr ldx #0
beq .4
phx
lda #'-'
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
plx
bcs .9
bra .3
.4 lda #'^'
phx
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
plx
bcs .9
.5 lda #13
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
.9 rts
*---------------------------------------
SRC.ParseLine ldx TmpBuffer256
@ -326,12 +326,12 @@ SRC.ParseLine.OpCode
.21 inx
lda SRC.AM.StrBuf,x
phx
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
plx
cpx SRC.AM.StrBuf
bne .21
lda #13
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
.20 ldy #ASM.PC

View File

@ -121,7 +121,7 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
rts
.5 lda #13
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
ldy #SYM.DumpCount
lda (pData),y

View File

@ -97,7 +97,7 @@ CS.INIT ldy #S.PS.hARGS
rts
.98 >LDYA L.MSG.USAGE
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
.99 lda #SYSMGR.ERRSYN
sec
rts
@ -164,7 +164,7 @@ CS.RUN ldy #bCANCEL
stx FullPath
>LDYA L.FullPath
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.FullPath
>SYSCALL SYS.MLIGetFileInfoYA
@ -173,12 +173,12 @@ CS.RUN ldy #bCANCEL
>LDYA L.MSG.OK
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bra .8
.5 >PUSHA
>LDYA L.MSG.ERR
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
.8 pla
>SYSCALL SYS.FreeMemA

View File

@ -58,7 +58,7 @@ CS.INIT ldy #hS.LISTDIR.IDX
bne .1
>LDYA L.MSG.USAGE
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
lda #SYSMGR.ERRSYN
sec
.99 rts
@ -286,7 +286,7 @@ CS.RUN ldy #bCANCEL
>PUSHW L.FullSrcPath
>LDYA L.MSG.CP
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
jsr CS.RUN.COPY
bcs .5
@ -296,7 +296,7 @@ CS.RUN ldy #bCANCEL
.5 >PUSHA
>LDYA L.MSG.ERR
.7 >SYSCALL SYS.PSTRoutYA
.7 >SYSCALL SYS.PStrOutYA
.8 pla
>SYSCALL SYS.FreeMemA

View File

@ -47,10 +47,10 @@ Ctrl.A ldy #PromptMode
>STYA ZPPTR1
.1 >LDYA ZPPTR1
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
>LDYA L.SEQ.CEOL
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
sec
@ -64,7 +64,7 @@ Ctrl.A ldy #PromptMode
beq .8
lda #13
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
bra .1

View File

@ -10,10 +10,10 @@ SCRN.Init ldy #ScreenH
dec
>PUSHA
>LDYA L.SEQ.INIT
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #12
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
lda #0
@ -53,7 +53,7 @@ SCRN.UpdateTopBar
.2 >PUSHYA
>LDYA L.MSG.TOPBAR
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
@ -99,7 +99,7 @@ SCRN.UpdateMain ldy #ScreenY
bcs .9
>LDYA L.SEQ.CEOL
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
inc TmpByte
@ -176,7 +176,7 @@ SCRN.UpdateLineAtALenY
bcs .9
>LDYA L.SEQ.CEOL
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
rts
.9 jmp Ctrl.Q
@ -189,7 +189,7 @@ SCRN.UpdateAttrC
bpl .8
>LDYA L.SEQ.NORM
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
stz bSelected
rts
@ -198,7 +198,7 @@ SCRN.UpdateAttrC
bmi .8
>LDYA L.SEQ.INV
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #$ff
sta bSelected
@ -237,7 +237,7 @@ SCRN.UpdateStatusBar
lda (pData),y
>PUSHA
>LDYA L.MSG.STATUSBAR
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
jmp SCRN.GotoCurXCurY
@ -248,7 +248,7 @@ SCRN.UpdateStatusBar
lda (pData),y
>PUSHA
>LDYA L.MSG.STATUSBAR,x
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
rts
.9 jmp Ctrl.Q
@ -259,7 +259,7 @@ SCRN.UpdateStatusBarErrA
lda (pData),y
>PUSHA
>LDYA L.MSG.STATUSBAR.E
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
rts
.9 jmp Ctrl.Q
@ -281,7 +281,7 @@ GotoXY txa
>PUSHA
>LDYA L.MSG.GOTOXY
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
rts
.9 jmp Ctrl.Q
@ -413,10 +413,10 @@ SCRN.UpdateViewPort
.9 jmp Ctrl.Q
*--------------------------------------
SCRN.scrollUp lda #$1B
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
lda #'M'
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
ldy #ScreenY+1
@ -438,10 +438,10 @@ SCRN.scrollUp lda #$1B
.9 jmp Ctrl.Q
*--------------------------------------
SCRN.scrollDn lda #$1B
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
lda #'D'
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
bcs .9
ldy #ScreenY+1

View File

@ -139,7 +139,7 @@ CS.RUN ldy #bCancel
bne .8
>LDYA L.SEQ.DETECT
>SYSCALL SYS.PSTRoutYA Send Query for term W & H
>SYSCALL SYS.PStrOutYA Send Query for term W & H
bcs .9
.1 ldy #bCancel
@ -332,10 +332,10 @@ CS.QUIT ldy #hBuffer
>SYSCALL SYS.FreeMemA
.8 >LDYA L.SEQ.RESET
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #12
>SYSCALL SYS.CoutA
>SYSCALL SYS.COutA
.9 rts
*--------------------------------------
LoadFile >PUSHWI 0 Aux type

View File

@ -63,7 +63,7 @@ CS.INIT ldy #S.PS.hARGS
rts
.99 >LDYA L.MSG.USAGE
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #SYSMGR.ERRSYN
sec
rts

View File

@ -58,7 +58,7 @@ CS.INIT.READ jsr NSC.Init
bpl .1
>LDYA L.MSG.READ.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW
sec
@ -67,7 +67,7 @@ CS.INIT.READ jsr NSC.Init
.8 jsr NSC.Dump
>LDYA L.MSG.USAGE
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory
@ -274,16 +274,16 @@ NSC.Dump ldx #1
>PUSHA
>LDYA L.MSG.READ.OK1
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.MSG.READ.OK2.24
bit DS1216E.DATA+4
bpl .3
>LDYA L.MSG.READ.OK2.12
.3 >SYSCALL SYS.PSTROutYA
.3 >SYSCALL SYS.PStrOutYA
>LDYA L.MSG.READ.OK3
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda DS1216E.DATA+2
jsr PrintBCD
@ -297,7 +297,7 @@ NSC.Dump ldx #1
jsr PrintBCD
>LDYA L.MSG.READ.OK4
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda DS1216E.DATA+4
bpl .4

View File

@ -68,7 +68,7 @@ CS.INIT >SYSCALL SYS.GetArgC
rts
.99 >LDYA L.MSG.USAGE
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
lda #SYSMGR.ERRSYN
sec
rts
@ -138,18 +138,18 @@ CS.RUN ldy #bCANCEL
stx FullPath
>LDYA L.FullPath
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.FullPath
>SYSCALL SYS.MLIDestroyYA
bcs .5
>LDYA L.MSG.OK
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
bra .8
.5 >PUSHA
>LDYA L.MSG.ERR
>SYSCALL SYS.PSTRoutYA
>SYSCALL SYS.PStrOutYA
.8 pla
>SYSCALL SYS.FreeMemA

View File

@ -80,7 +80,7 @@ CS.INIT ldy #S.PS.hARGS
rts
.99 >LDYA L.MSG.USAGE
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #SYSMGR.ERRSYN
sec
rts
@ -104,7 +104,7 @@ CS.RUN jsr Init.Timeout
>SYSCALL SYS.GetMemPtrA
>PUSHYA
>LDYA L.MSG.UNKNOWN
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
sec
rts
@ -160,7 +160,7 @@ CS.RUN jsr Init.Timeout
>SYSCALL SYS.GetMemPtrA
>PUSHYA
>LDYA L.MSG.TIMEOUT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
sec
rts
*--------------------------------------
@ -240,7 +240,7 @@ DumpRPCFrame lda #S.UDP+24
sta ZPFrameBase+1
>LDYA L.MSG.DUMP0
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
.1 ldy #3
lda (ZPFrameBase),y Value follows?

View File

@ -37,7 +37,7 @@ L.MSG.DETECT .DA MSG.DETECT
.DA 0 End Of Reloc Table
*--------------------------------------
Dev.Detect >LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
clc
rts

View File

@ -36,7 +36,7 @@ L.MSG.DETECT .DA MSG.DETECT
.DA 0 End Of Reloc Table
*--------------------------------------
Dev.Detect >LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldx #0
.1 txa

View File

@ -93,7 +93,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
*--------------------------------------
Dev.Detect sta hArgs
>LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldx #$10
.1 lda L91C96.BSR+1,x
@ -108,7 +108,7 @@ Dev.Detect sta hArgs
bpl .1 not yat at $80
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
sec
@ -129,9 +129,9 @@ Dev.Detect sta hArgs
rts
.4 >LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA
clc

View File

@ -64,7 +64,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
.DA 0 End Of Reloc Table
*--------------------------------------
Dev.Detect >LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
stz ZPTmpPtr1
lda #$C1
@ -86,7 +86,7 @@ Dev.Detect >LDYA L.MSG.DETECT
bne .1
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
sec
@ -105,9 +105,9 @@ Dev.Detect >LDYA L.MSG.DETECT
sta DEVSLOTn0
>LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA
clc

View File

@ -55,7 +55,7 @@ Dev.Detect stz ZPTmpPtr1
bne .1
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
sec
@ -74,9 +74,9 @@ Dev.Detect stz ZPTmpPtr1
sta DEVSLOTn0
>LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA

View File

@ -63,7 +63,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
*--------------------------------------
Dev.Detect sta hArgs
>LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
stz ZPTmpPtr1
lda #$C1
@ -85,7 +85,7 @@ Dev.Detect sta hArgs
bne .1
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
sec
@ -104,9 +104,9 @@ Dev.Detect sta hArgs
sta DEVSLOTn0
>LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA

View File

@ -95,7 +95,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
*--------------------------------------
Dev.Detect sta hArgs
>LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
stz ZPTmpPtr1
lda #$C1
@ -117,7 +117,7 @@ Dev.Detect sta hArgs
bne .1
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
sec
@ -138,9 +138,9 @@ Dev.Detect sta hArgs
adc #SSC.REG.DATA+1
sta DEV.DATA.BFFF
>LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA

View File

@ -98,7 +98,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
*--------------------------------------
Dev.Detect sta hArgs
>LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldx #$10+$88
.1 lda #W5100.MR.RST
@ -128,7 +128,7 @@ Dev.Detect sta hArgs
bcc .1 #$108 ?
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW
sec
@ -163,9 +163,9 @@ Dev.Detect sta hArgs
rts
.8 >LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA
clc

View File

@ -126,7 +126,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
*--------------------------------------
Dev.Detect >STYA ARGS
>LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldx #$10
.1 >LDYAI PP.ID
@ -146,7 +146,7 @@ Dev.Detect >STYA ARGS
bne .1
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW
sec
@ -181,9 +181,9 @@ Dev.Detect >STYA ARGS
rts
.8 >LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA
clc

View File

@ -98,7 +98,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
*--------------------------------------
Dev.Detect sta hArgs
>LDYA L.MSG.DETECT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldx #$10+$88
.1 lda #W5100.MR.RST
@ -128,7 +128,7 @@ Dev.Detect sta hArgs
bcc .1 #$108 ?
>LDYA L.MSG.DETECT.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRNOHW
sec
@ -163,9 +163,9 @@ Dev.Detect sta hArgs
rts
.8 >LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA
clc

View File

@ -235,9 +235,9 @@ SYS.Sleep .EQ $9C
SYS.CheckPrefixYA .EQ $A0
SYS.FileSearch .EQ $A2
SYS.GetFullPathYA .EQ $A4
SYS.LoadFile .EQ $A6
SYS.SaveFile .EQ $A8
SYS.LoadFile .EQ $A8
SYS.SaveFile .EQ $AA
*--------------------------------------
SYS.AddNetCfg .EQ $B0
SYS.SetNetCfg .EQ $B2
@ -248,7 +248,7 @@ SYS.ClrNetCfgA .EQ $B6
*--------------------------------------
SYS.COutA .EQ $D0
SYS.PSTROutYA .EQ $D4
SYS.PStrOutYA .EQ $D4
SYS.HexOutA .EQ $D8
SYS.HexOutYA .EQ $DA
@ -463,16 +463,16 @@ S.LISTDIR.hPATTERN .EQ 15 Pattern for file filtering
*
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.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
K.Time .EQ 8
*--------------------------------------
* S.STAT
*--------------------------------------

View File

@ -39,7 +39,7 @@ L.DrawLine.X1 .DA DrawLine.X1
.DA 0
*--------------------------------------
CS.INIT >LDYA L.MSG.INIT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYA L.LIBGFX
>SYSCALL SYS.LoadLibYA

View File

@ -97,7 +97,7 @@ CS.INIT >LDYA L.LIBTCPIP
.98 >LDYA L.MSG.CFG.ND
bra .90
.99 >LDYA L.MSG.CFG.NA
.90 >SYSCALL SYS.PSTROutYA
.90 >SYSCALL SYS.PStrOutYA
lda #0
sec
rts
@ -113,7 +113,7 @@ CS.RUN >PUSHW L.Socket
sta (pData),y
>LDYA L.MSG.CFG1
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
jsr Init.Timeout
@ -151,7 +151,7 @@ CS.RUN.SREQ ldx #3
bpl .1
>LDYA L.MSG.CFG2
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>PUSHWI DHCP.REQ.LEN
>PUSHW L.DHCP.REQ
@ -192,7 +192,7 @@ CS.RUN.OK lda #S.IPCFG.STATUS.OK
bpl .2
>LDYA L.MSG.CFG.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #0 Leave with NO ERROR
sec
rts
@ -200,7 +200,7 @@ CS.RUN.OK lda #S.IPCFG.STATUS.OK
CS.RUN.KO pha
>PUSHA
>LDYA L.MSG.CFG.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
pla
sec
rts

View File

@ -40,7 +40,7 @@ CS.INIT >SYSCALL SYS.GetArgC
bne .1
>LDYA L.MSG.USAGE
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #0
sec
rts
@ -93,7 +93,7 @@ CS.RUN lda #13 try send a CR...
adc /S.DEV.NAME
>PUSHYA
>LDYA L.MSG.GREETINGS
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .8 unable to send greetings...loop..

View File

@ -58,7 +58,7 @@ CS.INIT >LDYA L.LIBTCPIP
CS.RUN jsr Init.Timeout
>LDYA L.MSG.TCPWAIT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
bcs .99
@ -72,7 +72,7 @@ CS.RUN jsr Init.Timeout
bcc .1
.99 >LDYA L.MSG.TCPIPERR
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #SYSMGR.ERRSYN
sec
rts
@ -93,7 +93,7 @@ CS.RUN.INIT ldx #3
sta (pData),y
>LDYA L.MSG.INITOK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
.11 >SYSCALL SYS.Sleep
ldy #bCTRLC
@ -118,17 +118,17 @@ CS.RUN.INIT ldx #3
bpl .2
>LDYA L.MSG.INCOMING
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bra .11
.9 >LDYA L.MSG.SKTERR
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #SYSMGR.ERRSYN
sec
rts
.99 >LDYA L.MSG.ABORT
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #0
sec
rts

View File

@ -42,7 +42,7 @@ CS.INIT >SYSCALL SYS.GetArgC
bne .1
>LDYA L.MSG.HELP
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory
rts
@ -52,7 +52,7 @@ CS.INIT >SYSCALL SYS.GetArgC
>PUSHYA
>LDYA L.MSG.LOAD
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #1 get PTR to ARG[1] (Driver name)
>SYSCALL SYS.GetArgA

View File

@ -55,7 +55,7 @@ CS.RUN lda #0
bcs .9
>LDYA L.MSG.LOGIN
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #0 Echo all caracters
@ -70,7 +70,7 @@ CS.RUN lda #0
bcs .9
>LDYA L.MSG.PASSWORD
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #'*'
jsr INPUT.RESET

View File

@ -186,7 +186,7 @@ Cmd.Exec.CD lda ARGS
ldy #S.PS.hPREFIX
lda (pPs),y
>SYSCALL SYS.GetMemPtrA
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #13
>SYSCALL SYS.COutA
@ -292,7 +292,7 @@ Cmd.Exec.SET lda ARGS
.1 lda (ZPPTR1)
beq .8 Ending 0 ?
>LDYA ZPPTR1
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda ZPPTR1
@ -307,7 +307,7 @@ Cmd.Exec.SET lda ARGS
bcs .9
>LDYA ZPPTR1
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #13
@ -349,7 +349,7 @@ Cmd.Exec.SETVAR tax
rts
.3 >LDYA L.ARGS String is VAR...
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #'='
>SYSCALL SYS.COutA
@ -359,7 +359,7 @@ Cmd.Exec.SETVAR tax
>SYSCALL SYS.GetEnvYA
bcs .8
>SYSCALL SYS.PSTROutYA Y,A = VALUE
>SYSCALL SYS.PStrOutYA Y,A = VALUE
.8 lda #13
>SYSCALL SYS.COutA
@ -374,7 +374,7 @@ Cmd.Exec.DATE >LDYA L.TIME
>SYSCALL SYS.StrFTime
>LDYAI TmpBuffer256
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #13
@ -391,7 +391,7 @@ Cmd.Exec.TIME >LDYA L.TIME
>SYSCALL SYS.StrFTime
>LDYAI TmpBuffer256
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bcs .9
lda #13
@ -401,7 +401,7 @@ Cmd.Exec.TIME >LDYA L.TIME
Cmd.Exec.ECHO lda ARGS
beq .9
>LDYA L.ARGS
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #13
>SYSCALL SYS.COutA
clc

View File

@ -88,7 +88,7 @@ HIS.Add ldy #hCmdHistory
bpl .4
.9 rts
*--------------------------------------
HIS.GetPrev ldy #hCmdHistory
HIK.GetPrev ldy #hCmdHistory
lda (pData),y
beq HISTORY.RTS
@ -121,10 +121,10 @@ HIS.GetPrev ldy #hCmdHistory
.2 txa
ldy #CmdHistory.IDX set new index
sta (pData),y
bra HIS.SetBuf
bra HIK.SetBuf
History.RTS rts
*--------------------------------------
HIS.GetNext ldy #hCmdHistory
HIK.GetNext ldy #hCmdHistory
lda (pData),y
beq HISTORY.RTS
@ -153,10 +153,10 @@ HIS.GetNext ldy #hCmdHistory
ldy #CmdHistory.END
cmp (pData),y
bne HIS.SetBuf
bne HIK.SetBuf
jmp CmdBuffer.CLR end of history, just blank buffer
*--------------------------------------
HIS.SetBuf jsr CmdBuffer.CLR
HIK.SetBuf jsr CmdBuffer.CLR
ldy #CmdHistory.IDX
lda (pData),y

View File

@ -62,7 +62,7 @@ TXT.ReadFile >PUSHWI 127
lda #'"'
>SYSCALL SYS.COutA
>LDYA pData
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #'"'
>SYSCALL SYS.COutA
lda #13

View File

@ -83,7 +83,7 @@ CS.INIT.INTERACTIVE
lda (pPs),y
>PUSHA
>LDYA L.MSG.GREETINGS
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda (pPs)
ora #S.PS.F.EVENT Now accept events
@ -290,14 +290,14 @@ CS.EVENT.CTRL.CHAR
.2 cpx #10 LF (down arrow)
bne .3
jsr HIS.GetNext
jsr HIK.GetNext
clc
rts
.3 cpx #11 VT (up arrow)
bne .4
jsr His.GetPrev
jsr HiK.GetPrev
clc
rts
@ -337,7 +337,7 @@ PrintPrompt lda #'$'
PrintError pha
>PUSHA
>LDYA L.MSG.ERROR
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
pla
rts
*--------------------------------------
@ -444,7 +444,7 @@ EscChars >PSTRING "DBAC"
EscAscii .HS 04080A0B15
CMD .BS 256
ARGS .BS 256
TIME .BS S.TIME
TIME .BS K.Time
hNEWPATH .BS 1
hCmdLine .BS 1
Cmd.Exec.Mode .BS 1

View File

@ -104,7 +104,7 @@ CS.INIT.DEV >LDYA L.DEVNAME
bne CS.INIT.DEV
>LDYA L.MSG.DEV.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
lda #DEVMGR.ERRDNF
sec
rts
@ -116,7 +116,7 @@ CS.INIT.DEV >LDYA L.DEVNAME
>PUSHW L.DEVNAME
>LDYA L.MSG.DEV.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldx #DEVMGR.OPEN
jsr pNetDevJmp
@ -180,42 +180,42 @@ CS.QUIT lda IPCFG+S.IPCFG.HDEV
*--------------------------------------
CFG.Read >PUSHW L.HOSTNAME
>LDYA L.MSG.CFG
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
jsr CFG.Read.HOSTNAME
bcc .1
>PUSHA
>LDYA L.MSG.CFG.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bra .2
.1 >LDYA L.MSG.CFG.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
.2 >PUSHW L.TCPIP.CONF
>LDYA L.MSG.CFG
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
jsr CFG.Read.TCPIP.CONF
bcc .3
>PUSHA
>LDYA L.MSG.CFG.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bra .4
.3 >LDYA L.MSG.CFG.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
.4 >PUSHW L.HOSTS
>LDYA L.MSG.CFG
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
jsr CFG.Read.HOSTS
bcc .5
>PUSHA
>LDYA L.MSG.CFG.KO
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bra .6
.5 >LDYA L.MSG.CFG.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
.6 rts
*--------------------------------------
CFG.Read.HOSTNAME

View File

@ -7,7 +7,7 @@ AUTO 6
*--------------------------------------
* Out : A = Command line Arg Count
*--------------------------------------
S.GetArgC jsr S.InitArgPtr1
K.GetArgC jsr S.InitArgPtr1
ldx #0
@ -28,10 +28,10 @@ S.GetArgC jsr S.InitArgPtr1
* CC : Y,A = PStr To Arg[A]
* CS : Out Of Bound
*--------------------------------------
S.GetArgA sta S.GetArgA.Idx
K.GetArgA sta K.GetArgA.Idx
jsr S.InitArgPtr1
lda S.GetArgA.Idx
lda K.GetArgA.Idx
beq .8
ldx #0
@ -39,7 +39,7 @@ S.GetArgA sta S.GetArgA.Idx
.1 lda (ZPQuickPtr1)
beq .9
cpx S.GetArgA.Idx
cpx K.GetArgA.Idx
beq .8
jsr S.NextArgPtr1
@ -55,7 +55,7 @@ S.GetArgA sta S.GetArgA.Idx
*--------------------------------------
S.InitArgPtr1 ldy #S.PS.hCMDLINE
lda (pPs),y
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA ZPQuickPtr1
rts
*--------------------------------------
@ -67,7 +67,7 @@ S.NextArgPtr1 lda ZPQuickPtr1
inc ZPQuickPtr1+1
.8 rts
*--------------------------------------
S.GetArgA.Idx .BS 1
K.GetArgA.Idx .BS 1
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.ARG

View File

@ -5,18 +5,18 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.LoadBinYA
* K.LoadBinYA
* in :
* A = hMem of FilePath (PSTRING)
* out :
* Y,A = MEMPTR
* X = hMem of Code Segment
*--------------------------------------
S.LoadBinYA >STYA S.LoadBin.Filename
jsr S.PStrUprYA
K.LoadBinYA >STYA K.LoadBin.Filename
jsr K.PStrUprYA
>LDYA S.LoadBin.Filename
jsr S.GetMemByNameYA
>LDYA K.LoadBin.Filename
jsr K.GetMemByNameYA
bcs .3 not already loaded
>STYA ZPQuickPtr1 Save base address
@ -30,50 +30,50 @@ S.LoadBinYA >STYA S.LoadBin.Filename
pha Y,A = MEM PTR...
iny
lda (ZPQuickPtr1),y
ply X=hMem from S.GetMemByNameA
ply X=hMem from K.GetMemByNameA
clc
rts
.3 >LDYA S.LoadBin.Filename
jsr S.LoadFileYA
.3 >LDYA K.LoadBin.Filename
jsr K.LoadFileYA
bcs .99 Error Loading file
>STYA S.LoadBin.SegLen
stx S.LoadBin.hMem save hMem
>STYA K.LoadBin.SegLen
stx K.LoadBin.hMem save hMem
txa
jsr S.GetMemPtrA
>STYA S.LoadBin.NewBase
jsr K.GetMemPtrA
>STYA K.LoadBin.NewBase
>LDYA S.LoadBin.Filename
jsr S.MLIGetFileInfoYA Get File Info for AUXTYPE
>LDYA K.LoadBin.Filename
jsr K.MLIGetFileInfoYA Get File Info for AUXTYPE
bcs .98
>STYA ZPQuickPtr1
ldy #2 get AUXTYPE
lda (ZPQuickPtr1),y
sta S.LoadBin.OldBase
sta K.LoadBin.OldBase
iny
lda (ZPQuickPtr1),y
sta S.LoadBin.OldBase+1
sta K.LoadBin.OldBase+1
bit RRAMWRAMBNK2
bit RRAMWRAMBNK2
jsr S.InsBin
jsr K.InsBin
bit RRAMWRAMBNK1
bit RRAMWRAMBNK1
bcs .98 relocation error, dicard Code segment
>LDYA S.LoadBin.Filename get back bin path
jsr S.NewPStrYA make a copy of this string
>LDYA K.LoadBin.Filename get back bin path
jsr K.NewPStrYA make a copy of this string
bcs .98
phx save copy
lda S.LoadBin.hMem
jsr S.GetMemByIDA
lda K.LoadBin.hMem
jsr K.GetMemByIDA
>STYA ZPQuickPtr1
lda (ZPQuickPtr1)
@ -84,25 +84,25 @@ S.LoadBinYA >STYA S.LoadBin.Filename
ldy #S.MEM.BIN
sta (ZPQuickPtr1),y
lda S.LoadBin.hMem
lda K.LoadBin.hMem
tax return hMEM to Caller...
jsr S.GetMemPtrA
jsr K.GetMemPtrA
clc ...and Y,A=PTR to CS
rts
.98 pha
lda S.LoadBin.hMem
jsr S.FreeMemA Discard Loaded Code
lda K.LoadBin.hMem
jsr K.FreeMemA Discard Loaded Code
pla
sec
.99 rts
*--------------------------------------
S.LoadBin.Filename .BS 2
S.LoadBin.hMem .BS 1
S.LoadBin.OldBase .BS 2
S.LoadBin.NewBase .BS 2
S.LoadBin.SegLen .BS 2
K.LoadBin.Filename .BS 2
K.LoadBin.hMem .BS 1
K.LoadBin.OldBase .BS 2
K.LoadBin.NewBase .BS 2
K.LoadBin.SegLen .BS 2
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.BIN

View File

@ -5,9 +5,9 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
S.DecOutA tay
K.DecOutA tay
lda #0
S.DecOutYA >STYA HEX
K.DecOutYA >STYA HEX
stz BCD
stz BCD+1
stz BCD+2
@ -46,7 +46,7 @@ S.DecOutYA >STYA HEX
.5 sec
ror bL0Flag
ora #$30
jsr S.COutA
jsr K.COutA
bcs .9
.6 lda BCD,x
@ -57,7 +57,7 @@ S.DecOutYA >STYA HEX
.7 sec
ror bL0Flag
ora #$30
jsr S.COutA
jsr K.COutA
bcs .9
.8 dex
@ -66,16 +66,16 @@ S.DecOutYA >STYA HEX
bit bL0Flag
bmi .9
lda #$30
jsr S.COutA
jsr K.COutA
.9 rts
*--------------------------------------
S.HexOutYA phy
jsr S.HexOutA
bcs S.COutA.RTS
K.HexOutYA phy
jsr K.HexOutA
bcs K.COutA.RTS
pla
*--------------------------------------
S.HexOutA pha
K.HexOutA pha
lsr
lsr
lsr
@ -84,16 +84,16 @@ S.HexOutA pha
cmp #$3A
bcc .1
adc #6
.1 jsr S.COutA
bcs S.COutA.RTS
.1 jsr K.COutA
bcs K.COutA.RTS
pla
and #$0F
ora #$30
cmp #$3A
bcc S.COutA
bcc K.COutA
adc #6
*--------------------------------------
S.COutA phx
K.COutA phx
phy
cmp #13
bne .1
@ -105,7 +105,7 @@ S.COutA phx
jsr pDevJmp
.2 ply
plx
S.COutA.RTS rts
K.COutA.RTS rts
*--------------------------------------
* Mini printf for PSTR
* %d : byte
@ -117,18 +117,18 @@ S.COutA.RTS rts
* \e : ESC
* \n : CR
*--------------------------------------
S.PSTROutYA >STYA ZPQuickPtr1
K.PStrOutYA >STYA ZPQuickPtr1
ldy #0
.1 jsr S.PSTROut.Next
.1 jsr K.PStrOut.Next
bne .12
.8 clc
rts
.12 cmp #'\'
bne .2
jsr S.PSTROut.Next
jsr K.PStrOut.Next
beq .8
cmp #'e'
@ -144,13 +144,13 @@ S.PSTROutYA >STYA ZPQuickPtr1
.2 cmp #'%'
bne .6
jsr S.PSTROut.Next
jsr K.PStrOut.Next
beq .8
cmp #'d'
bne .3
phy
>PULLA
jsr S.DecOutA
jsr K.DecOutA
ply
bcc .1
rts
@ -159,7 +159,7 @@ S.PSTROutYA >STYA ZPQuickPtr1
bne .4
phy
>PULLYA
jsr S.DecOutYA
jsr K.DecOutYA
ply
bcc .1
rts
@ -168,7 +168,7 @@ S.PSTROutYA >STYA ZPQuickPtr1
bne .5
phy
>PULLA
jsr S.HexOutA
jsr K.HexOutA
ply
bcc .1
rts
@ -177,49 +177,49 @@ S.PSTROutYA >STYA ZPQuickPtr1
bne .51
phy
>PULLYA
jsr S.HexOutYA
jsr K.HexOutYA
ply
bcc .1
rts
.51 cmp #'s'
bne .52
jsr S.PSTROutYAS1
jsr K.PStrOutYAS1
bcc .1
rts
.52 cmp #'S'
bne .53
jsr S.PSTROutYAS2
jsr K.PStrOutYAS2
bcc .10
rts
.53 tax
lda #'%'
jsr S.COutA
jsr K.COutA
bcs .9
txa
.6 jsr S.COutA
.6 jsr K.COutA
bcs .9
.10 jmp .1
.9 rts
*--------------------------------------
S.PSTROut.Next tya
K.PStrOut.Next tya
eor (ZPQuickPtr1)
beq .8
iny
lda (ZPQuickPtr1),y
.8 rts
*--------------------------------------
S.PSTROutYAS1 phy
K.PStrOutYAS1 phy
>PULLA
jsr S.GetMemPtrA
bra S.PSTROutYAS
jsr K.GetMemPtrA
bra K.PStrOutYAS
S.PSTROutYAS2 phy
K.PStrOutYAS2 phy
>PULLYA
S.PSTROutYAS >STYA ZPQuickPtr2
K.PStrOutYAS >STYA ZPQuickPtr2
clc
lda (ZPQuickPtr2)
@ -228,7 +228,7 @@ S.PSTROutYAS >STYA ZPQuickPtr2
ldy #1
.1 lda (ZPQuickPtr2),y
jsr S.COutA
jsr K.COutA
bcs .9
iny
dex

View File

@ -7,7 +7,7 @@ AUTO 6
*--------------------------------------
DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
*--------------------------------------
* S.GetDevByIDA
* K.GetDevByIDA
* IN:
* A = DevID
* OUT:
@ -15,28 +15,28 @@ DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
* Y,A = devslot
* X Unmodified
*--------------------------------------
S.GetDevByIDA cmp DevMgr.LastDevID
K.GetDevByIDA cmp DevMgr.LastDevID
beq .1
bcs S.GetDevDNF
bcs K.GetDevDNF
.1 stz S.GetDevByIDA.T
.1 stz K.GetDevByIDA.T
asl
ror S.GetDevByIDA.T
ror K.GetDevByIDA.T
asl
ror S.GetDevByIDA.T
ror K.GetDevByIDA.T
asl
ror S.GetDevByIDA.T
ror K.GetDevByIDA.T
asl
ror S.GetDevByIDA.T
ror K.GetDevByIDA.T
adc #DevMgr.Table
tay
lda S.GetDevByIDA.T
lda K.GetDevByIDA.T
adc /DevMgr.Table
rts CC
S.GetDevByIDA.T .BS 1
K.GetDevByIDA.T .BS 1
*--------------------------------------
* GetDevIDByNameA
* IN:
@ -46,7 +46,7 @@ S.GetDevByIDA.T .BS 1
* X = DEVID
* Y,A = pDev
*--------------------------------------
S.GetDevByNameYA
K.GetDevByNameYA
>STYA ZPQuickPtr1
>LDYAI DevMgr.Table+S.DEV.NAME
>STYA ZPQuickPtr2
@ -85,11 +85,11 @@ S.GetDevByNameYA
inx
bcc .1
S.GetDevDNF lda #DEVMGR.ERRDNF
K.GetDevDNF lda #DEVMGR.ERRDNF
rts
*--------------------------------------
S.GetDevInfoA jsr S.GetDevByIDA
bcs S.GetDevDNF
K.GetDevInfoA jsr K.GetDevByIDA
bcs K.GetDevDNF
>STYA ZPQuickPtr1
ldx #DEVMGR.GETINFO
jmp (ZPQuickPtr1)
@ -183,7 +183,7 @@ DevMgr.SYS.GetEvent
ldx #3
.1 stx DevMgr.SYS.CPULOADI
jsr S.GetKeyboardEvent
jsr K.GetKeyboardEvent
bcs .9
rts

View File

@ -12,13 +12,13 @@ AUTO 6
* CC : Y,A = PTR to S.DIR
* CS : A = EC
*--------------------------------------
S.OPENDIRYA jsr S.PFTCHECKPATHYA
K.OPENDIRYA jsr S.PFTCHECKPATHYA
>STYA ZPQuickPtr2
>STYA MLICALL.PARAMS+1 For MLIOPEN
>PUSHWI S.DIR.PRODOS
>PUSHBI S.MEM.F.INIT0
jsr S.GetMem
jsr K.GetMem
bcs .9
>STYA ZPQuickPtr1
@ -38,7 +38,7 @@ S.OPENDIRYA jsr S.PFTCHECKPATHYA
.7 >PUSHWI 1024 get a ProDOS IOBUF
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr S.GetMem
jsr K.GetMem
bcs .98
>STYA MLICALL.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
@ -58,7 +58,7 @@ S.OPENDIRYA jsr S.PFTCHECKPATHYA
rts
.98 pha save MLI error
jsr S.CLOSEDIRA.1
jsr K.CLOSEDIRA.1
pla get back MLI error
sec
.99 rts
@ -71,8 +71,8 @@ hDIR .BS 1
* CC : X = hDIREND, Y,A = PTR to S.DIRENT
* CS : A = EC, A = 0 : no more entry
*--------------------------------------
S.READDIRA jsr S.PFTCHECKDIRA
jsr S.GetMemPtrA
K.READDIRA jsr S.PFTCHECKDIRA
jsr K.GetMemPtrA
>STYA ZPQuickPtr1
ldy #S.DIR.F
@ -82,19 +82,19 @@ S.READDIRA jsr S.PFTCHECKDIRA
ldy #S.DIR.PRODOS.REF
lda (ZPQuickPtr1),y
beq S.READDIRA.ROOT
jmp S.READDIRA.DIR
beq K.READDIRA.ROOT
jmp K.READDIRA.DIR
.9 lda #0
sec CS,A=0 no more entry
S.READDIRA.RTS rts
K.READDIRA.RTS rts
S.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
>LDYAI KrnBuffer256
>STYA MLICALL.PARAMS+2
>STYA ZPQuickPtr2 For PASS #2
>MLICALL MLIONLINE
bcs S.READDIRA.RTS
bcs K.READDIRA.RTS
lda #1 +1 for Ending 0
sta BufSize
@ -127,14 +127,14 @@ S.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
bcc .1 loop until 256 bytes scanned
txa
beq S.READDIRA.RTS A=0, CS no more DIRENT
beq K.READDIRA.RTS A=0, CS no more DIRENT
sta EntryCount
>PUSHW BufSize
>PUSHBI S.MEM.F.INIT0
jsr S.GetMem
bcs S.READDIRA.RTS
jsr K.GetMem
bcs K.READDIRA.RTS
stx hDIRENT
>STYA ZPQuickPtr3
>STYA ZPQuickPtr4
@ -220,21 +220,21 @@ S.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
clc
rts
*--------------------------------------
S.READDIRA.DIR ldy #S.DIR.PRODOS.REF
K.READDIRA.DIR ldy #S.DIR.PRODOS.REF
lda (ZPQuickPtr1),y
sta MLICALL.PARAMS+1
>PUSHWI 512 Get a 512 bytes buffer for reading dir...
>PUSHBI 0
jsr S.GetMem
jsr K.GetMem
bcs .99
stx S.READDIRA.hMem
stx K.READDIRA.hMem
>STYA MLICALL.PARAMS+2 For reading
pha
tya
* clc CC from S.GetMem
* clc CC from K.GetMem
adc #4 Skip 4 bytes linked list
tay
pla
@ -260,8 +260,8 @@ S.READDIRA.DIR ldy #S.DIR.PRODOS.REF
bra .4
.98 pha
lda S.READDIRA.hMem
jsr S.FreeMemA
lda K.READDIRA.hMem
jsr K.FreeMemA
pla
sec
.99 rts
@ -309,9 +309,9 @@ S.READDIRA.DIR ldy #S.DIR.PRODOS.REF
>PUSHW BufSize Get a BufSize bytes buffer for storing results
>PUSHBI S.MEM.F.INIT0 make sure 0 fiiled
jsr S.GetMem
jsr K.GetMem
bcs .98
stx S.READDIRA.hDIR
stx K.READDIRA.hDIR
>STYA ZPQuickPtr4
.72 jsr DecEntryCount
@ -320,7 +320,7 @@ S.READDIRA.DIR ldy #S.DIR.PRODOS.REF
lda (ZPQuickPtr3)
beq .78
jsr S.READDIRA.ADD
jsr K.READDIRA.ADD
.78 lda ZPQuickPtr3
clc
@ -344,9 +344,9 @@ S.READDIRA.DIR ldy #S.DIR.PRODOS.REF
jsr .98 Discard READBUFFER
lda S.READDIRA.hDIR
lda K.READDIRA.hDIR
tax
jsr S.GetMemPtrA
jsr K.GetMemPtrA
clc
rts
*--------------------------------------
@ -358,7 +358,7 @@ S.READDIR.CHK tay save LEN
inc EntryCount2Return yes, return 2 ".."
lda #S.STAT+3 add "#.." string + S.STAT
jsr S.READDIRA.AddBufSize
jsr K.READDIRA.AddBufSize
bra .2 go add "." Entry
@ -373,18 +373,18 @@ S.READDIR.CHK tay save LEN
sec Add 1 for LEN
adc #S.STAT
.4 jsr S.READDIRA.AddBufSize
.4 jsr K.READDIRA.AddBufSize
inc EntryCount2Return
rts
*--------------------------------------
S.READDIRA.ADD and #$F0
K.READDIRA.ADD and #$F0
cmp #$F0 Volume header ?
bne .10
lda #1
jsr S.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
lda #'.'
jsr S.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
ldy #$25 total_blocks
lda (ZPQuickPtr3),y
@ -402,10 +402,10 @@ S.READDIRA.ADD and #$F0
bne .20
lda #2
jsr S.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
lda #'.'
jsr S.READDIRA.AddToBuf
jsr S.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
@ -416,11 +416,11 @@ S.READDIRA.ADD and #$F0
lda (ZPQuickPtr3)
and #$0F get filename len
tax
jsr S.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
ldy #1
.21 lda (ZPQuickPtr3),y
jsr S.READDIRA.AddToBuf
jsr K.READDIRA.AddToBuf
iny
dex
bne .21
@ -436,7 +436,7 @@ S.READDIRA.ADD and #$F0
inc ZPQuickPtr4+1
.8 rts
*--------------------------------------
S.READDIRA.AddBufSize
K.READDIRA.AddBufSize
clc
adc BufSize
sta BufSize
@ -444,7 +444,7 @@ S.READDIRA.AddBufSize
inc BufSize+1
.9 rts
*--------------------------------------
S.READDIRA.AddToBuf
K.READDIRA.AddToBuf
sta (ZPQuickPtr4)
inc ZPQuickPtr4
bne .8
@ -461,18 +461,18 @@ DecEntryCount lda EntryCount
sta EntryCount+1 CC, we reached $ffff
.9 rts
*--------------------------------------
S.READDIRA.hMem .BS 1
S.READDIRA.hDIR .BS 1
K.READDIRA.hMem .BS 1
K.READDIRA.hDIR .BS 1
*--------------------------------------
* In :
* A = hDIR
*--------------------------------------
S.CLOSEDIRA jsr S.PFTCHECKDIRA
K.CLOSEDIRA jsr S.PFTCHECKDIRA
sta hDIR
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA ZPQuickPtr1
S.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF
K.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF
lda (ZPQuickPtr1),y
beq .1
sta MLICALL.PARAMS+1
@ -481,14 +481,14 @@ S.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF
.1 ldy #S.DIR.PRODOS.IOBUF
lda (ZPQuickPtr1),y
beq .2
jsr S.FreeMemA
jsr K.FreeMemA
.2 lda hDIR
jsr S.FreeMemA
jsr K.FreeMemA
clc
rts
*--------------------------------------
S.MKDIRYA jsr S.PFTCHECKPATHYA
K.MKDIRYA jsr S.PFTCHECKPATHYA
>STYA MLICALL.PARAMS+1
lda #S.FILEINFO.ACCESS.FULL
sta MLICALL.PARAMS+S.FILEINFO.ACCESS

View File

@ -5,33 +5,33 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.LoadDrvYA
* K.LoadDrvYA
* in :
* Y,A = PTR To Full Cmd Line PStrArray
* out :
* none
*--------------------------------------
S.LoadDrvYA >STYA S.LoadDrv.CmdArray
K.LoadDrvYA >STYA K.LoadDrv.CmdArray
>LDYAI ENV.DRV push ENVNAME=DRV
jsr S.GetEnvYA get value for ENV=DRV
jsr K.GetEnvYA get value for ENV=DRV
bcs .99
>PUSHYA Push $DRV value
>PUSHW S.LoadDrv.CmdArray (ARG[0] = DRVNAME)
>PUSHW K.LoadDrv.CmdArray (ARG[0] = DRVNAME)
jsr S.FileSearch find libname in $DRV
jsr K.FileSearch find libname in $DRV
bcs .99
stx S.LoadDrv.hFullName
stx K.LoadDrv.hFullName
jsr S.LoadBinYA Y,A =filename full path
jsr K.LoadBinYA Y,A =filename full path
bcs .98
>STYA pDrv
stx S.LoadDrv.hMem
stx K.LoadDrv.hMem
>LDYA S.LoadDrv.CmdArray Advance to ARG[1]
>LDYA K.LoadDrv.CmdArray Advance to ARG[1]
>STYA ZPQuickPtr1
lda ZPQuickPtr1
@ -49,7 +49,7 @@ S.LoadDrvYA >STYA S.LoadDrv.CmdArray
bit RRAMWRAMBNK2
bit RRAMWRAMBNK2
jsr S.InsDrv
jsr K.InsDrv
bit RRAMWRAMBNK1
bit RRAMWRAMBNK1
@ -68,21 +68,21 @@ S.LoadDrvYA >STYA S.LoadDrv.CmdArray
.99 rts
.97 pha
lda S.LoadDrv.hMem
jsr S.FreeMemA
lda K.LoadDrv.hMem
jsr K.FreeMemA
pla
.98 pha
lda S.LoadDrv.hFullName
jsr S.FreeMemA
lda K.LoadDrv.hFullName
jsr K.FreeMemA
pla
sec
rts
*--------------------------------------
ENV.DRV >PSTRING "DRV"
S.LoadDrv.CmdArray .BS 2
S.LoadDrv.hFullName .BS 1
S.LoadDrv.hMem .BS 1
K.LoadDrv.CmdArray .BS 2
K.LoadDrv.hFullName .BS 1
K.LoadDrv.hMem .BS 1
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.DRV

View File

@ -5,7 +5,8 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
S.ExpandPStrYA >STYA ZPQuickPtr3
K.ExpandPStrYA.NEW
>STYA ZPQuickPtr3
lda (ZPQuickPtr3)
sta KrnBuffer256
@ -18,7 +19,7 @@ S.ExpandPStrYA >STYA ZPQuickPtr3
ldy #0
.2 stz S.ExpandPStr.Start
.2 stz K.ExpandPStr.Start
.3 tya
cmp KrnBuffer256 End of PSTR?
@ -26,22 +27,26 @@ S.ExpandPStrYA >STYA ZPQuickPtr3
iny
lda KrnBuffer256,y
.80
rts
*--------------------------------------
* S.ExpandPStrYA
* K.ExpandPStrYA
* In:
* Y,A = PTR to String to Expand (PSTRING)
* Out:
* X = hMem to Expanded String (PSTRING)
* Y,A = PTR to Expanded String
*--------------------------------------
S.ExpandPStrYA.OLD
K.ExpandPStrYA
>STYA ZPQuickPtr3
stz KrnBuffer256 init Expanded String len=0
ldy #0
.10 stz S.ExpandPStr.Start
.10 stz K.ExpandPStr.Start
.1 tya
cmp (ZPQuickPtr3) End of PSTR?
@ -50,7 +55,7 @@ S.ExpandPStrYA.OLD
iny
lda (ZPQuickPtr3),y
ldx S.ExpandPStr.Start
ldx K.ExpandPStr.Start
bne .3 already in a var?
cmp #'$' no, found one ?
@ -61,8 +66,8 @@ S.ExpandPStrYA.OLD
sta KrnBuffer256,x
bra .1
.2 sty S.ExpandPStr.Start save var start
stz S.ExpandPStr.End
.2 sty K.ExpandPStr.Start save var start
stz K.ExpandPStr.End
bra .1 skip this char
.3 cmp #'{' in var, "{" after "$"?
@ -71,32 +76,32 @@ S.ExpandPStrYA.OLD
cmp #'}' end of var?
beq .5
.4 jsr S.ExpandPStr.VC valid char ?
.4 jsr K.ExpandPStr.VC valid char ?
bcs .5 no, end here
sty S.ExpandPStr.End yes, save end
sty K.ExpandPStr.End yes, save end
bra .1
.5 lda S.ExpandPStr.End get end
.5 lda K.ExpandPStr.End get end
beq .1 empty {} or $/
phy save current index
jsr S.ExpandPStr.AV
jsr K.ExpandPStr.AV
ply restore index in string...
bra .10 reset start flag and continue
.6 sty S.ExpandPStr.End end of PSTR
lda S.ExpandPStr.Start are we in a var?
.6 sty K.ExpandPStr.End end of PSTR
lda K.ExpandPStr.Start are we in a var?
beq .7 no...exit...
jsr S.ExpandPStr.AV yes, expand and add to STR
jsr K.ExpandPStr.AV yes, expand and add to STR
.7 >LDYAI KrnBuffer256
jsr S.NewPStrYA
jsr K.NewPStrYA
rts
*--------------------------------------
S.ExpandPStr.AV lda S.ExpandPStr.End
K.ExpandPStr.AV lda K.ExpandPStr.End
sec
sbc S.ExpandPStr.Start compute len of VAR End-Start+1
sbc K.ExpandPStr.Start compute len of VAR End-Start+1
ldx KrnBuffer256
inx
@ -106,13 +111,13 @@ S.ExpandPStr.AV lda S.ExpandPStr.End
lda /KrnBuffer256
sta ZPQuickPtr2+1
ldy S.ExpandPStr.Start
ldy K.ExpandPStr.Start
.1 iny
inx
lda (ZPQuickPtr3),y
sta KrnBuffer256,x
cpy S.ExpandPStr.End
cpy K.ExpandPStr.End
bne .1
jsr S.CheckSysVarPtr2
@ -140,7 +145,7 @@ S.ExpandPStr.AV lda S.ExpandPStr.End
.9 rts
*--------------------------------------
S.ExpandPStr.VC cmp #'0'
K.ExpandPStr.VC cmp #'0'
bcc .9
cmp #'9'+1
bcc .8
@ -158,12 +163,12 @@ S.ExpandPStr.VC cmp #'0'
.9 sec
rts
*--------------------------------------
S.ExpandPStr.Start .BS 1
S.ExpandPStr.End .BS 1
K.ExpandPStr.Start .BS 1
K.ExpandPStr.End .BS 1
*--------------------------------------
* S.PutEnvYA
* K.PutEnvYA
*--------------------------------------
S.PutEnvYA >STYA ZPQuickPtr2 NAME=VALUE
K.PutEnvYA >STYA ZPQuickPtr2 NAME=VALUE
lda (ZPQuickPtr2)
beq .9
sta KrnBuffer256
@ -210,21 +215,21 @@ S.PutEnvYA >STYA ZPQuickPtr2 NAME=VALUE
>LDYAI KrnBuffer256
>STYA ZPQuickPtr2
bra S.SetEnvPtr2Ptr3
bra K.SetEnvPtr2Ptr3
.9 sec
rts
*--------------------------------------
* S.SetEnv
* K.SetEnv
* In:
* PULLW = PTR To Name (PSTRING)
* PULLW = PTR To Value (PSTRING)
* Out:
*--------------------------------------
S.SetEnv >PULLW ZPQuickPtr2 NAME...
K.SetEnv >PULLW ZPQuickPtr2 NAME...
>PULLW ZPQuickPtr3 ...VALUE
S.SetEnvPtr2Ptr3
K.SetEnvPtr2Ptr3
jsr S.UnsetEnvPtr2
jsr S.InitEnvPtr1 Y,A = ZPQuickPtr1 -> Env
@ -295,14 +300,14 @@ S.SetEnvPtr2Ptr3
sec
rts
*--------------------------------------
* S.GetEnvYA
* K.GetEnvYA
* In:
* Y,A = PTR to NAME (PSTRING)
* Out:
* CC : Y,A = PTR to VALUE (PSTRING)
* CS : not found
*--------------------------------------
S.GetEnvYA >STYA ZPQuickPtr2
K.GetEnvYA >STYA ZPQuickPtr2
jsr S.CheckSysVarPtr2
bcc .9
@ -312,12 +317,12 @@ S.GetEnvYA >STYA ZPQuickPtr2
>LDYA ZPQuickPtr1
.9 rts
*--------------------------------------
* S.UnsetEnvYA
* K.UnsetEnvYA
* In:
* YA = PTR To Name (PSTRING)
* Out:
*--------------------------------------
S.UnsetEnvYA >STYA ZPQuickPtr2 Store VAR Name
K.UnsetEnvYA >STYA ZPQuickPtr2 Store VAR Name
S.UnsetEnvPtr2 jsr S.FindVarPtr2
bcs .8 not found, quit
@ -348,7 +353,7 @@ S.CheckSysVarPtr2
cmp #'9'+1
bcs .99
and #$0F
jmp S.GetArgA
jmp K.GetArgA
.1 cmp #'*' $* : All ARGS
bne .9
@ -438,7 +443,7 @@ S.DiscardVarPtr1
*--------------------------------------
S.InitEnvPtr1 ldy #S.PS.hENV
lda (pPs),y
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA ZPQuickPtr1 Store ENV
rts
*--------------------------------------

View File

@ -12,16 +12,16 @@ AUTO 6
* CC * event in YA
* (pEvent)
*--------------------------------------
S.GetEvents stz pEvent
K.GetEvents stz pEvent
stz EVTMGR.COUNT
lda VBL get VLINE status
tax
eor EVTMGR.VBLSTATE
bpl S.GetEvents.DEV no change,no tick
bpl K.GetEvents.DEV no change,no tick
txa
sta EVTMGR.VBLSTATE save new
bpl S.GetEvents.DEV Up2down transition,no tick
bpl K.GetEvents.DEV Up2down transition,no tick
* sta PDLTRIG clr VBL (IIc)
* lda RDIOUDIS clr VBL (IIc)
@ -31,7 +31,7 @@ S.GetEvents stz pEvent
inc A2osX.TIMER16+1
.1 dec EVTMGR.HZ.CNT
bne S.GetEvents.DEV not yet 100ms
bne K.GetEvents.DEV not yet 100ms
ldx A2osX.HZ
stx EVTMGR.HZ.CNT
@ -54,7 +54,7 @@ S.GetEvents stz pEvent
sta pEvent
inc EVTMGR.COUNT
S.GetEvents.DEV >LDYAI DevMgr.Table
K.GetEvents.DEV >LDYAI DevMgr.Table
>STYA pDev
stz DevMgr.DevID
@ -106,7 +106,7 @@ S.GetEvents.DEV >LDYAI DevMgr.Table
.9 sec error code=0,CS=no event
rts
*--------------------------------------
S.GetKeyboardEvent
K.GetKeyboardEvent
lda KBD
bpl .9
sta KBDSTROBE
@ -133,7 +133,7 @@ S.GetKeyboardEvent
.99 sec no event
rts
*--------------------------------------
S.DestroyEvent lda (pEvent)
K.DestroyEvent lda (pEvent)
beq .9
bit #S.EVT.F.hMEM1
@ -142,7 +142,7 @@ S.DestroyEvent lda (pEvent)
pha
ldy #S.EVT.DATALO
lda (pEvent),y
jsr S.FreeMemA
jsr K.FreeMemA
pla
.1 bit #S.EVT.F.hMEM2
@ -150,7 +150,7 @@ S.DestroyEvent lda (pEvent)
ldy #S.EVT.DATAHI
lda (pEvent),y
jsr S.FreeMemA
jsr K.FreeMemA
.2 lda #0
sta (pEvent)

View File

@ -9,7 +9,7 @@ AUTO 6
* Must be kept in X before calling
* S.PFTCheckXYZ
*--------------------------------------
* S.FOPEN
* K.FOPEN
* In :
* PULLW = PATH (PSTR)
* PULLB = MODE
@ -24,24 +24,23 @@ AUTO 6
* CC : A = hFILE
* CS : A = EC
*--------------------------------------
S.FOPEN jsr S.PFTCHECKPATHSTK
K.FOPEN jsr S.PFTCHECKPATHSTK
>PULLW MLICALL.PARAMS+1
>PULLB S.FOPEN.MODE
>PULLB S.FOPEN.TYPE
>PULLW S.FOPEN.AUXTYPE
>PULLB K.FOPEN.MODE
>PULLB K.FOPEN.TYPE
>PULLW K.FOPEN.AUXTYPE
>MLICALL MLIGETFILEINFO
>DEBUG
bcc .10 Already Exists
bit S.FOPEN.MODE Create if not exists ?
bit K.FOPEN.MODE Create if not exists ?
bpl .9 No, return MLI error
lda #S.FILEINFO.ACCESS.FULL Yes, Create...
sta MLICALL.PARAMS+3 Access
lda S.FOPEN.TYPE
lda K.FOPEN.TYPE
sta MLICALL.PARAMS+4 File type
>LDYA S.FOPEN.AUXTYPE
>LDYA K.FOPEN.AUXTYPE
>STYA MLICALL.PARAMS+5 Aux type
lda #S.FILEINFO.STORETYPE.STD
sta MLICALL.PARAMS+7
@ -51,7 +50,7 @@ S.FOPEN jsr S.PFTCHECKPATHSTK
.10 >PUSHWI S.FILE.PRODOS
>PUSHBI S.MEM.F.INIT0
jsr S.GetMem
jsr K.GetMem
bcs .99
>STYA ZPQuickPtr1
@ -59,7 +58,7 @@ S.FOPEN jsr S.PFTCHECKPATHSTK
>PUSHWI 1024 get a ProDOS IOBUF
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr S.GetMem
jsr K.GetMem
bcs .98
>STYA MLICALL.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
@ -76,7 +75,7 @@ S.FOPEN jsr S.PFTCHECKPATHSTK
sta MLICALL.PARAMS+1 Next MLI Calls are REF_NUM based
lda S.FOPEN.MODE
lda K.FOPEN.MODE
and #SYS.FOPEN.A Append ?
beq .20
@ -86,7 +85,7 @@ S.FOPEN jsr S.PFTCHECKPATHSTK
>MLICALL MLISETMARK
bcs .98
.20 lda S.FOPEN.MODE
.20 lda K.FOPEN.MODE
and #SYS.FOPEN.T Text Mode ?
beq .30
@ -101,26 +100,26 @@ S.FOPEN jsr S.PFTCHECKPATHSTK
rts CC
.98 pha save MLI error
jsr S.FCLOSEA.1
jsr K.FCLOSEA.1
pla get back MLI error
sec
.99 rts
*--------------------------------------
S.FOPEN.MODE .BS 1
S.FOPEN.TYPE .BS 1
S.FOPEN.AUXTYPE .BS 2
K.FOPEN.MODE .BS 1
K.FOPEN.TYPE .BS 1
K.FOPEN.AUXTYPE .BS 2
hFILE .BS 1
*--------------------------------------
* S.FCLOSEA
* K.FCLOSEA
* In :
* A = hFILE
*--------------------------------------
S.FCLOSEA jsr S.PFTCHECKFILEA
K.FCLOSEA jsr S.PFTCHECKFILEA
sta hFILE
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA ZPQuickPtr1
S.FCLOSEA.1 ldy #S.FILE.PRODOS.REF
K.FCLOSEA.1 ldy #S.FILE.PRODOS.REF
lda (ZPQuickPtr1),y
beq .1
sta MLICALL.PARAMS+1
@ -129,13 +128,13 @@ S.FCLOSEA.1 ldy #S.FILE.PRODOS.REF
.1 ldy #S.FILE.PRODOS.IOBUF
lda (ZPQuickPtr1),y
beq .2
jsr S.FreeMemA
jsr K.FreeMemA
.2 lda hFILE
jsr S.FreeMemA
jsr K.FreeMemA
rts
*--------------------------------------
* S.FREAD
* K.FREAD
* In :
* PULLB = hFILE
* PULLW = Bytes To Read
@ -143,7 +142,7 @@ S.FCLOSEA.1 ldy #S.FILE.PRODOS.REF
* Out :
* Y,A = Bytes Read
*--------------------------------------
S.FREAD jsr S.PFTCHECKFILESTK
K.FREAD jsr S.PFTCHECKFILESTK
>PULLA
jsr FIL.SetupPrt1A
>PULLW MLICALL.PARAMS+4
@ -153,7 +152,7 @@ S.FREAD jsr S.PFTCHECKFILESTK
>LDYA MLICALL.PARAMS+6
.9 rts
*--------------------------------------
* S.FWRITE
* K.FWRITE
* In :
* PULLB = hFILE
* PULLW = Bytes To Write
@ -161,7 +160,7 @@ S.FREAD jsr S.PFTCHECKFILESTK
* Out :
* Y,A = Bytes Written
*--------------------------------------
S.FWRITE jsr S.PFTCHECKFILESTK
K.FWRITE jsr S.PFTCHECKFILESTK
>PULLA
jsr FIL.SetupPrt1A
>PULLW MLICALL.PARAMS+4
@ -171,30 +170,30 @@ S.FWRITE jsr S.PFTCHECKFILESTK
>LDYA MLICALL.PARAMS+6
.9 rts
*--------------------------------------
* S.FFLUSHA
* K.FFLUSHA
* In :
* A = hFILE
*--------------------------------------
S.FFLUSHA jsr S.PFTCHECKFILEA
K.FFLUSHA jsr S.PFTCHECKFILEA
jsr FIL.SetupPrt1A
>MLICALL MLIFLUSH
rts
*--------------------------------------
* S.FSEEK
* K.FSEEK
* In :
* PULLB = hFILE
* PULLB = From
* PULLW = OffsetLo
* PULLW = OffsetHi
*--------------------------------------
S.FSEEK jsr S.PFTCHECKFILESTK
K.FSEEK jsr S.PFTCHECKFILESTK
>PULLA
jsr FIL.SetupPrt1A
>PULLB S.FSEEK.FROM
>PULLW S.FSEEK.OFFSET
>PULLW S.FSEEK.OFFSET+2
lda S.FSEEK.FROM
beq .3
>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
bne .1
@ -208,13 +207,13 @@ S.FSEEK jsr S.PFTCHECKFILESTK
bcs .9
.2 lda MLICALL.PARAMS+2
adc S.FSEEK.OFFSET
adc K.FSEEK.OFFSET
sta MLICALL.PARAMS+2
lda MLICALL.PARAMS+3
adc S.FSEEK.OFFSET+1
adc K.FSEEK.OFFSET+1
sta MLICALL.PARAMS+3
lda MLICALL.PARAMS+4
adc S.FSEEK.OFFSET+2
adc K.FSEEK.OFFSET+2
sta MLICALL.PARAMS+4
bcs .99 Offset out of range!
@ -227,24 +226,24 @@ S.FSEEK jsr S.PFTCHECKFILESTK
sec
rts
*--------------------------------------
S.FSEEK.FROM .BS 1
S.FSEEK.OFFSET .BS 4
K.FSEEK.FROM .BS 1
K.FSEEK.OFFSET .BS 4
*--------------------------------------
* S.FTELLA
* K.FTELLA
* In :
* A = hFILE
* Out :
* Y,A,X = Offset
*--------------------------------------
S.FTELLA jsr S.PFTCHECKFILEA
S.FTELLA.1 jsr FIL.SetupPrt1A
K.FTELLA jsr S.PFTCHECKFILEA
K.FTELLA.1 jsr FIL.SetupPrt1A
>MLICALL MLIGETMARK
bcs .9
>LDYA MLICALL.PARAMS+2
ldx MLICALL.PARAMS+4
.9 rts
*--------------------------------------
* S.FEOFA
* K.FEOFA
* In :
* A = hFILE
* Out :
@ -253,58 +252,80 @@ S.FTELLA.1 jsr FIL.SetupPrt1A
* A !=0 NOT EOF
* CS :
*--------------------------------------
S.FEOFA jsr S.PFTCHECKFILEA
K.FEOFA jsr S.PFTCHECKFILEA
jsr FIL.SetupPrt1A
jsr S.FTELLA.1
jsr K.FTELLA.1
bcs .9
>STYA S.FEOFA.MARK
stx S.FEOFA.MARK+2
>STYA K.FEOFA.MARK
stx K.FEOFA.MARK+2
>MLICALL MLIGETEOF
bcs .9
sec
lda MLICALL.PARAMS+2
sbc S.FEOFA.MARK
sbc K.FEOFA.MARK
bne .8
lda MLICALL.PARAMS+3
sbc S.FEOFA.MARK+1
sbc K.FEOFA.MARK+1
bne .8
lda MLICALL.PARAMS+4
sbc S.FEOFA.MARK+2
sbc K.FEOFA.MARK+2
.8 clc
.9 rts
S.FEOFA.MARK .BS 3
K.FEOFA.MARK .BS 3
*--------------------------------------
* S.REMOVEYA
* K.REMOVEYA
*--------------------------------------
S.REMOVEYA jsr S.PFTCHECKPATHYA
K.REMOVEYA jsr S.PFTCHECKPATHYA
>STYA MLICALL.PARAMS+1
>MLICALL MLIDESTROY
rts
*--------------------------------------
* S.RENAME
* K.RENAME
* In :
* PULLW = Old Name
* PULLW = New Name
*--------------------------------------
S.RENAME jsr S.PFTCHECKPATHYA
K.RENAME jsr S.PFTCHECKPATHYA
>PULLW MLICALL.PARAMS+1
>PULLW MLICALL.PARAMS+2
>PULLW MLICALL.PARAMS+3
>MLICALL MLIRENAME
rts
*--------------------------------------
S.STAT jsr S.PFTCHECKPATHYA
rts
* K.STAT
* In :
* PULLB = hFILE
* PULLW = PTR to S.STAT buffer
*--------------------------------------
S.FSTAT jsr S.PFTCHECKFILEA
rts
K.STAT jsr S.PFTCHECKFILEA
>PULLA
jsr FIL.SetupPrt1A
>PULLW ZPQuickPtr2
>MLICALL MLIGETFILEINFO
bcs .9
>LDYAI MLICALL.PARAMS+3
.9 rts
*--------------------------------------
FIL.SetupPrt1A jsr S.GetMemPtrA
* K.FSTAT
* In :
* PULLW = PTR to Filename
* PULLW = PTR to S.STAT buffer
*--------------------------------------
K.FSTAT jsr S.PFTCHECKPATHYA
>PULLW MLICALL.PARAMS+1
>PULLW ZPQuickPtr2
>MLICALL MLIGETFILEINFO
bcs .9
>LDYAI MLICALL.PARAMS+3
.9 rts
*--------------------------------------
FIL.SetupPrt1A jsr K.GetMemPtrA
>STYA ZPQuickPtr1
ldy #S.FILE.PRODOS.REF
lda (ZPQuickPtr1),y

View File

@ -7,7 +7,7 @@ AUTO 6
*--------------------------------------
* PUBLIC
*--------------------------------------
S.CheckPrefixYA >STYA MLICALL.PARAMS+1
K.CheckPrefixYA >STYA MLICALL.PARAMS+1
>STYA ZPQuickPtr1
lda (ZPQuickPtr1)
beq .98
@ -29,7 +29,7 @@ S.CheckPrefixYA >STYA MLICALL.PARAMS+1
.99 sec
rts
*--------------------------------------
* S.FileSearch
* K.FileSearch
* in :
* PULLW = PSTR to File Name (PSTRING)
* PULLW = PSTR to Search Path (PSTRING) %LIB%;/SYS/SLIB
@ -37,20 +37,20 @@ S.CheckPrefixYA >STYA MLICALL.PARAMS+1
* Y,A = PSTR to FilePath (PSTRING)
* X = hMem to FilePath
*--------------------------------------
S.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA
K.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA
>PULLYA Get Search list
jsr S.ExpandPStrYA Expand it
jsr K.ExpandPStrYA Expand it
bcs .99
stx S.FileSearch.hSrch
stx K.FileSearch.hSrch
>STYA ZPQuickPtr2 expanded search list ;
stz S.FileSearch.Index
stz K.FileSearch.Index
.1 stz KrnBuffer256 reset String
ldx #0
ldy S.FileSearch.Index
ldy K.FileSearch.Index
.2 tya
cmp (ZPQuickPtr2) end of src string ?
@ -66,7 +66,7 @@ S.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA
.3 txa
beq .98 String is empty....nothing to try
sty S.FileSearch.Index save current index
sty K.FileSearch.Index save current index
ldy #0
@ -81,32 +81,32 @@ S.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA
stx KrnBuffer256 set string length
>LDYAI KrnBuffer256
jsr S.MLIGetFileInfoYA
jsr K.MLIGetFileInfoYA
bcs .1 Failed...retry next path...
lda S.FileSearch.hSrch Discard Expanded hSrch list
jsr S.FreeMemA
lda K.FileSearch.hSrch Discard Expanded hSrch list
jsr K.FreeMemA
>LDYAI KrnBuffer256
jmp S.NewPStrYA
jmp K.NewPStrYA
.98 lda S.FileSearch.hSrch Discard Expanded hSrch list
jsr S.FreeMemA
.98 lda K.FileSearch.hSrch Discard Expanded hSrch list
jsr K.FreeMemA
lda #SYSMGR.ERRFNF
sec
.99 rts
*--------------------------------------
S.FileSearch.File .BS 2
S.FileSearch.hSrch .BS 1
S.FileSearch.Index .BS 1
K.FileSearch.File .BS 2
K.FileSearch.hSrch .BS 1
K.FileSearch.Index .BS 1
*--------------------------------------
* S.GetFullPathYA
* K.GetFullPathYA
* in :
* Y,A = Filename (PSTRING)
* out :
* Y,A = FullPath (PSTRING)
* X = hMem of FullPath
*--------------------------------------
S.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy
K.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy
lda (ZPQuickPtr3)
beq .9
@ -119,21 +119,21 @@ S.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy
ldy #S.PS.hPREFIX
lda (pPs),y
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>PUSHYA
>PUSHWI KrnBuffer256
jsr S.PStrCpy
jsr K.PStrCpy
.1 >PUSHW ZPQuickPtr3
>PUSHWI KrnBuffer256
jsr S.PStrCat
jsr K.PStrCat
>LDYAI KrnBuffer256
jmp S.NewPStrYA
jmp K.NewPStrYA
.9 sec
rts
*--------------------------------------
* S.LoadFile
* K.LoadFile
* in :
* PULLW = PATH (Handled by....
* PULLB = MODE ...
@ -143,46 +143,78 @@ S.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy
* Y,A = File Length
* X = hMem of Loaded File
*--------------------------------------
S.LoadFile jsr S.FOPEN
K.LoadFile >DEBUG
jsr K.FOPEN
bcs .9
sta S.LoadFile.hFile
sta K.LoadFile.hFile
jsr S.FSTATA
>PUSHW S.LoadFile.Mem
ldx #SYS.FSEEK.END
jsr K.LoadFile.Seek
bcs .99
>PUSHW S.LoadFile.Len
lda K.LoadFile.hFile
jsr K.FTELLA
bcs .99
>STYA K.LoadFile.Len
phx
plx
bne .98 LEN > 65535 !!???
>PUSHB S.LoadFile.hFile
jsr S.FREAD
>PUSHYA push len
>PUSHBI 0
jsr K.GetMem
bcs .99
>STYA K.LoadFile.Mem
stx K.LoadFile.hMem
ldx #SYS.FSEEK.SET
jsr K.LoadFile.Seek
bcs .99
>PUSHW K.LoadFile.Mem
>PUSHW K.LoadFile.Len
>PUSHB K.LoadFile.hFile
jsr K.FREAD
bcs .99
jsr .99
clc
rts
>LDYA K.LoadFile.Len
ldx K.LoadFile.hMem
clc
.9 rts
.98 lda #SYSMGR.ERRFTB
.99 pha
lda S.LoadFile.hFile
jsr S.FCLOSEA
lda K.LoadFile.hFile
jsr K.FCLOSEA
pla
sec
.9 rts
rts
*--------------------------------------
* S.LoadFileYA
K.LoadFile.Seek >PUSHWI 0
>PUSHWI 0
txa
>PUSHA
>PUSHB K.LoadFile.hFile
jmp K.FSEEK
*--------------------------------------
* K.LoadFileYA
* in :
* Y,A = FilePath (PSTRING)
* out :
* Y,A = File Length
* X = hMem of Loaded File
*--------------------------------------
S.LoadFileYA jsr S.MLIOpenYA
K.LoadFileYA jsr K.MLIOpenYA
bcc .10
rts
.10 sta S.LoadFile.hRef save ref_num
stx S.LoadFile.hBuf save Prodos Buffer for freemem
jsr S.MLIGetEOFA
.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?
@ -191,38 +223,38 @@ S.LoadFileYA jsr S.MLIOpenYA
lda #SYSMGR.ERRFTB
bra .98
.1 >STYA S.LoadFile.Len save Length
>PUSHYA Push Length for S.GetMem
.1 >STYA K.LoadFile.Len save Length
>PUSHYA Push Length for K.GetMem
>PUSHBI 0
jsr S.GetMem
jsr K.GetMem
bcs .98
>STYA S.LoadFile.Mem
>STYA K.LoadFile.Mem
stx S.LoadFile.hMem save Segment hMem
>PUSHW S.LoadFile.Len Push Length for S.MLIRead
>PUSHW S.LoadFile.Mem Push PTR
>PUSHB S.LoadFile.hRef Push ref_num
jsr S.MLIRead
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 S.LoadFile.Len Return File Length...
ldx S.LoadFile.hMem ...and hMem to Caller
>LDYA K.LoadFile.Len Return File Length...
ldx K.LoadFile.hMem ...and hMem to Caller
clc
rts
.97 pha
lda S.LoadFile.hMem
jsr S.FreeMemA freemem because of failed load
lda K.LoadFile.hMem
jsr K.FreeMemA freemem because of failed load
pla
.98 pha
lda S.LoadFile.hRef
jsr S.MLICloseA
lda S.LoadFile.hBuf
jsr S.FreeMemA ProDOS IO Buffer
lda K.LoadFile.hRef
jsr K.MLICloseA
lda K.LoadFile.hBuf
jsr K.FreeMemA ProDOS IO Buffer
pla
.99 sec
@ -235,20 +267,20 @@ S.LoadFileYA jsr S.MLIOpenYA
* PULLB = TYPE ...
* PULLW = AUXTYPE ...FOPEN)
*--------------------------------------
S.SaveFile >PULLW S.LoadFile.Mem
>PULLW S.LoadFile.Len
K.SaveFile >PULLW K.LoadFile.Mem
>PULLW K.LoadFile.Len
jsr S.FOPEN
jsr K.FOPEN
bcs .9
sta S.LoadFile.hFile
sta K.LoadFile.hFile
>PUSHW S.LoadFile.Mem
>PUSHW K.LoadFile.Mem
>PUSHW S.LoadFile.Len
>PUSHW K.LoadFile.Len
>PUSHB S.LoadFile.hFile
jsr S.FWRITE
>PUSHB K.LoadFile.hFile
jsr K.FWRITE
bcs .99
jsr .99
@ -256,18 +288,20 @@ S.SaveFile >PULLW S.LoadFile.Mem
rts
.99 pha
lda S.LoadFile.hFile
jsr S.FCLOSEA
lda K.LoadFile.hFile
jsr K.FCLOSEA
pla
sec
.9 rts
*--------------------------------------
S.LoadFile.Filename .BS 2
S.LoadFile.hFile .BS 1
S.LoadFile.hMem .BS 1
S.LoadFile.Mem .BS 2
S.LoadFile.Len .BS 2
K.LoadFile.Filename .BS 2
K.LoadFile.hFile .BS 1
K.LoadFile.hMem .BS 1
K.LoadFile.Mem .BS 2
K.LoadFile.Len .BS 2
K.LoadFile.hRef .BS 1
K.LoadFile.hBuf .BS 1
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.FIO

View File

@ -36,7 +36,7 @@ A2osX.GP.Start jmp A2osX.SYSCALL1
.BS $BE20-*
*--------------------------------------
GO.Reset jsr GO.AUXLC
jmp S.KernelRun
jmp K.KernelRun
*--------------------------------------
A2osX.SYSCALL1 phx
bit KERNEL.SYSCALL.FLAGS,x

View File

@ -73,17 +73,17 @@ Kernel.Init2 >LDAXI MSG.Init2
jsr GO.AUXLC
jsr S.IrqMgrInit
jsr K.IrqMgrInit
bcs *
jsr S.MemMgrInit
jsr K.MemMgrInit
bcs *
jsr S.DevMgrInit
jsr K.DevMgrInit
bcs *
jsr S.EvtMgrInit
jsr K.EvtMgrInit
bcs *
jsr S.FltMgrInit
jsr K.FltMgrInit
bcs *
jsr S.TskMgrInit
jsr K.TskMgrInit
bcs *
jsr GO.MAINLC Make sure MAIN ZP...
@ -310,16 +310,16 @@ Kernel.Move ldy #0
* Setup AuxLC $FFFE->Kernel IRQ Handler
* if irq not handled, jmp (S.IrqMgrOldFFFE)
*--------------------------------------
S.IrqMgrInit php
K.IrqMgrInit php
sei
>LDYA $FFFE
cpy #S.IrqHandlerAuxLC
cpy #K.IrqHandlerAuxLC
bne .1
cmp /S.IrqHandlerAuxLC
cmp /K.IrqHandlerAuxLC
beq .2
.1 >STYA S.IrqMgrOldFFFE
>LDYAI S.IrqHandlerAuxLC
.1 >STYA K.IrqMgrOldFFFE
>LDYAI K.IrqHandlerAuxLC
>STYA $FFFE
.2
@ -331,7 +331,7 @@ S.IrqMgrInit php
clc
rts
*--------------------------------------
S.MemMgrInit >LDYAI MemMgr.MHiMem
K.MemMgrInit >LDYAI MemMgr.MHiMem
>STYA MemMgr.HiMem
>STYA MemMgr.Free
>LDYAI MemMgr.MLoMem
@ -352,9 +352,9 @@ S.MemMgrInit >LDYAI MemMgr.MHiMem
clc
rts
*--------------------------------------
* S.DevMgrInit
* K.DevMgrInit
*--------------------------------------
S.DevMgrInit ldx #S.DEV.SIZE*DevMgr.Count
K.DevMgrInit ldx #S.DEV.SIZE*DevMgr.Count
.1 lda DevMgr.NUL-1,x
sta DevMgr.Table-1,x
dex
@ -370,9 +370,9 @@ S.DevMgrInit ldx #S.DEV.SIZE*DevMgr.Count
clc
rts
*--------------------------------------
* S.EvtMgrInit
* K.EvtMgrInit
*--------------------------------------
S.EvtMgrInit lda #10
K.EvtMgrInit lda #10
sta EVTMGR.10TH.CNT
lda A2osX.HZ
@ -391,9 +391,9 @@ S.EvtMgrInit lda #10
clc
rts
*--------------------------------------
* S.TskMgrInit
* K.TskMgrInit
*--------------------------------------
S.TskMgrInit stz TSKMGR.LASTID
K.TskMgrInit stz TSKMGR.LASTID
lda #1
sta TSKMGR.SIZE One Slot Busy (Kernel PS=0)
@ -473,7 +473,7 @@ S.TskMgrInit stz TSKMGR.LASTID
>SYSCALL SYS.PutEnvYA
.9 rts
*--------------------------------------
S.FltMgrInit stz FltMgr.Table
K.FltMgrInit stz FltMgr.Table
clc
rts
*--------------------------------------

View File

@ -9,7 +9,7 @@ Kernel.Init3 ldx #DEVMGR.SELECT
jsr pDevJmp
>LDYAI MSG.Init3
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
ldy #S.PS.hPREFIX
lda (pPs),y
@ -17,18 +17,18 @@ Kernel.Init3 ldx #DEVMGR.SELECT
>PUSHYA
>LDYAI MSG.Prefix
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>PUSHWI STARTUP.CMDLINE
>LDYAI MSG.Startup
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYAI STARTUP.CMDLINE
>SYSCALL SYS.CreateProcessYA
bcs .9
>LDYAI MSG.Init3.OK
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
>LDYAI TskMgr.Table
>STYA pPs
@ -37,7 +37,7 @@ Kernel.Init3 ldx #DEVMGR.SELECT
.9 >PUSHA
>LDYAI MSG.StartupErr
>SYSCALL SYS.PSTROutYA
>SYSCALL SYS.PStrOutYA
bra *
*--------------------------------------
MSG.Init3 >PSTRING "A2osX[Stage3]:Init\n"

View File

@ -17,17 +17,17 @@ S.BrkHandlerAuxLC
* if A2osX Drivers cannot clear IRQ,
* must call regular System Handler
*--------------------------------------
S.IrqHandlerAuxLC
sta S.IrqMgr.A
K.IrqHandlerAuxLC
sta K.IrqMgr.A
pla
pha
and #$10 BRK?
beq .10
lda S.IrqMgr.A
.82 jmp (S.IrqMgrOldFFFE)
lda K.IrqMgr.A
.82 jmp (K.IrqMgrOldFFFE)
.10 stx S.IrqMgr.X
sty S.IrqMgr.Y
.10 stx K.IrqMgr.X
sty K.IrqMgr.Y
lda $fe
pha
lda $ff
@ -48,7 +48,7 @@ S.IrqHandlerAuxLC
and #S.DEV.F.IRQ
beq .2
jsr S.IrqHandlerJMP
jsr K.IrqHandlerJMP
bcc .8 CC, IRQ cleared by device
.2 lda $fe CS,
@ -65,19 +65,19 @@ S.IrqHandlerAuxLC
sta $ff
pla
sta $fe
ldy S.IrqMgr.Y
ldx S.IrqMgr.X
lda S.IrqMgr.A
ldy K.IrqMgr.Y
ldx K.IrqMgr.X
lda K.IrqMgr.A
bcs .82
rti
S.IrqHandlerJMP ldx #DEVMGR.IRQ
K.IrqHandlerJMP ldx #DEVMGR.IRQ
jmp ($fe)
*--------------------------------------
S.IrqMgrOldFFFE .BS 2
S.IrqMgr.A .BS 1
S.IrqMgr.X .BS 1
S.IrqMgr.Y .BS 1
K.IrqMgrOldFFFE .BS 2
K.IrqMgr.A .BS 1
K.IrqMgr.X .BS 1
K.IrqMgr.Y .BS 1
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.IRQ

View File

@ -7,70 +7,70 @@ AUTO 6
*--------------------------------------
* $D000-D0FF KERNEL.SYSCALL Jmp Table
*--------------------------------------
KERNEL.SYSCALL .DA S.GetMem $00
.DA S.FreeMemA
.DA S.GetMemPtrA
.DA S.GetMemByIDA
.DA S.GetMemByNameYA
.DA S.LoadStockObjectYA
.DA S.GetStockObjectA
.DA S.FreeStockObject
KERNEL.SYSCALL .DA K.GetMem $00
.DA K.FreeMemA
.DA K.GetMemPtrA
.DA K.GetMemByIDA
.DA K.GetMemByNameYA
.DA K.LoadStockObjectYA
.DA K.GetStockObjectA
.DA K.FreeStockObject
*--------------------------------------
.DA S.NewPStrYA $10
.DA S.PStrCpy
.DA S.PStrCat
.DA S.PStrMatch
.DA S.PStrUprYA
.DA S.PStrLwrYA
.DA K.NewPStrYA $10
.DA K.PStrCpy
.DA K.PStrCat
.DA K.PStrMatch
.DA K.PStrUprYA
.DA K.PStrLwrYA
.DA 0
.DA S.PStr2StrArrayYA
.DA K.PStr2StrArrayYA
*--------------------------------------
.DA S.LoadDrvYA $20
.DA S.LoadLibYA
.DA S.UnloadLibA
.DA K.LoadDrvYA $20
.DA K.LoadLibYA
.DA K.UnloadLibA
.DA 0
.DA S.TimeYA
.DA S.CTime2Time
.DA S.PTime2Time
.DA S.StrFTime
.DA K.TimeYA
.DA K.CTime2Time
.DA K.PTime2Time
.DA K.StrFTime
*--------------------------------------
.DA 0 $30
.DA S.ExpandPStrYA
.DA S.GetArgC
.DA S.GetArgA
.DA S.PutEnvYA
.DA S.SetEnv
.DA S.GetEnvYA
.DA S.UnsetEnvYA
.DA K.ExpandPStrYA
.DA K.GetArgC
.DA K.GetArgA
.DA K.PutEnvYA
.DA K.SetEnv
.DA K.GetEnvYA
.DA K.UnsetEnvYA
*--------------------------------------
.DA S.MLICreateFile $40
.DA K.MLICreateFile $40
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA S.MLISetFileInfo
.DA K.MLISetFileInfo
.DA 0
*--------------------------------------
.DA S.MLIGetFileInfoYA $50
.DA S.MLIOnline
.DA K.MLIGetFileInfoYA $50
.DA K.MLIOnline
.DA 0
.DA 0
.DA 0
.DA S.MLIGetPrefixYA
.DA K.MLIGetPrefixYA
.DA 0
.DA S.MLIOpenYA
.DA K.MLIOpenYA
*--------------------------------------
.DA S.MLINewLine $60
.DA S.MLIRead
.DA S.MLIWrite
.DA S.MLICloseA
.DA K.MLINewLine $60
.DA K.MLIRead
.DA K.MLIWrite
.DA K.MLICloseA
.DA 0
.DA 0
.DA 0
.DA 0
*--------------------------------------
.DA S.MLIGetEOFA $70
.DA K.MLIGetEOFA $70
.DA 0
.DA 0
.DA 0
@ -79,30 +79,30 @@ KERNEL.SYSCALL .DA S.GetMem $00
.DA 0
.DA 0
*--------------------------------------
.DA S.GetDevByIDA $80
.DA K.GetDevByIDA $80
.DA 0
.DA S.GetDevByNameYA
.DA S.GetDevInfoA
.DA S.GetKeyboardEvent
.DA K.GetDevByNameYA
.DA K.GetDevInfoA
.DA K.GetKeyboardEvent
.DA 0
.DA 0
.DA 0
*--------------------------------------
.DA S.ExecProcessNewEnvYA $90
.DA S.ExecProcessYA
.DA S.CreateProcessNewEnvYA
.DA S.CreateProcessYA
.DA S.GetPSByIDA
.DA K.ExecProcessNewEnvYA $90
.DA K.ExecProcessYA
.DA K.CreateProcessNewEnvYA
.DA K.CreateProcessYA
.DA K.GetPSByIDA
.DA 0
.DA S.Sleep
.DA K.Sleep
.DA 0
*--------------------------------------
.DA S.CheckPrefixYA $A0
.DA S.FileSearch
.DA S.GetFullPathYA
.DA S.LoadFileYA
.DA S.SaveFile
.DA K.CheckPrefixYA $A0
.DA K.FileSearch
.DA K.GetFullPathYA
.DA 0
.DA K.LoadFile
.DA K.SaveFile
.DA 0
.DA 0
*--------------------------------------
@ -124,32 +124,32 @@ KERNEL.SYSCALL .DA S.GetMem $00
.DA 0
.DA 0
*--------------------------------------
.DA S.COutA $D0
.DA K.COutA $D0
.DA 0
.DA S.PSTROutYA
.DA K.PStrOutYA
.DA 0
.DA S.HexOutA
.DA S.HexOutYA
.DA S.DecOutA
.DA S.DecOutYA
.DA K.HexOutA
.DA K.HexOutYA
.DA K.DecOutA
.DA K.DecOutYA
*--------------------------------------
.DA S.FOPEN $E0
.DA S.FCLOSEA
.DA S.FREAD
.DA S.FWRITE
.DA S.FFLUSHA
.DA S.FSEEK
.DA S.FTELLA
.DA S.FEOFA
.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 S.REMOVEYA $F0
.DA S.RENAME
.DA S.STAT
.DA S.FSTAT
.DA S.OPENDIRYA
.DA S.READDIRA
.DA S.CLOSEDIRA
.DA S.MKDIRYA
.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
*--------------------------------------
KERNEL.SYSCALL.FLAGS
.DA 0 $00

View File

@ -5,30 +5,30 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.LoadLibYA
* K.LoadLibYA
* in :
* Y,A = PTR To Lib Name
* out :
* A = hMem To loaded LIB
*--------------------------------------
S.LoadLibYA >STYA S.LoadLib.Name save libname for S.FileSearch
K.LoadLibYA >STYA K.LoadLib.Name save libname for K.FileSearch
>LDYAI ENV.LIB push ENVNAME=LIB
jsr S.GetEnvYA get value for ENV=LIB
jsr K.GetEnvYA get value for ENV=LIB
bcs .99
>PUSHYA Push $LIB value
>PUSHW S.LoadLib.Name
>PUSHW K.LoadLib.Name
jsr S.FileSearch find libname in $LIB
jsr K.FileSearch find libname in $LIB
bcs .99
stx S.LoadLib.hFullName
stx K.LoadLib.hFullName
jsr S.LoadBinYA Y,A = filename full path
jsr K.LoadBinYA Y,A = filename full path
bcs .98
stx S.LoadLib.hMem
stx K.LoadLib.hMem
>STYA pLib
ldx #LIBMGR.LOAD
@ -38,34 +38,34 @@ S.LoadLibYA >STYA S.LoadLib.Name save libname for S.FileSearch
jsr .98 Cleanup...
lda S.LoadLib.hMem
lda K.LoadLib.hMem
clc
rts
.97 pha
lda S.LoadLib.hMem
jsr S.FreeMemA
lda K.LoadLib.hMem
jsr K.FreeMemA
pla
.98 pha
lda S.LoadLib.hFullName
jsr S.FreeMemA
lda K.LoadLib.hFullName
jsr K.FreeMemA
pla
sec
.99 rts
*--------------------------------------
S.LoadLib.Name .BS 2
S.LoadLib.hFullName .BS 1
S.LoadLib.hMem .BS 1
K.LoadLib.Name .BS 2
K.LoadLib.hFullName .BS 1
K.LoadLib.hMem .BS 1
*--------------------------------------
* S.UnloadLibA
* K.UnloadLibA
* in :
* A = hMem To Lib
* out :
*--------------------------------------
S.UnloadLibA pha
jsr S.GetMemByIDA
K.UnloadLibA pha
jsr K.GetMemByIDA
>STYA ZPQuickPtr1
ldy #S.MEM.REFCNT
lda (ZPQuickPtr1),y Get count of those referencing this lib
@ -87,7 +87,7 @@ S.UnloadLibA pha
ldx #LIBMGR.UNLOAD
jsr pLibJmp Call LIB.UNLOAD function
pla
jmp S.FreeMemA
jmp K.FreeMemA
*--------------------------------------
ENV.LIB >PSTRING "LIB"
MAN

View File

@ -21,7 +21,7 @@ ZPMemMgrTmp3 .EQ ZPMEMMGR+6
*--------------------------------------
* PUBLIC
*--------------------------------------
* S.GetMem
* K.GetMem
* In:
* PULLB = FLAGS
* PULLW = Size Requested
@ -30,7 +30,7 @@ ZPMemMgrTmp3 .EQ ZPMEMMGR+6
* X = S.MEM.ID
* CS on err
*--------------------------------------
S.GetMem >PULLB MemMgr.ReqFlags store requested flags
K.GetMem >PULLB MemMgr.ReqFlags store requested flags
and #S.MEM.F.AUX
beq .11
@ -241,18 +241,18 @@ MemMgr.SlotCnt .BS 1
MemMgr.ReqFlags .BS 1 store requested Flags
MemMgr.ReqSize .BS 2 store requested Size
*--------------------------------------
* S.FreeMemA
* K.FreeMemA
* In:
* A = hMem To Free
* Out:
* X,Y unmodified
*--------------------------------------
S.FreeMemA phy
K.FreeMemA phy
phx
tax
beq .8 Slot=0, reserved by Kernel
jsr S.GetMemByIDA
jsr K.GetMemByIDA
lda (ZPMemMgrSPtr)
bpl * In use ?
@ -269,7 +269,7 @@ S.FreeMemA phy
pha save hMem
>PUSHW ZPMemMgrSPtr
pla
jsr S.GetMemByIDA
jsr K.GetMemByIDA
lda (ZPMemMgrSPtr)
bpl * ***MUST BE ALLOCATED***
@ -283,7 +283,7 @@ S.FreeMemA phy
.2 lda MemMgr.LastSlot
beq .8
jsr S.GetMemByIDA
jsr K.GetMemByIDA
lda (ZPMemMgrSPtr)
bmi .8
@ -305,14 +305,14 @@ S.FreeMemA phy
clc
rts
*--------------------------------------
* S.GetMemPtrA
* K.GetMemPtrA
* In:
* A = hMem
* Out:
* Y,A = PTR to MemBlock
* X unmodified
*--------------------------------------
S.GetMemPtrA jsr S.GetMemByIDA
K.GetMemPtrA jsr K.GetMemByIDA
ldy #S.MEM.PTR
lda (ZPMemMgrSPtr),y
pha
@ -321,14 +321,14 @@ S.GetMemPtrA jsr S.GetMemByIDA
ply
rts
*--------------------------------------
* S.GetMemByIDA
* K.GetMemByIDA
* In:
* A = hMem
* Out:
* Y,A = ZPMemMgrSPtr = PTR to S.MEM
* X unmodified
*--------------------------------------
S.GetMemByIDA stz ZPMemMgrSPtr+1
K.GetMemByIDA stz ZPMemMgrSPtr+1
asl
rol ZPMemMgrSPtr+1
@ -354,7 +354,7 @@ S.GetMemByIDA stz ZPMemMgrSPtr+1
* Y,A = ZPMemMgrSPtr = PTR to S.MEM
* X = hMem
*--------------------------------------
S.GetMemByNameYA
K.GetMemByNameYA
>STYA ZPMemMgrTmp1 save BINPATH
>LDYAI MemMgr.Table
>STYA ZPMemMgrTmp2
@ -370,7 +370,7 @@ S.GetMemByNameYA
lda (ZPMemMgrTmp2),y
beq .6
jsr S.GetMemPtrA get pathname
jsr K.GetMemPtrA get pathname
bcs *
>STYA ZPMemMgrTmp3
@ -405,17 +405,17 @@ S.GetMemByNameYA
.9 sec
rts
*--------------------------------------
S.LoadStockObjectYA
K.LoadStockObjectYA
*--------------------------------------
S.GetStockObjectA
K.GetStockObjectA
*--------------------------------------
S.FreeStockObject
K.FreeStockObject
*--------------------------------------
S.SetLoMem
K.SetLoMem
clc
rts
*--------------------------------------
S.GarbageCollector
K.GarbageCollector
clc
rts
*--------------------------------------

View File

@ -7,7 +7,7 @@ AUTO 6
*--------------------------------------
* PUBLIC
*--------------------------------------
S.MLICreateFile >PULLW MLICALL.PARAMS+1
K.MLICreateFile >PULLW MLICALL.PARAMS+1
>PULLB MLICALL.PARAMS+3 Access
>PULLB MLICALL.PARAMS+4 File type
>PULLW MLICALL.PARAMS+5 Aux type
@ -16,9 +16,9 @@ S.MLICreateFile >PULLW MLICALL.PARAMS+1
>MLICALL MLICREATE
rts
*--------------------------------------
* S.MLISetFileInfo
* K.MLISetFileInfo
*--------------------------------------
S.MLISetFileInfo
K.MLISetFileInfo
>PULLW ZPQuickPtr1
>PULLW MLICALL.PARAMS+1
ldy #$E
@ -29,45 +29,45 @@ S.MLISetFileInfo
>MLICALL MLISETFILEINFO
rts
*--------------------------------------
* S.MLIGetFileInfoYA
* K.MLIGetFileInfoYA
* in :
* Y,A = FileName
* out :
* Y,A = PTR To Buffer (L=15)
*--------------------------------------
S.MLIGetFileInfoYA
K.MLIGetFileInfoYA
>STYA MLICALL.PARAMS+1
>MLICALL MLIGETFILEINFO
bcs .9
>LDYAI MLICALL.PARAMS+3
.9 rts
*--------------------------------------
* S.MLIOnline
* K.MLIOnline
* in :
* PULLB = Device
* PULLW = Dest PTR
*--------------------------------------
S.MLIOnline >PULLB MLICALL.PARAMS+1
K.MLIOnline >PULLB MLICALL.PARAMS+1
>PULLW MLICALL.PARAMS+2
>MLICALL MLIONLINE
rts
*--------------------------------------
S.MLIGetPrefixYA
K.MLIGetPrefixYA
>STYA MLICALL.PARAMS+1
>MLICALL MLIGETPREFIX
rts
*--------------------------------------
* S.MLIOpenYA
* K.MLIOpenYA
* in :
* YA = FileName
* out :
* A = ref_num
* X = buf hMem
*--------------------------------------
S.MLIOpenYA >STYA MLICALL.PARAMS+1
K.MLIOpenYA >STYA MLICALL.PARAMS+1
>PUSHWI 1024 get a ProDOS IO buffer
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr S.GetMem
jsr K.GetMem
bcs .99
phx save Prodos Buffer hMem
@ -81,24 +81,24 @@ S.MLIOpenYA >STYA MLICALL.PARAMS+1
.98 plx get back Prodos Buffer hMem
pha save MLI error
txa
jsr S.FreeMemA discard Prodos Buffer
jsr K.FreeMemA discard Prodos Buffer
pla get back MLI error
sec
.99 rts
*--------------------------------------
* S.MLINewline
* K.MLINewline
* in :
* PULLB = ref_num
* PULLB = Enable Mask
* PULLB = Newline Char
*--------------------------------------
S.MLINewLine >PULLB MLICALL.PARAMS+1
K.MLINewLine >PULLB MLICALL.PARAMS+1
>PULLB MLICALL.PARAMS+2
>PULLB MLICALL.PARAMS+3
>MLICALL MLINEWLINE
rts
*--------------------------------------
* S.MLIRead
* K.MLIRead
* in :
* PULLB = ref_num
* PULLW = Dest PTR
@ -106,7 +106,7 @@ S.MLINewLine >PULLB MLICALL.PARAMS+1
* out :
* Y,A = Bytes Read
*--------------------------------------
S.MLIRead >PULLB MLICALL.PARAMS+1
K.MLIRead >PULLB MLICALL.PARAMS+1
>PULLW MLICALL.PARAMS+2
>PULLW MLICALL.PARAMS+4
>MLICALL MLIREAD
@ -114,7 +114,7 @@ S.MLIRead >PULLB MLICALL.PARAMS+1
>LDYA MLICALL.PARAMS+6
.9 rts
*--------------------------------------
* S.MLIWrite
* K.MLIWrite
* in :
* PULLB = ref_num
* PULLW = Src PTR
@ -122,7 +122,7 @@ S.MLIRead >PULLB MLICALL.PARAMS+1
* out :
* Y,A = Bytes Written
*--------------------------------------
S.MLIWrite >PULLB MLICALL.PARAMS+1
K.MLIWrite >PULLB MLICALL.PARAMS+1
>PULLW MLICALL.PARAMS+2
>PULLW MLICALL.PARAMS+4
>MLICALL MLIWRITE
@ -130,22 +130,22 @@ S.MLIWrite >PULLB MLICALL.PARAMS+1
>LDYA MLICALL.PARAMS+6
.9 rts
*--------------------------------------
* S.MLICloseA
* K.MLICloseA
* in :
* A = ref_num
* out :
*--------------------------------------
S.MLICloseA sta MLICALL.PARAMS+1
K.MLICloseA sta MLICALL.PARAMS+1
>MLICALL MLICLOSE
rts
*--------------------------------------
* S.MLIGetEOF
* K.MLIGetEOF
* in :
* A = ref_num
* out :
* Y,A,X = EOF
*--------------------------------------
S.MLIGetEOFA sta MLICALL.PARAMS+1
K.MLIGetEOFA sta MLICALL.PARAMS+1
>MLICALL MLIGETEOF
bcs .9
>LDYA MLICALL.PARAMS+2

View File

@ -37,7 +37,7 @@ S.PFTCHECKPATHYA
ldy #S.PFT.HANDLER
lda (ZPQuickPtr2),y get hLib
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA .3+1
lda S.PFT.SYSCALL getback #SYSCALL
@ -72,12 +72,12 @@ S.PFTCHECKFILESTK
S.PFTCHECKFILEA
S.PFTCHECKDIRA stx S.PFT.SYSCALL save #SYSCALL
sta S.PFT.hFILE
jsr S.GetMemPtrA X = unmidified
jsr K.GetMemPtrA X = unmidified
>STYA ZPQuickPtr1
lda (ZPQuickPtr1)
beq .9 Handler is 0, back to kernel....
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA .1+1
lda S.PFT.SYSCALL getback #SYSCALL

View File

@ -5,56 +5,56 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.SelectProcessA
* K.SelectProcessA
* In : A=PSID
*--------------------------------------
S.SelectProcessA
K.SelectProcessA
tay
bne S.SelectProcessN
S.SelectProcess0
bne K.SelectProcessN
K.SelectProcess0
>LDYAI TskMgr.Table Make PS #0 as current process
>STYA pPs
bra S.SelectProcessDev
S.SelectProcessN
jsr S.GetPSByIDA
bra K.SelectProcessDev
K.SelectProcessN
jsr K.GetPSByIDA
bcs *
>STYA pPs
S.SelectProcess ldy #S.PS.hCS
K.SelectProcess ldy #S.PS.hCS
lda (pPs),y
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA pCode
ldy #S.PS.hDS
lda (pPs),y
beq S.SelectProcessDev
beq K.SelectProcessDev
jsr S.GetMemPtrA
jsr K.GetMemPtrA
>STYA pData
S.SelectProcessDev
K.SelectProcessDev
ldy #S.PS.hOUTDEV
lda (pPs),y
beq .8
jsr S.GetDevByIDA
jsr K.GetDevByIDA
>STYA pDev
.8 clc
rts
*--------------------------------------
* S.GetPSByIDA
* K.GetPSByIDA
* In :
* A = PID
* Out :
* Y,A = PTR to TSKSLOT
*--------------------------------------
S.GetPSByIDA sta S.GetPSByIDA.PS
K.GetPSByIDA sta K.GetPSByIDA.PS
>LDYAI TskMgr.Table
>STYA ZPQuickPtr1
lda S.GetPSByIDA.PS
lda K.GetPSByIDA.PS
beq .8
ldx #0
@ -72,7 +72,7 @@ S.GetPSByIDA sta S.GetPSByIDA.PS
ldy #S.PS.ID
lda (ZPQuickPtr1),y
cmp S.GetPSByIDA.PS
cmp K.GetPSByIDA.PS
beq .8
.3 cpx TSKMGR.SIZE
@ -86,9 +86,9 @@ S.GetPSByIDA sta S.GetPSByIDA.PS
clc
rts
*--------------------------------------
S.GetPSByIDA.PS .BS 1
K.GetPSByIDA.PS .BS 1
*--------------------------------------
S.Sleep pla get PC LO
K.Sleep pla get PC LO
sec
sbc pCode
ldy #S.PS.PC
@ -104,71 +104,71 @@ S.Sleep pla get PC LO
clc No error,
rts back to Kernel
*--------------------------------------
* S.ExecProcessNewEnvYA
* S.ExecProcessYA (Blocking Parent PID)
* S.CreateProcessNewEnvYA
* S.CreateProcessYA (Non Blocking)
* K.ExecProcessNewEnvYA
* K.ExecProcessYA (Blocking Parent PID)
* K.CreateProcessNewEnvYA
* K.CreateProcessYA (Non Blocking)
* in :
* Y,A = PTR To Cmd Line
* out :
* A = Child PSID
*--------------------------------------
S.ExecProcessNewEnvYA
K.ExecProcessNewEnvYA
ldx #S.PS.F.ENV+S.PS.F.HOLD
.HS 2C bit abs
S.ExecProcessYA ldx #S.PS.F.HOLD
K.ExecProcessYA ldx #S.PS.F.HOLD
.HS 2C bit abs
S.CreateProcessNewEnvYA
K.CreateProcessNewEnvYA
ldx #S.PS.F.ENV
.HS 2C bit abs
S.CreateProcessYA
K.CreateProcessYA
ldx #0
stx S.CreateProcess.Flags
stx K.CreateProcess.Flags
jsr S.ExpandPStrYA
jsr K.ExpandPStrYA
bcs .99
stx S.CreateProcess.hCmdLine
>STYA S.CreateProcess.CmdLine
stx K.CreateProcess.hCmdLine
>STYA K.CreateProcess.CmdLine
jsr S.CreateProcess.Child
jsr K.CreateProcess.Child
bcs .98
sta S.CreateProcess.CPSID
sta K.CreateProcess.CPSID
jsr S.CreateProcess.Init
jsr K.CreateProcess.Init
bcs .97
lda S.CreateProcess.CPSID
lda K.CreateProcess.CPSID
clc
rts
.97 pha save error code
lda S.CreateProcess.CPSID
jsr S.FreeProcessA
lda K.CreateProcess.CPSID
jsr K.FreeProcessA
pla get back error code
.98 pha
lda S.CreateProcess.hCmdLine
jsr S.FreeMemA
lda K.CreateProcess.hCmdLine
jsr K.FreeMemA
pla
.99 sec
rts
*--------------------------------------
S.CreateProcess.Flags .BS 1
S.CreateProcess.hCmdLine .BS 1
S.CreateProcess.CmdLine .BS 2
S.CreateProcess.CPSID .BS 1
K.CreateProcess.Flags .BS 1
K.CreateProcess.hCmdLine .BS 1
K.CreateProcess.CmdLine .BS 2
K.CreateProcess.CPSID .BS 1
*--------------------------------------
* S.CreateProcess.Child
* K.CreateProcess.Child
* in :
* out :
* A = PSID
* we cannot use ZPQuickPtrs1 & 2
* because of calling S.NewPStrYA & S.DupEnvA
* because of calling K.NewPStrYA & S.DupEnvA
*--------------------------------------
S.CreateProcess.Child
K.CreateProcess.Child
>LDYAI TskMgr.Table+S.PS.SIZE
>STYA ZPQuickPtr3
@ -201,7 +201,7 @@ S.CreateProcess.Child
.4 inc TSKMGR.LASTID Get a PSID not alredy running
beq .4 not = 0
lda TSKMGR.LASTID
jsr S.GetPSByIDA
jsr K.GetPSByIDA
bcc .4
ldy #S.PS.ID
@ -217,15 +217,15 @@ S.CreateProcess.Child
bne .5
lda #S.PS.F.ENV
bit S.CreateProcess.Flags need to create ENV & Prefix ?
bit K.CreateProcess.Flags need to create ENV & Prefix ?
beq .6 no...
sta (ZPQuickPtr3) Mark this PS with ENV flag
ldy #S.PS.hPREFIX copy hPREFIX...
lda (pPs),y
jsr S.GetMemPtrA
jsr S.NewPStrYA
jsr K.GetMemPtrA
jsr K.NewPStrYA
bcs .9
txa
@ -268,7 +268,7 @@ S.CreateProcess.Child
sta (pPs),y
lda #S.PS.F.HOLD
bit S.CreateProcess.Flags
bit K.CreateProcess.Flags
beq .82
ora (pPs)
@ -282,9 +282,9 @@ S.CreateProcess.Child
clc Exit with A=PSID
.9 rts
*--------------------------------------
S.CreateProcess.Init
>LDYA S.CreateProcess.CmdLine
jsr S.PStr2StrArrayYA
K.CreateProcess.Init
>LDYA K.CreateProcess.CmdLine
jsr K.PStr2StrArrayYA
bcs .9
phy save PTR to StrArray...
@ -297,7 +297,7 @@ S.CreateProcess.Init
pla Restore PTR...
ply
jsr S.LoadBinYA A = BinPath hMem
jsr K.LoadBinYA A = BinPath hMem
bcs .9
>STYA ZPQuickPtr4 save PTR to Code Segment
@ -316,7 +316,7 @@ S.CreateProcess.Init
lda (ZPQuickPtr4),y
>PUSHAX Push DS.SIZE
>PUSHBI S.MEM.F.INIT0 Clear DS
jsr S.GetMem
jsr K.GetMem
bcs .9
txa
@ -328,10 +328,10 @@ S.CreateProcess.Init
clc
.9 rts
*--------------------------------------
* S.FreeProcessA
* K.FreeProcessA
* In : A = PID to free
*--------------------------------------
S.FreeProcessA jsr S.GetPSByIDA
K.FreeProcessA jsr K.GetPSByIDA
bcs *
>STYA ZPQuickPtr1
@ -339,7 +339,7 @@ S.FreeProcessA jsr S.GetPSByIDA
lda (ZPQuickPtr1),y
beq .2
jsr S.FreeMemA
jsr K.FreeMemA
lda (ZPQuickPtr1) get S.PS.F
and #S.PS.F.ENV do we have to discard duplicated env & prefix ?
@ -349,25 +349,25 @@ S.FreeProcessA jsr S.GetPSByIDA
lda (ZPQuickPtr1),y
beq .3
jsr S.FreeMemA
jsr K.FreeMemA
.3 ldy #S.PS.hPREFIX
lda (ZPQuickPtr1),y
beq .4
jsr S.FreeMemA
jsr K.FreeMemA
.4 ldy #S.PS.hDS
lda (ZPQuickPtr1),y
beq .5
jsr S.FreeMemA
jsr K.FreeMemA
.5 ldy #S.PS.hCS
lda (ZPQuickPtr1),y
beq .8
jsr S.FreeMemA
jsr K.FreeMemA
.8 lda #0
sta (ZPQuickPtr1) Mark TSKSLOT as free
@ -380,11 +380,11 @@ S.FreeProcessA jsr S.GetPSByIDA
* Out:
* A = hMem to new ENV
*--------------------------------------
S.DupEnvA jsr S.GetMemPtrA
S.DupEnvA jsr K.GetMemPtrA
>STYA ZPQuickPtr1
>PUSHWI K.ENV.SIZE
>PUSHBI 0
jsr S.GetMem
jsr K.GetMem
bcs .9
>STYA ZPQuickPtr2

View File

@ -5,9 +5,9 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.InsBin
* K.InsBin
*--------------------------------------
S.InsBin >LDYA S.LoadBin.NewBase
K.InsBin >LDYA K.LoadBin.NewBase
>STYA ZPQuickPtr1
ldy #H.BIN.CODE.LEN make AX = Code Len
@ -17,31 +17,31 @@ S.InsBin >LDYA S.LoadBin.NewBase
lda (ZPQuickPtr1),y
sta Rel.CodeLen+1
lda S.LoadBin.OldBase
lda K.LoadBin.OldBase
sta Rel.Start Make BX=Range Start=AUXTYPE
clc
adc S.LoadBin.SegLen
adc K.LoadBin.SegLen
sta Rel.End Make CX=Range End=AUXTYPE+FILELEN
lda S.LoadBin.OldBase+1
lda K.LoadBin.OldBase+1
sta Rel.Start+1
adc S.LoadBin.SegLen+1
adc K.LoadBin.SegLen+1
sta Rel.End+1
lda ZPQuickPtr1 Compute relocation offset in DX
sec
sbc S.LoadBin.OldBase
sbc K.LoadBin.OldBase
sta Rel.Offset DX=Offset=ZPQuickPtr1-AUXTYPE
lda ZPQuickPtr1+1
sbc S.LoadBin.OldBase+1
sbc K.LoadBin.OldBase+1
sta Rel.Offset+1
jmp S.BinRelocate
*--------------------------------------
* S.InsDrv
* K.InsDrv
* pDrv = .DRV File Loaded Address
*--------------------------------------
S.InsDrv ldy #H.BIN.DRV.CODE.LEN
K.InsDrv ldy #H.BIN.DRV.CODE.LEN
lda (pDrv),y
sta Rel.CodeLen
iny
@ -51,45 +51,45 @@ S.InsDrv ldy #H.BIN.DRV.CODE.LEN
ldy #H.BIN.DRV.CODE.O
lda (pDrv),y
clc
adc S.LoadBin.OldBase
adc K.LoadBin.OldBase
sta Rel.Start
iny
lda (pDrv),y
adc S.LoadBin.OldBase+1
adc K.LoadBin.OldBase+1
sta Rel.Start+1 set BX=End Of Code
lda S.LoadBin.OldBase
lda K.LoadBin.OldBase
clc
adc S.LoadBin.SegLen
adc K.LoadBin.SegLen
sta Rel.End
lda S.LoadBin.OldBase+1
adc S.LoadBin.SegLen+1
lda K.LoadBin.OldBase+1
adc K.LoadBin.SegLen+1
sta Rel.End+1 set CX=End Of Range
ldy #H.BIN.DRV.CODE.O
lda S.LoadBin.SegLen
lda K.LoadBin.SegLen
sec
sbc (pDrv),y
sta S.InsDrv.DRVLen
sta K.InsDrv.DRVLen
iny
lda S.LoadBin.SegLen+1
lda K.LoadBin.SegLen+1
sbc (pDrv),y
sta S.InsDrv.DRVLen+1 Compute DRV Len
sta K.InsDrv.DRVLen+1 Compute DRV Len
lda DevMgr.Free
clc
adc S.InsDrv.DRVLen
sta S.InsDrv.DRVEnd
adc K.InsDrv.DRVLen
sta K.InsDrv.DRVEnd
lda DevMgr.Free+1
adc S.InsDrv.DRVLen+1
sta S.InsDrv.DRVEnd+1
adc K.InsDrv.DRVLen+1
sta K.InsDrv.DRVEnd+1
bcs .98 we crossed $FFFF, out of mem
lda S.InsDrv.DRVEnd
lda K.InsDrv.DRVEnd
sec
sbc #DevMgr.HiMem
lda S.InsDrv.DRVEnd+1
lda K.InsDrv.DRVEnd+1
sbc /DevMgr.HiMem
bcs .98 No More Room to load Driver....
@ -134,9 +134,9 @@ S.InsDrv ldy #H.BIN.DRV.CODE.LEN
jsr S.DrvRelocate
jsr S.InsDrv.Move
jsr K.InsDrv.Move
>LDYA S.InsDrv.DrvEnd
>LDYA K.InsDrv.DrvEnd
>STYA DevMgr.Free
clc
rts
@ -149,7 +149,7 @@ S.InsDrv ldy #H.BIN.DRV.CODE.LEN
sec
rts
*--------------------------------------
S.InsDrv.Move ldy #H.BIN.DEV.HEADER.O
K.InsDrv.Move ldy #H.BIN.DEV.HEADER.O
lda (pDrv),y
clc
adc pDrv
@ -170,7 +170,7 @@ S.InsDrv.Move ldy #H.BIN.DEV.HEADER.O
sta (ZPQuickPtr1),y
lda DevMgr.LastDevID
jsr S.GetDevByIDA
jsr K.GetDevByIDA
>STYA pDev
ldy #S.DEV.SIZE Make sure DevMgr.Table Ends with 0
@ -202,8 +202,8 @@ S.InsDrv.Move ldy #H.BIN.DEV.HEADER.O
lda DevMgr.Free+1
sta ZPQuickPtr2+1 Make ZPQuickPtr2=Dest Ram Location
ldy S.InsDrv.DrvLen
ldx S.InsDrv.DrvLen+1
ldy K.InsDrv.DrvLen
ldx K.InsDrv.DrvLen+1
.2 lda (ZPQuickPtr1)
sta (ZPQuickPtr2)
@ -226,8 +226,8 @@ S.InsDrv.Move ldy #H.BIN.DEV.HEADER.O
bra .2
.8 rts
*--------------------------------------
S.InsDrv.DrvLen .BS 2
S.InsDrv.DrvEnd .BS 2
K.InsDrv.DrvLen .BS 2
K.InsDrv.DrvEnd .BS 2
*--------------------------------------
* S.BinRelocate :
* ZPQuickPtr1 = Ptr to Code

View File

@ -5,16 +5,16 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
S.KernelRun jsr S.TskMgrRun
K.KernelRun jsr K.TskMgrRun
bcs .9
jsr S.GetEvents
bcs S.KernelRun CS=no event
jsr K.GetEvents
bcs K.KernelRun CS=no event
jsr S.DispatchEvents
bcc S.KernelRun CC=All Events Dispatched
bcc K.KernelRun CC=All Events Dispatched
jsr S.SelectProcess0
jsr K.SelectProcess0
stz pEvent
@ -45,7 +45,7 @@ S.KernelRun jsr S.TskMgrRun
lda A2osX.SCRNDEVS-1,x
beq .8
jsr S.GetDevByIDA
jsr K.GetDevByIDA
bcs .8
>STYA pDev
@ -65,9 +65,9 @@ S.KernelRun jsr S.TskMgrRun
bpl .71
>LDYAI MSG.DumpEvent
jsr S.PSTROutYA
jsr K.PStrOutYA
.8 jsr S.DestroyEvent
.8 jsr K.DestroyEvent
.81 lda pEvent
clc
@ -76,11 +76,11 @@ S.KernelRun jsr S.TskMgrRun
lda EVTMGR.COUNT
bne .1
beq S.KernelRun
beq K.KernelRun
.9 jsr DevMgr.SYS.Select
>LDYAI MSG.KRNLPANIC
jsr S.PSTROutYA
jsr K.PStrOutYA
bra *
*--------------------------------------
MSG.DumpEvent >PSTRING "!Unhandled Event:Flags=%h,DevID=%h,DATALO=%h,DATAHI=%h,W1=%H,W2=%H\n"

View File

@ -5,26 +5,26 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.NewPStrYA
* K.NewPStrYA
* IN:
* Y,A = PTR to buffer
* OUT:
* Y,A = PTR to String
* X = hMem (PSTRING)
*--------------------------------------
S.NewPStrYA >STYA ZPQuickPtr1
K.NewPStrYA >STYA ZPQuickPtr1
lda (ZPQuickPtr1)
inc
tay
lda #0 Y,A = len of new string
>PUSHYA
>PUSHBI 0 0 = no option
jsr S.GetMem
jsr K.GetMem
bcs .9
>STYA ZPQuickPtr2
jsr S.PStrCpyPtr1Ptr2
jsr K.PStrCpyPtr1Ptr2
>LDYA ZPQuickPtr2
@ -34,17 +34,17 @@ S.NewPStrYA >STYA ZPQuickPtr1
.9 sec
rts
*--------------------------------------
* S.PStrCpy
* K.PStrCpy
* IN:
* PULLW = PSTR to DST (PSTRING)
* PULLW = PSTR to SRC (PSTRING)
* OUT:
* DST = SRC (PSTRING)
*--------------------------------------
S.PStrCpy >PULLW ZPQuickPtr2 save DST
K.PStrCpy >PULLW ZPQuickPtr2 save DST
>PULLW ZPQuickPtr1 save SRC
S.PStrCpyPtr1Ptr2
K.PStrCpyPtr1Ptr2
lda (ZPQuickPtr1)
sta (ZPQuickPtr2)
tay
@ -58,14 +58,14 @@ S.PStrCpyPtr1Ptr2
.2 clc
rts
*--------------------------------------
* S.PStrCat
* K.PStrCat
* IN:
* PULLW = PSTR to DST (PSTRING)
* PULLW = PSTR to SRC (PSTRING)
* OUT:
* DST = DST+SRC (PSTRING)
*--------------------------------------
S.PStrCat >PULLW ZPQuickPtr2 save DST
K.PStrCat >PULLW ZPQuickPtr2 save DST
>PULLW ZPQuickPtr1 save SRC
lda (ZPQuickPtr1)
@ -93,7 +93,7 @@ S.PStrCat >PULLW ZPQuickPtr2 save DST
clc
rts
*--------------------------------------
* S.PStrMatch
* K.PStrMatch
* IN:
* PULLB = PTR to String (PSTRING)
* PULLB = PTR to Pattern (PSTRING)
@ -101,7 +101,7 @@ S.PStrCat >PULLW ZPQuickPtr2 save DST
* cc = match
* cs = no match
*--------------------------------------
S.PStrMatch >PULLW ZPQuickPtr2 pull String
K.PStrMatch >PULLW ZPQuickPtr2 pull String
>PULLW ZPQuickPtr1 pull Pattern
lda (ZPQuickPTR1) Keep Pattern Length in X
@ -167,25 +167,25 @@ S.PStrMatch >PULLW ZPQuickPtr2 pull String
.9 sec
rts
*--------------------------------------
* S.PStrUprYA
* S.PStrLwrYA
* K.PStrUprYA
* K.PStrLwrYA
* IN:
* Y,A = PTR to String (PSTRING)
* OUT:
* Uppercased/lowercased String in Buffer
*--------------------------------------
S.PStrUprYA ldx #0
K.PStrUprYA ldx #0
.HS 2C bit abs
S.PStrLwrYA ldx #2
K.PStrLwrYA ldx #2
>STYA ZPQuickPtr1
lda (ZPQuickPtr1)
tay
.1 lda (ZPQuickPtr1),y
cmp S.PstrUprLwr,x
cmp K.PStrUprLwr,x
bcc .2
cmp S.PstrUprLwr+1,x
cmp K.PStrUprLwr+1,x
bcs .2
eor #$20
sta (ZPQuickPtr1),y
@ -195,16 +195,16 @@ S.PStrLwrYA ldx #2
clc
rts
*--------------------------------------
S.PstrUprLwr .AS "azAZ"
K.PStrUprLwr .AS "azAZ"
*--------------------------------------
* S.PStr2StrArrayYA
* K.PStr2StrArrayYA
* In :
* Y,A = PTR to String
* Out :
* Y,A = PTR to StrArray
* X = hMem
*--------------------------------------
S.PStr2StrArrayYA
K.PStr2StrArrayYA
>STYA ZPQuickPtr1
lda (ZPQuickPtr1) Get mem size STRLEN+1
ldx #0
@ -214,7 +214,7 @@ S.PStr2StrArrayYA
.1 >PUSHAX
>PUSHBI 0
jsr S.GetMem
jsr K.GetMem
bcs .9
phx save hMem
phy save PTR.LO

View File

@ -12,31 +12,31 @@ CENTURY0 .EQ 19
YEAR0 .EQ 70
DAY0 .EQ 4 day 0 was a thursday
*--------------------------------------
* S.TimeYA get System Time
* K.TimeYA get System Time
* In :
* Y,A = PTR to S.TIME
* Y,A = PTR to K.Time
* Out :
* S.TIME filled with ProDOS MLI date/time
* K.Time filled with ProDOS MLI date/time
*--------------------------------------
S.TimeYA >STYA ZPQuickPtr2
K.TimeYA >STYA ZPQuickPtr2
>MLICALL MLIGETTIME
>LDYAI DATELO
>STYA ZPQuickPtr1
bra S.PTime2Time.1
bra K.PTime2Time.1
*--------------------------------------
* In :
* PULLW = Src PDATE/TIME (DWORD)
* PULLW = Dst PTR To S.TIME
* PULLW = Dst PTR To K.Time
*--------------------------------------
S.PTime2Time >PULLW ZPQuickPtr1
K.PTime2Time >PULLW ZPQuickPtr1
>PULLW ZPQuickPtr2
S.PTime2Time.1 ldy #1
K.PTime2Time.1 ldy #1
lda (ZPQuickPtr1),y Get Year
lsr C is high bit of month
ldy #S.TIME.YEAR
ldy #S.Time.YEAR
sta (ZPQuickPtr2),y set year
sta S.CTime.Year for conputing Century/WDAY later
sta K.CTime.Year for conputing Century/WDAY later
lda (ZPQuickPtr1) Get Month/day
pha save Day
@ -45,7 +45,7 @@ S.PTime2Time.1 ldy #1
lsr
lsr
lsr
ldy #S.TIME.MONTH
ldy #S.Time.MONTH
sta (ZPQuickPtr2),y set month
pla get back day
@ -53,7 +53,7 @@ S.PTime2Time.1 ldy #1
iny
sta (ZPQuickPtr2),y set day
lda S.CTime.Year get back year
lda K.CTime.Year get back year
cmp #69 if before 70 CC,if > 70, CS
lda #0
@ -61,7 +61,7 @@ S.PTime2Time.1 ldy #1
eor #1 toggle C
adc #19 set date before 1970 -> 20xx
sta (ZPQuickPtr2) set Century
sta S.CTime.Century for conputing WDAY later
sta K.CTime.Century for conputing WDAY later
ldy #2
lda (ZPQuickPtr1),y Get Min
@ -69,7 +69,7 @@ S.PTime2Time.1 ldy #1
iny
lda (ZPQuickPtr1),y Get Hour
ldy #S.TIME.HOUR
ldy #S.Time.HOUR
sta (ZPQuickPtr2),y set hour
iny
txa
@ -80,22 +80,22 @@ S.PTime2Time.1 ldy #1
* 1/1/1970 was Thursday...if not leap, add one, if leap add 2
S.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7)
K.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7)
pha
lda #19
sta S.CTime.DWORD
sta K.CTime.DWORD
lda #70
sta S.CTime.DWORD+1
sta K.CTime.DWORD+1
.1 ldy S.CTime.DWORD
lda S.CTime.DWORD+1
.1 ldy K.CTime.DWORD
lda K.CTime.DWORD+1
cpy S.CTime.Century
cpy K.CTime.Century
bne .2
cmp S.CTime.Year
cmp K.CTime.Year
beq .4
.2 jsr S.IsLeapYearYA CC = Leap
.2 jsr K.IsLeapYearYA CC = Leap
lda #0
rol
eor #1
@ -108,32 +108,32 @@ S.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7)
sbc #7 MOD 7
.3 pha
inc S.CTime.DWORD+1
lda S.CTime.DWORD+1
inc K.CTime.DWORD+1
lda K.CTime.DWORD+1
cmp #100
bne .1
lda #0
sta S.CTime.DWORD+1
inc S.CTime.DWORD
sta K.CTime.DWORD+1
inc K.CTime.DWORD
bra .1
.4 ldy #S.TIME.MONTH
.4 ldy #S.Time.MONTH
lda (ZPQuickPtr2),y get month
tax
.5 lda S.StrFTime.MDAY-1,x get day count in this month
.5 lda K.StrFTime.MDAY-1,x get day count in this month
bne .6 february ?
ldy S.CTime.Century
lda S.CTime.Year
jsr S.IsLeapYearYA CC = Leap
ldy K.CTime.Century
lda K.CTime.Year
jsr K.IsLeapYearYA CC = Leap
lda #0
rol
eor #1
lsr
.6 pla
adc S.StrFTime.MDAY-1,x
adc K.StrFTime.MDAY-1,x
cmp #7
bcc .7
sbc #7
@ -144,7 +144,7 @@ S.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7)
pla
ldy #S.TIME.DAY
ldy #S.Time.DAY
adc (ZPQuickPtr2),y get month (1..31)
dec adjust range 0.31 for MOD 7
@ -154,195 +154,195 @@ S.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7)
bra .8
.80 inc adjust range 1..7
ldy #S.TIME.WDAY
ldy #S.Time.WDAY
sta (ZPQuickPtr2),y
clc
rts
*--------------------------------------
* S.CTime2Time
* K.CTime2Time
* In :
* PULLW = Src CTIME DWORD
* PULLW = Dst PTR To S.TIME
* PULLW = Dst PTR To K.Time
*--------------------------------------
S.CTime2Time >PULLW ZPQuickPtr1
K.CTime2Time >PULLW ZPQuickPtr1
>PULLW ZPQuickPtr2
ldy #3
.1 lda (ZPQuickPtr1),y
sta S.CTime.DWORD,y
sta K.CTime.DWORD,y
dey
bpl .1
stz S.CTime.DivDay
stz S.CTime.DivDay+1
stz K.CTime.DivDay
stz K.CTime.DivDay+1
.2 lda S.CTime.DWORD
sta S.CTime.ModDay
.2 lda K.CTime.DWORD
sta K.CTime.ModDay
sec
sbc #SECSDAY
pha
lda S.CTime.DWORD+1
sta S.CTime.ModDay+1
lda K.CTime.DWORD+1
sta K.CTime.ModDay+1
sbc /SECSDAY
pha
lda S.CTime.DWORD+2
sta S.CTime.ModDay+2
lda K.CTime.DWORD+2
sta K.CTime.ModDay+2
sbc #0
pha
lda S.CTime.DWORD+3
lda K.CTime.DWORD+3
sbc #0
bcc .3 end of DIV/MOD ?
sta S.CTime.DWORD+3
sta K.CTime.DWORD+3
pla
sta S.CTime.DWORD+2
sta K.CTime.DWORD+2
pla
sta S.CTime.DWORD+1
sta K.CTime.DWORD+1
pla
sta S.CTime.DWORD
sta K.CTime.DWORD
inc S.CTime.DivDay
inc K.CTime.DivDay
bne .2
inc S.CTime.DivDay+1
inc K.CTime.DivDay+1
bne .2
.3 pla
pla
pla
stz S.CTime.Div60
stz S.CTime.Div60+1
stz K.CTime.Div60
stz K.CTime.Div60+1
.4 lda S.CTime.ModDay
sta S.CTime.Mod
.4 lda K.CTime.ModDay
sta K.CTime.Mod
sec
sbc #60
pha
lda S.CTime.ModDay+1
lda K.CTime.ModDay+1
sbc #0
pha
lda S.CTime.ModDay+2
lda K.CTime.ModDay+2
sbc #0
bcc .5
sta S.CTime.ModDay+2
sta K.CTime.ModDay+2
pla
sta S.CTime.ModDay+1
sta K.CTime.ModDay+1
pla
sta S.CTime.ModDay
sta K.CTime.ModDay
inc S.CTime.Div60
inc K.CTime.Div60
bne .4
inc S.CTime.Div60+1
inc K.CTime.Div60+1
bne .4
.5 pla
pla
lda S.CTime.Mod
ldy #S.TIME.SECOND
lda K.CTime.Mod
ldy #S.Time.SECOND
sta (ZPQuickPtr2),y
stz S.CTime.Div3600
stz K.CTime.Div3600
.6 lda S.CTime.Div60
sta S.CTime.Mod
.6 lda K.CTime.Div60
sta K.CTime.Mod
sec
sbc #60
pha
lda S.CTime.Div60+1
lda K.CTime.Div60+1
sbc #0
pha
bcc .7
sta S.CTime.Div60+1
sta K.CTime.Div60+1
pla
sta S.CTime.Div60
sta K.CTime.Div60
inc S.CTime.Div3600
inc K.CTime.Div3600
bne .6
.7 pla
lda S.CTime.Mod
dey ldy #S.TIME.MINUTE
lda K.CTime.Mod
dey ldy #S.Time.MINUTE
sta (ZPQuickPtr2),y
lda S.CTime.Div3600
dey ldy #S.TIME.HOUR
lda K.CTime.Div3600
dey ldy #S.Time.HOUR
sta (ZPQuickPtr2),y
lda S.CTime.DivDay WDAY computation : (DivDay + DAY0) mod 7
lda K.CTime.DivDay WDAY computation : (DivDay + DAY0) mod 7
clc
adc #DAY0
pha
lda S.CTime.DivDay+1
lda K.CTime.DivDay+1
adc /DAY0
eor #$ff
tax
pla
.8 sta S.CTime.Mod
.8 sta K.CTime.Mod
sec
sbc #7
bcs .8
inx
bne .8
lda S.CTime.Mod
ldy #S.TIME.WDAY
lda K.CTime.Mod
ldy #S.Time.WDAY
sta (ZPQuickPtr2),y
lda #CENTURY0
sta S.CTime.Century
sta K.CTime.Century
lda #YEAR0
sta S.CTime.Year
sta K.CTime.Year
S.CTime2Time.Year
.1 ldy S.CTime.Century
lda S.CTime.Year
jsr S.IsLeapYearYA if Leap year CC
lda S.CTime.DivDay
K.CTime2Time.Year
.1 ldy K.CTime.Century
lda K.CTime.Year
jsr K.IsLeapYearYA if Leap year CC
lda K.CTime.DivDay
sbc #365
pha
lda S.CTime.DivDay+1
lda K.CTime.DivDay+1
sbc /365
bcc .2
sta S.CTime.DivDay+1
sta K.CTime.DivDay+1
pla
sta S.CTime.DivDay
sta K.CTime.DivDay
inc S.CTime.Year
lda S.CTime.Year
inc K.CTime.Year
lda K.CTime.Year
cmp #100
bne .1
stz S.CTime.Year
inc S.CTime.Century
stz K.CTime.Year
inc K.CTime.Century
bne .1
.2 pla
lda S.CTime.Century
* ldy #S.TIME.CENTURY
lda K.CTime.Century
* ldy #S.Time.CENTURY
sta (ZPQuickPtr2)
ldy #S.TIME.YEAR
lda S.CTime.Year
ldy #S.Time.YEAR
lda K.CTime.Year
sta (ZPQuickPtr2),y
clc
rts
*--------------------------------------
* S.StrFTime
* K.StrFTime
* In :
* PULLW = Src PTR To S.TIME
* PULLW = Src PTR To K.Time
* PULLW = Src PTR To Format String
* PULLW = Dst PTR To PSTR Buf
* %a Abbreviated weekday name : Thu
@ -361,7 +361,7 @@ S.CTime2Time.Year
* %Y Year four digits 2001
* PULLW = Dst PSTR Buffer
*--------------------------------------
S.StrFTime >PULLW ZPQuickPtr1
K.StrFTime >PULLW ZPQuickPtr1
>PULLW ZPQuickPtr2
>PULLW ZPQuickPtr3
@ -376,7 +376,7 @@ S.StrFTime >PULLW ZPQuickPtr1
beq .2
phy
jsr S.StrFTime.addChar
jsr K.StrFTime.addChar
ply
.10 tya
cmp (ZPQuickPtr2)
@ -388,18 +388,18 @@ S.StrFTime >PULLW ZPQuickPtr1
beq .8
iny
ldx #S.StrFTime.JMPL-S.StrFTime.Tbl-1
ldx #K.StrFTime.JMPL-K.StrFTime.Tbl-1
.3 lda (ZPQuickPtr2),y
cmp S.StrFTime.Tbl,x
cmp K.StrFTime.Tbl,x
beq .4
dex
bpl .3
beq .10
.4 lda S.StrFTime.JMPL,x
.4 lda K.StrFTime.JMPL,x
sta .5+1
lda S.StrFTime.JMPH,x
lda K.StrFTime.JMPH,x
sta .5+2
phy
.5 jsr $ffff
@ -408,24 +408,24 @@ S.StrFTime >PULLW ZPQuickPtr1
.8 rts
*--------------------------------------
S.StrFTime.A ldx #3 Max Len
K.StrFTime.A ldx #3 Max Len
.HS 2C Bit abs
S.StrFTime.AA ldx #15
>LDYAI S.StrFTime.DAY
K.StrFTime.AA ldx #15
>LDYAI K.StrFTime.DAY
>STYA ZPQuickPtr4
ldy #S.TIME.WDAY
bra S.StrFTime.STR
ldy #S.Time.WDAY
bra K.StrFTime.STR
S.StrFTime.B ldx #3
K.StrFTime.B ldx #3
.HS 2C Bit abs
S.StrFTime.BB ldx #15
>LDYAI S.StrFTime.MON
K.StrFTime.BB ldx #15
>LDYAI K.StrFTime.MON
>STYA ZPQuickPtr4
ldy #S.TIME.MONTH
ldy #S.Time.MONTH
S.StrFTime.STR lda (ZPQuickPtr1),y get required S.TIME field value
K.StrFTime.STR lda (ZPQuickPtr1),y get required S.Time field value
tay
beq .8 Illegal value
@ -444,7 +444,7 @@ S.StrFTime.STR lda (ZPQuickPtr1),y get required S.TIME field value
.3 iny
lda (ZPQuickPtr4),y
phy
jsr S.StrFTime.addChar
jsr K.StrFTime.addChar
pla
cmp (ZPQuickPtr4)
beq .8
@ -455,69 +455,69 @@ S.StrFTime.STR lda (ZPQuickPtr1),y get required S.TIME field value
.8 rts
S.StrFTime.D ldy #S.TIME.DAY
bra S.StrFTime.addDecPtr1Y
S.StrFTime.HH ldy #S.TIME.HOUR
bra S.StrFTime.addDecPtr1Y
S.StrFTime.II ldy #S.TIME.HOUR
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 (ZPQuickPtr1),y
cmp #12
bcc .1
sbc #12
.1 bra S.StrFTime.addDecA
S.StrFTime.M ldy #S.TIME.MONTH
bra S.StrFTime.addDecPtr1Y
S.StrFTime.MM ldy #S.TIME.MINUTE
bra S.StrFTime.addDecPtr1Y
S.StrFTime.P ldy #S.TIME.HOUR
.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 (ZPQuickPtr1),y
cmp #12
bcc .1
lda #'p'
.HS 2C bit abs
.1 lda #'a'
jsr S.StrFTime.addChar
jsr K.StrFTime.addChar
lda #'m'
bra S.StrFTime.addChar
S.StrFTime.SS ldy #S.TIME.SECOND
bra S.StrFTime.addDecPtr1Y
S.StrFTime.W ldy #S.TIME.WDAY
bra S.StrFTime.addDecPtr1Y
S.StrFTime.YY ldy #S.TIME.CENTURY
jsr S.StrFTime.addDecPtr1Y
S.StrFTime.Y ldy #S.TIME.YEAR
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
*--------------------------------------
S.StrFTime.addDecPtr1Y
K.StrFTime.addDecPtr1Y
lda (ZPQuickPtr1),y
S.StrFTime.addDecA
sta S.StrFTime.BIN
stz S.StrFTime.DEC
K.StrFTime.addDecA
sta K.StrFTime.BIN
stz K.StrFTime.DEC
sed
ldx #8
.1 asl S.StrFTime.BIN
.1 asl K.StrFTime.BIN
lda S.StrFTime.DEC
adc S.StrFTime.DEC
sta S.StrFTime.DEC
lda K.StrFTime.DEC
adc K.StrFTime.DEC
sta K.StrFTime.DEC
dex
bne .1
cld
* lda S.StrFTime.DEC already in A
* lda K.StrFTime.DEC already in A
lsr
lsr
lsr
lsr
ora #$30
jsr S.StrFTime.addChar
lda S.StrFTime.DEC
jsr K.StrFTime.addChar
lda K.StrFTime.DEC
and #$0f
ora #$30
*--------------------------------------
S.StrFTime.addChar
K.StrFTime.addChar
pha
lda (ZPQuickPtr3)
inc
@ -527,38 +527,38 @@ S.StrFTime.addChar
sta (ZPQuickPtr3),y
rts
*--------------------------------------
S.StrFTime.TBL .AS "aAbBdHImMpSwyY"
S.StrFTime.JMPL .DA #S.StrFTime.A
.DA #S.StrFTime.AA
.DA #S.StrFTime.B
.DA #S.StrFTime.BB
.DA #S.StrFTime.D
.DA #S.StrFTime.HH
.DA #S.StrFTime.II
.DA #S.StrFTime.M
.DA #S.StrFTime.MM
.DA #S.StrFTime.P
.DA #S.StrFTime.SS
.DA #S.StrFTime.W
.DA #S.StrFTime.Y
.DA #S.StrFTime.YY
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
*--------------------------------------
S.StrFTime.JMPH .DA /S.StrFTime.A
.DA /S.StrFTime.AA
.DA /S.StrFTime.B
.DA /S.StrFTime.BB
.DA /S.StrFTime.D
.DA /S.StrFTime.HH
.DA /S.StrFTime.II
.DA /S.StrFTime.M
.DA /S.StrFTime.MM
.DA /S.StrFTime.P
.DA /S.StrFTime.SS
.DA /S.StrFTime.W
.DA /S.StrFTime.Y
.DA /S.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
*--------------------------------------
S.StrFTime.DAY >PSTRING "Monday"
K.StrFTime.DAY >PSTRING "Monday"
>PSTRING "Tuesday"
>PSTRING "Wednesday"
>PSTRING "Thursday"
@ -566,7 +566,7 @@ S.StrFTime.DAY >PSTRING "Monday"
>PSTRING "Saturday"
>PSTRING "Sunday"
*--------------------------------------
S.StrFTime.MON >PSTRING "January"
K.StrFTime.MON >PSTRING "January"
>PSTRING "February"
>PSTRING "March"
>PSTRING "April"
@ -589,7 +589,7 @@ S.StrFTime.MON >PSTRING "January"
* CC = Leap
* CS = Not Leap
*--------------------------------------
S.IsLeapYearYA cmp #0 Year = 00 ?
K.IsLeapYearYA cmp #0 Year = 00 ?
bne .1 no
tya year = 00, get century in a
@ -605,20 +605,20 @@ S.IsLeapYearYA cmp #0 Year = 00 ?
.9 clc Leap
rts
*--------------------------------------
S.CTime.DWORD .BS 4
S.CTime.DivDay .BS 2
S.CTime.ModDay .BS 3
S.CTime.Div60 .BS 2
S.CTime.Div3600 .BS 1
S.CTime.Mod .BS 1
S.CTime.Century .BS 1
S.CTime.Year .BS 1
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
*--------------------------------------
S.StrFTime.BIN .BS 1
S.StrFTime.DEC .BS 1 always < 100
K.StrFTime.BIN .BS 1
K.StrFTime.DEC .BS 1 always < 100
*--------------------------------------
S.StrFTime.MDAY .DA #3,#0,#3,#2,#3,#2,#3,#3,#2,#3,#2,#3
K.StrFTime.MDAY .DA #3,#0,#3,#2,#3,#2,#3,#3,#2,#3,#2,#3
MAN
SAVE SYS/KERNEL.S.TIME
SAVE SYS/KERNEL.S.Time
LOAD SYS/KERNEL.S
ASM

View File

@ -5,9 +5,9 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* S.TskMgrRun
* K.TskMgrRun
*--------------------------------------
S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE skip PS 0
K.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE skip PS 0
>STYA pPs
lda TSKMGR.SIZE
@ -24,14 +24,14 @@ S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE skip PS 0
ldy #S.PS.CID
lda (pPs),y
jsr S.GetPSByIDA
jsr K.GetPSByIDA
bcc .7 yes, running....
lda (pPs) get S.PS.F
and #$FF^S.PS.F.HOLD unmark as HOLD
sta (pPs)
.2 jsr S.SelectProcess
.2 jsr K.SelectProcess
lda (pPS)
bit #S.PS.F.INIT
@ -71,7 +71,7 @@ S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE skip PS 0
ldy #S.PS.ID
lda (pPs),y
jsr S.FreeProcessA
jsr K.FreeProcessA
bcs *
.7 lda pPs
@ -113,7 +113,7 @@ S.DispatchEvents
bit #S.PS.F.EVENT Accept Events ?
beq .4
jsr S.SelectProcess
jsr K.SelectProcess
stz pEvent
@ -130,7 +130,7 @@ S.DispatchEvents
ldx #TSKMGR.DOEVENT
jsr pCodeJmp Call DOEVENT function
bcs .3
jsr S.DestroyEvent
jsr K.DestroyEvent
lda EVTMGR.COUNT
beq .8
@ -156,7 +156,7 @@ S.DispatchEvents
.9 sec
rts
*--------------------------------------
S.TskMgrQuit clc
K.TskMgrQuit clc
rts
*--------------------------------------
TSKMGR.SIZE .BS 1

View File

@ -43,7 +43,7 @@ ZPQuickPtr4 .EQ ZPKERNEL+6
jsr Kernel.Init3
>DEBUGOA
*--------------------------------------
jmp S.KernelRun
jmp K.KernelRun
*--------------------------------------
.INB X.PRINTF.S
.INB SYS/KERNEL.S.INIT2
@ -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 *
*--------------------------------------