10000 '*-----------------------------------------* 10002 '* SCRKOMP.BAS * 10004 '* Dieses Programm-Modul komprimiert und * 10006 '* speichert den aktuellen Bildschirm auf * 10008 '* Diskette bzw. l{dt ein komprimiertes * 10010 '* Bild von Diskette in den Bildschirm- * 10012 '* speicher. * 10013 '* * 10014 '* Aufrufparameter: scrfile%=Dateinummer * 10016 '* scrname$=Dateiname * 10017 '* * 10018 '* written 1989 by NoFi * 10019 '* Programmiert in MALLARD-BASIC * 10020 '*-----------------------------------------* 10022 '* Unterprogramm: Initialisieren * 10024 '*-----------------------------------------* 10030 GOSUB 10320: 'Maschinenprogramm speichern 10040 init=&HF300:savescr=&HF318:loadscr=&HF3E9 10050 ret=&HF48D:RETURN 10060 '*-----------------------------------------* 10070 '* Unterprogramm: Bildschirm speichern * 10080 '*-----------------------------------------* 10090 GOSUB 10250: 'File |ffnen und initialisieren 10100 WHILE PEEK(ret)=0 10110 CALL savescr(recadr%):PUT scrfile% 10120 WEND 10130 CLOSE scrfile%:RETURN 10140 '*-----------------------------------------* 10150 '* Unterprogramm: Bildschirm laden * 10160 '*-----------------------------------------* 10170 GOSUB 10250: 'File |ffnen und initialisieren 10180 WHILE PEEK(ret)=0 10190 GET scrfile%:CALL loadscr(recadr%) 10200 WEND 10210 CLOSE scrfile%:RETURN 10220 '*-----------------------------------------* 10230 '* File |ffnen und initialisieren * 10240 '*-----------------------------------------* 10250 CALL init: 'Koordinaten initialisieren 10260 OPEN "R",scrfile%,scrname$,128: 'File |ffnen 10270 recadr%=VARPTR(#scrfile%):'Adr Record-Puffer 10280 RETURN 10290 '*-----------------------------------------* 10300 '* Maschinenprogramm * 10310 '*-----------------------------------------* 10320 MEMORY &HF2FF:RESTORE 10360 10330 FOR adr=&HF300 TO &HF48C 10340 READ a$:POKE adr,VAL("&H"+a$) 10350 NEXT: RETURN 10360 DATA 21,5A,20,22,90,F4,21,00,00,22,92,F4,AF 10370 DATA 32,8F,F4,32,8D,F4,3D,32,8E,F4,C9,3A,8D 10380 DATA F4,B7,C0,5E,23,56,D5,01,33,F3,CD,5A,FC 10390 DATA E9,00,D1,21,94,F4,01,80,00,ED,B0,C9,CD 10400 DATA 6E,F4,B7,28,0C,EB,21,80,00,19,06,00,C5 10410 DATA ED,B0,C1,EB,D9,C5,D5,21,70,17,CD,64,17 10420 DATA 01,FF,00,21,00,B8,11,08,00,3A,70,17,BE 10430 DATA 28,0C,19,10,F7,0C,C2,CC,F3,CD,7F,F4,18 10440 DATA E8,E5,D5,C5,01,70,17,1D,28,4E,03,23,0A 10450 DATA BE,28,F7,1D,C1,D1,E1,20,DF,B9,20,DC,0C 10460 DATA 0E,01,28,02,0E,03,3A,8E,F4,B9,28,07,79 10470 DATA 32,8E,F4,CD,87,F4,78,ED,44,FE,05,38,30 10480 DATA CD,87,F4,D1,C1,1C,0D,20,10,14,59,0E,5A 10490 DATA 10,0A,3E,FF,32,8D,F4,D9,4F,36,1A,D9,D9 10500 DATA CB,79,28,8B,79,E6,7F,D9,18,78,C1,D1,E1 10510 DATA 0C,0E,02,20,C0,0E,00,18,BC,0C,C4,7F,F4 10520 DATA D9,36,04,23,EB,21,70,17,C5,01,08,00,ED 10530 DATA B0,21,09,00,C1,09,44,4D,EB,D9,18,B6,3A 10540 DATA 8D,F4,B7,C0,5E,23,56,47,3A,8F,F4,4F,21 10550 DATA 94,F4,09,EB,01,80,00,ED,B0,01,09,F4,CD 10560 DATA 5A,FC,E9,00,C9,CD,6E,F4,C6,80,4F,06,00 10570 DATA 7E,23,D9,C5,FE,04,38,4E,D5,28,28,4F,CD 10580 DATA AA,15,D1,C1,1C,0D,20,0C,14,59,0E,5A,10 10590 DATA 06,3E,FF,32,8D,F4,C9,D9,0D,20,DB,D9,AF 10600 DATA 32,8F,F4,ED,43,90,F4,ED,53,92,F4,C9,D9 10610 DATA 79,D6,09,30,0C,2B,11,94,F4,79,ED,B0,D9 10620 DATA D1,C1,18,E2,3C,4F,E5,D9,CD,9C,16,E1,CD 10630 DATA E5,15,E5,D9,E1,D9,18,B9,07,CD,C4,15,C1 10640 DATA 18,C4,ED,4B,90,F4,ED,5B,92,F4,D9,21,94 10650 DATA F4,3A,8F,F4,4F,C9,21,70,17,54,5D,C3,EB 10660 DATA 15,D9,77,23,0C,D9,C9