!!!SIO CIO Routine
General Information
Author: Carsten Strotmann \\
Language: ACTION! \\
Compiler/Interpreter: ACTION! \\
{{{
;******************************
;** **
;** PHOENIX SOFTCREW **
;** IO Routines **
;** IO "IO.INC" **
;******************************
MODULE
BYTE CIO_status
;-----------------------------------
CHAR FUNC CIOQ=*(BYTE dev, CARD addr,
size, BYTE cmd, aux1, aux2)
[$29$F$85$A0$86$A1$A$A$A$A$AA$A5$A5
$9D$342$A5$A3$9D$348$A5$A4$9D$349
$A5$A6$F0$8$9D$34A$A5$A7$9D$34B$98
$9D$345$A5$A1$9D$344$20$E456
$8C CIO_status$C0$88$D0$6$98$A4$A0
$99 EOF$A085$60]
;-----------------------------------
CARD FUNC Bget=*(BYTE dev,
CARD addr, size)
[$48$A9$7$85$A5$A9$0$85$A6$A5$A3$5$A4
$D0$6$85$A0$85$A1$68$60$68$20 CIOQ
$BD$348$85$A0$BD$349$85$A1$60]
;-----------------------------------
PROC BPut=*(BYTE dev,
CARD addr, size)
[$48$A9$B$85$A5$A9$0$85$A6$A5$A3$5$A4
$D0$2$68$60$68$4C CIOQ]
;-----------------------------------
PROC PutCD=*(BYTE chan, CARD n)
BYTE c=$AA, lo=$AB, hi=$AC
[
$85 c
$86 lo
$84 hi
]
CIOQ(c,lo,0,11,0)
CIOQ(c,hi,0,11,0)
RETURN
;-----------------------------------
CARD FUNC GetCD(BYTE chan)
CARD out
BYTE lo=out, hi=out+1
lo = CIOQ(chan,0,0,7,0)
hi = CIOQ(chan,0,0,7,0)
RETURN(out)
;-----------------------------------
PROC siov=$E459 ()
;-------------------------------------
BYTE FUNC Sio (BYTE num,comnd,stats,tim,CARD buf,byt,sec)
BYTE ddevic=$300,
dunit=$301,
dcomnd=$302,
dstats=$303,
dtimlo=$306
CARD dbuf=$304,
dbyt=$308,
daux=$30A
ddevic=$31
dunit=num
dcomnd=comnd
dstats=stats
dtimlo=tim
dbuf=buf
dbyt=byt
daux=sec
siov () ; Jump through SIO Vector
RETURN (dstats)
;----------------------------------
}}}