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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -235,9 +235,9 @@ SYS.Sleep .EQ $9C
SYS.CheckPrefixYA .EQ $A0 SYS.CheckPrefixYA .EQ $A0
SYS.FileSearch .EQ $A2 SYS.FileSearch .EQ $A2
SYS.GetFullPathYA .EQ $A4 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.AddNetCfg .EQ $B0
SYS.SetNetCfg .EQ $B2 SYS.SetNetCfg .EQ $B2
@ -248,7 +248,7 @@ SYS.ClrNetCfgA .EQ $B6
*-------------------------------------- *--------------------------------------
SYS.COutA .EQ $D0 SYS.COutA .EQ $D0
SYS.PSTROutYA .EQ $D4 SYS.PStrOutYA .EQ $D4
SYS.HexOutA .EQ $D8 SYS.HexOutA .EQ $D8
SYS.HexOutYA .EQ $DA SYS.HexOutYA .EQ $DA
@ -463,16 +463,16 @@ S.LISTDIR.hPATTERN .EQ 15 Pattern for file filtering
* *
S.LISTDIR.SIZE .EQ 16 S.LISTDIR.SIZE .EQ 16
*-------------------------------------- *--------------------------------------
S.TIME.CENTURY .EQ 0 19,20,21.... S.Time.CENTURY .EQ 0 19,20,21....
S.TIME.YEAR .EQ 1 0.99 S.Time.YEAR .EQ 1 0.99
S.TIME.MONTH .EQ 2 1..12 S.Time.MONTH .EQ 2 1..12
S.TIME.DAY .EQ 3 1..31 S.Time.DAY .EQ 3 1..31
S.TIME.HOUR .EQ 4 0..23 S.Time.HOUR .EQ 4 0..23
S.TIME.MINUTE .EQ 5 0..59 S.Time.MINUTE .EQ 5 0..59
S.TIME.SECOND .EQ 6 0..61 S.Time.SECOND .EQ 6 0..61
S.TIME.WDAY .EQ 7 1..7 S.Time.WDAY .EQ 7 1..7
* *
S.TIME .EQ 8 K.Time .EQ 8
*-------------------------------------- *--------------------------------------
* S.STAT * S.STAT
*-------------------------------------- *--------------------------------------

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,33 +5,33 @@ INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* S.LoadDrvYA * K.LoadDrvYA
* in : * in :
* Y,A = PTR To Full Cmd Line PStrArray * Y,A = PTR To Full Cmd Line PStrArray
* out : * out :
* none * none
*-------------------------------------- *--------------------------------------
S.LoadDrvYA >STYA S.LoadDrv.CmdArray K.LoadDrvYA >STYA K.LoadDrv.CmdArray
>LDYAI ENV.DRV push ENVNAME=DRV >LDYAI ENV.DRV push ENVNAME=DRV
jsr S.GetEnvYA get value for ENV=DRV jsr K.GetEnvYA get value for ENV=DRV
bcs .99 bcs .99
>PUSHYA Push $DRV value >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 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 bcs .98
>STYA pDrv >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 >STYA ZPQuickPtr1
lda ZPQuickPtr1 lda ZPQuickPtr1
@ -49,7 +49,7 @@ S.LoadDrvYA >STYA S.LoadDrv.CmdArray
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
jsr S.InsDrv jsr K.InsDrv
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
@ -68,21 +68,21 @@ S.LoadDrvYA >STYA S.LoadDrv.CmdArray
.99 rts .99 rts
.97 pha .97 pha
lda S.LoadDrv.hMem lda K.LoadDrv.hMem
jsr S.FreeMemA jsr K.FreeMemA
pla pla
.98 pha .98 pha
lda S.LoadDrv.hFullName lda K.LoadDrv.hFullName
jsr S.FreeMemA jsr K.FreeMemA
pla pla
sec sec
rts rts
*-------------------------------------- *--------------------------------------
ENV.DRV >PSTRING "DRV" ENV.DRV >PSTRING "DRV"
S.LoadDrv.CmdArray .BS 2 K.LoadDrv.CmdArray .BS 2
S.LoadDrv.hFullName .BS 1 K.LoadDrv.hFullName .BS 1
S.LoadDrv.hMem .BS 1 K.LoadDrv.hMem .BS 1
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE SYS/KERNEL.S.DRV SAVE SYS/KERNEL.S.DRV

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,16 +5,16 @@ INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
S.KernelRun jsr S.TskMgrRun K.KernelRun jsr K.TskMgrRun
bcs .9 bcs .9
jsr S.GetEvents jsr K.GetEvents
bcs S.KernelRun CS=no event bcs K.KernelRun CS=no event
jsr S.DispatchEvents 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 stz pEvent
@ -45,7 +45,7 @@ S.KernelRun jsr S.TskMgrRun
lda A2osX.SCRNDEVS-1,x lda A2osX.SCRNDEVS-1,x
beq .8 beq .8
jsr S.GetDevByIDA jsr K.GetDevByIDA
bcs .8 bcs .8
>STYA pDev >STYA pDev
@ -65,9 +65,9 @@ S.KernelRun jsr S.TskMgrRun
bpl .71 bpl .71
>LDYAI MSG.DumpEvent >LDYAI MSG.DumpEvent
jsr S.PSTROutYA jsr K.PStrOutYA
.8 jsr S.DestroyEvent .8 jsr K.DestroyEvent
.81 lda pEvent .81 lda pEvent
clc clc
@ -76,11 +76,11 @@ S.KernelRun jsr S.TskMgrRun
lda EVTMGR.COUNT lda EVTMGR.COUNT
bne .1 bne .1
beq S.KernelRun beq K.KernelRun
.9 jsr DevMgr.SYS.Select .9 jsr DevMgr.SYS.Select
>LDYAI MSG.KRNLPANIC >LDYAI MSG.KRNLPANIC
jsr S.PSTROutYA jsr K.PStrOutYA
bra * bra *
*-------------------------------------- *--------------------------------------
MSG.DumpEvent >PSTRING "!Unhandled Event:Flags=%h,DevID=%h,DATALO=%h,DATAHI=%h,W1=%H,W2=%H\n" 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 AUTO 6
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* S.NewPStrYA * K.NewPStrYA
* IN: * IN:
* Y,A = PTR to buffer * Y,A = PTR to buffer
* OUT: * OUT:
* Y,A = PTR to String * Y,A = PTR to String
* X = hMem (PSTRING) * X = hMem (PSTRING)
*-------------------------------------- *--------------------------------------
S.NewPStrYA >STYA ZPQuickPtr1 K.NewPStrYA >STYA ZPQuickPtr1
lda (ZPQuickPtr1) lda (ZPQuickPtr1)
inc inc
tay tay
lda #0 Y,A = len of new string lda #0 Y,A = len of new string
>PUSHYA >PUSHYA
>PUSHBI 0 0 = no option >PUSHBI 0 0 = no option
jsr S.GetMem jsr K.GetMem
bcs .9 bcs .9
>STYA ZPQuickPtr2 >STYA ZPQuickPtr2
jsr S.PStrCpyPtr1Ptr2 jsr K.PStrCpyPtr1Ptr2
>LDYA ZPQuickPtr2 >LDYA ZPQuickPtr2
@ -34,17 +34,17 @@ S.NewPStrYA >STYA ZPQuickPtr1
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
* S.PStrCpy * K.PStrCpy
* IN: * IN:
* PULLW = PSTR to DST (PSTRING) * PULLW = PSTR to DST (PSTRING)
* PULLW = PSTR to SRC (PSTRING) * PULLW = PSTR to SRC (PSTRING)
* OUT: * OUT:
* DST = SRC (PSTRING) * DST = SRC (PSTRING)
*-------------------------------------- *--------------------------------------
S.PStrCpy >PULLW ZPQuickPtr2 save DST K.PStrCpy >PULLW ZPQuickPtr2 save DST
>PULLW ZPQuickPtr1 save SRC >PULLW ZPQuickPtr1 save SRC
S.PStrCpyPtr1Ptr2 K.PStrCpyPtr1Ptr2
lda (ZPQuickPtr1) lda (ZPQuickPtr1)
sta (ZPQuickPtr2) sta (ZPQuickPtr2)
tay tay
@ -58,14 +58,14 @@ S.PStrCpyPtr1Ptr2
.2 clc .2 clc
rts rts
*-------------------------------------- *--------------------------------------
* S.PStrCat * K.PStrCat
* IN: * IN:
* PULLW = PSTR to DST (PSTRING) * PULLW = PSTR to DST (PSTRING)
* PULLW = PSTR to SRC (PSTRING) * PULLW = PSTR to SRC (PSTRING)
* OUT: * OUT:
* DST = DST+SRC (PSTRING) * DST = DST+SRC (PSTRING)
*-------------------------------------- *--------------------------------------
S.PStrCat >PULLW ZPQuickPtr2 save DST K.PStrCat >PULLW ZPQuickPtr2 save DST
>PULLW ZPQuickPtr1 save SRC >PULLW ZPQuickPtr1 save SRC
lda (ZPQuickPtr1) lda (ZPQuickPtr1)
@ -93,7 +93,7 @@ S.PStrCat >PULLW ZPQuickPtr2 save DST
clc clc
rts rts
*-------------------------------------- *--------------------------------------
* S.PStrMatch * K.PStrMatch
* IN: * IN:
* PULLB = PTR to String (PSTRING) * PULLB = PTR to String (PSTRING)
* PULLB = PTR to Pattern (PSTRING) * PULLB = PTR to Pattern (PSTRING)
@ -101,7 +101,7 @@ S.PStrCat >PULLW ZPQuickPtr2 save DST
* cc = match * cc = match
* cs = no match * cs = no match
*-------------------------------------- *--------------------------------------
S.PStrMatch >PULLW ZPQuickPtr2 pull String K.PStrMatch >PULLW ZPQuickPtr2 pull String
>PULLW ZPQuickPtr1 pull Pattern >PULLW ZPQuickPtr1 pull Pattern
lda (ZPQuickPTR1) Keep Pattern Length in X lda (ZPQuickPTR1) Keep Pattern Length in X
@ -167,25 +167,25 @@ S.PStrMatch >PULLW ZPQuickPtr2 pull String
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
* S.PStrUprYA * K.PStrUprYA
* S.PStrLwrYA * K.PStrLwrYA
* IN: * IN:
* Y,A = PTR to String (PSTRING) * Y,A = PTR to String (PSTRING)
* OUT: * OUT:
* Uppercased/lowercased String in Buffer * Uppercased/lowercased String in Buffer
*-------------------------------------- *--------------------------------------
S.PStrUprYA ldx #0 K.PStrUprYA ldx #0
.HS 2C bit abs .HS 2C bit abs
S.PStrLwrYA ldx #2 K.PStrLwrYA ldx #2
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
lda (ZPQuickPtr1) lda (ZPQuickPtr1)
tay tay
.1 lda (ZPQuickPtr1),y .1 lda (ZPQuickPtr1),y
cmp S.PstrUprLwr,x cmp K.PStrUprLwr,x
bcc .2 bcc .2
cmp S.PstrUprLwr+1,x cmp K.PStrUprLwr+1,x
bcs .2 bcs .2
eor #$20 eor #$20
sta (ZPQuickPtr1),y sta (ZPQuickPtr1),y
@ -195,16 +195,16 @@ S.PStrLwrYA ldx #2
clc clc
rts rts
*-------------------------------------- *--------------------------------------
S.PstrUprLwr .AS "azAZ" K.PStrUprLwr .AS "azAZ"
*-------------------------------------- *--------------------------------------
* S.PStr2StrArrayYA * K.PStr2StrArrayYA
* In : * In :
* Y,A = PTR to String * Y,A = PTR to String
* Out : * Out :
* Y,A = PTR to StrArray * Y,A = PTR to StrArray
* X = hMem * X = hMem
*-------------------------------------- *--------------------------------------
S.PStr2StrArrayYA K.PStr2StrArrayYA
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
lda (ZPQuickPtr1) Get mem size STRLEN+1 lda (ZPQuickPtr1) Get mem size STRLEN+1
ldx #0 ldx #0
@ -214,7 +214,7 @@ S.PStr2StrArrayYA
.1 >PUSHAX .1 >PUSHAX
>PUSHBI 0 >PUSHBI 0
jsr S.GetMem jsr K.GetMem
bcs .9 bcs .9
phx save hMem phx save hMem
phy save PTR.LO phy save PTR.LO

View File

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

View File

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

View File

@ -43,7 +43,7 @@ ZPQuickPtr4 .EQ ZPKERNEL+6
jsr Kernel.Init3 jsr Kernel.Init3
>DEBUGOA >DEBUGOA
*-------------------------------------- *--------------------------------------
jmp S.KernelRun jmp K.KernelRun
*-------------------------------------- *--------------------------------------
.INB X.PRINTF.S .INB X.PRINTF.S
.INB SYS/KERNEL.S.INIT2 .INB SYS/KERNEL.S.INIT2
@ -79,7 +79,7 @@ A2osX.D001.END .EQ *
A2osX.D002 .EQ * A2osX.D002 .EQ *
.PH $D000 .PH $D000
.INB SYS/KERNEL.S.REL .INB SYS/KERNEL.S.REL
.INB SYS/KERNEL.S.TIME .INB SYS/KERNEL.S.Time
.EP .EP
A2osX.D002.END .EQ * A2osX.D002.END .EQ *
*-------------------------------------- *--------------------------------------