EDASSTKSP3˙F˙˙Assembler-Unterprogramme˙und Speicherstellen !˙˙Screen$bc68˙Dpuf$f000˙Fnm$2d00Filename˙Buf$2e00˙Linbuf$2c00˙Asbas$5000˙HexwndAsbas+3˙8Linlo$2380Zeilenadressen der angezeigten Zeilen˙8%Linhi$23a0(nur fuer Editor).˙%Lotab$23c0Bildadressen˙Hitab$23e0˙ Vbas$1ff0VariablenBasis˙ QtnVbasQuelltextnummer˙gPiabytVbas+1Konfiguration fuer aktuellen Quelltext (QTN). Bei Aenderung nach RAMTAB springen !˙g+ErrflgVbas+2Fehlerflag fuer Editor˙+:WertVbas+32 Byte-zwischenspeicher (Variablenwert)˙:CxVbas+7Cursor-X-Pos.˙hRepflgVbas+8Repair-Flag. Wird es gesetzt, springt der Editor automatisch in die REPAIR-Routine!˙h&Edbas$4000Basisadresse Editor˙&GetlinEdbas+3˙RCalclenEdbas+9Berechnet die (restliche) Laenge des Quelltextes ab TEXTPT!˙R_RepairEdbas+12Repariert den Quelltext (Korregiert eine fehlerhafte Verkettung (LINK)).˙_iLoadlinEdbas+15Fuegt die Zeile in BUF (ASCII) in den Text ab TEXTPT ein (wie bei "Read ASCII") !˙iQAsclineEdbas+18Wandelt die Zeile (TOKEN) in TEXTPT in das ASCII-Format !˙QDezwndEdbas+21˙7PrtfreeEdbas+24gibt Statuszeile aus (komplett)˙7Mabas$2400Basis MAIN˙ARdmMabas+3Lese Byte aus Quelltext "(TEXTPT),Y"-Indiziert˙A9WrmMabas+6Schreibe Byte in Quelltext (siehe RDM)˙9IRamtabMabas+9Konfigurationsbyte berechnen (QTN, Quelltextnummer)˙IUTransferMabas+12Verschieberoutine (Nur fuer Quelltext, Konfiguriert selbst!)˙U*AtiMabas+15ASCII to Internal Code˙*IGrklMabas+18Kleinbuchstaben (im Accu) in Grossbuchstaben wandeln˙I(ReadkeyMabas+21Tastatur-Abfrage˙(SetfontMabas+27˙ClsMabas+30˙,DgetMabas+33Laedt in Text (DST,LEN)˙,1DputMabas+36Speichert aus Text (SRC,LEN)˙1/OpenMabas+39Oeffnet Kanal 1 (Filename)˙/CloseMabas+42˙MadosMabas+51˙DisplayMabas+78˙ Zp$80˙ 2ScrptZpBildschirmpointer (Zeilen-adresse)˙2MptZp+2˙7TextptZp+4Text-Adresse (Anfang aktuelle Zeile)˙7(TxtposZp+6Position in der Zeile˙()ScrposZp+7Position im Bildschirm˙)CFirstZp+8Quelltextadresse der ersten angezeigten Textzeile˙C9LinkZp+$a2 Byte Zwischenspeicher (Link,BackLink)˙9PrtlinZp+$c˙LastlinZp+$d˙ModeZp+$e˙TypZp+$f˙BufptrZp+$11˙BufcurZp+$12˙CyZp+$13˙WorkZp+$14˙Work2Zp+$16˙SrcZp+$18˙DstZp+$1a˙LenZp+$1c˙PcZp+$1e˙˙Free$ff00bis FFF9˙SndflgFree˙WrkWork2Free+1˙IndirFree+2˙NumbersFree+4˙FlagFree+6˙FlagdoFree+7˙1ParLnkFree+8Offset f. Parameter in Zeile˙1,BufLnkFree+9Interner Zeiger auf BUF˙,,BufLnk2Free+10Zeiger auf neuen BUF!˙,LinksavFree+11˙OriglenFree+12˙ChangesFree+13˙UsedFree+14˙$TotallinFree+163 Byte BCD !˙$TotalusFree+192 Byte˙˙ Hauptprogramm der Tool-Box !˙ ˙ $f400,$a000˙˙ "TOOLBOX"˙ Start˙ ˙Unterprogramme˙˙ Ertxt˙ $ Ein Fataler Fehler$˙$ ist aufgetreten ! $˙ Error˙ 0˙ 0 Cy˙ ˙ 0 Cx˙ 39˙ Er0 Ertxt˙ / $bc40˙ ˙  Er0˙  709˙ -1˙ / 709˙ / 53271˙  710˙ -1˙ / 710˙ / 53272˙  712˙ -1˙ / 712˙ / 53274˙ 0˙ El20˙  Sndflg˙ 8˙8˙ / Sndflg˙  710˙  El3˙ / 53279˙ El3˙  El3˙ ˙  El2˙  Error˙ ˙Print%˙ / Pc˙ %˙ / Pc+1˙  Prtlin˙ 31˙ 2˙  Lotab˙ / Scrpt˙  Hitab˙ / Scrpt+1˙  Prtlin˙ 1˙Prl1Pc˙  Prl2˙ ˙ 41˙  Prl1˙  Error˙ Prl2˙ 7˙ ˙ / Wrk˙ 19˙ ,˙ + Wrk˙  ˙  Scrpt˙ / Scrpt˙  Scrpt+1˙0˙/ Scrpt+1˙1˙Prl3Pc˙$˙ 127˙  Ati˙ /Scrpt˙ ˙&˙  Prl3˙ ˙7˙ ˙  Pc˙ 3˙0˙  Pc+1˙ #˙7˙#˙*˙ Cls1˙ 1˙ / Prtlin˙  Cls˙ ˙Start des Hauptprogrammes˙˙ Start˙  Cls1˙ 1˙ / Scrpos˙  Print˙ %\Toolbox V1.2 Assembler Tools:\˙%  Print˙ %\=============================\˙%7˙ / Prtlin˙  Print˙ '!\1) > Alle Kommentare loeschen! \˙'  Prtlin˙  Print˙ '!\2) > Alle Parameter optimieren!\˙'  Prtlin˙  Print˙ '!\3) > Umschalten (256-KB-Option)\˙' 18˙ / Prtlin˙  Print˙ \ESC - Exit Toolbox\˙ Readkey˙˙3˙Stl1 Keytb˙  Stl2˙ ˙  Stl1˙  Start˙ Keytb27˙ "123"˙ Stl25˙ ˙3˙  Adrtb˙ / Indir˙  Adrtb+1˙/ Indir+1˙  Indir˙ ˙!AdrtbQuit,Grab,Grab2,Swit˙!˙ Quit*˙ ˙Getbyt Link+1˙ 0 Wrk˙  Link+1˙  Link˙  Gtb1˙  Rdm˙ / 53274˙  ˙Gtb1 Wrk˙*˙˙Grab2-1˙ / Flag˙  Grab3˙ Grab0˙ / Flag˙ Grab30˙/ Numbers˙/ Numbers+1˙  Cls1˙  Flag˙  Txt2˙  Print˙ \Kommentare loeschen:\˙  Txt3˙ Txt2 Print˙\Parameter optimieren:\˙ Txt3˙ 4˙ / Prtlin˙  Print˙ +ASC \Make Sure that you have a Copy of\˙++%\Ich hoffe, Sie haben eine Kopie von\˙+  Print˙ ASC \this Source-Code !\˙\diesem Quellcode !?!?!\˙8˙ / Prtlin˙  Print˙ !ASC \Press 'C' to Continue !\˙!+%\Druecken Sie "W" zum weitermachen !\˙+ Readkey˙  Grkl˙ 'W'C˙  Dograb˙  Start˙ Dograb13˙ / Prtlin˙  Print˙ \Ich arbeite ...\˙ 16˙ / Prtlin˙  Print˙ ASC \Number of changes:0000\˙ #\Anzahl der Aenderungen:0000\˙#  Scrpt˙  ˙ 19+5˙ / Scrpt˙  Scrpt+1˙0˙/ Scrpt+1˙0˙ / Qtn˙ Grb˙  Ramtab˙  Prtfree˙1˙ / Repflg˙ $40˙ / Textpt+1˙/ First+1˙0˙ / Textpt˙ / First˙  Repair˙ Grb10˙  Flag˙ / Flagdo˙  Textpt˙ / First˙  Textpt+1˙/ First+1˙  Rdm˙ 2˙ 1 Link+1˙ -1˙  Grb2˙ Grb0 Logerr˙Grb2 Rdm˙ / Link˙  Grb3˙  Repair˙  Qtn˙  Qtn˙ 3˙  Grb˙ 0˙ / Repflg˙ / Qtn˙  Ramtab˙ 20˙ / Prtlin˙  Print˙ $ASC \ All right. Press any Key.\˙$("\Alles klar. Eine Taste druecken.\˙( Readkey˙  Start˙ Grb3˙  ˙  Textpt˙ / Textpt˙ / Src˙  Textpt+1˙0˙/ Textpt+1˙ / Src+1˙  First˙ / Textpt˙  First+1˙/ Textpt+1˙Grb4 Getbyt˙  Grbend˙ 5˙  Grb0˙ ˙2˙ Grabadr˙ / Indir˙  Grabadr+1˙/ Indir+1˙  Indir˙ "GrabadrGrbend,Optok,Spctok˙" Labtok,Mactok˙ Grbend˙  Link+1˙ 3˙ Grbend0˙0˙ / Link+1˙ Grbend0˙  Flag˙  Grbend2˙  Link˙ / Link+1˙  Grbend1˙Grbend2 Link+1˙ Grbend1˙2˙  Wrm˙ Grbend1 First˙ ˙  Link+1˙ / Textpt˙ / First˙ / Dst˙  First+1˙0˙/ Textpt+1˙ / Dst+1˙ / First+1˙  Src˙  Dst˙  Grbe1˙  Src+1˙  Dst+1˙  Grbe2˙ Grbe1˙  Src˙ / Textpt˙  Src+1˙ / Textpt+1˙ Calclen˙  Grb0j˙  Flag˙  Grbe2˙  Transfer˙1˙  Addnum˙ Grbe21˙ / Repflg˙  First˙ #˙ First+1˙#˙ Prtfree˙%˙/ Textpt+1˙%˙ / Textpt˙  Grb1˙ Grb0j Grb0˙!Optok Getbythole 2.Token˙!  Grb0j˙  GetbytAdressierung˙  Grb0j˙  Labtok˙ Spctok˙  GetbytSpecialcode˙  Grb0j˙ 5ASC-Parameter !˙  Labtok˙  Link˙ / Link+1˙  Grbend0˙ Labtok˙  Link+1˙ / Parlnk˙  Getbyt˙  Grb0j˙ 2˙ 0 Buf˙ 0˙  Labt2˙ 0˙Labt1 Getbyt˙ / Buf+1˙  Grb0j˙ ˙  Buf˙  Labt1˙ Labt2 Flag˙ Labt21Wahl "1" !˙ CheckPar˙ Changes˙  Labt21˙ 0˙ / Link˙ / Link+1˙  Grbe2Sprung raus !˙ Labt21˙  Grb4˙ Mactok˙  Getbyt˙  Grb0j˙ 2˙Labt40˙  Labt3˙  Getbyt˙  Grb0j˙ ˙  Labt4˙ Labt3 Labtok˙Logerr19˙ / Prtlin˙  Print˙ 0ASC \BAD LINK-POINTER OR ILLEGAL STRUCTURE!\˙0/)\DER LOGISCHE AUFBAU DES QUELLTEXTES IST\˙/  Print˙ $ASC \TRY TO REPAIR, THEN RETRY.\˙$-'\FEHLERHAFT (VERKETTUNG ODER ZEIGER) !\˙-  First˙ #˙ First+1˙#˙  Repair˙ %˙/ First+1˙%˙ / First˙ 0˙ / Repflg˙  Error˙ ˙Addnum ˙-˙ Numbers˙/ Numbers˙ Numbers+1˙0˙/ Numbers+1˙  Adnm1˙ $99˙ / Numbers˙/ Numbers+1˙Adnm1˙ Numbers+1˙0˙#˙ ˙ ˙ ˙ ˙ "16˙ /Scrpt˙ ˙%˙ 15˙ "16˙ /Scrpt˙ ˙ Numbers˙#˙ ˙ ˙ ˙ ˙ "16˙ /Scrpt˙ ˙%˙ 15˙ "16˙ /Scrpt˙ *˙˙'Parameterblock (steht in BUF+1) auf˙''speichersparende moeglichkeiten hin˙''ueberpruefen (z.B.$0f,%00100 ...) !˙'˙ CheckPar˙  Link˙ / Linksav˙ 128˙ / Flagdo˙ 0˙ 0 Buflnk˙ 0 Buflnk2˙0 Changes˙  Buf˙ / Origlen˙  Chk0˙  Chk1˙ Chk0*˙ ˙Buf2Buf+128˙˙Rdbuf Buflnk˙  Buf˙  Rdb1˙  Buf+1˙  Buflnk˙ Rdb1*˙ ˙Wrbuf Buflnk2˙  Wrb1˙ / Buf2˙  Buflnk2˙ Wrb1*˙ ˙Test"+-*/?()!#&%$'<>,@"˙˙Chrtst16˙Chr0 Test˙  Chr1˙ ˙  Chr0˙ '_˙  Chr1˙ '.˙  Chr1˙ '0˙  Chr2˙ '9+1˙  Chr1˙ 'A˙  Chr2˙ 'Z+1˙  Chr1˙ 'a˙  Chr2˙ 'z+1˙  Chr2˙ Chr1-1˙ ˙*˙Chr2-1˙,˙*˙˙'Nur erlaubte Zeichen als Parameter!˙'˙ Chk1˙  Rdbuf˙  Chk2˙  Chrtst˙  Chk1a˙  Changes˙  Chk1˙ ˙Chk1a Wrbuf˙  Chk1˙ Lgrj Logerr˙Chk2 Buflnk2˙  Lgrj˙ Chk20˙ 0 Buf˙ ˙Chk21 Buf2˙ / Buf+1˙ ˙  Chk21˙ ˙ 0 Buflnk˙ 0 Buflnk2˙ Checkit˙ Changes˙  Chk4˙ *˙˙Chk41˙  Addnum˙  Changes˙  Chk4˙  Changesauf -1˙ Buflnk2˙  Lgrj˙  Parlnk˙ ˙'Berechne differenz zw. alt und neu!˙'˙ Origlen˙,˙+ Buflnk2˙ Lgrjlaenger ?!?!?!?˙/ WrkDifferenz !˙˙Berechne Quelladresse˙˙ Calclen˙  Lgrj˙  ParlnkParameterstart˙ ˙ Origlen˙ ˙  Textpt˙ / Src˙  Textpt+1˙0˙ / Src+1˙ ˙Berechne Zieladresse˙˙ ParlnkParameterstart˙ ˙ Buflnk2neue laenge˙ ˙  Textpt˙ / Dst˙  Textpt+1˙0˙ / Dst+1˙ ˙Laengenangabe korrigieren !˙˙  Wrk˙  Crln˙ 255˙  ˙1˙ / Wrk˙  Len˙ ,˙ + Wrk˙ / Len˙  Len+1˙ +0˙ / Len+1˙  Crln1˙ Crln˙  ˙  Len˙ / Len˙  Len+1˙ 0˙ / Len+1˙ Crln1˙  Buflnk2˙ Origlen˙ Notransgleich !˙ Transfer˙  First˙ #˙ First+1˙#˙  Repair˙ %˙/ First+1˙%˙ / First˙ Notrans First˙ / Textpt˙  First+1˙/ Textpt+1˙˙  Parlnk˙  Buflnk2˙  Wrm˙ 0˙Chk41 Buf2˙˙ 0 Wrk˙  Wrm˙  Wrk˙ ˙ Buflnk2˙  Chk41˙ *˙Lgrj2 Logerr˙˙Ptwrt Dpuf˙ / Dpuf+1˙  Dpuf˙ *˙˙Buffer ueberpruefen˙˙"Checkit0Zwischenspeicher˙"/ Dpufloeschen˙  Rdbuf˙  Ck1˙ Ckx*˙ Ck1 Chrtst˙  Ck2˙  Wrbuf˙  Lgrj2˙  Rdbuf˙  Ck1˙  Ckdo˙ Ck2 Ptwrt˙  Rdbuf˙  Ckdo˙  Chrtst˙  Ck2˙  Buflnk1 Zurueck !˙ Ckdo˙  Dpuf˙  Ckd3˙  Testit˙  Dpuf˙ 1˙  Ckd0˙  Dpuf+1˙ '0˙  Ckd0˙ '9+1˙  Ckd0˙  Buflnk2˙  Ckd0˙ ˙  Buf2˙ '$˙  Ckd2˙ '%˙  Ckd0˙ Ckd20 Buflnk2˙ Changes˙ Ckd0˙ 0˙Ckd1 Dpuf+1˙ 0 Wrk˙  Wrbuf˙  Lgrj2˙  Wrk˙ ˙  Dpuf˙  Ckd1˙ Ckd3˙  Rdbuf˙  Ckx˙ 0˙ 0 Dpuf˙  Ck1˙ ˙#Zwischenspeicher ueberpruefen !˙#˙ Testit˙  Dpuf˙  Tst1˙ Tstx0 Changes˙Tstx'0˙ / Dpuf+1˙ 1˙ / Dpuf˙ *˙ Tst1˙  Dpuf+1˙ '0˙  Tst3˙  Dpuf˙ A2˙  Tst3˙ 0˙ Tst2˙  Dpuf+2˙ / Dpuf+1˙ ˙  Dpuf˙  Tst2˙  Changes˙  Dpuf˙  Tst1˙ Tst3 Buflnk2˙  Tst4˙ ˙  Buf2˙ ''˙  Tst4˙  Dpuf˙ 2˙  Tst4˙ ,˙+1˙ ˙ Changes˙/ Changes˙1˙ / Dpuf˙ *˙ Tst4˙ *˙˙SwBit64˙˙Swit Cls1˙9˙ / Prtlin˙  Print˙ "\Text wird umgeschaltet ...\˙"0˙ 1 Qtn˙ ˙ 1 Repflg˙ Sw0 54017˙#˙  Ramtab˙  Prtfree˙0˙ 1 Textpt˙ $40˙ / Textpt+1˙  Swos˙ Sw1Textpt˙ / Fnm˙ ˙  Sw1˙  54017˙ SwBit˙ / 54017˙ Sw2Textpt˙/ Fnm+256˙  Fnm˙ /Textpt˙ ˙  Sw2˙  Swos˙ Sw3 Fnm+256˙ /Textpt˙ ˙  Sw3˙  Textpt+1˙  Sw1˙  Qtn˙ %˙ / 54017˙  Qtn˙ 3˙  Sw0˙ 0˙ / Qtn˙  Ramtab˙ *˙Swos Piabyt˙ 254˙ / 54017˙ *˙˙˙