10 ;--------------------------------- 11 ; 12 ; ---------------------- 13 ; HYPRA-ASS QUELLTEXT 14 ; KONVERTIERUNGSPROGRAMM 15 ; ---------------------- 16 ; 17 ; PROGRAMMIERT VON THOMAS DACHSEL 18 ; AM 20. - 21. JUNI 1987 19 ; 20 ; DIESES PROGRAMM WANDELT EINEN 21 ; HYPRA-ASS QUELLTEXT IN EINEN 22 ; GIGA-ASS QUELLTEXT UM, WELCHER 23 ; DIREKT AUF DISKETTE GESCHRIEBEN 24 ; WIRD. 25 ; 26 ; STARTEN SIE DIESES PROGRAMM MIT 27 ; . ES WERDEN DANN ALLE NOT- 28 ; WENDIGEN EINGABEN ABGEFRAGT. 29 ; 30 ;--------------------------------- 100 +$6000 110 USR$6000 120 ; 130 ; ----------------------------- 140 ; LABEL- UND MAKRO-DEFINITIONEN 150 ; ----------------------------- 160 ; 170 TOSTARTADR=$801 180 ; 190 TAB(CNT=COUNT 200 TAB(IP=INCHARS 210 TAB(OP=OUTCHARS 220 TAB(INBUF=LIB 230 TAB(OUTBUF=LOB 240 ; 250 GETREADCHAR 260 (null)GET 270 PEEKIP 280 (null)INBUF,X 290 RIGHT$IP 300 NEW 310 ; 320 GETKEY 330 PRNCLOSEKEYTX 340 WAIT STOCLOSE198,0 350 EQBCLOSE198,* 360 CNQCLOSE631,$D,WAIT 370 (null)LEAVE 380 KEYTX NOT"__ DRUECKEN" 390 LEAVE STOCLOSE198,0 400 NEW 410 ; 1000 ; ------------- 1010 ; HAUPTPROGRAMM 1020 ; ------------- 1030 ; 1040 ; 1. EINGABE DER FILE-NAMEN 1050 ; 1060 (null)CLALL 1070 PRNCLOSESTX 1080 RFNCLOSEHQFN 1090 PRNCLOSENTX 1100 RFNCLOSEAQFN 1110 ; 1120 ; 2. OEFFNEN DER FILES 1130 ; 1140 PRNCLOSEO1TX 1150 PRNCLOSEHQFN 1160 PRNCLOSEO2TX 1170 OPENFILECLOSE1,8,0,HQFN 1180 PRNCLOSEO3TX 1190 KEY 1200 PRNCLOSEO1TX 1210 PRNCLOSEAQFN 1220 PRNCLOSEO4TX 1230 OPENFILECLOSE2,8,1,AQFN 1240 PRNCLOSEO3TX 1250 KEY 1260 PRNCLOSEMTX 1270 PRNCLOSEAQFN 1280 PRNCLOSETTX 1290 ; 1300 ; 3. INITIALISIERE COUNT 1320 ; 1330 DSTCLOSECOUNT,STARTADR 1331 MID$#$FF 1332 (null)LNR 1333 (null)LNR+1 1340 ; 1350 ; 4. SCHREIBE NEUE STARTADRESSE 1360 ; 1370 PEEK#2 1380 (null)CKOUT 1390 OUTCLOSE<(STARTADR) 1400 OUTCLOSE>(STARTADR) 1410 ; 1420 ; 5. UEBERLIES ALTE STARTADRESSE 1430 ; 1440 PEEK#1 1450 (null)CHKIN 1460 (null)GET 1470 (null)GET 1480 ; 1490 ; 6. ERSTE KOPPELADRESSE EINLESEN 1500 ; 1501 STOCLOSEIP,0 1510 READCHAR 1520 READCHAR 1530 ; 1540 ; 7. ZEILENNUMMER (L/H) EINLESEN 1550 ; 1560 CONTREAD READCHAR 1570 READCHAR 1580 ; 1590 ; 8. REST DER ZEILE EINLESEN 1600 ; 1610 LOOP READCHAR 1620 STR$#0 1630 (null)LOOP 1640 ; 1650 ; 9. RUFE CONVLINE AUF 1660 ; 1670 PEEK#2 1680 (null)CKOUT 1690 (null)CONVLINE 1700 ; 1710 ;10. SETZE PUFFERZEIGER AUF 1720 ; PUFFERANFANG ZURUECK 1730 ; 1740 STOCLOSEIP,0 1750 ; 1760 ;11. LIES KOPPELADRESSE DER 1770 ; NAECHSTEN ZEILE EIN 1780 ; 1790 PEEK#1 1800 (null)CHKIN 1810 READCHAR 1820 READCHAR 1830 ; 1840 ;12. CHECK OB QUELLTEXT-ENDE 1850 ; 1860 MID$INBUF 1870 (null)CONTREAD 1880 MID$INBUF+1 1890 (null)CONTREAD 1900 ; 1910 ;13. SCHREIBE 00 00 FUER 1920 ; QUELLTEXT-ENDE 1930 ; 1940 PEEK#2 1950 (null)CKOUT 1960 OUTCLOSE0 1970 OUTCLOSE0 1980 ; 1990 ;14. SCHLIESSE DIE FILES, SETZE 2000 ; EIN-/AUSGABE ZURUECK 2010 ; 2020 MID$#1 2030 (null)CLOSE 2040 MID$#2 2050 (null)CLOSE 2060 (null)CLRCH 2070 ; 2080 ; ----------------------- 2090 ; ENDE DES HAUPTPROGRAMMS 2100 ; ----------------------- 2110 ; 3000 ; ----------------- 3010 ; MNEMONICS - TEXTE 3020 ; ----------------- 3030 ; 3040 MNEMONICS NOT"CPXCPYLDXLDYCMPADCANDDECEORINCLDAASLBITLSR 3050 [168]"ORAROLRORSBCSTASTXSTYJMPJSRTXATAXTYATAYTSX 3060 NOT"TXSPHPPLPPHAPLABRKRTIRTSNOPCLCSECCLISEICLV 3070 [168]"CLDSEDDEYINYDEXINXBPLBMIBVCBVSBCCBCSBNEBEQ 3080 ; 3090 ; ---------------------- 3100 ; PSEUDO-BEFEHLS - TEXTE 3110 ; ---------------------- 3120 ; 3130 PSEUDOS NOT"..MARTGLEQBYWODSTXOBBACO 3140 [168]"ONGOIFELEISYLIENST 3150 ENDPSEUDOS 4000 GETGTC 4010 PEEKIP 4020 MID$INBUF,X 4030 RIGHT$IP 4040 NEW 4050 GETPTC 4060 PEEKOP 4070 (null)OUTBUF,X 4080 RIGHT$OP 4090 ICDCLOSECNT 4100 NEW 4110 GETXFER 4120 GTC 4130 PTC 4140 NEW 4150 CONVLINE STOCLOSEIP,2 4160 STOCLOSEOP,2 4170 ; 4180 ; ZEILENNUMMER TRANSFERIEREN 4190 ; 4200 XFER 4210 XFER 4220 ; 4230 ; ERSTES ZEICHEN DER ZEILE: 4240 ; SEMIKOLON, DANN KOMMENTARZEILE 4250 ; PUNKT, DANN PSEUDO 4260 ; SPACE, DANN UEBERLESEN 4270 ; UND ZUM 2. FELD GEHEN 4280 ; SONST: LABEL UEBERLESEN 4290 ; 4300 GTC 4310 CBNCLOSE59,NOCOMM 4320 PTC 4330 (null)RLOP 4340 NOCOMM CBNCLOSE".",NOPSD 4350 (null)IPSC 4360 NOPSD PTC 4370 CBECLOSE32,SECFIELD 4380 CBNCLOSE0,*+7;END OF 4390 (null)ENDLINE;LINE ? 4400 LABELLOOP XFER 4410 CBNCLOSE0,*+7;END OF 4420 (null)ENDLINE;LINE ? 4430 CBNCLOSE32,LABELLOOP 4440 ; 4450 ; ZWEITES FELD: 4460 ; EVENTUELL LABEL, ABER SICHER 4470 ; EIN SPACE BEREITS UEBERTRAGEN 4480 ; 4490 ; JETZT ENTWEDER PSEUDO ODER 4500 ; MNEMONIC 4510 ; 4520 SECFIELD GTC 4530 CBNCLOSE".",*+7 4540 (null)IPSC 4550 PEEKIP;X ZEIGT 4560 LEN#0;AUF 2. 4570 (null)MC;ZEICHEN 4580 SEARCH MID$INBUF-1,X 4590 STR$MNEMONICS,Y 4600 (null)NEXTONE 4610 MID$INBUF,X 4620 STR$MNEMONICS+1,Y 4630 (null)NEXTONE 4640 MID$INBUF+1,X 4650 STR$MNEMONICS+2,Y 4660 (null)FOUND 4670 NEXTONE (null) 4680 (null) 4690 (null) 4700 RIGHT$MC 4710 ATN#PSEUDOS-MNEMONICS 4720 (null)SEARCH 4730 ; 4740 ; MNEMONIC NICHT GEFUNDEN: 4750 ; FEHLERHAFTE ZEILE, WIRD GANZ 4760 ; UEBERLESEN 4770 ; 4780 (null)RLOP 4790 FOUND MID$MC;MNEMONIC- 4800 (null)#$C0;CODE AB- 4810 PTC;LEGEN 4820 GTC;3 ZEICHEN 4830 GTC;SKIPPEN 4840 (null)RLOP 5000 ; 5010 ; ------------------ 5020 ; INSERT PSEUDO-CODE 5030 ; ------------------ 5040 ; IP ZEIGT AUF DAS ERSTE DER 5050 ; BEIDEN PSEUDO-BEFEHLSZEICHEN 5060 ; 5070 IPSC LEN#0 5080 PEEKIP 5090 COMPLOOP MID$INBUF,X 5100 STR$PSEUDOS,Y 5110 (null)NEXTTEXT 5120 MID$INBUF+1,X 5130 STR$PSEUDOS+1,Y 5140 (null)FOUNDPSD 5150 NEXTTEXT (null) 5160 (null) 5170 ATN#ENDPSEUDOS-PSEUDOS 5180 (null)COMPLOOP 5190 ; 5200 ; PSEUDO NICHT GEFUNDEN: 5210 ; FEHLERHAFTE ZEILE, WIRD 5220 ; GANZ UEBERLESEN 5230 ; 5240 NOTFOUND 5250 MID$#"." 5260 PTC 5270 (null)RLOP 5280 FOUNDPSD GTC 5290 GTC 5300 (null) 5310 (null);PSEUDO- 5320 (null)#$A0;CODE IN A 5330 ; 5340 ; NUR SPEICHERN, FALLS KEIN 5350 ; MACRO CALL -- AUSSER DER MAKRO- 5360 ; NAME BEGINNT MIT MNEMONIC 5370 ; 5380 CBNCLOSE$A0,STOREPSC 5390 PEEKIP 5400 LEN#0 5410 OCCURSCHK MID$INBUF,X 5420 (null)STOREPSC-3 5430 STR$MNEMONICS,Y 5440 (null)NEXTMNEMO 5450 MID$INBUF+1,X 5460 STR$MNEMONICS+1,Y 5470 (null)NEXTMNEMO 5480 MID$INBUF+2,X 5490 STR$MNEMONICS+2,Y 5500 (null)NEXTMNEMO 5510 MID$#$A0 5520 (null)STOREPSC 5530 NEXTMNEMO (null) 5540 (null) 5550 (null) 5560 ATN#PSEUDOS-MNEMONICS 5570 (null)OCCURSCHK 5580 (null)L1 5590 STOREPSC PTC 5600 ; 5610 ; FALLS .TEXT-PSEUDO, EVENTUELLES 5620 ; ABSCHLIESSENDES HOCHKOMMA ENT- 5630 ; FERNEN 5640 ; 5650 CBNCLOSE$A8,SKIP 5660 TL1 GTC 5670 CBNCLOSE0,*+7;END OF 5680 (null)PUT0;LINE ? 5690 PTC 5700 CBNCLOSE34,TL1 5710 TL2 GTC 5720 CBNCLOSE0,*+7;END OF 5730 (null)PUT0;LINE ? 5740 CBNCLOSE34,*+7 5750 (null)RLOP 5760 PTC 5770 (null)TL2 5780 ; 5790 ; FALLS MAKRO-DEFINITION ODER 5800 ; -AUFRUF, KLAMMERN WANDELN 5810 ; 5820 ; ES WIRD DIE ERSTE KLAMMER AUF 5830 ; IN $A0 (SHIFT SPACE) GEWANDELT 5840 ; UND DIE LETZTE KLAMMER ZU 5850 ; GELOESCHT (SYNTAKTISCH RICHTIGE 5860 ; KLAMMERUNG DER MAKRO-PARAMETER 5870 ; VORAUSGESETZT) 5880 ; 5890 SKIP STR$#$A2 5900 (null)RLOP 5910 L1 GTC 5920 CBNCLOSE0,*+7 5930 (null)PUT0 5940 CBECLOSE"(",L2 5950 PTC 5960 (null)L1 5970 L2 MID$#$A0;1. "(" 5980 PTC; --> $A0 5990 STOCLOSEMC,0 6000 L3 GTC 6010 CBECLOSE0,PUT0 6020 CBNCLOSE"(",*+9 6030 RIGHT$MC 6040 (null)*+11 6050 CBNCLOSE")",*+9 6060 CHR$MC;DELETE 6070 (null)RLOP;LAST ")" 6080 PTC 6090 (null)L3 9000 ; 9010 ; TRANSFER REST OF LINE 9020 ; 9030 RLOP XFER 9040 STR$#0 9050 (null)RLOP 9060 ; 9070 ; FUEGE NULL-BYTE AN 9080 ; 9090 MID$#0 9100 PUT0 PTC 9110 ; 9120 ; SPEICHERE KOPPELADRESSE 9130 ; 9140 ENDLINE ICDCLOSECOUNT 9150 MVDCLOSECOUNT,OUTBUF 9160 ; 9170 ; CHECK OB ZEILE SCHON EINMAL 9180 ; UEBERTRAGEN 9190 ; 9200 MID$OUTBUF+2 9210 STR$LNR 9220 (null)SENDLINE 9230 MID$OUTBUF+3 9240 STR$LNR+1 9250 (null)SENDLINE 9260 (null) 9270 SENDLINE MVDCLOSEOUTBUF+2,LNR 9280 ; 9290 ; SCHICKE ZEILE ZUR FLOPPY 9300 ; 9310 PEEK#0 9320 SENDLOP MID$OUTBUF,X 9330 (null)CHROUT 9340 (null);4 BYTES 9350 TAN#5;ALWAYS 9360 (null)SENDLOP 9370 STR$#0 9380 (null)SENDLOP 9390 (null) 10000 ; ----- 10010 ; TEXTE 10020 ; ----- 10030 ; 10040 STX FN$93 10050 NOT"__ KONVERTIERUNGSPROGRAMM 10060 [168]"__ ZUM WANDELN EINES HYPRA-ASS 10070 NOT"__ QUELLTEXTES IN DAS GIGA-ASS FORMAT 10080 [168]"___ LEGEN SIE DIE DISKETTE MIT DEM 10090 NOT"_ HYPRA-ASS QUELLTEXT IN DAS LAUFWERK 10100 [168]"_ UND GEBEN SIE DEN FILENAMEN DES 10110 NOT"_ HYPRA-ASS QUELLTEXTES EIN!__ " 10120 NTX NOT"__ GEBEN SIE NUN BITTE DEN NAMEN 10130 [168]"_ FUER DEN GIGA-ASS QUELLTEXT EIN.__ " 10140 O1TX [165]$93 10150 [168]"__ ES WIRD VERSUCHT, DAS FILE__ " 10160 O2TX [168]"__ ZUM LESEN ZU OEFFNEN.__ " 10170 O3TX [168]"__ DAS OEFFNEN WAR ERFOLGREICH." 10180 O4TX [168]"__ ZUM SCHREIBEN ZU OEFFNEN.__ " 10190 MTX [165]$93 10200 [168]"__ DER ANGEGEBENE QUELLTEXT WIRD NUN 10210 NOT"__ IN EINEN GIGA-ASS QUELLTEXT MIT__ DEM NAMEN " 10220 TTX NOT"__ UMGEWANDELT.__" 20000 ; 20010 ; ------------ 20020 ; DATENBEREICH 20030 ; ------------ 20040 ; 20041 COUNT THEN2 20042 LNR THEN2 20043 MC THEN1 20050 HQFN THEN21 20060 AQFN THEN21 20070 INCHARS THEN1 20080 LIB THEN80 20081 OUTCHARS THEN1 20082 LOB THEN80 50000 ;--------------------------------- 50010 ; 50020 ; MERGE FILE #1: KERNEL JUMP TABLE 50030 ; 50040 ;--------------------------------- 50050 TAB(ACPTR=$FFA5 50060 TAB(CIOUT=$FFA8 50070 TAB(UNTALK=$FFAB 50080 TAB(UNLISTEN=$FFAE 50090 TAB(LISTEN=$FFB1 50100 TAB(TALK=$FFB4 50110 TAB(STATUS=$FFB7 50120 TAB(SETLFS=$FFBA 50130 TAB(SETNAM=$FFBD 50140 TAB(OPEN=$FFC0 50150 TAB(CLOSE=$FFC3 50160 TAB(CHKIN=$FFC6 50170 TAB(CKOUT=$FFC9 50180 TAB(CLRCH=$FFCC 50190 TAB(BASIN=$FFCF 50200 TAB(CHROUT=$FFD2 50210 TAB(LOAD=$FFD5 50220 TAB(SAVE=$FFD8 50230 TAB(SETTIM=$FFDB 50240 TAB(GETTIM=$FFDE 50250 TAB(STOPKEY=$FFE1 50260 TAB(GET=$FFE4 50270 TAB(CLALL=$FFE7 50280 TAB(UDTIM=$FFEA 50290 TAB(SCREEN=$FFED 50300 TAB(CURSOR=$FFF0 51000 ;--------------------------------- 51010 ; 51020 ; MERGE FILE #2: LOW-LEVEL MACROS 51030 ; 51040 ;--------------------------------- 51050 GETSTOCLOSEA,V 51060 MID$#V 51070 (null)A 51080 NEW 51090 GETDSTCLOSEA,DV 51100 MID$#<(DV) 51110 (null)A 51120 MID$#>(DV) 51130 (null)A+1 51140 NEW 51150 GETMOVCLOSEF,T 51160 MID$F 51170 (null)T 51180 NEW 51190 GETMDICLOSEA,P 51200 MID$A 51210 (null)&P,Y 51220 NEW 51230 GETMIDCLOSEP,A 51240 MID$&P,Y 51250 (null)A 51260 NEW 51270 GETMVDCLOSEF,T 51280 MID$F 51290 PEEKF+1 51300 (null)T 51310 (null)T+1 51320 NEW 51330 GETCBECLOSEV,A 51340 STR$#V 51350 (null)A 51360 NEW 51370 GETCBNCLOSEV,A 51380 STR$#V 51390 (null)A 51400 NEW 51410 GETCNQCLOSEA,V,B 51420 MID$A 51430 STR$#V 51440 (null)B 51450 NEW 51460 GETEQBCLOSEA,B 51470 MID$A 51480 (null)B 51490 NEW 51500 GETNQBCLOSEA,B 51510 MID$A 51520 (null)B 51530 NEW 51540 GETLDWCLOSEA 51550 MID$A 51560 LENA+1 51570 NEW 51580 GETSTWCLOSEA 51590 (null)A 51600 (null)A+1 51610 NEW 51620 GETICDCLOSEA 51630 RIGHT$A 51640 (null)END 51650 RIGHT$A+1 51660 END 51670 NEW 51680 GETPSHCLOSEA 51690 MID$A 51700 (null) 51710 NEW 51720 GETPLLCLOSEA 51730 (null) 51740 (null)A 51750 NEW 51760 GETPHX 51770 (null) 51780 (null) 51790 NEW 51800 GETPLX 51810 (null) 51820 (null) 51830 NEW 51840 GETPHY 51850 (null) 51860 (null) 51870 NEW 51880 GETPLY 51890 (null) 51900 (null) 51910 NEW 51920 GETPRNCLOSET 51930 MID$#<(T) 51940 LEN#>(T) 51950 (null)$AB1E 51960 NEW 51970 GETOUTCLOSEA 51980 MID$#A 51990 (null)$FFD2 52000 NEW 52010 GETMBYCLOSENR,CODE 52020 TOC=NR 52030 *C=0,52070 52040 FNCODE 52050 TOC=C-1 52060 /52030 52070 NEW 55000 ;--------------------------------- 55010 ; 55020 ; MERGE FILE #3: HIGH-LEVEL MACROS 55030 ; 55040 ;--------------------------------- 55050 ;********************************* 55060 ; 55070 ; RELATIVE LOAD (RLD) 55080 ; ------------- 55090 ; EIN FILE WIRD RELATIV IN DEN 55100 ; SPEICHER AB ADRESSE "ADR" GE- 55110 ; LADEN. DER NAME DES FILES MUSS 55120 ; AB DER ADRESSE "FILENAME" 55130 ; IM SPEICHER STEHEN. 55140 ; HINTER DEM LETZTEN ZEICHEN DES 55150 ; NAMENS MUSS EIN NULLBYTE FOLGEN. 55160 ; 55170 ; BENOETIGT DAS MERGE-FILE #1. 55180 ; 55190 ;********************************* 55200 GETRLDCLOSEFILENAME,ADR 55210 MID$#1;LFN 55220 PEEK#8;DEV 55230 LEN#0;SA 55240 (null)SETLFS 55250 ; 55260 ; LAENGE DES FILENAMENS BESTIMMEN 55270 ; 55280 PEEK#0 55290 TESTCHAR MID$FILENAME,X 55300 (null)SETLEN 55310 (null) 55320 (null)TESTCHAR 55330 SETLEN (null) 55340 PEEK#<(FILENAME) 55350 LEN#>(FILENAME) 55360 (null)SETNAM 55370 MID$#0 55380 PEEK#<(ADR) 55390 LEN#>(ADR) 55400 (null)LOAD 55410 NEW 55420 ;********************************* 55430 ; 55440 ; READ FILENAME (RFN) 55450 ; ------------- 55460 ; EIN FILENAME WIRD VON DER TASTA- 55470 ; TUR EINGELESEN UND AB DER ADRES- 55480 ; SE "ADR" IN DEN SPEICHER ABGE- 55490 ; LEGT. 55500 ; HINTER DEM LETZTEN ZEICHEN DES 55510 ; NAMENS WIRD EIN NULLBYTE ANGE- 55520 ; FUEGT. 55530 ; 55540 ; BENOETIGT MERGE-FILES #1 UND #2. 55550 ; 55560 ;********************************* 55570 GETRFNCLOSEADR 55580 ; 55590 ; TASTATUR-FILE OEFFNEN 55600 ; 55610 MID$#"T";LFN 55620 PEEK#0;DEV 55630 LEN#0;SA 55640 (null)SETLFS 55650 (null)OPEN 55660 PEEK#"T" 55670 (null)CHKIN 55680 ; 55690 ; BILDSCHIRM-FILE OEFFNEN 55700 ; 55710 MID$#"B";LFN 55720 PEEK#3;DEV 55730 LEN#0;SA 55740 (null)SETLFS 55750 (null)OPEN 55760 PEEK#"B" 55770 (null)CKOUT 55780 ; 55790 ; PROMPT UND INPUT-ZEILE AUSGEBEN 55800 ; 55810 PRNCLOSEPROMPT 55820 (null)GETLINE 55830 PROMPT NOT"FILENAME? 55840 [165]32 55850 MBY[160]16,$A4 55860 MBY[160]16,$9D 55870 REVCHAR [165]$12,$20,$92,$9D,0 55880 DELCHAR [165]$A4,$9D,$9D,0 55890 ; 55900 ; MAXIMAL 16 ZEICHEN HOLEN 55910 ; 55920 GETLINE STO[160]CHARS,0 55930 GETCHAR [214]GET 55940 [247]*-3 55950 [198]#$7F 55960 CBN[160]20,CHECKKEY 55970 [194]CHARS 55980 [247]GETCHAR 55990 [192]#16 56000 [244]*+5 56010 [199]CHARS 56020 [199]CHARS 56030 PRN[160]DELCHAR 56040 PRN[160]REVCHAR 56050 [213]GETCHAR 56060 CHECKKEY [196]#32 56070 [244]NONPRINT 56080 [194]CHARS 56090 [192]#16 56100 [244]*+3 56110 [238] 56120 [210]ADR,X 56130 [214]CHROUT 56140 [194]CHARS 56150 [192]#16 56160 [245]*+5 56170 [201]CHARS 56180 [192]#15 56190 [245]LASTCHAR 56200 PRN[160]REVCHAR 56210 [213]GETCHAR 56220 LASTCHAR OUT[160]$9D 56230 [213]GETCHAR 56240 NONPRINT [196]#$D 56250 [246]GETCHAR 56260 [194]CHARS 56270 [192]#16 56280 [245]*+7 56290 OUT[160]$A4 56300 [202]#0 56310 [210]ADR,X 56320 ; 56330 ; FILES SCHLIESSEN 56340 ; 56350 [202]#"T" 56360 [214]CLOSE 56370 [202]#"B" 56380 [214]CLOSE 56390 [213]*+4 56400 CHARS [167]1 56410 [162] 56420 ;********************************* 56430 ; 56440 ; GET DISK STATUS (GDS) 56450 ; --------------- 56460 ; 56470 ; DIESER MAKRO HOLT DEN DISK- 56480 ; STATUS IN DEN SPEICHERBEREICH, 56490 ; DER DURCH ADRESSE "ADR" SPEZI- 56500 ; FIZIERT IST. HINTER DAS LETZTE 56510 ; ZEICHEN WIRD EIN NULLBYTE 56520 ; ABGESPEICHERT. 56530 ; AUSSERDEM WIRD NOCH DIE NUMMER 56540 ; DER FEHLERMELDUNG IN DEN AKKU 56550 ; GEHOLT UND DAS ZERO-FLAG GE- 56560 ; SETZT, FALLS DIESE 00 WAR. 56570 ; 56580 ; BENOETIGT DAS MERGE-FILE #1. 56590 ; 56600 ;********************************* 56610 [161]GDS[160]ADR 56620 [194]#0 56630 [211]CHARS 56640 STO[160]$BA,8 56650 [214]TALK 56660 STO[160]$B9,$6F 56670 [214]$FF96 56680 GETCHARS [214]ACPTR 56690 [194]CHARS 56700 [210]ADR,X 56710 [201]CHARS 56720 [196]#$D 56730 [246]GETCHARS 56740 [214]UNTALK 56750 [194]CHARS 56760 [202]#0 56770 [210]ADR,X 56780 [194]#0 56790 [202]ADR 56800 [198]#%1111 56810 [218] 56820 [221] 56830 [202]#0 56840 [222] 56850 [247]*+8 56860 [229] 56870 [197]#10 56880 [236] 56890 [246]*-4 56900 [210]CHARS 56910 [202]ADR+1 56920 [198]#%1111 56930 [197]CHARS 56940 [196]#00 56950 [213]*+4 56960 CHARS [167]1 56970 [162] 56980 ;********************************* 56990 ; 57000 ; OPENFILE (OPF) 57010 ; -------- 57020 ; 57030 ; OPEN ,,, 57040 ; "<(FNADR)>,

," 57050 ; 57060 ; IN ABHAENGIGKEIT VON WERDEN 57070 ; FOLGENDE SUFFIXE AN DEN FILE- 57080 ; NAMEN ANGEHAENGT: 57090 ; 57100 ; = 0: ",P,R" 57110 ; = 1: ",P,W" 57120 ; = 2: ",S,R" 57130 ; = 3: ",S,W" 57140 ; 57150 ;********************************* 57160 [161]OPENFILE[160]LFN,DEV,SA,FNADR 57170 [174]SA=0 57180 [164]SUFFIX=PRSF 57190 [176] 57200 [174]SA=1 57210 [164]SUFFIX=PWSF 57220 [176] 57230 [174]SA=2 57240 [164]SUFFIX=SRSF 57250 [176] 57260 [174]SA=3 57270 [164]SUFFIX=SWSF 57280 [176] 57290 [194]#0 57300 [202]FNADR,X 57310 [247]*+5 57320 [239] 57330 [246]*-6 57340 [195]#0 57350 [202]SUFFIX,Y 57360 [210]FNADR,X 57370 [247]*+6 57380 [239] 57390 [237] 57400 [246]*-10 57410 PHX;LENGTH 57420 ; 57430 ; SETZEN DER PARAMETER; 57440 ; AUFRUF DES OPEN-BEFEHLS 57450 ; 57460 [202]#LFN 57470 [194]#DEV 57480 [195]#SA 57490 [214]SETLFS 57500 [224];LENGTH 57510 [194]#<(FNADR) 57520 [195]#>(FNADR) 57530 [214]SETNAM 57540 [214]OPEN 57550 [244]OPENOK 57560 PRN[160]OPENERROR 57570 [227] 57580 ; 57590 ; HOLEN DES DISK-STATUS. FALLS 57600 ; UNGLEICH 0, AUSSTIEG! 57610 ; 57620 OPENOK GDS[160]DSBUF 57630 [221] 57640 PRN[160]DSBUF 57650 [222] 57660 [247]CONTINUE 57670 [213]CLALL 57680 PRSF [168]",P,R" 57690 PWSF [168]",P,W" 57700 SRSF [168]",S,R" 57710 SWSF [168]",S,W" 57720 OPENERROR [168]"OPEN-BEFEHL MELDET FEHLER!!!_" 57730 DSBUF [167]40 57740 CONTINUE 57750 [162]