mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-26 11:30:07 +00:00
Kernel 0.9.2
This commit is contained in:
parent
0128a9cfd9
commit
db742825c8
@ -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
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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)
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user