mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-13 21:29:33 +00:00
Kernel 0.9.1 : Kernel/memory REORG for more IO buffers & room in LC for DHGR.DRV
This commit is contained in:
parent
93ec92c91b
commit
b25be9cee0
@ -26,15 +26,6 @@ And return, if found, the full path to it.
|
|||||||
+ DstStat = S.STAT
|
+ DstStat = S.STAT
|
||||||
+ CS : not found
|
+ CS : not found
|
||||||
|
|
||||||
# Sleep
|
|
||||||
Make current process suspend until next RUN
|
|
||||||
|
|
||||||
## In :
|
|
||||||
+ (none)
|
|
||||||
|
|
||||||
## Out :
|
|
||||||
+ (none)
|
|
||||||
|
|
||||||
# GetDevByID.A
|
# GetDevByID.A
|
||||||
|
|
||||||
## IN:
|
## IN:
|
||||||
@ -55,15 +46,6 @@ Make current process suspend until next RUN
|
|||||||
+ X = DEVID
|
+ X = DEVID
|
||||||
+ Y,A = DEVSLOT
|
+ Y,A = DEVSLOT
|
||||||
|
|
||||||
# GetDevStatus.A
|
|
||||||
|
|
||||||
## IN:
|
|
||||||
+ A = DevID
|
|
||||||
|
|
||||||
## OUT:
|
|
||||||
+ CC = OK, CS = ERROR
|
|
||||||
+ Y,A = Ptr to S.DEVINFO
|
|
||||||
|
|
||||||
# OpenDir.YA
|
# OpenDir.YA
|
||||||
|
|
||||||
## In:
|
## In:
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -181,9 +181,13 @@ CS.RUN jsr CS.RUN.BuildCat
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.BuildCat >LDA.G hDev
|
CS.RUN.BuildCat >LDA.G hDev
|
||||||
>SYSCALL GetDevStatus.A
|
>SYSCALL GetDevByID.A
|
||||||
|
|
||||||
bcs .99
|
bcs .99
|
||||||
|
>STYA pDev
|
||||||
|
ldx #DEVMGR.STATUS
|
||||||
|
jsr pDevJmp
|
||||||
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
ldy #S.DSTAT.SIZE
|
ldy #S.DSTAT.SIZE
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
|
@ -90,7 +90,12 @@ STATUS >LDYA L.DEVSTAT
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OPEN stz CURON
|
OPEN sta A2osX.SCRNDEVS+1 DEV.ID in A
|
||||||
|
|
||||||
|
lda #S.DSTAT.S.OPENED
|
||||||
|
tsb DEVSTAT
|
||||||
|
|
||||||
|
stz CURON
|
||||||
|
|
||||||
stz bEscMode
|
stz bEscMode
|
||||||
stz bEscModeCSI
|
stz bEscModeCSI
|
||||||
@ -98,8 +103,6 @@ OPEN stz CURON
|
|||||||
stz OutPtr
|
stz OutPtr
|
||||||
stz OutCnt
|
stz OutCnt
|
||||||
|
|
||||||
sta A2osX.SCRNDEVS DEV.ID in A
|
|
||||||
|
|
||||||
jsr RESET
|
jsr RESET
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
@ -114,13 +117,13 @@ CONTROL sta SETTEXT
|
|||||||
sta SETALTCHAR
|
sta SETALTCHAR
|
||||||
sta SET80DISP
|
sta SET80DISP
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
sta CLRPAGE2
|
sta SETPAGE2
|
||||||
lda #1
|
lda #2
|
||||||
sta A2osX.ASCREEN
|
sta A2osX.ASCREEN
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CLOSE stz A2osX.SCRNDEVS
|
CLOSE stz A2osX.SCRNDEVS+1
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -128,7 +131,7 @@ READ jsr Char.Out.Get
|
|||||||
bcc .8 IF cs,no char in output buffer...
|
bcc .8 IF cs,no char in output buffer...
|
||||||
|
|
||||||
lda A2osX.ASCREEN
|
lda A2osX.ASCREEN
|
||||||
cmp #1 is CON active?
|
cmp #2 is CON active?
|
||||||
bne .9 no....exit
|
bne .9 no....exit
|
||||||
|
|
||||||
lda A2osX.TIMER16
|
lda A2osX.TIMER16
|
||||||
@ -666,7 +669,7 @@ CUROFF lda CURON
|
|||||||
beq CUREXIT.RTS
|
beq CUREXIT.RTS
|
||||||
|
|
||||||
CURBLNK lda A2osX.ASCREEN
|
CURBLNK lda A2osX.ASCREEN
|
||||||
cmp #1
|
cmp #2
|
||||||
beq CURBLNK1
|
beq CURBLNK1
|
||||||
|
|
||||||
lda CURON
|
lda CURON
|
||||||
@ -852,7 +855,7 @@ DRV.CS.END
|
|||||||
EscCodes >PSTR "MDc"
|
EscCodes >PSTR "MDc"
|
||||||
EscSeqCmds >PSTR "mnrKH"
|
EscSeqCmds >PSTR "mnrKH"
|
||||||
BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||||||
BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
BASEH .HS 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B
|
||||||
CH .BS 1
|
CH .BS 1
|
||||||
CV .BS 1
|
CV .BS 1
|
||||||
INVFLG .BS 1
|
INVFLG .BS 1
|
||||||
|
@ -123,61 +123,54 @@ BITBLT >LDYA CB.CACHE+S.CB.SrcPtr
|
|||||||
* ^
|
* ^
|
||||||
* SCRBitOfsL (0->6)
|
* SCRBitOfsL (0->6)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLT.Get7BMBits ldx BLT.BMBitOfsL
|
BLT.Get7BMBits lda (ZPBMDataPtr)
|
||||||
|
|
||||||
lda
|
ldx BLT.BMBitOfsL
|
||||||
|
beq BLT.Get7BMBits0 done! and no need to advance ZPBMDataPtr
|
||||||
|
lsr Range 0->127
|
||||||
|
dex Range 0->6
|
||||||
|
beq BLT.Get7BMBits1
|
||||||
|
|
||||||
sta ZPBMShiftPtr+1
|
ldy Shift7.LO-1,x X = 1->6
|
||||||
|
sty ZPBMShiftPtr+1
|
||||||
|
|
||||||
lda (ZPBMDataPtr)
|
ldy Shift7.HI-1,x X = 1->6
|
||||||
and ShiftML,x Get only needed bits
|
sty ZPBMShiftPtr+1
|
||||||
|
|
||||||
|
and Mask7BitsL,x Get only needed bits
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda (ZPBMShiftPtr),y
|
lda (ZPBMShiftPtr),y
|
||||||
sta GBYTE
|
pha
|
||||||
|
|
||||||
|
inc ZPBMDataPtr Next BM data byte
|
||||||
inc ZPBMDataPtr
|
|
||||||
bne .1
|
bne .1
|
||||||
inc ZPBMDataPtr+1
|
inc ZPBMDataPtr+1
|
||||||
|
|
||||||
.1 lda (ZPBMDataPtr)
|
.1 lda (ZPBMDataPtr)
|
||||||
and ShiftMH,x
|
and Mask7BitsH,x
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda (ZPBMShiftPtr),y
|
pla
|
||||||
ora GBYTE we have the 7 0xxxxxxx DATA bits
|
|
||||||
|
|
||||||
|
|
||||||
ldx
|
|
||||||
tay
|
|
||||||
lda Shift.LO
|
|
||||||
|
|
||||||
|
|
||||||
|
ora (ZPBMShiftPtr),y
|
||||||
|
|
||||||
|
dec BLT.BMBitOfsL X = 1->6, ADD 7 MOD 8.....
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
BLT.Get7BMBits0 and #%01111111 Get only 7 needed bits
|
||||||
|
ldx #7
|
||||||
|
stx BLT.BMBitOfsL Was 0, add 7 bits
|
||||||
|
rts
|
||||||
|
|
||||||
|
BLT.Get7BMBits1 stz BLT.BMBitOfsL Was 1, add 7 bits, MOD 8=0
|
||||||
|
|
||||||
|
inc ZPBMDataPtr go to next byte
|
||||||
|
bne .1
|
||||||
|
inc ZPBMDataPtr+1
|
||||||
|
|
||||||
|
.1 rts LSR did already 0xxxxxxx
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ShiftML .DA #01111111
|
|
||||||
.DA #11111110
|
|
||||||
.DA #11111100
|
|
||||||
.DA #11111000
|
|
||||||
.DA #11110000
|
|
||||||
.DA #11100000
|
|
||||||
.DA #11000000
|
|
||||||
.DA #10000000
|
|
||||||
|
|
||||||
ShiftMH .DA #00000000
|
|
||||||
.DA #00000000
|
|
||||||
.DA #00000001
|
|
||||||
.DA #00000011
|
|
||||||
.DA #00000111
|
|
||||||
.DA #00001111
|
|
||||||
.DA #00011111
|
|
||||||
.DA #00111111
|
|
||||||
|
|
||||||
*--------------------------------------
|
|
||||||
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
||||||
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
|
@ -147,6 +147,12 @@ J.LBUF.DrawAtY .DA LBUF.DrawAtY.XOR
|
|||||||
.DA LBUF.DrawAtY.SET
|
.DA LBUF.DrawAtY.SET
|
||||||
.DA LBUF.DrawAtY.ORA
|
.DA LBUF.DrawAtY.ORA
|
||||||
.DA LBUF.DrawAtY.AND
|
.DA LBUF.DrawAtY.AND
|
||||||
|
L.SHIFT.R2 .DA SHIFT.R2
|
||||||
|
.DA SHIFT.R3
|
||||||
|
.DA SHIFT.R4
|
||||||
|
.DA SHIFT.R5
|
||||||
|
.DA SHIFT.R6
|
||||||
|
.DA SHIFT.R7
|
||||||
L.DSTAT .DA DSTAT
|
L.DSTAT .DA DSTAT
|
||||||
L.Color.Pixels .DA Color.Pixels
|
L.Color.Pixels .DA Color.Pixels
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
@ -156,6 +162,23 @@ STATUS >LDYA L.DSTAT
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A
|
OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 lda L.SHIFT.R2,x Get relocated LO BYTE
|
||||||
|
sta Shift7.LO,y
|
||||||
|
|
||||||
|
inx
|
||||||
|
|
||||||
|
lda L.SHIFT.R2,x Get relocated HI BYTE
|
||||||
|
sta Shift7.HI,y
|
||||||
|
|
||||||
|
inx
|
||||||
|
iny
|
||||||
|
cpy #6 6 LO/HI bytes to set in tables
|
||||||
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL ldy #0
|
CONTROL ldy #0
|
||||||
|
|
||||||
@ -344,6 +367,9 @@ CONTROL.LCM
|
|||||||
.DA #SETDHIRES
|
.DA #SETDHIRES
|
||||||
.DA #$ff
|
.DA #$ff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Shift7.LO .BS 6
|
||||||
|
Shift7.HI .BS 6
|
||||||
|
*--------------------------------------
|
||||||
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||||
.DA S.CB.Y1+1 GETPIXEL
|
.DA S.CB.Y1+1 GETPIXEL
|
||||||
.DA S.CB.X2+1 HLINE
|
.DA S.CB.X2+1 HLINE
|
||||||
|
@ -5,21 +5,20 @@ INC 1
|
|||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mono.NMasks .DA #%01111110
|
Mask7BitsL .DA #01111111 Useless
|
||||||
.DA #%01111101
|
.DA #01111110
|
||||||
.DA #%01111011
|
.DA #01111100
|
||||||
.DA #%01110111
|
.DA #01111000
|
||||||
.DA #%01101111
|
.DA #01110000
|
||||||
.DA #%01011111
|
.DA #01100000
|
||||||
.DA #%00111111
|
.DA #01000000
|
||||||
*--------------------------------------
|
Mask7BitsH .DA #00000000 Useless
|
||||||
Mono.Masks .DA #%00000001
|
.DA #00000001
|
||||||
.DA #%00000010
|
.DA #00000011
|
||||||
.DA #%00000100
|
.DA #00000111
|
||||||
.DA #%00001000
|
.DA #00001111
|
||||||
.DA #%00010000
|
.DA #00011111
|
||||||
.DA #%00100000
|
.DA #00111111
|
||||||
.DA #%01000000
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C1.MASK .DA #%10000000 mod 0.....
|
C1.MASK .DA #%10000000 mod 0.....
|
||||||
C2.DATA .DA #%10000001 ->C1.DATA
|
C2.DATA .DA #%10000001 ->C1.DATA
|
||||||
@ -37,6 +36,22 @@ C2.MASK .DA #%11111110
|
|||||||
.DA #%11000000
|
.DA #%11000000
|
||||||
.DA #%10000000
|
.DA #%10000000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Mono.NMasks .DA #%01111110
|
||||||
|
.DA #%01111101
|
||||||
|
.DA #%01111011
|
||||||
|
.DA #%01110111
|
||||||
|
.DA #%01101111
|
||||||
|
.DA #%01011111
|
||||||
|
.DA #%00111111
|
||||||
|
*--------------------------------------
|
||||||
|
Mono.Masks .DA #%00000001
|
||||||
|
.DA #%00000010
|
||||||
|
.DA #%00000100
|
||||||
|
.DA #%00001000
|
||||||
|
.DA #%00010000
|
||||||
|
.DA #%00100000
|
||||||
|
.DA #%01000000
|
||||||
|
*--------------------------------------
|
||||||
* bits to "and" to reset color of pixel (0 means nothing to do)
|
* bits to "and" to reset color of pixel (0 means nothing to do)
|
||||||
* 4 bytes * 7 mods
|
* 4 bytes * 7 mods
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -156,6 +171,13 @@ MOD7.256 .HS 040506
|
|||||||
.HS 00010203040506
|
.HS 00010203040506
|
||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SHIFT.R2 .BS 128
|
||||||
|
SHIFT.R3 .BS 128
|
||||||
|
SHIFT.R4 .BS 128
|
||||||
|
SHIFT.R5 .BS 128
|
||||||
|
SHIFT.R6 .BS 128
|
||||||
|
SHIFT.R7 .BS 128
|
||||||
|
*--------------------------------------
|
||||||
BASEL .HS 00.00.00.00.00.00.00.00
|
BASEL .HS 00.00.00.00.00.00.00.00
|
||||||
.HS 80.80.80.80.80.80.80.80
|
.HS 80.80.80.80.80.80.80.80
|
||||||
.HS 00.00.00.00.00.00.00.00
|
.HS 00.00.00.00.00.00.00.00
|
||||||
|
@ -116,7 +116,7 @@ SYS.Rename .EQ $42
|
|||||||
|
|
||||||
SYS.GetDevByID.A .EQ $48
|
SYS.GetDevByID.A .EQ $48
|
||||||
SYS.GetDevByName.YA .EQ $4A
|
SYS.GetDevByName.YA .EQ $4A
|
||||||
SYS.GetDevStatus.A .EQ $4C
|
* .EQ $4C
|
||||||
* .EQ $4E
|
* .EQ $4E
|
||||||
|
|
||||||
* .EQ $50
|
* .EQ $50
|
||||||
|
@ -93,28 +93,27 @@ K.MLI.PATH .EQ $03B0 64+1 -> $03F0
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*** $3F0-$3FF IRQ Handler.... ***
|
*** $3F0-$3FF IRQ Handler.... ***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Main/Aux $400 -> $7FF : Console Screen
|
* Main/Aux $400 -> $7FF : TXT PAGE1 System Screen
|
||||||
* Main/Aux $800 -> $BFF : System Screen
|
* Main/Aux $800 -> $BFF : TXT PAGE2 Console Screen
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Table.PID .EQ $0C00 K.PS.MAX
|
* free $0C00->$17FF = $C00 (3072) Aux
|
||||||
PS.Table.hMem .EQ $0C20 K.PS.MAX
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Evt.Table .EQ $0C40 K.EVT.MAX*S.EVT.SIZE=8*8=64b
|
*** Z80 Reserved $1000-10FF***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Flt.Table .EQ $0C80 K.FLT.MAX*S.FLT.SIZE=4*32=128b
|
|
||||||
*--------------------------------------
|
|
||||||
K.IOBuf256 .EQ $0D00 Main
|
|
||||||
K.Buf256 .EQ $0E00 Main
|
|
||||||
*--------------------------------------
|
|
||||||
K.STACKTOP .EQ $0F20 down to $0f00
|
|
||||||
*--------------------------------------
|
|
||||||
*** Z80 Reserved $0F00-10FF***
|
|
||||||
*--------------------------------------
|
|
||||||
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F20
|
|
||||||
Z80JMP .EQ $1000 (00000h) Up To $10FF
|
Z80JMP .EQ $1000 (00000h) Up To $10FF
|
||||||
|
Z80STACK .EQ $10FF (000FFh) Down to $1000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* free $1100->$15FF = $500 Main
|
PS.Table.PID .EQ $1100 K.PS.MAX
|
||||||
* free $0C00->$17FF = $C00 Aux
|
PS.Table.hMem .EQ $1120 K.PS.MAX
|
||||||
|
*--------------------------------------
|
||||||
|
Evt.Table .EQ $1140 K.EVT.MAX*S.EVT.SIZE=8*8=64b
|
||||||
|
*--------------------------------------
|
||||||
|
Flt.Table .EQ $1180 K.FLT.MAX*S.FLT.SIZE=4*32=128b
|
||||||
|
*--------------------------------------
|
||||||
|
K.STACKTOP .EQ $12FF down to $1200
|
||||||
|
*--------------------------------------
|
||||||
|
K.Buf256 .EQ $1300 Main
|
||||||
|
K.IOBuf512 .EQ $1400 Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Table .EQ $1600 K.DEV.MAX*S.DEV=32*16=512b
|
Dev.Table .EQ $1600 K.DEV.MAX*S.DEV=32*16=512b
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -4,8 +4,6 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.BASL0 .EQ $800
|
|
||||||
*--------------------------------------
|
|
||||||
CORE.Run lda CORE.PSCount
|
CORE.Run lda CORE.PSCount
|
||||||
sta CORE.Counter
|
sta CORE.Counter
|
||||||
bne .1 SHOULD NEVER HAPPEN!!!
|
bne .1 SHOULD NEVER HAPPEN!!!
|
||||||
@ -162,9 +160,9 @@ CORE.GetEvents lda #Evt.Table
|
|||||||
sta CORE.VBLState save new
|
sta CORE.VBLState save new
|
||||||
bpl .8 Up2down transition,no tick
|
bpl .8 Up2down transition,no tick
|
||||||
|
|
||||||
lda SYS.BASL0+37
|
lda SYS.BASL0+38
|
||||||
eor #$80
|
eor #$80
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
.2 inc A2osX.TIMER16
|
.2 inc A2osX.TIMER16
|
||||||
bne .3
|
bne .3
|
||||||
@ -412,7 +410,7 @@ CORE.DestroyEvent
|
|||||||
CORE.PSSelect0 >LDYAI CORE.S.PS0 Select PS0
|
CORE.PSSelect0 >LDYAI CORE.S.PS0 Select PS0
|
||||||
>STYA pPs
|
>STYA pPs
|
||||||
|
|
||||||
>LDYA CORE.S.PS0+S.PS.ZP+4
|
>LDYAI K.STACKTOP
|
||||||
>STYA pStack
|
>STYA pStack
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -472,7 +470,7 @@ CORE.Tick10t .BS 1
|
|||||||
CORE.Counter .BS 1
|
CORE.Counter .BS 1
|
||||||
CORE.PSCount .DA #0
|
CORE.PSCount .DA #0
|
||||||
CORE.LastPSID .DA #0
|
CORE.LastPSID .DA #0
|
||||||
CORE.S.PS0 .BS S.PS
|
CORE.S.PS0 .BS S.PS.PC+2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.CORE
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.CORE
|
||||||
|
@ -244,6 +244,8 @@ A2osX.PrtDrv.GetDev
|
|||||||
A2osX.PrtDrv.Cnt
|
A2osX.PrtDrv.Cnt
|
||||||
.HS 03030301030101010404
|
.HS 03030301030101010404
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* NULL DEVICE
|
||||||
|
*--------------------------------------
|
||||||
DevMgr.NUL.Code .DA .1 STATUS
|
DevMgr.NUL.Code .DA .1 STATUS
|
||||||
.DA A2osX.BADCALL READBLOCK
|
.DA A2osX.BADCALL READBLOCK
|
||||||
.DA A2osX.BADCALL WRITEBLOCK
|
.DA A2osX.BADCALL WRITEBLOCK
|
||||||
@ -268,6 +270,8 @@ DevMgr.NUL.Code .DA .1 STATUS
|
|||||||
.DA #0
|
.DA #0
|
||||||
.DA $0900
|
.DA $0900
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* SYS DEVICE
|
||||||
|
*--------------------------------------
|
||||||
DevMgr.SYS.Code .DA .1 STATUS
|
DevMgr.SYS.Code .DA .1 STATUS
|
||||||
.DA A2osX.BADCALL READBLOCK
|
.DA A2osX.BADCALL READBLOCK
|
||||||
.DA A2osX.BADCALL WRITEBLOCK
|
.DA A2osX.BADCALL WRITEBLOCK
|
||||||
@ -293,40 +297,24 @@ DevMgr.SYS.Code .DA .1 STATUS
|
|||||||
DevMgr.SYS.Open stz DevMgr.SYS.CH
|
DevMgr.SYS.Open stz DevMgr.SYS.CH
|
||||||
stz DevMgr.SYS.CV
|
stz DevMgr.SYS.CV
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
.1 lda DevMgr.SYS.TITLE,y
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
jsr DevMgr.SYS.SetCharAtYX
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.2 lda #$20
|
|
||||||
jsr DevMgr.SYS.SetCharAtYX
|
|
||||||
iny
|
|
||||||
cpy #80
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
jsr DevMgr.SYS.Home
|
jsr DevMgr.SYS.Home
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta A2osX.SCRNDEVS+1 fall in Control
|
sta A2osX.SCRNDEVS fall in Control
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS.Control
|
DevMgr.SYS.Control
|
||||||
sta SETTEXT
|
sta SETTEXT
|
||||||
sta SETALTCHAR
|
sta SETALTCHAR
|
||||||
sta SET80DISP
|
sta SET80DISP
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
sta SETPAGE2
|
sta CLRPAGE2
|
||||||
lda #2
|
lda #1
|
||||||
sta A2osX.ASCREEN
|
sta A2osX.ASCREEN
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS.Read lda A2osX.ASCREEN
|
DevMgr.SYS.Read lda A2osX.ASCREEN
|
||||||
cmp #2 is SYS active?
|
cmp #1 is SYS active?
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda OPENAPPLE
|
lda OPENAPPLE
|
||||||
@ -421,20 +409,24 @@ DevMgr.SYS.Scroll
|
|||||||
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
sta SETWRITEAUX
|
|
||||||
sta SETREADAUX
|
* sta SET80STORE
|
||||||
|
|
||||||
|
* sta SETPAGE2
|
||||||
|
|
||||||
ldy #39
|
ldy #39
|
||||||
|
|
||||||
.2 lda (ZPDRV+2),y
|
.2 lda (ZPDRV+2),y
|
||||||
sta (ZPDRV),y
|
sta (ZPDRV),y
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
* sta CLRPAGE2
|
||||||
sta CLRREADAUX
|
* sta CLR80STORE
|
||||||
plp
|
plp
|
||||||
|
|
||||||
ldy #39
|
ldy #39
|
||||||
|
|
||||||
.3 lda (ZPDRV+2),y
|
.3 lda (ZPDRV+2),y
|
||||||
sta (ZPDRV),y
|
sta (ZPDRV),y
|
||||||
dey
|
dey
|
||||||
@ -449,19 +441,24 @@ DevMgr.SYS.ClrLineAtX
|
|||||||
lda DevMgr.SYS.BASEH,x
|
lda DevMgr.SYS.BASEH,x
|
||||||
sta ZPDRV+1
|
sta ZPDRV+1
|
||||||
|
|
||||||
php
|
|
||||||
sei
|
|
||||||
|
|
||||||
lda #$A0
|
lda #$A0
|
||||||
ldy #39
|
ldy #39
|
||||||
|
|
||||||
.1 sta SETWRITEAUX
|
php
|
||||||
|
sei
|
||||||
|
|
||||||
|
* sta SET80STORE
|
||||||
|
|
||||||
|
.1
|
||||||
|
* sta SETPAGE2
|
||||||
sta (ZPDRV),y
|
sta (ZPDRV),y
|
||||||
sta CLRWRITEAUX
|
* sta CLRPAGE2
|
||||||
sta (ZPDRV),y
|
sta (ZPDRV),y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
* sta CLR80STORE
|
||||||
|
|
||||||
plp
|
plp
|
||||||
|
|
||||||
rts
|
rts
|
||||||
@ -494,31 +491,39 @@ DevMgr.SYS.SetCharAtYX
|
|||||||
tya
|
tya
|
||||||
lsr
|
lsr
|
||||||
tay
|
tay
|
||||||
bcs .2
|
|
||||||
pla
|
pla
|
||||||
|
|
||||||
|
bcs .2
|
||||||
|
|
||||||
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
sta SETWRITEAUX
|
sta SET80STORE
|
||||||
|
|
||||||
|
* sta SETPAGE2
|
||||||
sta (ZPDRV),y
|
sta (ZPDRV),y
|
||||||
sta CLRWRITEAUX
|
* sta CLRPAGE2
|
||||||
|
|
||||||
|
sta CLR80STORE
|
||||||
|
|
||||||
plp
|
plp
|
||||||
ply
|
ply
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 pla
|
.2 sta (ZPDRV),y
|
||||||
sta (ZPDRV),y
|
|
||||||
ply
|
ply
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS.CH .BS 1
|
DevMgr.SYS.CH .BS 1
|
||||||
DevMgr.SYS.CV .BS 1
|
DevMgr.SYS.CV .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS.TITLE >CSTR "A2osX System Screen"
|
|
||||||
DevMgr.SYS.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
DevMgr.SYS.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||||||
DevMgr.SYS.BASEH .HS 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B
|
DevMgr.SYS.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
DevMgr.FreeMem .EQ *
|
DevMgr.FreeMem .EQ *
|
||||||
|
.LIST OFF
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.D01
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
@ -77,20 +77,6 @@ K.GetDevByName.YA
|
|||||||
|
|
||||||
K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
|
K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
|
||||||
* # GetDevStatus.A
|
|
||||||
* ## IN:
|
|
||||||
* A = DevID
|
|
||||||
* ## OUT:
|
|
||||||
* CC = OK, CS = ERROR
|
|
||||||
* Y,A = Ptr to S.DEVINFO
|
|
||||||
*\--------------------------------------
|
|
||||||
K.GetDevStatus.A
|
|
||||||
jsr K.GetDevByID.A
|
|
||||||
bcs K.GetDevDNF
|
|
||||||
>STYA ZPPtr1
|
|
||||||
ldx #DEVMGR.STATUS
|
|
||||||
jmp (ZPPtr1)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||||
|
@ -11,6 +11,8 @@ ZPPtr2 .EQ ZPKERNEL+2
|
|||||||
ZPPtr3 .EQ ZPKERNEL+4
|
ZPPtr3 .EQ ZPKERNEL+4
|
||||||
ZPPtr4 .EQ ZPKERNEL+6
|
ZPPtr4 .EQ ZPKERNEL+6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SYS.BASL0 .EQ $400
|
||||||
|
*--------------------------------------
|
||||||
Kernel.Init sei
|
Kernel.Init sei
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
txs
|
txs
|
||||||
@ -400,7 +402,7 @@ KConfigLoad >LDAXI MSG.KCREAD
|
|||||||
jsr PrintFAX
|
jsr PrintFAX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Z80Code.Start .HS 31FFFF START: LD SP,0FFFFH Init Stack
|
Z80Code.Start .HS 31FF00 START: LD SP,000FFH Init Stack
|
||||||
.HS 3EFF LD A,0FFH Set Flag
|
.HS 3EFF LD A,0FFH Set Flag
|
||||||
.HS 320D00 LD (FLAG),A
|
.HS 320D00 LD (FLAG),A
|
||||||
.HS 3200E1 LD (0E100H),A Back to 6502
|
.HS 3200E1 LD (0E100H),A Back to 6502
|
||||||
@ -435,18 +437,72 @@ PS0Init ldx #S.DEV*2 NUL,SYS
|
|||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #2
|
|
||||||
sta DevMgr.Count
|
ldx #0
|
||||||
|
|
||||||
|
sta SET80STORE
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.2 lda DevMgr.SYS.TITLE,y
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
cmp #$40
|
||||||
|
bcc .10
|
||||||
|
cmp #$5F
|
||||||
|
bcs .10
|
||||||
|
and #$3F
|
||||||
|
|
||||||
|
.10 php
|
||||||
|
sei
|
||||||
|
sta SETPAGE2
|
||||||
|
sta SYS.BASL0,x
|
||||||
|
sta CLRPAGE2
|
||||||
|
plp
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda DevMgr.SYS.TITLE,y
|
||||||
|
beq .5
|
||||||
|
|
||||||
|
cmp #$40
|
||||||
|
bcc .11
|
||||||
|
cmp #$5F
|
||||||
|
bcs .11
|
||||||
|
and #$3F
|
||||||
|
|
||||||
|
.11 sta SYS.BASL0,x
|
||||||
|
|
||||||
|
iny
|
||||||
|
inx
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.3 lda #$20
|
||||||
|
|
||||||
|
.4 php
|
||||||
|
sei
|
||||||
|
sta SETPAGE2
|
||||||
|
sta SYS.BASL0,x
|
||||||
|
sta CLRPAGE2
|
||||||
|
plp
|
||||||
|
|
||||||
|
.5 lda #$20
|
||||||
|
sta SYS.BASL0,x
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx #40
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
sta CLR80STORE
|
||||||
|
|
||||||
>LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
>LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
||||||
>STYA pPs
|
>STYA pPs
|
||||||
|
|
||||||
>LDYAI K.STACKTOP
|
>LDYAI K.STACKTOP
|
||||||
>STYA pStack
|
>STYA pStack
|
||||||
>STYA CORE.S.PS0+S.PS.ZP+4 init Kernel Soft Stack
|
|
||||||
|
|
||||||
>LDYAI DEV.SYS
|
>LDYAI DEV.SYS
|
||||||
>SYSCALL MkNod.YA
|
>SYSCALL MkNod.YA Will open SYS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
@ -462,6 +518,8 @@ PS0Init ldx #S.DEV*2 NUL,SYS
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.TITLE >CSTR "A2osX System Screen"
|
||||||
|
*--------------------------------------
|
||||||
DevMgr.NUL cld
|
DevMgr.NUL cld
|
||||||
jmp (DevMgr.NUL.Code,x)
|
jmp (DevMgr.NUL.Code,x)
|
||||||
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED
|
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED
|
||||||
@ -502,7 +560,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
lda #'v'
|
lda #'v'
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
>LDYAI K.IrqH.VBL
|
>LDYAI K.IrqH.VBL
|
||||||
>STYA K.IrqH+1
|
>STYA K.IrqH+1
|
||||||
@ -516,7 +574,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
lda #'c'
|
lda #'c'
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
>LDYAI K.IrqH.TClock
|
>LDYAI K.IrqH.TClock
|
||||||
>STYA K.IrqH+1
|
>STYA K.IrqH+1
|
||||||
@ -530,7 +588,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
.8 jsr IrqMgrInit.HZ2Tick
|
.8 jsr IrqMgrInit.HZ2Tick
|
||||||
|
|
||||||
lda #'p'
|
lda #'p'
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.POLL
|
>LDYAI MSG.IRQ.POLL
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
@ -71,9 +71,9 @@ K.IrqH.TCLOCK ldy IRQ.VBL.n0
|
|||||||
|
|
||||||
inc CORE.IRQTick
|
inc CORE.IRQTick
|
||||||
|
|
||||||
lda SYS.BASL0+37
|
lda SYS.BASL0+38
|
||||||
eor #$80
|
eor #$80
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -92,9 +92,9 @@ K.IrqH.VBL jsr IRQ.VBL.MSM SERVEMOUSE
|
|||||||
|
|
||||||
inc CORE.IRQTick
|
inc CORE.IRQTick
|
||||||
|
|
||||||
lda SYS.BASL0+37
|
lda SYS.BASL0+38
|
||||||
eor #$80
|
eor #$80
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -50,7 +50,7 @@ K.SYSCALL.JMP .DA 0 $00
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA K.GetDevByID.A
|
.DA K.GetDevByID.A
|
||||||
.DA K.GetDevByName.YA
|
.DA K.GetDevByName.YA
|
||||||
.DA K.GetDevStatus.A
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
|
|
||||||
.DA 0 $50
|
.DA 0 $50
|
||||||
|
Loading…
Reference in New Issue
Block a user