A2osX/SYS/KERNEL.S.JMP.txt

488 lines
8.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.BUILD
LOMEM $A00
INC 1
AUTO 6
*--------------------------------------
* $E000-E0FF K.SYSCALL.JMP Jmp Table
*--------------------------------------
* Bank 1
*--------------------------------------
K.SYSCALL.JMP .DA 0 $00
.DA 0
.DA K.Stat
.DA K.MKDir.YA
.DA K.MKNod.YA
.DA K.MKFIFO
.DA 0
.DA 0
.DA K.OpenDir.YA $10
.DA K.ReadDir.A
.DA K.CloseDir.A
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA K.FPutC.AY $20
.DA K.PutChar.A
.DA K.GetC.A
.DA K.GetChar
.DA K.FPutS
.DA K.PutS.YA
.DA K.FGetS
.DA K.GetS.YA
.DA K.FOpen $30
.DA K.FClose.A
.DA K.FRead
.DA K.FWrite
.DA K.FFlush.A
.DA K.FSeek
.DA K.FTell.A
.DA K.FEOF.A
.DA K.Remove.YA $40
.DA K.Rename
.DA 0
.DA 0
.DA K.GetDevByID.A
.DA K.GetDevByName.YA
.DA K.GetDevStatus.A
.DA 0
.DA 0 $50
.DA K.SScanF
.DA 0
.DA 0
.DA K.PrintF.YA
.DA K.SPrintF.YA
.DA K.FPrintF.YA
.DA 0
.DA K.FileSearch $60
.DA K.GetFullPath.YA
.DA K.LoadFile
.DA K.SaveFile
.DA K.ChTyp
.DA K.ChMod
.DA K.ChOwn
.DA K.ChGrp
*--------------------------------------
* Bank 2
*--------------------------------------
.DA K.StrLen.YA $70
.DA K.StrCpy
.DA K.StrCat
.DA K.StrMatch
.DA K.StrUpr.YA
.DA K.StrLwr.YA
.DA K.StrFTime
.DA 0
.DA K.AToF $80
.DA K.AToI.YA
.DA K.AToL
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA K.Time.YA $90
.DA K.CTime2Time
.DA K.PTime2Time
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA K.ExecProcessNewEnv.YA $A0
.DA K.ExecProcess.YA
.DA K.CreateProcessNewEnv.YA
.DA K.CreateProcess.YA
.DA K.GetPSByID.A
.DA 0
.DA K.Sleep
.DA 0
.DA K.GetArgC $B0
.DA K.GetArg.A
.DA K.ExpandStr.YA
.DA 0
.DA K.PutEnv.YA
.DA K.SetEnv
.DA K.GetEnv.YA
.DA K.UnsetEnv.YA
*--------------------------------------
* $E000
*--------------------------------------
.DA K.GetMem $C0
.DA K.FreeMem.A
.DA K.GetMemPtr.A
.DA K.GetMemByID.A
.DA K.GetMem.YA
.DA K.GetMem0.YA
.DA 0
.DA K.NewStr.YA
*--------------------------------------
.DA K.SetLoMem $D0
.DA K.GetMemStat.YA
.DA 0
.DA 0
.DA K.LoadStkObj.YA
.DA K.GetStkObj.A
.DA K.FreeStkObj.A
.DA 0
*--------------------------------------
.DA K.LoadLib.YA $E0
.DA K.UnloadLib.A
.DA K.LoadDrv.YA
*--------------------------------------
* LO Byte :
* #RRAMWRAMBNK1,#RRAMWRAMBNK2
* HI Byte :
* Flags (ROOT....)
*--------------------------------------
K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $10
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $20
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $30
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $40
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $50
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $60
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
*--------------------------------------
.DA #RRAMWRAMBNK2 $70
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2 $80
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2 $90
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2 $A0
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2 $B0
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
*--------------------------------------
.DA 0 $C0 : MemMgr at $E000
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
*--------------------------------------
.DA 0 $D0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
*--------------------------------------
.DA 0 $E0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
*--------------------------------------
PullPtr1Ptr2Ptr3
sec
.HS 90 bcc
PullPtr1Ptr2 clc
>PULLW ZPPtr1
>PULLW ZPPtr2
bcc .9
>PULLW ZPPtr3
.9 rts
*/--------------------------------------
* # NewPStrYA
* Create a new copy of PSTR
* ## In:
* Y,A = PTR to buffer
* ## Out:
* CC : success
* Y,A = PTR to String
* X = hMem (PSTR)
* CS : error
* A = SYS error code
*\--------------------------------------
K.NewPStr.YA >STYA ZPPtr2
lda (ZPPtr2)
inc
tay
lda #0 Y,A = len of new string
jsr K.GetMem.YA
bcs .9
>STYA ZPPtr1
lda (ZPPtr2)
sta (ZPPtr1)
tay
beq .2
.1 lda (ZPPtr2),y
sta (ZPPtr1),y
dey
bne .1
.2 >LDYA ZPPtr1
clc
.9 rts
*--------------------------------------
K.NewCStr.YA >STYA ZPPtr1
lda (ZPPtr1)
inc
tay
lda #0 Y,A = len of new string
jsr K.GetMem.YA
bcs .9
>STYA ZPPtr2
lda (ZPPtr1)
tay
phy
beq .2
.1 lda (ZPPtr1),y
dey
sta (ZPPtr2),y
bne .1
.2 ply
lda #0
sta (ZPPtr2),y
>LDYA ZPPtr1
clc
.9 rts
*--------------------------------------
MAN
SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP
LOAD /A2OSX.SRC/SYS/KERNEL.S
ASM