2017-12-22 21:24:30 +00:00
|
|
|
|
NEW
|
2017-03-29 15:48:15 +00:00
|
|
|
|
PREFIX /A2OSX.BUILD
|
2017-12-22 21:24:30 +00:00
|
|
|
|
AUTO 4,1
|
2016-10-26 20:51:06 +00:00
|
|
|
|
*/--------------------------------------
|
2017-08-25 06:37:21 +00:00
|
|
|
|
* # GetDevByID.A
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **In:**
|
2018-06-18 06:22:50 +00:00
|
|
|
|
* A = DevID
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **Out:**
|
2018-06-18 06:22:50 +00:00
|
|
|
|
* CC = OK, CS = ERROR
|
|
|
|
|
* Y,A = DEVSLOT
|
|
|
|
|
* note: X Unmodified
|
2016-10-26 20:51:06 +00:00
|
|
|
|
*\--------------------------------------
|
2017-08-25 06:37:21 +00:00
|
|
|
|
K.GetDevByID.A cmp DevMgr.Count
|
2016-09-21 15:20:37 +00:00
|
|
|
|
bcs K.GetDevDNF
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
2017-03-15 16:44:15 +00:00
|
|
|
|
asl
|
2015-06-03 18:30:57 +00:00
|
|
|
|
tay
|
2017-01-12 17:43:45 +00:00
|
|
|
|
|
2018-01-15 06:50:44 +00:00
|
|
|
|
lda /Dev.Table
|
|
|
|
|
adc #0
|
2015-06-03 18:30:57 +00:00
|
|
|
|
rts CC
|
2016-10-26 20:51:06 +00:00
|
|
|
|
*/--------------------------------------
|
2017-08-25 06:37:21 +00:00
|
|
|
|
* # GetDevByName.YA
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **In:**
|
2017-09-14 15:21:06 +00:00
|
|
|
|
* Y,A = Ptr to device name (C-String)
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **Out:**
|
2015-03-14 21:48:35 +00:00
|
|
|
|
* CC = OK, CS = ERROR
|
2015-06-03 18:30:57 +00:00
|
|
|
|
* X = DEVID
|
2016-12-09 16:36:24 +00:00
|
|
|
|
* Y,A = DEVSLOT
|
2016-10-26 20:51:06 +00:00
|
|
|
|
*\--------------------------------------
|
2017-08-25 06:37:21 +00:00
|
|
|
|
K.GetDevByName.YA
|
2017-01-12 17:43:45 +00:00
|
|
|
|
>STYA ZPPtr1
|
2017-10-27 06:36:46 +00:00
|
|
|
|
>LDYAI Dev.Table+S.DEV.NAME
|
2017-01-12 17:43:45 +00:00
|
|
|
|
>STYA ZPPtr2
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2015-06-03 18:30:57 +00:00
|
|
|
|
ldx #0
|
|
|
|
|
|
2017-09-14 15:21:06 +00:00
|
|
|
|
.1 ldy #$ff
|
2016-10-07 20:48:49 +00:00
|
|
|
|
|
2017-09-14 15:21:06 +00:00
|
|
|
|
.2 iny
|
|
|
|
|
lda (ZPPtr1),y
|
2017-10-10 15:40:23 +00:00
|
|
|
|
cmp (ZPPtr2),y
|
|
|
|
|
bne .3
|
|
|
|
|
|
|
|
|
|
ora (ZPPtr2),y Both char are 0 ?
|
|
|
|
|
bne .2 no....loop
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2017-01-12 17:43:45 +00:00
|
|
|
|
lda ZPPtr2
|
2018-01-15 06:50:44 +00:00
|
|
|
|
and #$F0
|
2015-06-03 18:30:57 +00:00
|
|
|
|
tay
|
2017-01-12 17:43:45 +00:00
|
|
|
|
lda ZPPtr2+1
|
2015-03-14 21:48:35 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2017-10-10 15:40:23 +00:00
|
|
|
|
.3 lda ZPPtr2
|
2015-03-14 21:48:35 +00:00
|
|
|
|
clc
|
2016-10-03 15:59:36 +00:00
|
|
|
|
adc #S.DEV
|
2017-01-12 17:43:45 +00:00
|
|
|
|
sta ZPPtr2
|
2015-06-03 18:30:57 +00:00
|
|
|
|
bcc .4
|
|
|
|
|
|
2017-01-12 17:43:45 +00:00
|
|
|
|
inc ZPPtr2+1
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2017-01-12 17:43:45 +00:00
|
|
|
|
.4 inx
|
|
|
|
|
cpx DevMgr.Count
|
|
|
|
|
bne .1
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2017-10-26 16:01:54 +00:00
|
|
|
|
K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
|
2015-03-14 21:48:35 +00:00
|
|
|
|
rts
|
2018-01-15 06:50:44 +00:00
|
|
|
|
*/--------------------------------------
|
2018-04-18 15:18:32 +00:00
|
|
|
|
* # GetDevStatus.A
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **In:**
|
2018-01-15 06:50:44 +00:00
|
|
|
|
* A = DevID
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **Out:**
|
2018-01-15 06:50:44 +00:00
|
|
|
|
* Y,A = S.DSTAT
|
|
|
|
|
*\--------------------------------------
|
2018-04-16 15:25:39 +00:00
|
|
|
|
K.DevClose.A ldx #DEVMGR.CLOSE
|
|
|
|
|
.HS 2C BIT ABS
|
2018-01-15 06:50:44 +00:00
|
|
|
|
K.GetDevStatus.A
|
2018-04-16 15:25:39 +00:00
|
|
|
|
ldx #DEVMGR.STATUS
|
2018-01-15 06:50:44 +00:00
|
|
|
|
jsr K.GetDevByID.A
|
2018-04-16 15:25:39 +00:00
|
|
|
|
bcs K.IOCTL.9
|
2018-01-15 06:50:44 +00:00
|
|
|
|
|
|
|
|
|
>STYA pDev
|
|
|
|
|
|
|
|
|
|
jmp (pDev)
|
|
|
|
|
*/--------------------------------------
|
2018-04-18 15:18:32 +00:00
|
|
|
|
* # IOCTL
|
2018-06-18 06:22:50 +00:00
|
|
|
|
* ## C
|
|
|
|
|
* `int ioctl ( short int id, short int op, void *param);`
|
|
|
|
|
* ## ASM
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **In:**
|
2018-06-18 06:22:50 +00:00
|
|
|
|
* `PUSHWI param`
|
|
|
|
|
* `lda #op`
|
|
|
|
|
* `ldy id`
|
|
|
|
|
* `>SYSCALL IOCTL`
|
2018-06-14 15:31:36 +00:00
|
|
|
|
* **Out:**
|
2018-01-15 06:50:44 +00:00
|
|
|
|
* Y,A = ...
|
|
|
|
|
*\--------------------------------------
|
2018-06-18 06:22:50 +00:00
|
|
|
|
K.IOCTL tax op
|
|
|
|
|
>PULLB .1+1 param LO
|
|
|
|
|
>PULLB .2+1 param HI
|
2018-01-15 06:50:44 +00:00
|
|
|
|
|
2018-06-18 06:22:50 +00:00
|
|
|
|
tya id
|
2018-01-15 06:50:44 +00:00
|
|
|
|
|
|
|
|
|
jsr K.GetDevByID.A
|
2018-04-16 15:25:39 +00:00
|
|
|
|
bcs K.IOCTL.9
|
2018-01-15 06:50:44 +00:00
|
|
|
|
|
|
|
|
|
>STYA pDev
|
|
|
|
|
|
|
|
|
|
.1 ldy #$ff SELF MODIFIED
|
|
|
|
|
.2 lda #$ff SELF MODIFIED
|
|
|
|
|
|
2018-06-18 06:22:50 +00:00
|
|
|
|
jmp (pDev) x = op
|
2018-01-15 06:50:44 +00:00
|
|
|
|
|
2018-04-16 15:25:39 +00:00
|
|
|
|
K.IOCTL.9 rts
|
2016-02-24 19:52:24 +00:00
|
|
|
|
*--------------------------------------
|
2015-03-14 21:48:35 +00:00
|
|
|
|
MAN
|
2017-03-29 15:48:15 +00:00
|
|
|
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
|
|
|
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
2015-03-14 21:48:35 +00:00
|
|
|
|
ASM
|