A2osX/SYS/KERNEL.S.JMP.txt
2019-07-29 17:38:55 +02:00

480 lines
8.7 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.

NEW
AUTO 3,1
*--------------------------------------
* $E000-E1FF System calls Jump Table
*--------------------------------------
* Bank 1
*--------------------------------------
K.SYSCALL .DA 0 $00
.DA K.ChMod
.DA K.FStat
.DA K.Stat
.DA K.MKDir
.DA K.MKNod
.DA K.MKFIFO
.DA K.Pipe
.DA K.OpenDir $10
.DA K.ReadDir
.DA K.FClose
.DA K.Open
.DA K.Close
.DA K.Read
.DA K.Write
.DA K.IOCTL
.DA K.FPutC $20
.DA K.PutChar
.DA K.GetC
.DA K.GetChar
.DA K.FPutS
.DA K.PutS
.DA K.FGetS
.DA 0
.DA K.FOpen $30
.DA K.FClose
.DA K.FRead
.DA K.FWrite
.DA K.FFlush
.DA K.FSeek
.DA K.FTell
.DA K.FEOF
.DA K.Remove $40
.DA K.Rename
.DA 0
.DA 0
.DA 0
.DA K.GetDevByName
.DA K.GetDevStatus
.DA K.MKDev
.DA 0 $50
.DA K.SScanF
.DA 0
.DA 0
.DA K.PrintF
.DA K.SPrintF
.DA K.FPrintF
.DA 0
.DA 0 $60
.DA K.ChTyp
.DA 0
.DA 0
.DA 0
.DA 0
.DA K.ChOwn
.DA K.ChGrp
.DA K.AToF $70
.DA K.AToI
.DA K.AToL
.DA K.StrToF
.DA K.StrToL
.DA 0
.DA K.RealPath
.DA 0
*--------------------------------------
* Bank 2
*--------------------------------------
.DA K.StrLen $80
.DA K.StrCpy
.DA K.StrCat
.DA K.StrDup
.DA K.StrUpr
.DA K.StrLwr
.DA K.StrCmp
.DA K.StrCaseCmp
.DA K.Time $90
.DA K.CTime2Time
.DA K.PTime2Time
.DA K.StrFTime
.DA K.LoadLib
.DA K.UnloadLib
.DA K.LoadDrv
.DA K.InsDrv
.DA K.ExecL $A0
.DA K.ExecV
.DA 0
.DA K.Kill
.DA K.LoadFile
.DA K.LoadTxtFile
.DA K.GetMemStat
.DA 0
.DA K.Args2ArgV $B0
.DA K.ArgV
.DA K.ExpandStr
.DA K.FileSearch
.DA K.PutEnv
.DA K.SetEnv
.DA K.GetEnv
.DA K.UnsetEnv
.DA 0 $C0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA K.LRIntF
.DA K.Float
.DA K.GetPWUID $D0
.DA K.GetPWName
.DA K.PutPW
.DA 0
.DA 0
.DA 0
.DA 0
.DA X.OSD
*--------------------------------------
* $E000
*--------------------------------------
.DA K.GetMem $E0
.DA K.GetMem0
.DA K.GetMemPtr
.DA K.FreeMem
.DA K.GetMem K.NewStkObj
.DA K.LoadStkObj
.DA K.GetMemPtr K.GetStkObjPtr
.DA K.FreeMem K.FreeStkObj
*--------------------------------------
.DA K.SListGetData $F0
.DA K.SListAddData
.DA K.SListSetData
.DA K.SListGetByID
.DA K.SListNewKey
.DA K.SListLookup
.DA K.SListNew
.DA K.SListFree
*--------------------------------------
* 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 #RRAMWRAMBNK1 $70
.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 $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 #RRAMWRAMBNK2 $C0
.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 #$C0 $D0 : PWD
.DA #$80
.DA #$C0 PWD
.DA #$80
.DA #$C0 PWD
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #RRAMWRAMBNK2
.DA #$80
.DA #$C0 Off Screen Driver
.DA #$80
*--------------------------------------
.DA #0 $E0 : MemMgr at $E000
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #$C0 NewStkObj
.DA #$80
.DA #0
.DA #$80
.DA #$C0 GetStkObjPtr
.DA #$80
.DA #$C0 FreeStkObj
.DA #$80
*--------------------------------------
.DA #$C0 $F0 : SLIST
.DA #$80
.DA #$C0
.DA #$80
.DA #$C0
.DA #$80
.DA #$C0
.DA #$80
.DA #$C0
.DA #$80
.DA #$C0
.DA #$80
.DA #$C0
.DA #$80
.DA #$C0
.DA #$80
*--------------------------------------
K.SYSCALL2 bit K.SYSCALL.BANK,x Get Target BNK
bpl K.SYSCALL.JMP 0, E000, no BNK change
bvc K.SYSCALL2.BANK
K.SYSCALL2.AUX sta SETREADAUX AUX Mem API
sta SETWRITEAUX
jsr K.SYSCALL.JMP
sta CLRREADAUX
sta CLRWRITEAUX
rts
K.SYSCALL2.BANK sta .7+1
lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2
cmp K.SYSCALL.BANK,x
beq .7
pha remember source BNK
stx .6+1
lda K.SYSCALL.BANK,x
tax get Target BNK in x
bit $C000,x switch to Target BNK
bit $C000,x
jsr .6
stx .5+1 Save X
plx get back Source BNK
bit $C000,x switch to Target BNK
bit $C000,x
.5 ldx #$ff SELF MODIFIED
rts
.6 ldx #$ff SELF MODIFIED
.7 lda #$ff SELF MODIFIED
K.SYSCALL.JMP jmp (K.SYSCALL,x)
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.JMP
LOAD USR/SRC/SYS/KERNEL.S
ASM