NEW AUTO 3,1 *-------------------------------------- * $E000-E1FF System calls Jump Table *-------------------------------------- * Bank 1 *-------------------------------------- K.SYSCALL .DA K.GetMemStat $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 K.LoadFile .DA K.LoadTxtFile .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.GetPWUID .DA K.GetPWName .DA K.PutPW .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 K.FAdd $C0 .DA K.FSub .DA K.FMult .DA K.FDiv .DA K.FPwr .DA 0 .DA K.LRIntF .DA K.Float .DA K.Log $D0 .DA K.Sqr .DA K.Exp .DA K.Cos .DA K.Sin .DA K.Tan .DA K.ATan .DA 0 *-------------------------------------- * $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 #RRAMWRAMBNK2 $D0 .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 $E0 : MemMgr at $E000 .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #$40 NewStkObj .DA #$80 .DA #0 .DA #$80 .DA #$40 GetStkObjPtr .DA #$80 .DA #$40 FreeStkObj .DA #$80 *-------------------------------------- .DA #0 $F0 : SLIST .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #0 .DA #$80 .DA #0 .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) *-------------------------------------- K.GUIOSD.JMP sta SETREADAUX sta SETWRITEAUX jsr X.GUIOSD sta CLRREADAUX sta CLRWRITEAUX rts *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.JMP LOAD USR/SRC/SYS/KERNEL.S ASM