Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-06-20 17:02:09 +02:00
parent 0128a9cfd9
commit db742825c8
5 changed files with 154 additions and 148 deletions

View File

@ -90,7 +90,7 @@ STATUS >LDYA L.DEVSTAT
clc
rts
*--------------------------------------
OPEN sta A2osX.SCRNDEVS+1 DEV.ID in A
OPEN sta A2osX.SCRNDEVS DEV.ID in A
lda #S.DSTAT.S.OPENED
tsb DEVSTAT
@ -117,8 +117,8 @@ CONTROL sta SETTEXT
sta SETALTCHAR
sta SET80DISP
sta CLR80STORE
sta SETPAGE2
lda #2
sta CLRPAGE2
lda #1
sta A2osX.ASCREEN
clc
rts
@ -131,7 +131,7 @@ READ jsr Char.Out.Get
bcc .8 IF cs,no char in output buffer...
lda A2osX.ASCREEN
cmp #2 is CON active?
cmp #1 is CON active?
bne .9 no....exit
lda A2osX.TIMER16
@ -658,7 +658,7 @@ CUROFF lda CURON
beq CUREXIT.RTS
CURBLNK lda A2osX.ASCREEN
cmp #2
cmp #1
beq CURBLNK1
lda CURON
@ -849,7 +849,7 @@ SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS
.DA #IAC,#SE
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE
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 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B
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
*--------------------------------------
CH .BS 1
CV .BS 1

View File

@ -277,33 +277,14 @@ S.MSTAT.DCount .EQ 22
*
S.MSTAT .EQ 24
*--------------------------------------
* DEVMGR (new API) = Smartport
* IOCTL device API
*--------------------------------------
* JMP : (A=Device)
* DRV : AUXLC entry point
* BLK : ROM Entry point Cn($Cnff)
* PRT : ROM Entry point Cn($Cnff)+3
*--------------------------------------
S.DEV.DRV.JMP .EQ 2
S.DEV.S .EQ 4
S.DEV.S.BLOCK .EQ %10000000
S.DEV.S.WRITE .EQ %01000000
S.DEV.S.READ .EQ %00100000
S.DEV.S.ONLINE .EQ %00010000
S.DEV.S.NOFMT .EQ %00001000
S.DEV.S.WENABL .EQ %00000100
S.DEV.S.IRQ .EQ %00000010
S.DEV.S.OPENED .EQ %00000001
S.DEV.F .EQ 5
S.DEV.BUSID .EQ 6
S.DEV.DEVID .EQ 7
S.DEV.ROM.JMP .EQ 8 word
*
S.DEV.NAME .EQ 11 4+\0 MAX
*
S.DEV .EQ 16
*--------------------------------------
IOCTL.STATUS .EQ 0
IOCTL.STATUS .EQ 0 X,Y = byte count returned
IOCTL.READBLOCK .EQ 2
IOCTL.WRITEBLOCK .EQ 4
IOCTL.FORMAT .EQ 6
@ -319,7 +300,16 @@ S.IOCTL.CNT .EQ 0
S.IOCTL.UNITNUM .EQ 1
S.IOCTL.BUFPTR .EQ 2
S.IOCTL.STATCODE .EQ 4 1 BYTE
S.IOCTL.STATCODE.STATUS .EQ 0
S.IOCTL.STATCODE.GETDCB .EQ 1
S.IOCTL.STATCODE.GETNL .EQ 2
S.IOCTL.STATCODE.GETDIB .EQ 3
S.IOCTL.CTRLCODE .EQ 4 1 BYTE
S.IOCTL.CTRLCODE.RESET .EQ 0
S.IOCTL.CTRLCODE.SETDCB .EQ 1
S.IOCTL.CTRLCODE.SETNL .EQ 2
S.IOCTL.CTRLCODE.IRQ .EQ 3
S.IOCTL.CTRLCODE.EJECT .EQ 4
S.IOCTL.BLKNUM .EQ 4 3 BYTES
S.IOCTL.BYTECNT .EQ 4 2 BYTES
S.IOCTL.ADDRPTR .EQ 6 3 BYTES
@ -360,6 +350,7 @@ S.DSTAT.T.NET .EQ $12 Network board
S.DSTAT.T.XY .EQ $13 X,Y Pointing Device
S.DSTAT.T.CHAR .EQ $14
S.DSTAT.T.GFX .EQ $15
S.DSTAT.T.SND .EQ $16
S.DSTAT.ST .EQ 22
S.DSTAT.ST.EXT .EQ $80
S.DSTAT.ST.DSKSW .EQ $40
@ -394,10 +385,13 @@ S.NODE.DIR.FC .EQ 6 word
*
S.NODE.DIR .EQ 8
*--------------------------------------
S.NODE.DEV.ID .EQ 2
S.NODE.DEV.JMP .EQ 3 word
S.NODE.DEV.BUSID .EQ 2
S.NODE.DEV.DEVID .EQ 3
S.NODE.DEV.DRVPTR .EQ 4 word
S.NODE.DEV.ROMPTR .EQ 6 word
S.NODE.DEV.NAME .EQ 8 C-String
*
S.NODE.DEV .EQ 5
S.NODE.DEV .EQ 16
*--------------------------------------
* S.NODE.LNK
*--------------------------------------

View File

@ -99,7 +99,6 @@ A2osX.SaveSX .EQ $101 Aux
K.S.STAT .EQ $0300 S.STAT for internal kernel operations
K.S.DSTAT .EQ $0340 S.DSTAT=25 or higher depends on dev type
K.S.IOCTL .EQ $0360 9 bytes
K.SP.PARAMS .EQ $0360 9 bytes
K.MLI.PATH .EQ $0369 64+1
K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now)
*--------------------------------------

View File

@ -2,18 +2,20 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*--------------------------------------
* A2osX.DIIDrv
* DRV.DiskII
* X = IOCTL
* Y,A = PTR to Params
* Y,A = PTR to S.IOCTL
* pDev -> Dev Header AUX!!!
* $42 Command Number
* $43 Unit Number
* $44-$45 Buffer Pointer
* $46-$47 Block Number
*--------------------------------------
A2osX.DIIDrv .DA A2osX.DIIDrv.S status
.DA A2osX.DIIDrv.RW Read
.DA A2osX.DIIDrv.RW Write
DRV.DiskII cld
jmp (.1,x)
.1 .DA DRV.DiskII.S status
.DA DRV.DiskII.RW Read
.DA DRV.DiskII.RW Write
.DA A2osX.BadCall Format
.DA A2osX.BadCall
.DA A2osX.BadCall
@ -23,11 +25,11 @@ A2osX.DIIDrv .DA A2osX.DIIDrv.S status
.DA A2osX.BadCall
.DA A2osX.BadCall
*--------------------------------------
A2osX.DIIDrv.S >LDYAI A2osx.DII.Stat
DRV.DiskII.S >LDYAI A2osx.DII.Stat
clc
rts
*--------------------------------------
A2osX.DIIDrv.RW >STYA A2osX.RW.SrcDst+1
DRV.DiskII.RW >STYA A2osX.RW.SrcDst+1
jsr A2osX.Blk.GetCmdAndDevAX
*--------------------------------------
ldy #$D0
@ -53,27 +55,29 @@ A2osX.RW.Drv jsr $0000
jsr GO.A2osX
rts
*--------------------------------------
A2osx.DII.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
DRV.DiskII.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
.DA 280
.DA #0
>PSTR "Disk II 5.25"
.BS 4
.DA #S.DSTAT.T.DISKII
.DA #0
.DA #0,#91
.DA KVER
*--------------------------------------
* A2osX.RamDrv
* DRV.RamDrive
* X = IOCTL
* Y,A = PTR to Params
* Y,A = PTR to S.IOCTL
* pDev -> Dev Header AUX!!!
* $42 Command Number
* $43 Unit Number
* $44-$45 Buffer Pointer
* $46-$47 Block Number
*--------------------------------------
A2osX.RamDrv .DA A2osX.RamDrv.S status
.DA A2osX.RamDrv.RW Read
.DA A2osX.RamDrv.RW Write
DRV.RamDrive cld
jmp (.1,x)
.1 .DA DRV.RamDrive.S status
.DA DRV.RamDrive.RW Read
.DA DRV.RamDrive.RW Write
.DA A2osX.BadCall Format
.DA A2osX.BadCall
.DA A2osX.BadCall
@ -83,25 +87,25 @@ A2osX.RamDrv .DA A2osX.RamDrv.S status
.DA A2osX.BadCall
.DA A2osX.BadCall
*--------------------------------------
A2osX.RamDrv.S jsr A2osX.Blk.GetCmdAndDevAX
DRV.RamDrive.S jsr A2osX.Blk.GetCmdAndDevAX
jsr GO.ProDOS
stx $42
sta $43
jsr $FF00
jsr GO.A2osX
bcs .9
stx A2osx.RamDrv.Stat+S.DSTAT.SIZE
sty A2osx.RamDrv.Stat+S.DSTAT.SIZE+1
stx DRV.RamDrive.Stat+S.DSTAT.SIZE
sty DRV.RamDrive.Stat+S.DSTAT.SIZE+1
>LDYAI A2osX.RamDrv.Stat
clc
.9 rts
*--------------------------------------
A2osX.RamDrv.RW >STYA A2osX.RW.SrcDst+1
DRV.RamDrive.RW >STYA A2osX.RW.SrcDst+1
jsr A2osX.Blk.GetCmdAndDevAX
bra A2osX.RamDrv.RW1
*--------------------------------------
A2osx.RamDrv.Stat
DRV.RamDrive.Stat
.DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
.BS 3
>PSTR "ProDOS /RAM Disk"
@ -109,19 +113,21 @@ A2osx.RamDrv.Stat
.DA #0
.DA #0,#91
*--------------------------------------
* A2osX.BlkDrv
* DRV.BlkDevice
* X = IOCTL
* Y,A = PTR to Params
* Y,A = PTR to S.IOCTL
* pDev -> Dev Header
* $42 Command Number
* $43 Unit Number
* $44-$45 Buffer Pointer
* $46-$47 Block Number
*--------------------------------------
A2osX.BlkDrv .DA A2osX.BlkDrv.S status
.DA A2osX.BlkDrv.RW
.DA A2osX.BlkDrv.RW
.DA A2osX.BlkDrv.F
DRV.BlkDevice cld
jmp (.1,x)
.1 .DA DRV.BlkDevice.S status
.DA DRV.BlkDevice.RW
.DA DRV.BlkDevice.RW
.DA DRV.BlkDevice.F
.DA A2osX.BadCall
.DA A2osX.BadCall
.DA A2osX.BadCall
@ -130,7 +136,7 @@ A2osX.BlkDrv .DA A2osX.BlkDrv.S status
.DA A2osX.BadCall
.DA A2osX.BadCall
*--------------------------------------
A2osX.BlkDrv.S jsr A2osX.Blk.GetCmdAndDev
DRV.BlkDevice.S jsr A2osX.Blk.GetCmdAndDev
jsr A2osX.BlkDrv.Go
bcs .9
@ -141,16 +147,18 @@ A2osX.BlkDrv.S jsr A2osX.Blk.GetCmdAndDev
clc
.9 rts
*--------------------------------------
A2osX.BlkDrv.RW >STYA A2osX.Blk.GetParam.1+1
DRV.BlkDevice.RW
>STYA A2osX.Blk.GetParam.1+1
jsr A2osX.Blk.GetCmdAndDev
jsr A2osX.Blk.GetParam
bra A2osX.BlkDrv.Go
*--------------------------------------
A2osX.BlkDrv.F jsr A2osX.Blk.GetCmdAndDev
DRV.BlkDevice.F jsr A2osX.Blk.GetCmdAndDev
A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP
DRV.BlkDevice.Go
ldy #S.DEV.ROM.JMP
lda (pDev),y
sta .8+1
iny
@ -158,21 +166,21 @@ A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP
sta .8+2
.8 jmp $ffff
*--------------------------------------
A2osX.Blk.GetParam
DRV.BlkDevice.GetParam
ldy #3
A2osX.Blk.GetParam.1
DRV.BlkDevice.GetParam.1
lda $ffff,y Self Modified
sta $44,y
dey
bpl A2osX.Blk.GetParam.1
rts
*--------------------------------------
A2osX.Blk.GetCmdAndDev
DRV.BlkDevice.GetCmdAndDev
jsr A2osX.Blk.GetCmdAndDevAX
stx $42
sta $43
rts
A2osX.Blk.GetCmdAndDevAX
DRV.BlkDevice.GetCmdAndDevAX
txa
lsr
tax CMD
@ -195,7 +203,8 @@ A2osX.Blk.GetCmdAndDevAX
rts
*--------------------------------------
A2osX.Blk.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
DRV.BlkDevice.Stat
.DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
.BS 3
>PSTR "ProDOS Block Dev"
.DA #S.DSTAT.T.PRODOS
@ -204,18 +213,20 @@ A2osX.Blk.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
*--------------------------------------
* Smartport Driver
*--------------------------------------
A2osX.PrtDrv .DA A2osX.PrtDrv.S STATUS
.DA A2osX.PrtDrv.P BR
.DA A2osX.PrtDrv.P BW
.DA A2osX.PrtDrv.NP FORMAT
.DA A2osX.PrtDrv.P CONTROL
.DA A2osX.PrtDrv.NP INIT
.DA A2osX.PrtDrv.NP OPEN
.DA A2osX.PrtDrv.NP CLOSE
.DA A2osX.PrtDrv.P R
.DA A2osX.PrtDrv.P W
DRV.SmartPort cld
jmp (.1,x)
.1 .DA DRV.SmartPort.S STATUS
.DA DRV.SmartPort.P BR
.DA DRV.SmartPort.P BW
.DA DRV.SmartPort.NP FORMAT
.DA DRV.SmartPort.P CONTROL
.DA DRV.SmartPort.NP INIT
.DA DRV.SmartPort.NP OPEN
.DA DRV.SmartPort.NP CLOSE
.DA DRV.SmartPort.P R
.DA DRV.SmartPort.P W
*--------------------------------------
A2osX.PrtDrv.S jsr A2osX.PrtDrv.GetDev
DRV.SmartPort.S jsr A2osX.PrtDrv.GetDev
>LDYAI K.S.DSTAT
>STYA K.SP.PARAMS+2
lda #3
@ -225,11 +236,13 @@ A2osX.PrtDrv.S jsr A2osX.PrtDrv.GetDev
>LDYAI K.S.DSTAT
.9 rts
*--------------------------------------
A2osX.PrtDrv.P jsr A2osX.PrtDrv.GetParam
DRV.SmartPort.P jsr A2osX.PrtDrv.GetParam
bra A2osX.PrtDrv.Go
A2osX.PrtDrv.NP jsr A2osX.PrtDrv.GetDev
DRV.SmartPort.NP
jsr A2osX.PrtDrv.GetDev
*--------------------------------------
A2osX.PrtDrv.Go ldy #S.DEV.ROM.JMP
DRV.SmartPort.Go
ldy #S.DEV.ROM.JMP
lda (pDev),y
sta .8+1
iny
@ -237,12 +250,12 @@ A2osX.PrtDrv.Go ldy #S.DEV.ROM.JMP
sta .8+2
.8 jsr $ffff
A2osX.PrtDrv.Go.Cmd
DRV.SmartPort.Go.Cmd
.BS 1
.DA K.SP.PARAMS
rts
*--------------------------------------
A2osX.PrtDrv.GetParam
DRV.SmartPort.GetParam
>STYA ZPDRV Get Ptr To ParamList
jsr A2osX.Blk.GetCmdAndDev
@ -254,7 +267,7 @@ A2osX.PrtDrv.GetParam
bpl .1
rts
*--------------------------------------
A2osX.PrtDrv.GetDev
DRV.SmartPort.GetDev
txa
lsr
sta A2osX.PrtDrv.Go.Cmd
@ -265,12 +278,15 @@ A2osX.PrtDrv.GetDev
lda (pDev),y
sta K.SP.PARAMS+1
rts
A2osX.PrtDrv.Cnt
DRV.SmartPort.Cnt
.HS 03030301030101010404
*--------------------------------------
* NULL DEVICE
*--------------------------------------
DevMgr.NUL.Code .DA .1 STATUS
DRV.NULL.Code cld
jmp (.1,x)
*--------------------------------------
.1 .DA .2 STATUS
.DA A2osX.BADCALL READBLOCK
.DA A2osX.BADCALL WRITEBLOCK
.DA A2osX.BADCALL FORMAT
@ -281,11 +297,11 @@ DevMgr.NUL.Code .DA .1 STATUS
.DA A2osX.BADCALL READ
.DA .8 WRITE
*--------------------------------------
.1 >LDYAI .2
.2 >LDYAI .3
.8 clc
rts
*--------------------------------------
.2 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.3 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #0,#0,#0
>PSTR "NULL DEVICE"
.BS 5
@ -295,45 +311,46 @@ DevMgr.NUL.Code .DA .1 STATUS
*--------------------------------------
* SYS DEVICE
*--------------------------------------
DevMgr.SYS.Code .DA .1 STATUS
DRV.SYS.Code cld
jmp (.1,x)
.1 .DA .2 STATUS
.DA A2osX.BADCALL READBLOCK
.DA A2osX.BADCALL WRITEBLOCK
.DA A2osX.BADCALL FORMAT
.DA DevMgr.SYS.Control
.DA DRV.SYS.Control
.DA A2osX.BADCALL INIT
.DA DevMgr.SYS.Open
.DA DRV.SYS.Open
.DA A2osX.BADCALL CLOSE
.DA DevMgr.SYS.Read
.DA DevMgr.SYS.Write
.DA DRV.SYS.Read
.DA DRV.SYS.Write
*--------------------------------------
.1 >LDYAI .2
.2 >LDYAI .3
clc
rts
*--------------------------------------
.2 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.3 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #0,#0,#0
>PSTR "A2osX SYS Screen"
.DA #S.DSTAT.T.CHAR
.DA #0
.DA KVER
*--------------------------------------
DevMgr.SYS.Open lda #1
sta A2osX.SCRNDEVS
jsr DevMgr.SYS.Home
DRV.SYS.Open lda #1
sta A2osX.SCRNDEVS+1
jsr DRV.SYS.Home
*--------------------------------------
DevMgr.SYS.Control
sta SETTEXT
DRV.SYS.Control sta SETTEXT
sta SETALTCHAR
sta SET80DISP
sta CLR80STORE
sta CLRPAGE2
lda #1
sta SETPAGE2
lda #2
sta A2osX.ASCREEN
clc
rts
*--------------------------------------
DevMgr.SYS.Read lda A2osX.ASCREEN
cmp #1 is SYS active?
DRV.SYS.Read lda A2osX.ASCREEN
cmp #2 is SYS active?
bne .9
lda OPENAPPLE
@ -351,20 +368,19 @@ DevMgr.SYS.Read lda A2osX.ASCREEN
sec
rts
*--------------------------------------
DevMgr.SYS.Write
phx
DRV.SYS.Write phx
phy
cmp #' '
bcs .7
cmp #10
bne .1
jsr DevMgr.SYS.LF
jsr DRV.SYS.LF
bra .8
.1 cmp #13
bne .2
jsr DevMgr.SYS.CR
jsr DRV.SYS.CR
bra .8
.2 ora #$20
@ -372,49 +388,47 @@ DevMgr.SYS.Write
.HS 2C BIT ABS
.7 ora #$80
ldy DevMgr.SYS.CH
ldx DevMgr.SYS.CV
jsr DevMgr.SYS.SetCharAtYX
jsr DevMgr.SYS.FSOut
ldy DRV.SYS.CH
ldx DRV.SYS.CV
jsr DRV.SYS.SetCharAtYX
jsr DRV.SYS.FSOut
.8 ply
plx
clc
rts
*--------------------------------------
DevMgr.SYS.FSOut
lda DevMgr.SYS.CH
DRV.SYS.FSOut lda DRV.SYS.CH
cmp #79
bne .1
stz DevMgr.SYS.CH
bra DevMgr.SYS.LF
stz DRV.SYS.CH
bra DRV.SYS.LF
.1 inc DevMgr.SYS.CH
.1 inc DRV.SYS.CH
rts
*--------------------------------------
DevMgr.SYS.CR jsr DevMgr.SYS.ClrEOL
stz DevMgr.SYS.CH
DRV.SYS.CR jsr DRV.SYS.ClrEOL
stz DRV.SYS.CH
rts
*--------------------------------------
DevMgr.SYS.LF ldx DevMgr.SYS.CV
DRV.SYS.LF ldx DRV.SYS.CV
cpx #23
beq DevMgr.SYS.Scroll
inc DevMgr.SYS.CV
beq DRV.SYS.Scroll
inc DRV.SYS.CV
rts
*--------------------------------------
DevMgr.SYS.ClrEOL
ldx DevMgr.SYS.CV
DRV.SYS.ClrEOL ldx DRV.SYS.CV
lda #$A0
ldy DevMgr.SYS.CH
ldy DRV.SYS.CH
.1 cpy #79
beq .2
jsr DevMgr.SYS.SetCharAtYX
jsr DRV.SYS.SetCharAtYX
iny
bne .1
.2 rts
*--------------------------------------
DevMgr.SYS.ScrollAux
DRV.SYS.ScrollAux
sta SETREADAUX
.1 lda (ZPDRV+2),y
@ -425,22 +439,21 @@ DevMgr.SYS.ScrollAux
sta CLRREADAUX
rts
*--------------------------------------
DevMgr.SYS.Scroll
ldx #1
.1 jsr DevMgr.SYS.SetBaseX
DRV.SYS.Scroll ldx #1
.1 jsr DRV.SYS.SetBaseX
inx
lda DevMgr.SYS.BASEL,x
lda DRV.SYS.BASEL,x
sta ZPDRV+2
lda DevMgr.SYS.BASEH,x
lda DRV.SYS.BASEH,x
sta ZPDRV+3
php
sei
ldx #DevMgr.SYS.Scroll-DevMgr.SYS.ScrollAux-1
ldx #DRV.SYS.Scroll-DRV.SYS.ScrollAux-1
.2 lda DevMgr.SYS.ScrollAux,x
.2 lda DRV.SYS.ScrollAux,x
sta $102,x
dex
bpl .2
@ -463,8 +476,8 @@ DevMgr.SYS.Scroll
cpx #23
bne .1 Fall in ClrLineAtX for last line
*--------------------------------------
DevMgr.SYS.ClrLineAtX
jsr DevMgr.SYS.SetBaseX
DRV.SYS.ClrLineAtX
jsr DRV.SYS.SetBaseX
lda #$A0
ldy #39
@ -483,19 +496,19 @@ DevMgr.SYS.ClrLineAtX
rts
*--------------------------------------
DevMgr.SYS.Home ldx #23
DRV.SYS.Home ldx #23
.1 jsr DevMgr.SYS.ClrLineAtX
.1 jsr DRV.SYS.ClrLineAtX
dex
bne .1
stz DevMgr.SYS.CH
stz DRV.SYS.CH
lda #1
sta DevMgr.SYS.CV
sta DRV.SYS.CV
rts
*--------------------------------------
DevMgr.SYS.SetCharAtYX
DRV.SYS.SetCharAtYX
cmp #$40
bcc .1
cmp #$5F
@ -504,7 +517,7 @@ DevMgr.SYS.SetCharAtYX
.1 phy
pha
jsr DevMgr.SYS.SetBaseX
jsr DRV.SYS.SetBaseX
tya
lsr
tay
@ -526,18 +539,18 @@ DevMgr.SYS.SetCharAtYX
ply
rts
*--------------------------------------
DevMgr.SYS.SetBaseX
lda DevMgr.SYS.BASEL,x
DRV.SYS.SetBaseX
lda DRV.SYS.BASEL,x
sta ZPDRV
lda DevMgr.SYS.BASEH,x
lda DRV.SYS.BASEH,x
sta ZPDRV+1
rts
*--------------------------------------
DevMgr.SYS.CH .BS 1
DevMgr.SYS.CV .BS 1
DRV.SYS.CH .BS 1
DRV.SYS.CV .BS 1
*--------------------------------------
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 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
DRV.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
DRV.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
*--------------------------------------
MAN
SAVE /A2OSX.SRC/SYS/KERNEL.S.DRV

View File

@ -11,7 +11,7 @@ pDev .EQ ZPKERNEL+10
pNode .EQ ZPKERNEL+12
pIOBuf .EQ ZPKERNEL+14
*--------------------------------------
SYS.BASL0 .EQ $400
SYS.BASL0 .EQ $800
*--------------------------------------
Kernel.Init sei
ldx #$FF