Kernel 0.9.1 : Kernel/memory REORG for more IO buffers & room in LC for DHGR.DRV

This commit is contained in:
Rémy GIBERT 2017-11-21 17:27:07 +01:00
parent 93ec92c91b
commit b25be9cee0
17 changed files with 247 additions and 171 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*-------------------------------------- *--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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