2017-12-22 22:24:30 +01:00
|
|
|
|
NEW
|
2018-11-17 18:17:13 +01:00
|
|
|
|
PREFIX
|
2017-12-22 22:24:30 +01:00
|
|
|
|
AUTO 4,1
|
2016-10-26 22:51:06 +02:00
|
|
|
|
*/--------------------------------------
|
2018-06-21 17:12:10 +02:00
|
|
|
|
* # GetDevByName
|
2017-09-14 17:21:06 +02:00
|
|
|
|
* Y,A = Ptr to device name (C-String)
|
2018-10-11 17:23:06 +02:00
|
|
|
|
* ## RETURN VALUE
|
2018-08-08 17:13:37 +02:00
|
|
|
|
* CC = OK, CS = ERROR
|
|
|
|
|
* Y,A = FD
|
2019-02-28 16:45:33 +00:00
|
|
|
|
* X = hDev
|
2016-10-26 22:51:06 +02:00
|
|
|
|
*\--------------------------------------
|
2019-01-13 13:10:14 +00:00
|
|
|
|
K.GetDevByName >STYA ZPPtr1 requested dev name
|
2015-03-14 22:48:35 +01:00
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
ldx #1
|
2018-12-13 17:39:24 +01:00
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
.1 lda Dev.Table-1,x
|
2019-01-13 13:10:14 +00:00
|
|
|
|
clc
|
|
|
|
|
adc #S.FD.DEV
|
|
|
|
|
sta ZPPtr2
|
2018-06-25 07:59:43 +02:00
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
lda Dev.Table,x
|
2019-01-13 13:10:14 +00:00
|
|
|
|
beq K.GetDev.NODEV
|
|
|
|
|
adc /S.FD.DEV
|
|
|
|
|
sta ZPPtr2+1
|
2018-12-11 17:41:25 +01:00
|
|
|
|
|
2018-07-11 17:13:29 +02:00
|
|
|
|
ldy #$ff
|
2016-10-07 22:48:49 +02:00
|
|
|
|
|
2017-09-14 17:21:06 +02:00
|
|
|
|
.2 iny
|
|
|
|
|
lda (ZPPtr1),y
|
2018-12-11 17:41:25 +01:00
|
|
|
|
cmp (ZPPtr2),y
|
2019-01-13 13:10:14 +00:00
|
|
|
|
bne .7
|
2017-10-10 17:40:23 +02:00
|
|
|
|
|
2018-12-11 17:41:25 +01:00
|
|
|
|
ora (ZPPtr2),y Both char are 0 ?
|
2017-10-10 17:40:23 +02:00
|
|
|
|
bne .2 no....loop
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
.3 ldy Dev.Table-1,x
|
|
|
|
|
.4 lda Dev.Table,x
|
2019-01-13 13:10:14 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2019-01-13 13:10:14 +00:00
|
|
|
|
.7 inx
|
|
|
|
|
inx
|
2019-02-27 15:00:56 +00:00
|
|
|
|
cpx #K.DEV.MAX*2+1
|
2017-01-12 18:43:45 +01:00
|
|
|
|
bne .1
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2018-06-25 07:59:43 +02:00
|
|
|
|
K.GetDev.NODEV lda #MLI.E.NODEV
|
|
|
|
|
sec
|
2018-07-11 17:13:29 +02:00
|
|
|
|
K.GetDev.9 rts
|
2018-01-15 06:50:44 +00:00
|
|
|
|
*/--------------------------------------
|
2018-06-21 17:12:10 +02:00
|
|
|
|
* # GetDevStatus
|
2018-07-19 17:33:55 +02:00
|
|
|
|
* ## C
|
2019-02-13 06:50:10 +00:00
|
|
|
|
* `int getdevstatus(short int DevID, S.DIB* dstat);`
|
2018-07-19 17:33:55 +02:00
|
|
|
|
* ## ASM
|
2018-09-06 17:36:44 +02:00
|
|
|
|
* `>PUSHWI S.DIB`
|
|
|
|
|
* `lda DevID`
|
|
|
|
|
* `>SYSCALL GetDevStatus`
|
2018-10-11 17:23:06 +02:00
|
|
|
|
* ## RETURN VALUE
|
2018-01-15 06:50:44 +00:00
|
|
|
|
*\--------------------------------------
|
2019-01-13 13:10:14 +00:00
|
|
|
|
K.GetDevStatus tax
|
2018-07-19 17:33:55 +02:00
|
|
|
|
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
lda Dev.Table,x
|
2019-01-13 13:10:14 +00:00
|
|
|
|
beq K.GetDev.NODEV
|
2019-02-27 15:00:56 +00:00
|
|
|
|
ldy Dev.Table-1,x
|
2019-01-13 13:10:14 +00:00
|
|
|
|
>STYA pFD
|
|
|
|
|
|
2018-07-19 17:33:55 +02:00
|
|
|
|
lda #S.IOCTL.STATCODE.GETDIB
|
2018-09-07 16:12:42 +02:00
|
|
|
|
K.GetDevStatus.I
|
2018-07-19 17:33:55 +02:00
|
|
|
|
sta K.S.IOCTL+S.IOCTL.STATCODE
|
2018-09-07 16:12:42 +02:00
|
|
|
|
|
|
|
|
|
jsr K.IOCTL.GetPDrv
|
2018-07-19 17:33:55 +02:00
|
|
|
|
|
2018-07-18 17:30:42 +02:00
|
|
|
|
>LDYAI K.S.IOCTL
|
|
|
|
|
|
|
|
|
|
ldx #IOCTL.STATUS
|
2018-09-06 17:36:44 +02:00
|
|
|
|
jmp (pDrv)
|
2018-07-17 17:45:59 +02:00
|
|
|
|
*/--------------------------------------
|
|
|
|
|
* # MKDev
|
2018-10-05 16:58:38 +02:00
|
|
|
|
* Create a hDEV
|
|
|
|
|
* ## C
|
2018-12-11 17:41:25 +01:00
|
|
|
|
* `hDEV mkdev (S.FD * fd, const char *devname)`
|
2018-10-05 16:58:38 +02:00
|
|
|
|
* ## ASM
|
2018-12-11 17:41:25 +01:00
|
|
|
|
* `>PUSHW devname`
|
|
|
|
|
* `>LDYA fd`
|
2018-10-05 16:58:38 +02:00
|
|
|
|
* `>SYSCALL mkdev
|
2018-10-11 17:23:06 +02:00
|
|
|
|
* ## RETURN VALUE
|
2018-10-05 16:58:38 +02:00
|
|
|
|
* A = hDEV
|
2018-07-17 17:45:59 +02:00
|
|
|
|
*\--------------------------------------
|
2018-12-11 17:41:25 +01:00
|
|
|
|
K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
|
2018-08-08 17:13:37 +02:00
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
ldx DevMgr.DevIdx
|
|
|
|
|
cpx #K.DEV.MAX*2+1
|
2018-07-17 17:45:59 +02:00
|
|
|
|
beq .9
|
|
|
|
|
|
2019-01-13 13:10:14 +00:00
|
|
|
|
ldy #$ff
|
|
|
|
|
ldx #S.FD.DEV
|
|
|
|
|
|
|
|
|
|
.1 iny Get DEV name length
|
|
|
|
|
inx compute FD+NAME+\0 in X
|
|
|
|
|
lda (ZPPtr2),y
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
txa
|
|
|
|
|
tay
|
|
|
|
|
lda #0
|
|
|
|
|
|
|
|
|
|
jsr MEM.GetKrnlBuf
|
2018-08-24 14:40:19 +02:00
|
|
|
|
bcs .99
|
2018-09-07 16:12:42 +02:00
|
|
|
|
>STYA pFD
|
2019-01-13 13:10:14 +00:00
|
|
|
|
>STYA .4+1
|
2018-07-17 17:45:59 +02:00
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
ldx DevMgr.DevIdx
|
2019-01-13 13:10:14 +00:00
|
|
|
|
sta Dev.Table,x
|
2019-02-27 15:00:56 +00:00
|
|
|
|
tya
|
|
|
|
|
sta Dev.Table-1,x
|
2018-07-17 17:45:59 +02:00
|
|
|
|
|
2018-09-07 16:12:42 +02:00
|
|
|
|
ldy #S.FD.DEV-1
|
2018-07-17 17:45:59 +02:00
|
|
|
|
|
2019-01-13 13:10:14 +00:00
|
|
|
|
.2 lda (ZPPtr1),y
|
2018-10-05 16:58:38 +02:00
|
|
|
|
sta (pFD),y
|
2018-09-07 16:12:42 +02:00
|
|
|
|
dey
|
2019-01-13 13:10:14 +00:00
|
|
|
|
bpl .2
|
|
|
|
|
|
|
|
|
|
ldy #$ff
|
|
|
|
|
ldx #S.FD.DEV-1
|
|
|
|
|
|
|
|
|
|
.3 iny
|
|
|
|
|
inx
|
|
|
|
|
lda (ZPPtr2),y
|
|
|
|
|
.4 sta $ffff,x
|
|
|
|
|
bne .3
|
2018-08-08 17:13:37 +02:00
|
|
|
|
|
2018-09-07 16:12:42 +02:00
|
|
|
|
>LDYAI K.IOBuf
|
|
|
|
|
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
|
|
|
|
|
|
|
|
|
|
lda #S.IOCTL.STATCODE.STATUS
|
|
|
|
|
|
|
|
|
|
jsr K.GetDevStatus.I
|
|
|
|
|
bcs .99
|
|
|
|
|
|
2018-10-11 17:23:06 +02:00
|
|
|
|
lda K.IOBuf Get Status byte
|
|
|
|
|
bit #S.DIB.S.IRQ
|
|
|
|
|
beq .8
|
2018-09-07 16:12:42 +02:00
|
|
|
|
|
2018-10-11 17:23:06 +02:00
|
|
|
|
ldx #0
|
|
|
|
|
|
2019-01-13 13:10:14 +00:00
|
|
|
|
.5 lda IRQ.Vectors+1,x
|
2018-12-11 17:41:25 +01:00
|
|
|
|
beq .7
|
|
|
|
|
|
2018-10-11 17:23:06 +02:00
|
|
|
|
inx
|
|
|
|
|
inx
|
2019-02-27 15:00:56 +00:00
|
|
|
|
cpx #K.IRQDEV.MAX*2+1
|
2019-01-13 13:10:14 +00:00
|
|
|
|
bne .5
|
2018-07-17 17:45:59 +02:00
|
|
|
|
|
2018-10-21 22:54:07 +02:00
|
|
|
|
.9 lda #E.OOH
|
2018-07-17 17:45:59 +02:00
|
|
|
|
* sec
|
2018-08-24 14:40:19 +02:00
|
|
|
|
.99 rts
|
2018-10-11 17:23:06 +02:00
|
|
|
|
|
2018-12-11 17:41:25 +01:00
|
|
|
|
.7 lda pFD
|
2018-10-11 17:23:06 +02:00
|
|
|
|
sta IRQ.Vectors,x
|
|
|
|
|
lda pFD+1
|
|
|
|
|
sta IRQ.Vectors+1,x
|
|
|
|
|
|
2019-02-27 15:00:56 +00:00
|
|
|
|
.8 lda DevMgr.DevIdx
|
|
|
|
|
inc DevMgr.DevIdx
|
|
|
|
|
inc DevMgr.DevIdx
|
2018-12-18 15:37:07 +01:00
|
|
|
|
* clc
|
2018-10-11 17:23:06 +02:00
|
|
|
|
rts
|
2016-02-24 20:52:24 +01:00
|
|
|
|
*--------------------------------------
|
2015-03-14 22:48:35 +01:00
|
|
|
|
MAN
|
2018-11-17 18:17:13 +01:00
|
|
|
|
SAVE USR/SRC/SYS/KERNEL.S.DEV
|
|
|
|
|
LOAD USR/SRC/SYS/KERNEL.S
|
2015-03-14 22:48:35 +01:00
|
|
|
|
ASM
|