\]SSPECL$>]QICCOMZ;;Welches Kommando ?]R>;;DRAW ?]FDRAWA;;Ja ->]R>;;Fill ?]FDRAWB;;Ja ->].%>NVALID;;Fehler: Kommando existiert nicht]:] DRAWB2]DRAWA&FILFLG]#QROWCRS;;Neue Cursorposition in]PNEWROW;;NEWROW, NEWCOL] QCOLCRS] PNEWCOL]QCOLCRS]PNEWCOL]Q>;;Richtungsvorgabe] PROWINC] PCOLINC];;;Richtung finden:] QNEWROW] SOLDROW] PDELTAR] EDRAW1;;New>=Old: Abw{rts ->]Q>] PROWINC]QDELTAR;;DELTAR=-DELTAR]N>],]O>] PDELTAR] DRAW1;]QNEWCOL;;Jetzt die Spalte] SOLDCOL] PDELTAC]QNEWCOL]SOLDCOL]PDELTAC]EDRAW2;;New>=Old: Rechts ->]Q>]PCOLINC;;Richtung: Links]$QDELTAC;;DELTAC=-DELTAC (16 Bit)]N>] PDELTAC]QDELTAC]N>]PDELTAC] #DELTAC] HDRAW2]#DELTAC](DRAW2$>;;Ram f}r Schleife loeschen]%>] 'COLAC] DRAW3AC] PROWAC9] QOLDROW9] PROWCRS9]0]IDRAW3A;;Schleife ->]/QDELTAC;;Ist dReihe oder dSpalte groesser ?] 2;;X=0]?]QDELTAC]PCOUNTR^ PENDPT^,HDRAW3;;Wenn dSpalte HI>0 ist es dSpalte^ QDELTAC^ RDELTAR^EDRAW3;;dSpalte >= dReihe^ QDELTAR;;dReihe ist groesser^$>^?^!DRAW3C;;Y=dReihe o. Y=dSpalte ^ PCOUNTR ^ PENDPT ^ 5;;Rette A ^1QENDPT;;Lese HI-Byte von dSpalte (1 o. 0), ^V?;;schiebe es in C^7;;A zur}ck^W?;;C nach Bit 7^ PROWAC9^&DRAW4AQCOUNTR;;Ist der Z{hler=0 ?^LCOUNTR^HDRAW11;;Nein ->^!!DRAW10;;Ja, Ende mit DRAW ->^ DRAW11,^QROWAC;;Im ersten Lauf =0^ ODELTAR^ PROWAC^ DDRAW5^ #ROWAC^#DRAW5QROWAC;;Schon fertig ?^"RENDPT;;(ROWAC+1>ENDPT+1 ?)^ DDRAW6;;Nein, ist kleiner ->^!HDRAW5A;;Nein, ist gleich ->^QROWAC;;Nun das LO-Byte ^ RENDPT!^DDRAW6;;Ist kleiner ->"^ DRAW5A,#^QROWCRS;;>=, n{chster Punkt$^ OROWINC%^ PROWCRS&^ $>;;(ROWAC)=(ROWAC)-(ENDPT)'^ SUBEND(^'DRAW6,;;Das gleiche mit der Spalte:)^QCOLAC;;16 Bit Addition*^ ODELTAC+^ PCOLAC,^ QCOLAC-^ODELTAC.^ PCOLAC/^!RENDPT;;Vergleiche HI-Byte0^DDRAW8;;COLAC+11^HDRAW6A;;Sind gleich ->2^QCOLAC;;Vergleiche LO-Byte3^ RENDPT4^ DDRAW8;;COLAC ist kleiner ->5^'DRAW6A*COLINC;;Rechts oder Links ?6^IDRAW6B;;Rechts ->7^ "COLCRS;;(COLCRS)=(COLCRS)-18^*QCOLCRS;;(umst{ndlich, aber schneller)9^R>:^ HDRAW7;^QCOLCRS<^ FDRAW7=^"COLCRS>^IDRAW7;;Unbedingt?^'DRAW6B#COLCRS;;(COLCRS)=(COLCRS)+1@^$HDRAW7;;(So rum gehts einfacher)A^#COLCRSB^&DRAW7$>;;(COLAC)=(COLAC)-(ENDPT)C^ SUBENDD^%DRAW8 RANGE;;Cursor im Bereich ?E^ OUTPLT;;Zeichen ausgebenF^(QFILFLG;;Fl{che nach rechts f}llen ?G^FDRAW9;;Nein ->H^ PHACRS;;Cursorpos. rettenI^QATACHR;;Zeichen rettenJ^ PHOLD4K^*DRAW8AQROWCRS;;F}r den Fall, dass dasL^5;;auszugebende Zeichen $9BM^( INCRSA;;ist, wird die ZeilennummmerN^7;;gerettet.O^ PROWCRSP^ RANGEQ^) GETPLT;;Zeichen vom Bildschirm lesenR^"HDRAW8B;;<>0. Ende mit Fill ->S^QFILDAT;;Zeichen zum f}llenT^ PATACHRU^ OUTPLT;;Zeichen ausgebenV^!DRAW8A;;Schleife ->W^!DRAW8BQHOLD4;;Zeichen zur}ckX^ PATACHRY^ PLACRS;;Cursorpos. zur}ckZ^DRAW9;;;(COUNTR)=(COUNTR)-1[^ QCOUNTR\^S>]^ PCOUNTR^^QCOUNTR_^S>`^PCOUNTRa^GDRAW10;;Fertig ->b^!!DRAW4A;;Noch nicht fertig ->c^DRAW10!RETUR1;;Ended^L0675 ===e^COLRTB (===Ff^ g^ CNTRLS h^ ESCAPE;;$F3E0i^ j^ CRSRUP;;$F3E6k^ l^ CRSRDN;;$F3F3m^ n^ CRSRLF;;$F400o^ p^ CRSRRT;;$F411q^ }r^ CLRSCR;;$F420s^ ~t^ BS;;$F450u^ v^ TAB;;$F47Aw^ x^ DOCRWS;;$F661y^ z^ DELLIN;;$F520{^ |^ INSLIN;;$F50C}^ ~^ CLRTAB;;$F49A^ ^ SETTAB;;$F495^ ^ BELL;;$F556^ ^ DELCHR;;$F4D5^ ^ INSCHR;;$F49F^ ^ CRSRHM;;$F440^ ^ CRSRBT;;$F55F^ ^ CRSRLM;;$F41B^ ^ CRSRRM;;$F40A^ATAINT @== =`^INTATA  =@==`^KEYDEF l=j=;=;;$00^ =k=+=*^ o==p=u^ =i=-==^ v==c=;;$10^ =b=x=z^ 4==3=6^ =5=2=1^ ,= =.=n;;$20^ =m=/=^ r==e=y^ =t=w=q^ 9==0=7;;$30^ ~=8=<=>^ f=h=d=^ =g=s=a^# L=J=:=;;$40 SHIFT gedr}ckt^ =K=\=^^ O==P=U^ =I=_=|^ V==C=;;$50^ =B=X=Z^ $==#=&^ =%="=!^ [= =]=N;;$60^ =M=?=^ R==E=Y^ =T=W=Q^ (==)=';;$70^ =@=}=^ F=H=D=^ =G=S=A^%  = ={=;;$80 CONTROL gedr}ckt^ = ==^ ===^ = ==^ ===;;$90^ ===^ ===^ ===^ = =`=;;$A0^ = ==^ ===^ ===^ ===;;$B0^ ==}=^ ===^ ===^FKDEF ===^ ===^APokey Interrupt HandlerA