mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-27 15:29:41 +00:00
Kernel version 0.9 : Block Device Support, added Smartport
This commit is contained in:
parent
82b83a26e8
commit
63883ea19d
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.DEV.po
BIN
A2OSX.DEV.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
|
@ -62,12 +62,12 @@ D.STACK.TOP .EQ $03F0 ...Down to $0300
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KrnBuf256 .EQ $0C00 Main
|
KrnBuf256 .EQ $0C00 Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLICALL.PARAMS .EQ $0D00 Main, $12 bytes min !!!!
|
KrnOut256 .EQ $0D00 Used to return Values to User Space
|
||||||
BLKCALL.PARAMS .EQ $0D20 Max 6 Bytes copied to/from $42->$47 before Firmware call
|
|
||||||
PRTCALL.PARAMS .EQ $D030 Max 8 bytes for smartport cmdnum $0->$9
|
|
||||||
KrnSTAT .EQ $0D40 S.STAT = 64b
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KrnOut256 .EQ $0E00 Used to return Values to User Space
|
MLICALL.PARAMS .EQ $0E00 Main, $12 bytes min for GetFileInfo
|
||||||
|
K.S.STAT .EQ MLICALL.PARAMS+$12 S.STAT for internal kernel operations (DIR,FIO)
|
||||||
|
K.S.DEVSTAT .EQ K.S.STAT+64
|
||||||
|
K.S.PORTCALL .EQ K.S.DEVSTAT+9
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*** Z80 Reserved $0F00-10FF***
|
*** Z80 Reserved $0F00-10FF***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -103,8 +103,6 @@ DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
|
||||||
A2osX.SYSCALL .EQ $BD00
|
A2osX.SYSCALL .EQ $BD00
|
||||||
A2osX.LIBCALL .EQ $BD03
|
A2osX.LIBCALL .EQ $BD03
|
||||||
A2osX.MLICALL .EQ $BD06
|
A2osX.MLICALL .EQ $BD06
|
||||||
A2osX.BLKCALL .EQ $BD09
|
|
||||||
A2osX.PRTCALL .EQ $BD0C
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
pCodeJmp .EQ $BD10
|
pCodeJmp .EQ $BD10
|
||||||
pLibJmp .EQ $BD13
|
pLibJmp .EQ $BD13
|
||||||
|
|
|
@ -4,6 +4,72 @@ LOMEM $A00
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* 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
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.PrtDrv.S jsr A2osX.PrtDrv.GetDev
|
||||||
|
>LDYAI K.S.DEVSTAT
|
||||||
|
>STYA K.S.PORTCALL+2
|
||||||
|
lda #3
|
||||||
|
sta K.S.PORTCALL+3
|
||||||
|
jsr A2osX.PrtDrv.Go
|
||||||
|
bcs .9
|
||||||
|
>LDYAI K.S.DEVSTAT
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.PrtDrv.P jsr A2osX.PrtDrv.GetParam
|
||||||
|
bra A2osX.PrtDrv.Go
|
||||||
|
A2osX.PrtDrv.NP jsr A2osX.PrtDrv.GetDev
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.PrtDrv.Go ldy #S.DEV.ROM.JMP
|
||||||
|
lda (pDev),y
|
||||||
|
sta .8+1
|
||||||
|
iny
|
||||||
|
lda (pDev),y
|
||||||
|
sta .8+2
|
||||||
|
|
||||||
|
.8 jsr $ffff
|
||||||
|
A2osX.PrtDrv.Go.Cmd
|
||||||
|
.BS 1
|
||||||
|
.DA K.S.PORTCALL
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.PrtDrv.GetParam
|
||||||
|
>STYA ZPDRV Get Ptr To ParamList
|
||||||
|
jsr A2osX.Blk.GetDev
|
||||||
|
|
||||||
|
ldy #7
|
||||||
|
|
||||||
|
.1 lda (ZPDRV),y
|
||||||
|
sta K.S.PORTCALL+2,y
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.PrtDrv.GetDev
|
||||||
|
txa
|
||||||
|
asl
|
||||||
|
sta A2osX.PrtDrv.Go.Cmd
|
||||||
|
tax
|
||||||
|
lda A2osX.PrtDrv.Cnt,x
|
||||||
|
sta K.S.PORTCALL
|
||||||
|
ldy #S.DEV.DEVID
|
||||||
|
lda (pDev),y
|
||||||
|
sta K.S.PORTCALL+1
|
||||||
|
rts
|
||||||
|
A2osX.PrtDrv.Cnt
|
||||||
|
.HS 03030301030101010404
|
||||||
|
*--------------------------------------
|
||||||
DevMgr.NUL.Code .DA .1 STATUS
|
DevMgr.NUL.Code .DA .1 STATUS
|
||||||
.DA DevMgr.BADCALL READBLOCK
|
.DA DevMgr.BADCALL READBLOCK
|
||||||
.DA DevMgr.BADCALL WRITEBLOCK
|
.DA DevMgr.BADCALL WRITEBLOCK
|
||||||
|
|
|
@ -174,26 +174,26 @@ K.ReadDirA.ROOT ldy #S.NODE.DIR.FC did we already returned something ?
|
||||||
lda #0
|
lda #0
|
||||||
rol
|
rol
|
||||||
inc
|
inc
|
||||||
sta KrnSTAT+S.STAT.P.DRIVE
|
sta K.S.STAT+S.STAT.P.DRIVE
|
||||||
pla
|
pla
|
||||||
lsr CC
|
lsr CC
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
sta KrnSTAT+S.STAT.P.SLOT
|
sta K.S.STAT+S.STAT.P.SLOT
|
||||||
|
|
||||||
>LDYAI KrnOut256
|
>LDYAI KrnOut256
|
||||||
>STYA MLICALL.PARAMS+1
|
>STYA MLICALL.PARAMS+1
|
||||||
|
|
||||||
>MLICALL MLIGETFILEINFO
|
>MLICALL MLIGETFILEINFO
|
||||||
sta KrnSTAT+S.STAT.P.DEVSTATUS
|
sta K.S.STAT+S.STAT.P.DEVSTATUS
|
||||||
|
|
||||||
bcs .80
|
bcs .80
|
||||||
>LDYA MLICALL.PARAMS+5 AUXTYPE=TOTAL BLOCKS
|
>LDYA MLICALL.PARAMS+5 AUXTYPE=TOTAL BLOCKS
|
||||||
>STYA KrnSTAT+S.STAT.P.DEVBLOCKS
|
>STYA K.S.STAT+S.STAT.P.DEVBLOCKS
|
||||||
>LDYA MLICALL.PARAMS+8
|
>LDYA MLICALL.PARAMS+8
|
||||||
>STYA KrnSTAT+S.STAT.BLOCKS
|
>STYA K.S.STAT+S.STAT.BLOCKS
|
||||||
|
|
||||||
.80 jsr K.ReadDirA.ADDSTAT
|
.80 jsr K.ReadDirA.ADDSTAT
|
||||||
|
|
||||||
|
@ -454,27 +454,27 @@ K.ReadDirA.ADD..
|
||||||
|
|
||||||
* ldy #$25 total_blocks
|
* ldy #$25 total_blocks
|
||||||
* lda (ZPPtr3),y
|
* lda (ZPPtr3),y
|
||||||
* sta KrnSTAT+S.STAT.BLOCKS
|
* sta K.S.STAT+S.STAT.BLOCKS
|
||||||
* iny
|
* iny
|
||||||
* lda (ZPPtr3),y
|
* lda (ZPPtr3),y
|
||||||
* sta KrnSTAT+S.STAT.BLOCKS+1
|
* sta K.S.STAT+S.STAT.BLOCKS+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDirA.ADDD lda #$0F
|
K.ReadDirA.ADDD lda #$0F
|
||||||
sta KrnSTAT+S.STAT.P.TYPE
|
sta K.S.STAT+S.STAT.P.TYPE
|
||||||
|
|
||||||
lda /S.STAT.MODE.DIR
|
lda /S.STAT.MODE.DIR
|
||||||
sta KrnSTAT+S.STAT.MODE+1
|
sta K.S.STAT+S.STAT.MODE+1
|
||||||
bra K.ReadDirA.AddAccess
|
bra K.ReadDirA.AddAccess
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDirA.ADDF lda /S.STAT.MODE.REG
|
K.ReadDirA.ADDF lda /S.STAT.MODE.REG
|
||||||
sta KrnSTAT+S.STAT.MODE+1
|
sta K.S.STAT+S.STAT.MODE+1
|
||||||
|
|
||||||
ldx #ADDF.DST-ADDF.SRC
|
ldx #ADDF.DST-ADDF.SRC
|
||||||
|
|
||||||
.1 ldy ADDF.SRC-1,x
|
.1 ldy ADDF.SRC-1,x
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
ldy ADDF.DST-1,x
|
ldy ADDF.DST-1,x
|
||||||
sta KrnSTAT,y
|
sta K.S.STAT,y
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -494,21 +494,21 @@ K.ReadDirA.AddAccess
|
||||||
.HS 89 bit imm to skip txa
|
.HS 89 bit imm to skip txa
|
||||||
|
|
||||||
.3 txa
|
.3 txa
|
||||||
sta KrnSTAT+S.STAT.MODE
|
sta K.S.STAT+S.STAT.MODE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDirA.AddTime
|
K.ReadDirA.AddTime
|
||||||
>PUSHWI KrnSTAT+S.STAT.CTIME
|
>PUSHWI K.S.STAT+S.STAT.CTIME
|
||||||
lda #$18 creation Date/time
|
lda #$18 creation Date/time
|
||||||
jsr K.ReadDirA.ConvertTime
|
jsr K.ReadDirA.ConvertTime
|
||||||
|
|
||||||
>PUSHWI KrnSTAT+S.STAT.MTIME
|
>PUSHWI K.S.STAT+S.STAT.MTIME
|
||||||
lda #$21 mod Date/time
|
lda #$21 mod Date/time
|
||||||
jsr K.ReadDirA.ConvertTime
|
jsr K.ReadDirA.ConvertTime
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDirA.AddStat
|
K.ReadDirA.AddStat
|
||||||
ldy #S.STAT-1
|
ldy #S.STAT-1
|
||||||
|
|
||||||
.1 lda KrnSTAT,y
|
.1 lda K.S.STAT,y
|
||||||
sta (ZPPtr4),y
|
sta (ZPPtr4),y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -524,7 +524,7 @@ K.ReadDirA.AddStat
|
||||||
K.ReadDirA.ClrStat
|
K.ReadDirA.ClrStat
|
||||||
ldx #S.STAT-1
|
ldx #S.STAT-1
|
||||||
|
|
||||||
.1 stz KrnSTAT,x
|
.1 stz K.S.STAT,x
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -59,7 +59,7 @@ K.FileSearch >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
||||||
|
|
||||||
stx KrnBuf256 set string length
|
stx KrnBuf256 set string length
|
||||||
|
|
||||||
>PUSHWI KrnSTAT
|
>PUSHWI K.S.STAT
|
||||||
>PUSHWI KrnBuf256
|
>PUSHWI KrnBuf256
|
||||||
jsr K.STAT
|
jsr K.STAT
|
||||||
bcs .1 Failed...retry next path...
|
bcs .1 Failed...retry next path...
|
||||||
|
|
|
@ -114,7 +114,7 @@ A2osX.DIIDrv.S >LDYAI A2osx.DIIStat
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.DIIDrv.RW jsr A2osX.Prt2Blk
|
A2osX.DIIDrv.RW jsr A2osX.Blk.GetParam
|
||||||
|
|
||||||
jsr GO.ProDOS
|
jsr GO.ProDOS
|
||||||
jsr $D000
|
jsr $D000
|
||||||
|
@ -144,31 +144,30 @@ A2osX.BlkDrv .DA A2osX.BlkDrv.S status
|
||||||
.DA A2osX.DRV.BadCall
|
.DA A2osX.DRV.BadCall
|
||||||
.DA A2osX.DRV.BadCall
|
.DA A2osX.DRV.BadCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.BlkDrv.S jsr A2osX.Prt2Blk.NoParam
|
A2osX.BlkDrv.S jsr A2osX.Blk.GetDev
|
||||||
|
|
||||||
jsr A2osX.BlkDrv.Go
|
jsr A2osX.BlkDrv.Go
|
||||||
bcs *
|
bcs *
|
||||||
stx A2osx.BlkStat+S.DEVSTAT.SIZE
|
stx A2osx.BlkStat+S.DEVSTAT.SIZE
|
||||||
sty A2osx.BlkStat+S.DEVSTAT.SIZE+1
|
sty A2osx.BlkStat+S.DEVSTAT.SIZE+1
|
||||||
|
|
||||||
>LDYAI A2osx.BlkStat
|
>LDYAI A2osX.BlkStat
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.BlkDrv.RW jsr A2osX.Prt2Blk
|
A2osX.BlkDrv.RW jsr A2osX.Blk.GetParam
|
||||||
bra A2osX.BlkDrv.Go
|
bra A2osX.BlkDrv.Go
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.BlkDrv.F jsr A2osX.Prt2Blk.NoParam
|
A2osX.BlkDrv.F jsr A2osX.Blk.GetDev
|
||||||
A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP
|
A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP
|
||||||
lda (pDev),y
|
lda (pDev),y
|
||||||
sta .8+1
|
sta .8+1
|
||||||
iny
|
iny
|
||||||
lda (pDev),y
|
lda (pDev),y
|
||||||
sta .8+2
|
sta .8+2
|
||||||
|
|
||||||
.8 jmp $ffff
|
.8 jmp $ffff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osx.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
A2osX.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
||||||
.BS 3
|
.BS 3
|
||||||
>PSTR "Generic Blk Dev"
|
>PSTR "Generic Blk Dev"
|
||||||
.BS 1
|
.BS 1
|
||||||
|
@ -176,18 +175,19 @@ A2osx.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA #0,#9
|
.DA #0,#9
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.Prt2Blk >STYA ZPDRV Get Ptr To ParamList
|
A2osX.Blk.GetParam
|
||||||
jsr A2osX.Prt2Blk.NoParam
|
>STYA ZPDRV Get Ptr To ParamList
|
||||||
|
jsr A2osX.Blk.GetDev
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
|
|
||||||
.1 lda (ZPDRV),y
|
.1 lda (ZPDRV),y
|
||||||
sta ($44),y
|
sta $44,y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
A2osX.Prt2Blk.NoParam
|
A2osX.Blk.GetDev
|
||||||
txa
|
txa
|
||||||
asl
|
asl
|
||||||
sta $42 CMD
|
sta $42 CMD
|
||||||
|
@ -211,23 +211,6 @@ A2osX.Prt2Blk.NoParam
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Smartport
|
|
||||||
*--------------------------------------
|
|
||||||
*A2osX.PrtDrv >STYA .1+1
|
|
||||||
* txa
|
|
||||||
* beq STATUS
|
|
||||||
* lsr
|
|
||||||
* sta .2
|
|
||||||
* tax
|
|
||||||
* lda A2osX.PRTCALL.Cnt,x
|
|
||||||
* sta PRTCALL.PARAMS
|
|
||||||
*.1 jsr $ffff
|
|
||||||
*.2 .BS 1 CMD
|
|
||||||
* .DA PRTCALL.PARAMS
|
|
||||||
* rts
|
|
||||||
*A2osX.PRTCALL.Cnt
|
|
||||||
* .HS 03030301030101010404
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.DRV.BadCall
|
A2osX.DRV.BadCall
|
||||||
lda #MLI.ERR.BADCALL
|
lda #MLI.ERR.BADCALL
|
||||||
sec
|
sec
|
||||||
|
|
|
@ -134,16 +134,14 @@ 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
|
||||||
.BS 6
|
.BS 6
|
||||||
.DA #3
|
>PSTR "NUL" NAME
|
||||||
.AS "NUL" NAME
|
|
||||||
.HS 00 NAME must Be 4 bytes long
|
.HS 00 NAME must Be 4 bytes long
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS cld
|
DevMgr.SYS cld
|
||||||
jmp (DevMgr.SYS.Code,x)
|
jmp (DevMgr.SYS.Code,x)
|
||||||
.DA #S.DEV.S.WRITE+S.DEV.S.READ
|
.DA #S.DEV.S.WRITE+S.DEV.S.READ
|
||||||
.BS 6
|
.BS 6
|
||||||
.DA #3
|
>PSTR "SYS" NAME
|
||||||
.AS "SYS" NAME
|
|
||||||
.HS 00 NAME must Be 4 bytes long
|
.HS 00 NAME must Be 4 bytes long
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Setup AuxLC $FFFE->Kernel IRQ Handler
|
* Setup AuxLC $FFFE->Kernel IRQ Handler
|
||||||
|
@ -263,30 +261,31 @@ DevMgrInit stz ZPPtr1
|
||||||
.2 ldy SmartPort.OFS,x Check if there is a smartport firmware
|
.2 ldy SmartPort.OFS,x Check if there is a smartport firmware
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp SmartPort.SIG,x
|
cmp SmartPort.SIG,x
|
||||||
bne .3 not a smartport...
|
bne .8 not a Disk Controller...
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
*SmartPort!!!
|
|
||||||
jsr DevMgrInit.SP
|
|
||||||
ldy #A2osX.SLOTS.SP
|
|
||||||
bra .7
|
|
||||||
* Disk II, or Block device ?
|
|
||||||
.3 dex if x=0, only first SIG byte failed
|
|
||||||
bpl .8
|
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
bne .4 $0, Disk II, 16sect
|
bne .3 $0, Disk II, 16sect
|
||||||
|
|
||||||
jsr DevMgrInit.DII
|
jsr DevMgrInit.DII
|
||||||
ldy #A2osX.SLOTS.DII
|
ldy #A2osX.SLOTS.DII
|
||||||
bra .7
|
bra .7
|
||||||
|
|
||||||
.4 inc
|
.3 inc
|
||||||
beq .7 $ff, Disk II, 13sect, ignore
|
beq .7 $ff, Disk II 13 Sect, ingnore
|
||||||
dec
|
dec
|
||||||
* Block device
|
|
||||||
jsr DevMgrInit.BLK
|
ldy #7
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
bne .4 $Cn07=00 : smartport
|
||||||
|
|
||||||
|
jsr DevMgrInit.SP
|
||||||
|
ldy #A2osX.SLOTS.SP
|
||||||
|
bra .7
|
||||||
|
|
||||||
|
.4 jsr DevMgrInit.BLK
|
||||||
ldy #A2osX.SLOTS.BLK
|
ldy #A2osX.SLOTS.BLK
|
||||||
|
|
||||||
.7 lda ZPPtr1+1
|
.7 lda ZPPtr1+1
|
||||||
|
@ -342,26 +341,24 @@ DevMgrInit.SP ldy #$ff
|
||||||
.DA #0 Status
|
.DA #0 Status
|
||||||
.DA SP.CTRL.STATUS
|
.DA SP.CTRL.STATUS
|
||||||
bcs .9
|
bcs .9
|
||||||
lda SP.STATUS1
|
lda SP.CTRL.STATUS.DATA
|
||||||
beq .9 no device
|
beq .9 no device
|
||||||
|
|
||||||
.2 lda #'1'
|
.2 lda #'1'
|
||||||
sta DEV.HEADER+S.DEV.NAME+2 SxD1
|
sta DEV.HEADER+S.DEV.DEVID
|
||||||
|
sta SP.DEV.STATUS.DEVID
|
||||||
|
|
||||||
.3 jsr $ffff Self Modified
|
.3 jsr $ffff Self Modified
|
||||||
.DA #0 Status
|
.DA #0 Status
|
||||||
.DA DEV.HEADER+S.DEV.S
|
.DA SP.DEV.STATUS
|
||||||
bcs .7
|
bcs .7
|
||||||
lda SP.STATUS2+S.DEVSTAT.S
|
lda SP.DEV.STATUS.DATA+S.DEVSTAT.S
|
||||||
sta DEV.HEADER+S.DEV.S
|
sta DEV.HEADER+S.DEV.S
|
||||||
|
|
||||||
|
jsr DevMgrInit.AddDev
|
||||||
|
|
||||||
|
.7 inc DEV.HEADER+S.DEV.DEVID
|
||||||
|
dec SP.CTRL.STATUS.DATA
|
||||||
|
|
||||||
|
|
||||||
.7 inc DEV.HEADER+7
|
|
||||||
dec SP.STATUS1
|
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -407,19 +404,22 @@ DEV.HEADER clc
|
||||||
.BS 1
|
.BS 1
|
||||||
>PSTR "S1D1" 5 bytes
|
>PSTR "S1D1" 5 bytes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SmartPort.OFS .HS 07010305
|
SmartPort.OFS .HS 010305
|
||||||
SmartPort.SIG .HS 00200003
|
SmartPort.SIG .HS 200003
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SP.CTRL.STATUS .DA #3
|
SP.CTRL.STATUS .DA #3
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA SP.STATUS1
|
.DA SP.CTRL.STATUS.DATA
|
||||||
.DA #0 return S only
|
.DA #0
|
||||||
|
SP.CTRL.STATUS.DATA
|
||||||
|
.BS 8 DevCnt
|
||||||
SP.DEV.STATUS .DA #3
|
SP.DEV.STATUS .DA #3
|
||||||
|
SP.DEV.STATUS.DEVID
|
||||||
.BS 1
|
.BS 1
|
||||||
.DA SP.STATUS2
|
.DA SP.DEV.STATUS.DATA
|
||||||
.DA #3 return DIB
|
.DA #3 return DIB
|
||||||
SP.STATUS1 .BS 4
|
SP.DEV.STATUS.DATA
|
||||||
SP.STATUS2 .BS S.DEVSTAT
|
.BS S.DEVSTAT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EvtMgrInit lda #$A5
|
EvtMgrInit lda #$A5
|
||||||
sta A2osX.TIMER16
|
sta A2osX.TIMER16
|
||||||
|
|
Loading…
Reference in New Issue
Block a user