mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +00:00
Kernel 0.93+
This commit is contained in:
parent
a81b81a13c
commit
5d9d5ea789
Binary file not shown.
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
Mask7BitsH .DA #%01111111 Useless
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* HLINE X1,X2 at Y1 (XOR,SET,ORA)
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* SETPIXEL
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* FILLRECT
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/--------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user