mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-25 00:23:52 +00:00
Kernel 0.92+
This commit is contained in:
parent
01fa428204
commit
a225b5fe66
Binary file not shown.
@ -226,7 +226,7 @@ CS.RUN.GETC >LDA.G hFILE
|
|||||||
ldy #S.PS.hStdErr
|
ldy #S.PS.hStdErr
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL GetC
|
>SYSCALL GetC
|
||||||
bra .2
|
rts
|
||||||
|
|
||||||
.1 >SYSCALL GetChar
|
.1 >SYSCALL GetChar
|
||||||
.2 rts
|
.2 rts
|
||||||
@ -269,7 +269,10 @@ CS.RUN.GETLINE >PUSHWI 256
|
|||||||
.8 sta (ZPBufPtr),y
|
.8 sta (ZPBufPtr),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
rts
|
||||||
|
|
||||||
|
.9 >DEBUG
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PRINT >LDA.G bLineNum
|
CS.RUN.PRINT >LDA.G bLineNum
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -38,6 +38,7 @@ IO.Reset.In >LDA.G IO.hIn
|
|||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
|
||||||
>SYSCALL fclose
|
>SYSCALL fclose
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
@ -42,7 +42,7 @@ GP.CodeStart jmp GP.SysCall
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* SLEEP
|
* SLEEP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
php
|
GP.Sleep php
|
||||||
sei
|
sei
|
||||||
|
|
||||||
phy
|
phy
|
||||||
@ -112,49 +112,60 @@ GP.CodeStart jmp GP.SysCall
|
|||||||
* *** MUST BE REINTRANT ***
|
* *** MUST BE REINTRANT ***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.SysCall dec IRQ.InKernel
|
GP.SysCall dec IRQ.InKernel
|
||||||
|
sty .5+1 save Y (Func Arg)
|
||||||
bit K.SYSCALL.BANK,x
|
sta .6+1 save A (Func Arg)
|
||||||
bmi .1
|
stx .7+1 save X (Func ID)
|
||||||
|
|
||||||
jsr .8 in $E000, no BNK change
|
|
||||||
|
|
||||||
inc IRQ.InKernel
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 sta .7+1 save A (Func Arg)
|
|
||||||
|
|
||||||
lda K.SYSCALL.BANK,x Get Target BNK
|
lda K.SYSCALL.BANK,x Get Target BNK
|
||||||
|
bpl .1 0, E000, no BNK change
|
||||||
|
|
||||||
cmp $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2
|
cmp $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2
|
||||||
bne .2
|
beq .1 same as actual BNK...go restore A and JMP
|
||||||
|
|
||||||
jsr .7 same as actual BNK...go restore A and JMP
|
|
||||||
|
|
||||||
inc IRQ.InKernel
|
|
||||||
rts
|
|
||||||
|
|
||||||
.2 stx .6+1 save X (Func ID)
|
|
||||||
|
|
||||||
tax set Target BNK in x
|
tax set Target BNK in x
|
||||||
lda $D000 get source BNK
|
lda $D000 get source BNK
|
||||||
bit $C000,x switch to Target BNK
|
bit $C000,x switch to Target BNK
|
||||||
bit $C000,x
|
bit $C000,x
|
||||||
|
|
||||||
|
.1 pha remember source BNK
|
||||||
|
|
||||||
|
jsr .5 go to kernel.....
|
||||||
|
|
||||||
|
stx .4+1 save X
|
||||||
|
|
||||||
|
plx get back Source BNK
|
||||||
|
|
||||||
|
bit $C000,x switch to Target BNK
|
||||||
|
bit $C000,x
|
||||||
|
bcc .4 no error quit...
|
||||||
|
|
||||||
|
tax CS,A=0 ?
|
||||||
|
bne .4 no, return error to caller
|
||||||
|
|
||||||
|
pla get PC LO
|
||||||
|
plx get PC HI
|
||||||
|
sec
|
||||||
|
sbc #3 move back JSR GP.SysCall
|
||||||
|
bcs .2
|
||||||
|
|
||||||
|
dex
|
||||||
|
|
||||||
|
.2 phx
|
||||||
pha
|
pha
|
||||||
|
|
||||||
jsr .6 go to kernel.....
|
ldy .5+1
|
||||||
|
lda .6+1
|
||||||
stx .5+1 save X
|
ldx .7+1
|
||||||
plx get back Source BNK
|
jmp GP.Sleep
|
||||||
bit $C000,x
|
|
||||||
bit $C000,x
|
|
||||||
.5 ldx #$FF Self Modified
|
|
||||||
|
|
||||||
|
.4 ldx #$FF Self Modified
|
||||||
inc IRQ.InKernel
|
inc IRQ.InKernel
|
||||||
rts Unmodified Carry
|
rts Unmodified Carry
|
||||||
|
|
||||||
.6 ldx #$FF Self Modified
|
.5 ldy #$FF Self Modified
|
||||||
.7 lda #$FF Self Modified
|
.6 lda #$FF Self Modified
|
||||||
.8 jmp (K.SYSCALL.JMP,x)
|
.7 ldx #$FF Self Modified
|
||||||
|
jmp (K.SYSCALL.JMP,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.LibCall dec IRQ.InKernel
|
GP.LibCall dec IRQ.InKernel
|
||||||
|
|
||||||
@ -193,10 +204,6 @@ GP.RomCallPushFAC
|
|||||||
sta FORPNT+1
|
sta FORPNT+1
|
||||||
|
|
||||||
ldx #ROM.GETFAC
|
ldx #ROM.GETFAC
|
||||||
jsr GP.ROMCALL
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.RomCall dec IRQ.InKernel
|
GP.RomCall dec IRQ.InKernel
|
||||||
|
|
||||||
@ -215,6 +222,7 @@ GP.RomCall dec IRQ.InKernel
|
|||||||
|
|
||||||
inc IRQ.InKernel
|
inc IRQ.InKernel
|
||||||
|
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 jmp (.2,x)
|
.1 jmp (.2,x)
|
||||||
@ -352,12 +360,6 @@ CORE.Tick10t .BS 1
|
|||||||
CORE.CPUStatCnt .DA #100
|
CORE.CPUStatCnt .DA #100
|
||||||
CORE.LastPSID .DA #0
|
CORE.LastPSID .DA #0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.Stat .DA DevMgr.FreeMem
|
|
||||||
DevMgr.Free .DA DevMgr.FreeMem
|
|
||||||
.DA DevMgr.HiMem
|
|
||||||
DevMgr.DevCnt .DA #0
|
|
||||||
DevMgr.NodCnt .DA #0
|
|
||||||
*--------------------------------------
|
|
||||||
IRQ.Mode .BS 1
|
IRQ.Mode .BS 1
|
||||||
IRQ.SkipA2osX .BS 1
|
IRQ.SkipA2osX .BS 1
|
||||||
IRQ.Tick .BS 1
|
IRQ.Tick .BS 1
|
||||||
|
@ -438,7 +438,7 @@ IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #C.EOF
|
.99 lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -494,7 +494,7 @@ IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #C.EOF
|
.99 lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -745,6 +745,12 @@ MEM.NextCharPtr2
|
|||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
DevMgr.Stat .DA DevMgr.FreeMem
|
||||||
|
DevMgr.Free .DA DevMgr.FreeMem
|
||||||
|
.DA DevMgr.HiMem
|
||||||
|
DevMgr.DevCnt .DA #0
|
||||||
|
DevMgr.NodCnt .DA #0
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.MEM
|
SAVE USR/SRC/SYS/KERNEL.S.MEM
|
||||||
LOAD USR/SRC/SYS/KERNEL.S
|
LOAD USR/SRC/SYS/KERNEL.S
|
||||||
|
Loading…
Reference in New Issue
Block a user