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
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
*--------------------------------------
Mask7BitsH .DA #%01111111 Useless

View File

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

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
*--------------------------------------
LBUF.SetBounds1YA
@ -87,58 +86,9 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
bcc .5
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.AND.SET
LBUF.DrawAtY.AND.SET USELESS
ldx LBUF.C1 x C1->C2
ldy COL.BANK,x
@ -151,51 +101,26 @@ LBUF.DrawAtY.AND.SET
lda LBUF.DATA,x get DATA bits
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
ora ZPTmpByte ora with screen bits
ora ZPTmpByte ora with screen bits
sta (ZPBasePtr),y update screen
inx
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...
phx
ldy COL.BANK,x C1+1,3,5,7.....
.1 ldy COL.BANK,x
sta $C000,y
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
iny
inx
inx
cpx LBUF.C2
bcc .1
plx
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
.2 ldy COL.BANK,x
sta $C000,y
ldy COL.OFS,x
@ -206,11 +131,23 @@ LBUF.DrawAtY.AND.SET
lda LBUF.DATA,x get DATA bits
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
ora ZPTmpByte
sta (ZPBasePtr),y update screen
.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
ldy COL.BANK,x
@ -224,7 +161,7 @@ LBUF.DrawAtY.ORA
lda LBUF.DATA,x get DATA bits
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
ora ZPTmpByte
ora (ZPBasePtr),y
.10 ora (ZPBasePtr),y
sta (ZPBasePtr),y update screen
inx
@ -237,7 +174,7 @@ LBUF.DrawAtY.ORA
ldy COL.OFS,x
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
ora (ZPBasePtr),y
.20 ora (ZPBasePtr),y
sta (ZPBasePtr),y
inx
@ -248,16 +185,16 @@ LBUF.DrawAtY.ORA
sta $C000,y
ldy COL.OFS,x
lda LBUF.MASK,x get MASK bits
ora LBUF.C2.MASK
and (ZPBasePtr),y
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
sta (ZPBasePtr),y update screen
.30 ora (ZPBasePtr),y
sta (ZPBasePtr),y update screen
.8 rts
*--------------------------------------
LBUF.DrawAtY.AND.ORA

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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