home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ABBUC Magazin 39A
/
ABBUC_Magazin_39_19xx_ABBUC_Side_A.atr
/
xfdtrans.inc
< prev
next >
Wrap
Text File
|
2023-02-26
|
3KB
|
1 lines
¢; Includedatei fuer XFDTRANS.ACT¢;---¢¢MODULE¢BYTE CIO_status¢¢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 () ; ansprung der sioroutine¢¢RETURN (dstats)¢¢;---¢¢PROC C_On ()¢¢BYTE crsin=752¢¢crsin=0¢¢RETURN¢¢PROC C_Off ()¢¢BYTE crsin=752¢¢crsin=1¢¢RETURN¢¢BYTE FUNC Inkey ()¢¢BYTE atascii¢¢ Close (2)¢ Open (2,"K:",4,0)¢ atascii=GetD(2)¢ Close(2)¢¢RETURN (atascii)¢¢PROC Pause (CARD times)¢¢BYTE wsync=$14,q¢CARD u¢¢FOR u=1 TO times¢DO¢ FOR q=1 TO 200¢ DO¢ wsync=q¢ OD¢OD¢¢RETURN¢¢PROC Beep (BYTE times)¢¢BYTE u¢¢FOR u= 1 TO times¢DO¢ PutD (0,253)¢ Pause (10)¢OD¢¢RETURN¢¢PROC Getin (BYTE ARRAY text,BYTE len)¢¢ BYTE ascii,pos,u,inv¢¢ pos=text(0)+1¢ inv=0¢¢ IF text(0)#0 THEN¢ Print (text)¢ FI¢¢ DO¢ ascii=Inkey ()¢¢ IF ascii=129 THEN¢ inv==!$80¢ FI¢ IF ascii=$1E AND pos>1 THEN¢ pos==-1¢ PutD (0,$1E)¢ FI¢ IF ascii=$7E AND pos>1 THEN¢ pos==-1¢ PutD (0,$7E)¢ FI¢ IF ascii=$1F AND pos#len+1 THEN¢ pos==+1¢ PutD (0,$1F)¢ FI ¢ IF ascii>26 AND ascii<32 THEN¢ ascii=128¢ FI¢ IF pos#len+1 AND ascii<$7E THEN¢ ascii==+inv¢ PutD (0,ascii)¢ text(pos)=ascii¢ pos==+1¢ FI¢ text(0)=pos-1¢ UNTIL ascii=$9B¢ OD¢¢RETURN¢¢PROC Write (BYTE x,y,BYTE ARRAY string)¢¢ BYTE u,chr¢ CARD savmsc=$58¢ BYTE POINTER adr¢¢ adr=savmsc+y*40+x¢¢ FOR u=1 TO string(0)¢ DO¢ chr=string(u)¢ IF chr>=0 AND chr<32 THEN¢ chr==+64¢ ELSEIF chr>31 AND chr<95 THEN¢ chr==-32¢ ELSEIF chr>127 AND chr<160 THEN¢ chr==+64¢ ELSEiF chr>159 AND chr<224 THEN¢ chr==-32¢ FI¢ adr^=chr¢ adr==+1¢ OD¢RETURN¢¢BYTE FUNC Find (BYTE ARRAY str2,str1)¢¢ BYTE len1,len2,z1,z2,flg,pos¢¢ IF str1(0)>=str2(0) THEN¢ len2=str2(0)¢ len1=str1(0)¢ len1==-len2+1¢ z1=0¢ z2=0¢ DO¢ flg=$FF¢ z1==+1¢ FOR z2=1 to len2¢ DO¢ IF str1(z1+z2-1)#str2(z2) THEN¢ flg=0¢ FI¢ OD¢ UNTIL z1=len1 OR flg#0¢ OD¢ IF flg#0 THEN¢ pos=z1¢ ELSE¢ pos=0¢ FI¢ ELSE¢ pos=0¢ FI¢¢RETURN (pos)¢¢PROC Upper (BYTE ARRAY text)¢¢ BYTE u¢¢ FOR u=1 TO text(0)¢ DO¢ IF text(u)>$60 AND text(u)<$7B THEN¢ text(u)==-$20¢ FI¢ OD¢¢RETURN¢¢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]¢¢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]¢¢