mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-04 01:30:25 +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
|
||||
+ CS : not found
|
||||
|
||||
# Sleep
|
||||
Make current process suspend until next RUN
|
||||
|
||||
## In :
|
||||
+ (none)
|
||||
|
||||
## Out :
|
||||
+ (none)
|
||||
|
||||
# GetDevByID.A
|
||||
|
||||
## IN:
|
||||
@ -55,15 +46,6 @@ Make current process suspend until next RUN
|
||||
+ X = DEVID
|
||||
+ Y,A = DEVSLOT
|
||||
|
||||
# GetDevStatus.A
|
||||
|
||||
## IN:
|
||||
+ A = DevID
|
||||
|
||||
## OUT:
|
||||
+ CC = OK, CS = ERROR
|
||||
+ Y,A = Ptr to S.DEVINFO
|
||||
|
||||
# OpenDir.YA
|
||||
|
||||
## In:
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -181,9 +181,13 @@ CS.RUN jsr CS.RUN.BuildCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.BuildCat >LDA.G hDev
|
||||
>SYSCALL GetDevStatus.A
|
||||
|
||||
>SYSCALL GetDevByID.A
|
||||
bcs .99
|
||||
>STYA pDev
|
||||
ldx #DEVMGR.STATUS
|
||||
jsr pDevJmp
|
||||
bcs .99
|
||||
|
||||
>STYA ZPPtr1
|
||||
ldy #S.DSTAT.SIZE
|
||||
lda (ZPPtr1),y
|
||||
|
@ -90,7 +90,12 @@ STATUS >LDYA L.DEVSTAT
|
||||
clc
|
||||
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 bEscModeCSI
|
||||
@ -98,8 +103,6 @@ OPEN stz CURON
|
||||
stz OutPtr
|
||||
stz OutCnt
|
||||
|
||||
sta A2osX.SCRNDEVS DEV.ID in A
|
||||
|
||||
jsr RESET
|
||||
|
||||
ldy #0
|
||||
@ -114,13 +117,13 @@ CONTROL sta SETTEXT
|
||||
sta SETALTCHAR
|
||||
sta SET80DISP
|
||||
sta CLR80STORE
|
||||
sta CLRPAGE2
|
||||
lda #1
|
||||
sta SETPAGE2
|
||||
lda #2
|
||||
sta A2osX.ASCREEN
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLOSE stz A2osX.SCRNDEVS
|
||||
CLOSE stz A2osX.SCRNDEVS+1
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -128,7 +131,7 @@ READ jsr Char.Out.Get
|
||||
bcc .8 IF cs,no char in output buffer...
|
||||
|
||||
lda A2osX.ASCREEN
|
||||
cmp #1 is CON active?
|
||||
cmp #2 is CON active?
|
||||
bne .9 no....exit
|
||||
|
||||
lda A2osX.TIMER16
|
||||
@ -666,7 +669,7 @@ CUROFF lda CURON
|
||||
beq CUREXIT.RTS
|
||||
|
||||
CURBLNK lda A2osX.ASCREEN
|
||||
cmp #1
|
||||
cmp #2
|
||||
beq CURBLNK1
|
||||
|
||||
lda CURON
|
||||
@ -852,7 +855,7 @@ DRV.CS.END
|
||||
EscCodes >PSTR "MDc"
|
||||
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
|
||||
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
|
||||
CV .BS 1
|
||||
INVFLG .BS 1
|
||||
|
@ -123,61 +123,54 @@ BITBLT >LDYA CB.CACHE+S.CB.SrcPtr
|
||||
* ^
|
||||
* 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)
|
||||
and ShiftML,x Get only needed bits
|
||||
ldy Shift7.HI-1,x X = 1->6
|
||||
sty ZPBMShiftPtr+1
|
||||
|
||||
and Mask7BitsL,x Get only needed bits
|
||||
tay
|
||||
|
||||
lda (ZPBMShiftPtr),y
|
||||
sta GBYTE
|
||||
pha
|
||||
|
||||
|
||||
inc ZPBMDataPtr
|
||||
inc ZPBMDataPtr Next BM data byte
|
||||
bne .1
|
||||
inc ZPBMDataPtr+1
|
||||
|
||||
.1 lda (ZPBMDataPtr)
|
||||
and ShiftMH,x
|
||||
and Mask7BitsH,x
|
||||
tay
|
||||
|
||||
lda (ZPBMShiftPtr),y
|
||||
ora GBYTE we have the 7 0xxxxxxx DATA bits
|
||||
|
||||
|
||||
ldx
|
||||
tay
|
||||
lda Shift.LO
|
||||
|
||||
pla
|
||||
|
||||
ora (ZPBMShiftPtr),y
|
||||
|
||||
dec BLT.BMBitOfsL X = 1->6, ADD 7 MOD 8.....
|
||||
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
|
||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
||||
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.ORA
|
||||
.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.Color.Pixels .DA Color.Pixels
|
||||
.DA 0 end or relocation
|
||||
@ -156,6 +162,23 @@ STATUS >LDYA L.DSTAT
|
||||
rts
|
||||
*--------------------------------------
|
||||
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
|
||||
|
||||
@ -344,6 +367,9 @@ CONTROL.LCM
|
||||
.DA #SETDHIRES
|
||||
.DA #$ff
|
||||
*--------------------------------------
|
||||
Shift7.LO .BS 6
|
||||
Shift7.HI .BS 6
|
||||
*--------------------------------------
|
||||
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||
.DA S.CB.Y1+1 GETPIXEL
|
||||
.DA S.CB.X2+1 HLINE
|
||||
|
@ -5,21 +5,20 @@ INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
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
|
||||
Mask7BitsL .DA #01111111 Useless
|
||||
.DA #01111110
|
||||
.DA #01111100
|
||||
.DA #01111000
|
||||
.DA #01110000
|
||||
.DA #01100000
|
||||
.DA #01000000
|
||||
Mask7BitsH .DA #00000000 Useless
|
||||
.DA #00000001
|
||||
.DA #00000011
|
||||
.DA #00000111
|
||||
.DA #00001111
|
||||
.DA #00011111
|
||||
.DA #00111111
|
||||
*--------------------------------------
|
||||
C1.MASK .DA #%10000000 mod 0.....
|
||||
C2.DATA .DA #%10000001 ->C1.DATA
|
||||
@ -37,6 +36,22 @@ C2.MASK .DA #%11111110
|
||||
.DA #%11000000
|
||||
.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)
|
||||
* 4 bytes * 7 mods
|
||||
*--------------------------------------
|
||||
@ -156,6 +171,13 @@ MOD7.256 .HS 040506
|
||||
.HS 00010203040506
|
||||
.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
|
||||
.HS 80.80.80.80.80.80.80.80
|
||||
.HS 00.00.00.00.00.00.00.00
|
||||
|
@ -116,7 +116,7 @@ SYS.Rename .EQ $42
|
||||
|
||||
SYS.GetDevByID.A .EQ $48
|
||||
SYS.GetDevByName.YA .EQ $4A
|
||||
SYS.GetDevStatus.A .EQ $4C
|
||||
* .EQ $4C
|
||||
* .EQ $4E
|
||||
|
||||
* .EQ $50
|
||||
|
@ -93,28 +93,27 @@ K.MLI.PATH .EQ $03B0 64+1 -> $03F0
|
||||
*--------------------------------------
|
||||
*** $3F0-$3FF IRQ Handler.... ***
|
||||
*--------------------------------------
|
||||
* Main/Aux $400 -> $7FF : Console Screen
|
||||
* Main/Aux $800 -> $BFF : System Screen
|
||||
* Main/Aux $400 -> $7FF : TXT PAGE1 System Screen
|
||||
* Main/Aux $800 -> $BFF : TXT PAGE2 Console Screen
|
||||
*--------------------------------------
|
||||
PS.Table.PID .EQ $0C00 K.PS.MAX
|
||||
PS.Table.hMem .EQ $0C20 K.PS.MAX
|
||||
* free $0C00->$17FF = $C00 (3072) Aux
|
||||
*--------------------------------------
|
||||
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
|
||||
Z80STACK .EQ $10FF (000FFh) Down to $1000
|
||||
*--------------------------------------
|
||||
* free $1100->$15FF = $500 Main
|
||||
* free $0C00->$17FF = $C00 Aux
|
||||
PS.Table.PID .EQ $1100 K.PS.MAX
|
||||
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
|
||||
*--------------------------------------
|
||||
|
@ -4,8 +4,6 @@ LOMEM $A00
|
||||
INC 1
|
||||
AUTO 6
|
||||
*--------------------------------------
|
||||
SYS.BASL0 .EQ $800
|
||||
*--------------------------------------
|
||||
CORE.Run lda CORE.PSCount
|
||||
sta CORE.Counter
|
||||
bne .1 SHOULD NEVER HAPPEN!!!
|
||||
@ -162,9 +160,9 @@ CORE.GetEvents lda #Evt.Table
|
||||
sta CORE.VBLState save new
|
||||
bpl .8 Up2down transition,no tick
|
||||
|
||||
lda SYS.BASL0+37
|
||||
lda SYS.BASL0+38
|
||||
eor #$80
|
||||
sta SYS.BASL0+37
|
||||
sta SYS.BASL0+38
|
||||
|
||||
.2 inc A2osX.TIMER16
|
||||
bne .3
|
||||
@ -412,7 +410,7 @@ CORE.DestroyEvent
|
||||
CORE.PSSelect0 >LDYAI CORE.S.PS0 Select PS0
|
||||
>STYA pPs
|
||||
|
||||
>LDYA CORE.S.PS0+S.PS.ZP+4
|
||||
>LDYAI K.STACKTOP
|
||||
>STYA pStack
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -472,7 +470,7 @@ CORE.Tick10t .BS 1
|
||||
CORE.Counter .BS 1
|
||||
CORE.PSCount .DA #0
|
||||
CORE.LastPSID .DA #0
|
||||
CORE.S.PS0 .BS S.PS
|
||||
CORE.S.PS0 .BS S.PS.PC+2
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.CORE
|
||||
|
@ -244,6 +244,8 @@ A2osX.PrtDrv.GetDev
|
||||
A2osX.PrtDrv.Cnt
|
||||
.HS 03030301030101010404
|
||||
*--------------------------------------
|
||||
* NULL DEVICE
|
||||
*--------------------------------------
|
||||
DevMgr.NUL.Code .DA .1 STATUS
|
||||
.DA A2osX.BADCALL READBLOCK
|
||||
.DA A2osX.BADCALL WRITEBLOCK
|
||||
@ -268,6 +270,8 @@ DevMgr.NUL.Code .DA .1 STATUS
|
||||
.DA #0
|
||||
.DA $0900
|
||||
*--------------------------------------
|
||||
* SYS DEVICE
|
||||
*--------------------------------------
|
||||
DevMgr.SYS.Code .DA .1 STATUS
|
||||
.DA A2osX.BADCALL READBLOCK
|
||||
.DA A2osX.BADCALL WRITEBLOCK
|
||||
@ -293,40 +297,24 @@ DevMgr.SYS.Code .DA .1 STATUS
|
||||
DevMgr.SYS.Open stz DevMgr.SYS.CH
|
||||
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
|
||||
|
||||
lda #1
|
||||
sta A2osX.SCRNDEVS+1 fall in Control
|
||||
sta A2osX.SCRNDEVS fall in Control
|
||||
*--------------------------------------
|
||||
DevMgr.SYS.Control
|
||||
sta SETTEXT
|
||||
sta SETALTCHAR
|
||||
sta SET80DISP
|
||||
sta CLR80STORE
|
||||
sta SETPAGE2
|
||||
lda #2
|
||||
sta CLRPAGE2
|
||||
lda #1
|
||||
sta A2osX.ASCREEN
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevMgr.SYS.Read lda A2osX.ASCREEN
|
||||
cmp #2 is SYS active?
|
||||
cmp #1 is SYS active?
|
||||
bne .9
|
||||
|
||||
lda OPENAPPLE
|
||||
@ -421,20 +409,24 @@ DevMgr.SYS.Scroll
|
||||
|
||||
php
|
||||
sei
|
||||
sta SETWRITEAUX
|
||||
sta SETREADAUX
|
||||
|
||||
* sta SET80STORE
|
||||
|
||||
* sta SETPAGE2
|
||||
|
||||
ldy #39
|
||||
|
||||
.2 lda (ZPDRV+2),y
|
||||
sta (ZPDRV),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
sta CLRWRITEAUX
|
||||
sta CLRREADAUX
|
||||
* sta CLRPAGE2
|
||||
* sta CLR80STORE
|
||||
plp
|
||||
|
||||
ldy #39
|
||||
|
||||
.3 lda (ZPDRV+2),y
|
||||
sta (ZPDRV),y
|
||||
dey
|
||||
@ -449,19 +441,24 @@ DevMgr.SYS.ClrLineAtX
|
||||
lda DevMgr.SYS.BASEH,x
|
||||
sta ZPDRV+1
|
||||
|
||||
php
|
||||
sei
|
||||
|
||||
lda #$A0
|
||||
ldy #39
|
||||
|
||||
.1 sta SETWRITEAUX
|
||||
php
|
||||
sei
|
||||
|
||||
* sta SET80STORE
|
||||
|
||||
.1
|
||||
* sta SETPAGE2
|
||||
sta (ZPDRV),y
|
||||
sta CLRWRITEAUX
|
||||
* sta CLRPAGE2
|
||||
sta (ZPDRV),y
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
* sta CLR80STORE
|
||||
|
||||
plp
|
||||
|
||||
rts
|
||||
@ -494,31 +491,39 @@ DevMgr.SYS.SetCharAtYX
|
||||
tya
|
||||
lsr
|
||||
tay
|
||||
bcs .2
|
||||
|
||||
pla
|
||||
|
||||
bcs .2
|
||||
|
||||
|
||||
php
|
||||
sei
|
||||
sta SETWRITEAUX
|
||||
sta SET80STORE
|
||||
|
||||
* sta SETPAGE2
|
||||
sta (ZPDRV),y
|
||||
sta CLRWRITEAUX
|
||||
* sta CLRPAGE2
|
||||
|
||||
sta CLR80STORE
|
||||
|
||||
plp
|
||||
ply
|
||||
rts
|
||||
|
||||
.2 pla
|
||||
sta (ZPDRV),y
|
||||
.2 sta (ZPDRV),y
|
||||
ply
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevMgr.SYS.CH .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.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 *
|
||||
.LIST OFF
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
@ -77,20 +77,6 @@ K.GetDevByName.YA
|
||||
|
||||
K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
|
||||
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
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||
|
@ -11,6 +11,8 @@ ZPPtr2 .EQ ZPKERNEL+2
|
||||
ZPPtr3 .EQ ZPKERNEL+4
|
||||
ZPPtr4 .EQ ZPKERNEL+6
|
||||
*--------------------------------------
|
||||
SYS.BASL0 .EQ $400
|
||||
*--------------------------------------
|
||||
Kernel.Init sei
|
||||
ldx #$FF
|
||||
txs
|
||||
@ -400,7 +402,7 @@ KConfigLoad >LDAXI MSG.KCREAD
|
||||
jsr PrintFAX
|
||||
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 320D00 LD (FLAG),A
|
||||
.HS 3200E1 LD (0E100H),A Back to 6502
|
||||
@ -435,18 +437,72 @@ PS0Init ldx #S.DEV*2 NUL,SYS
|
||||
dex
|
||||
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)
|
||||
>STYA pPs
|
||||
|
||||
>LDYAI K.STACKTOP
|
||||
>STYA pStack
|
||||
>STYA CORE.S.PS0+S.PS.ZP+4 init Kernel Soft Stack
|
||||
|
||||
>LDYAI DEV.SYS
|
||||
>SYSCALL MkNod.YA
|
||||
>SYSCALL MkNod.YA Will open SYS
|
||||
bcs .9
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
@ -462,6 +518,8 @@ PS0Init ldx #S.DEV*2 NUL,SYS
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DevMgr.SYS.TITLE >CSTR "A2osX System Screen"
|
||||
*--------------------------------------
|
||||
DevMgr.NUL cld
|
||||
jmp (DevMgr.NUL.Code,x)
|
||||
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED
|
||||
@ -502,7 +560,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||
bcs .1
|
||||
|
||||
lda #'v'
|
||||
sta SYS.BASL0+37
|
||||
sta SYS.BASL0+38
|
||||
|
||||
>LDYAI K.IrqH.VBL
|
||||
>STYA K.IrqH+1
|
||||
@ -516,7 +574,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||
bcs .8
|
||||
|
||||
lda #'c'
|
||||
sta SYS.BASL0+37
|
||||
sta SYS.BASL0+38
|
||||
|
||||
>LDYAI K.IrqH.TClock
|
||||
>STYA K.IrqH+1
|
||||
@ -530,7 +588,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||
.8 jsr IrqMgrInit.HZ2Tick
|
||||
|
||||
lda #'p'
|
||||
sta SYS.BASL0+37
|
||||
sta SYS.BASL0+38
|
||||
|
||||
>LDYAI MSG.IRQ.POLL
|
||||
>SYSCALL PrintF.YA
|
||||
|
@ -71,9 +71,9 @@ K.IrqH.TCLOCK ldy IRQ.VBL.n0
|
||||
|
||||
inc CORE.IRQTick
|
||||
|
||||
lda SYS.BASL0+37
|
||||
lda SYS.BASL0+38
|
||||
eor #$80
|
||||
sta SYS.BASL0+37
|
||||
sta SYS.BASL0+38
|
||||
|
||||
clc
|
||||
rts
|
||||
@ -92,9 +92,9 @@ K.IrqH.VBL jsr IRQ.VBL.MSM SERVEMOUSE
|
||||
|
||||
inc CORE.IRQTick
|
||||
|
||||
lda SYS.BASL0+37
|
||||
lda SYS.BASL0+38
|
||||
eor #$80
|
||||
sta SYS.BASL0+37
|
||||
sta SYS.BASL0+38
|
||||
|
||||
clc
|
||||
rts
|
||||
|
@ -50,7 +50,7 @@ K.SYSCALL.JMP .DA 0 $00
|
||||
.DA 0
|
||||
.DA K.GetDevByID.A
|
||||
.DA K.GetDevByName.YA
|
||||
.DA K.GetDevStatus.A
|
||||
.DA 0
|
||||
.DA 0
|
||||
|
||||
.DA 0 $50
|
||||
|
Loading…
x
Reference in New Issue
Block a user