Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-07-25 17:10:59 +02:00
parent a81b81a13c
commit 5d9d5ea789
12 changed files with 65 additions and 144 deletions

Binary file not shown.

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
Mask7BitsH .DA #%01111111 Useless Mask7BitsH .DA #%01111111 Useless

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* BitBlt * BitBlt
@ -24,8 +23,7 @@ BITBLT ldy CB.CACHE+S.CB.SrcPtr
sta SETWRITEAUX sta SETWRITEAUX
tya tya
ldx #SYS.GetMemPtr >SYSCALL2 GetMemPtr
jsr Kernel.JMP
jsr BITBLT.1 jsr BITBLT.1
@ -399,8 +397,6 @@ BLT.Get7BMBits1 lda (ZPBMDataPtr)
inc ZPBMDataPtr+1 inc ZPBMDataPtr+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
Kernel.JMP jmp (SYS.Kernel.JMP,x)
*--------------------------------------
MAN MAN
SAVE USR/SRC/DRV/DHGR.DRV.S.RECT SAVE USR/SRC/DRV/DHGR.DRV.S.RECT
LOAD USR/SRC/DRV/DHGR.DRV.S LOAD USR/SRC/DRV/DHGR.DRV.S

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
LBUF.SetBounds1YA LBUF.SetBounds1YA
@ -88,57 +87,8 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
rts rts
*-------------------------------------- *--------------------------------------
LBUF.DrawAtY.XOR
LBUF.DrawAtY.AND.XOR
ldx LBUF.C1 x C1->C2
ldy COL.BANK,x
sta $C000,y
ldy COL.OFS,x
lda (ZPBasePtr),y Get C1
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
sta ZPTmpByte
lda LBUF.DATA,x get DATA bits
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
ora ZPTmpByte
eor (ZPBasePtr),y
sta (ZPBasePtr),y update screen
inx
cpx LBUF.C2
beq .2 C1=C2, go setup C2
bcs .8 C1+1 > C2, we are done...
.1 ldy COL.BANK,x
sta $C000,y
ldy COL.OFS,x
lda LBUF.DATA,x
eor (ZPBasePtr),y
sta (ZPBasePtr),y
inx
cpx LBUF.C2
bne .1
.2 ldy COL.BANK,x
sta $C000,y
ldy COL.OFS,x
lda (ZPBasePtr),y Get C2
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
sta ZPTmpByte
lda LBUF.DATA,x get DATA bits
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
ora ZPTmpByte
eor (ZPBasePtr),y
sta (ZPBasePtr),y update screen
.8 rts
*--------------------------------------
LBUF.DrawAtY.SET LBUF.DrawAtY.SET
LBUF.DrawAtY.AND.SET LBUF.DrawAtY.AND.SET USELESS
ldx LBUF.C1 x C1->C2 ldx LBUF.C1 x C1->C2
ldy COL.BANK,x ldy COL.BANK,x
@ -156,46 +106,21 @@ LBUF.DrawAtY.AND.SET
inx inx
cpx LBUF.C2 cpx LBUF.C2
beq .7 C1=C2, go setup C2 beq .2 C1=C2, go setup C2
bcs .8 C1+1 > C2, we are done... bcs .8 C1+1 > C2, we are done...
phx .1 ldy COL.BANK,x
ldy COL.BANK,x C1+1,3,5,7.....
sta $C000,y sta $C000,y
ldy COL.OFS,x ldy COL.OFS,x
.1 lda LBUF.DATA,x set all bytes between C1+1 & C2-1 lda LBUF.DATA,x set all bytes between C1+1 & C2-1
sta (ZPBasePtr),y sta (ZPBasePtr),y
iny
inx
inx inx
cpx LBUF.C2 cpx LBUF.C2
bcc .1 bcc .1
plx .2 ldy COL.BANK,x
inx
cpx LBUF.C2
beq .7
ldy COL.BANK,x C1+2,4,6,8....
sta $C000,y
ldy COL.OFS,x
.2 lda LBUF.DATA,x set all bytes between C1+1 & C2-1
sta (ZPBasePtr),y
iny
inx
inx
cpx LBUF.C2
bcc .2
ldx LBUF.C2
.7 ldy COL.BANK,x
sta $C000,y sta $C000,y
ldy COL.OFS,x ldy COL.OFS,x
@ -206,11 +131,23 @@ LBUF.DrawAtY.AND.SET
lda LBUF.DATA,x get DATA bits lda LBUF.DATA,x get DATA bits
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
ora ZPTmpByte ora ZPTmpByte
sta (ZPBasePtr),y update screen sta (ZPBasePtr),y update screen
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
LBUF.DrawAtY.XOR
LBUF.DrawAtY.AND.XOR UELESS
lda #$51 EOR (Indirect),Y
bra LBUF.DrawAtY.XXX
*--------------------------------------
LBUF.DrawAtY.ORA LBUF.DrawAtY.ORA
lda #$11 ORA (Indirect),Y
LBUF.DrawAtY.XXX
sta .10+1
sta .20+1
sta .30+1
ldx LBUF.C1 x C1->C2 ldx LBUF.C1 x C1->C2
ldy COL.BANK,x ldy COL.BANK,x
@ -224,7 +161,7 @@ LBUF.DrawAtY.ORA
lda LBUF.DATA,x get DATA bits lda LBUF.DATA,x get DATA bits
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
ora ZPTmpByte ora ZPTmpByte
ora (ZPBasePtr),y .10 ora (ZPBasePtr),y
sta (ZPBasePtr),y update screen sta (ZPBasePtr),y update screen
inx inx
@ -237,7 +174,7 @@ LBUF.DrawAtY.ORA
ldy COL.OFS,x ldy COL.OFS,x
lda LBUF.DATA,x set all bytes between C1+1 & C2-1 lda LBUF.DATA,x set all bytes between C1+1 & C2-1
ora (ZPBasePtr),y .20 ora (ZPBasePtr),y
sta (ZPBasePtr),y sta (ZPBasePtr),y
inx inx
@ -248,14 +185,14 @@ LBUF.DrawAtY.ORA
sta $C000,y sta $C000,y
ldy COL.OFS,x ldy COL.OFS,x
lda LBUF.MASK,x get MASK bits lda (ZPBasePtr),y Get C2
ora LBUF.C2.MASK and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
and (ZPBasePtr),y
sta ZPTmpByte sta ZPTmpByte
lda LBUF.DATA,x get DATA bits lda LBUF.DATA,x get DATA bits
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
ora ZPTmpByte ora ZPTmpByte
.30 ora (ZPBasePtr),y
sta (ZPBasePtr),y update screen sta (ZPBasePtr),y update screen
.8 rts .8 rts

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* HLINE X1,X2 at Y1 (XOR,SET,ORA) * HLINE X1,X2 at Y1 (XOR,SET,ORA)

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* SETPIXEL * SETPIXEL

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* FILLRECT * FILLRECT

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000

View File

@ -47,7 +47,6 @@ FIO.bTXT .BS 1
FIO.hFILE .BS 1 FIO.hFILE .BS 1
FIO.MemPtr .BS 2 FIO.MemPtr .BS 2
FIO.hMem .BS 1 FIO.hMem .BS 1
FIO.BytesRead .BS 2
.ED .ED
*-------------------------------------- *--------------------------------------
K.LoadTxtFile sec K.LoadTxtFile sec
@ -121,7 +120,8 @@ K.LoadFile clc
sec sec
.9 rts .9 rts
.2 >STYA FIO.BytesRead .2 sty .7+1
sta .8+1
bit FIO.bTXT bit FIO.bTXT
bpl .5 bpl .5
@ -142,7 +142,8 @@ K.LoadFile clc
.5 jsr .99 close file .5 jsr .99 close file
>LDYA FIO.BytesRead .7 ldy #$ff SELFMODIFIED
.8 lda #$ff SELFMODIFIED
ldx FIO.hMem ldx FIO.hMem
clc clc
rts rts

View File

@ -64,8 +64,7 @@ IO.Open.I ldx #5 /DEV/
bne .2 bne .2
lda Nod.Table.hFD-2,x return hFD lda Nod.Table.hFD-2,x return hFD
sta IO.hFD jsr IO.GetPFD
jsr K.GetMemPtr
bra .71 bra .71
@ -78,9 +77,9 @@ IO.Open.I ldx #5 /DEV/
rts no OF found rts no OF found
.7 stx IO.hDev .7 stx IO.hDev
.71 >STYA pFD >STYA pFD
lda (pFD) #S.FD.T .71 lda (pFD) #S.FD.T
tax tax
jmp (.8,x) jmp (.8,x)
@ -206,9 +205,7 @@ IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type
* `lda fd` * `lda fd`
* `>SYSCALL close` * `>SYSCALL close`
*\-------------------------------------- *\--------------------------------------
K.Close sta IO.hFD K.Close jsr IO.GetPFD
jsr K.GetMemPtr
>STYA pFD
IO.Close.I lda (pFD) #S.FD.T IO.Close.I lda (pFD) #S.FD.T
tax tax
@ -320,9 +317,7 @@ IO.CLOSE.NOD ldx #2
* CC: Y,A = bytes read * CC: Y,A = bytes read
* CS: A = EC * CS: A = EC
*\-------------------------------------- *\--------------------------------------
K.Read sta IO.hFD K.Read jsr IO.GetPFD
jsr K.GetMemPtr
>STYA pFD
IO.Read.I lda (pFD) #S.FD.T IO.Read.I lda (pFD) #S.FD.T
tax tax
@ -350,9 +345,7 @@ IO.Read.I lda (pFD) #S.FD.T
* CC: Y,A = bytes written * CC: Y,A = bytes written
* CS: A = EC * CS: A = EC
*\-------------------------------------- *\--------------------------------------
K.Write sta IO.hFD K.Write jsr IO.GetPFD
jsr K.GetMemPtr
>STYA pFD
IO.Write.I lda (pFD) #S.FD.T IO.Write.I lda (pFD) #S.FD.T
tax tax
@ -825,6 +818,11 @@ IO.EOF.FALSE lda #0
* clc * clc
rts rts
*-------------------------------------- *--------------------------------------
IO.GetPFD sta IO.hFD
jsr K.GetMemPtr
>STYA pFD
rts
*--------------------------------------
* X = 0 > REG * X = 0 > REG
* X = 1 > DIR * X = 1 > DIR
* X = 2 > PIPE * X = 2 > PIPE

View File

@ -48,7 +48,7 @@ K.GetMemStat >STYA ZPPtr1
* only 777-555 * only 777-555
*-------------------------------------- *--------------------------------------
K.ChMod jsr PFT.CheckPathYA K.ChMod jsr PFT.CheckPathYA
bcs .99 bcs K.FStat.9
>PULLW K.S.STAT+S.STAT.MODE >PULLW K.S.STAT+S.STAT.MODE
@ -103,7 +103,7 @@ K.ChMod jsr PFT.CheckPathYA
sec sec
.90 rts .90 rts
.99 >RET 2 K.FStat.9 >RET 2 discard statbuf
*-------------------------------------- *--------------------------------------
* # FStat * # FStat
* Return information about a hFILE * Return information about a hFILE
@ -152,8 +152,6 @@ K.FStat jsr PFT.CheckNodeA
* clc * clc
rts rts
K.FStat.9 >RET 2 discard statbuf
*/-------------------------------------- */--------------------------------------
* # Stat * # Stat
* Return information about a file * Return information about a file

View File

@ -108,14 +108,14 @@ K.PutS >STYA ZPPtr2
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
lda (pPs),y lda (pPs),y
jsr K.FPutS jsr K.FPutS
bcc .99 bcc K.PutS.RTS
tay tay
bne .99 0 = BLOCKING bne K.PutS.RTS 0 = BLOCKING
inc pStack pop K.IOBuf
inc pStack
* sec * sec
.99 rts
K.PutS.RET2 >POP 2 pop K.IOBuf
K.PutS.RTS rts
*/-------------------------------------- */--------------------------------------
* # fputs (BLOCKING) * # fputs (BLOCKING)
* Write Str to hFILE * Write Str to hFILE
@ -130,7 +130,7 @@ K.PutS >STYA ZPPtr2
* CC = success * CC = success
*\-------------------------------------- *\--------------------------------------
K.FPutS jsr PFT.CheckNodeA set IO.hFD K.FPutS jsr PFT.CheckNodeA set IO.hFD
bcs .9 bcs K.PutS.RET2
lda (pStack) lda (pStack)
sta ZPPtr2 Get String sta ZPPtr2 Get String
@ -159,15 +159,13 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD
>PUSHW ZPPtr2 >PUSHW ZPPtr2
jsr IO.Write.I jsr IO.Write.I
bcc .9 bcc K.PutS.RET2
tay tay
bpl .9 IO Erorr bpl K.PutS.RET2 IO Erorr
inc 0 = BLOCKING inc 0 = BLOCKING
* sec
rts rts
.9 >RET 2 pop str
*/-------------------------------------- */--------------------------------------
* # PrintF (BLOCKING) * # PrintF (BLOCKING)
* # FPrintF (BLOCKING) * # FPrintF (BLOCKING)
@ -1037,8 +1035,6 @@ K.FClose jsr PFT.CheckNodeA
stz OF.Table.hPath-1,x stz OF.Table.hPath-1,x
jmp K.FreeMem discard filename jmp K.FreeMem discard filename
K.FClose.RTS rts
*/-------------------------------------- */--------------------------------------
* # FRead (BLOCKING) * # FRead (BLOCKING)
* Read bytes from file * Read bytes from file
@ -1059,7 +1055,7 @@ K.FRead jsr PFT.CheckNodeA
jsr IO.Read.I jsr IO.Read.I
bcs K.FWrite.9 bcs K.FWrite.9
rts K.FClose.RTS rts
*/-------------------------------------- */--------------------------------------
* # FWrite (BLOCKING) * # FWrite (BLOCKING)
* Write bytes to file * Write bytes to file
@ -1181,7 +1177,7 @@ K.FSeek jsr PFT.CheckNodeA
.98 lda #E.BADARG .98 lda #E.BADARG
.HS 2C bit abs .HS 2C bit abs
.99 lda #E.FTB .99 lda #E.FTB
sec * sec
K.FSeek.RTS K.FSeek.RTS
rts rts
*/-------------------------------------- */--------------------------------------