xi"PINITQ>;;30 Sekunden Timeoutyi PTEMP2zi:{i+PHSTLO DVSTAT;;Zeiger auf Statuspuffer|i,PHCHLO PRNBUF;;Zeiger auf Zeichenpuffer}iPSTATSQ>~i!PPBUFSZ;;Puffergroesse 4 Bytei$PHSTLO;;Pufferadresse aufi%PHSTLO;;Status PufferiQ> S;;SIO: Status Kommandoi PDCOMNDi PDAUX1i4 SETDCB;;$40,$xx,$53,$40,$EA,$02,$1E,$00,$04,$00i SIOViGBADST;;Fehler ->i PHPUT;;TEMP2=DVSTAT+2iPGETi PSPECLi BADST:i%POPEN PSTATS;;Status feststelleniQ>iPPBPNT;;Puffer sei leeri:iPPUT5;;Zeichen retteniQICDNO9;;Ger{tenummeriPICDNOZ;;in Page 0 IOCBi PRMODEi $PBPNTi7;;Zeichen zur}cki!PPRNBUF9;;Im Puffer speicherni2i(PBUFSZ;;Puffer voll ?iFBUFFUL;;Ja ->i'&PBPNT;;Zeiger f}r n{chstes ZeicheniR>;;War das Zeichen EOL ?i/FBLFILL;;Ja, f}lle Puffer m. Leerzeichen ->i%>SUCCES;;Status oki:i#BLFILLQ> ;;Leerzeichen (Blank)iFILLBFPPRNBUF9i2i(PBUFSZ;;Puffer voll ?iHFILLBF;;Nein ->iBUFFULQ>iPPBPNT;;Puffer sei leeri$PHCHLO;;Datenpufferadressei%PHCHLOi SETDCBi !SIOViPCLOSE PRMODEiQ>i$$PBPNT;;Ist noch was im Puffer ?i"HFILLBF;;Ja, erst senden, danni%>;;Kanal schliessen.i:i/SETDCB&DBUFLO;;Pufferadresse in X=LO, Y=HIi 'DBUFHIiQ>@;;Ger{tekennungi PDDEVICiQICDNOZ;;Ger{tenummeri PDUNITiQ>;;SIO schreibeni$DCOMND;;Welches Kommando ?i)(> S;;Beim Status werden Daten geleseniHPSIOC;;Nicht Status ->iQ>@;;SIO leseniPSIOCPDSTATSiQPBUFSZ;;Pufferl{ngei PDBYTLOiQ>i PDBYTHIiQTEMP2;;Timeout-Zeiti PDTIMLOi:i$PHPUTQDVSTAT;;TEMP2=DVSTAT+2i PTEMP2i:i*PRMODE%> W;;Kommando schreiben (write)iQICAX2Z;;DruckmodusiCMODER> N;;Normal ?iHCDUBL;;Nein ->i$>(;;Normale PuffergroesseiHSETBSZ;;UnbedingtiCDUBLR> D;;Doppelt ?iHCSIDE;;Nein ->i!$>;;Puffergroesse f. doppeltiHSETBSZ;;UnbedingtiCSIDER> S;;Seitw{rts ?iHGOERR;;Nein ->i#$>;;Puffergroesse f. seitw{rtsiSETBSZ&PBUFSZi'DCOMND;;KommandoiPDAUX1;;Druckmodusi:i%GOERRQ> N;;Voreinstellung: NormaliHCMODE;;UnbedingtiARom TestA