home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 47
/
64er_Magazin_Sonderheft_47_19xx_Markt__Technik_de_Side_B.d64
/
verschieben
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
5KB
|
207 lines
100 iffl=0then690 :rem bei neustart 690
110 goto850 :nach dem laden 850
111 :
120 rem taste holen
121 poke198,0:wait198,1:geta$:return
130 :
131 rem maschinenprogramm verschieben
140 fori=atoue
150 pokei-a+z,peek(i)
160 ifl(peek(i))=1then370
170 ifl(peek(i))=2then340
180 ifl(peek(i))=14then260
190 ad=peek(i+1)+peek(i+2)*256
200 ifad>=aandad<=ethen290
210 ifi-a+z>=uaandi-a+z<uethen290
220 pokei-a+z+1,peek(i+1)
230 pokei-a+z+2,peek(i+2)
240 i=i+2:goto370
250 :
260 forj=1to13:pokei-a+z+1+j,peek(i+j):next
270 i=i+13:goto370
280 :
290 n=ad-a+z:hi=int(n/256):lo=n-hi*256
300 pokei-a+z+1,lo
310 pokei-a+z+2,hi
320 i=i+2:goto370
330 :
340 pokei-a+z+1,peek(i+1)
350 i=i+1
360 :
370 next
380 :
390 ifue=ethenreturn
400 fori=ue+1toe:pokei-a+z,peek(i):next
410 return
420 :
430 :
431 rem tabelle, wie lang die verschiedenen steuercodes sind
440 data 1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0
450 data 2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0
460 data 3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0
470 data 2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0
480 data 1,2,0,0,0,2,2,14,1,2,1,0,3,3,3,0
490 data 2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0
500 data 1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0
510 data 2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0
520 data 0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0
530 data 2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0
540 data 2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0
550 data 2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0
560 data 2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0
570 data 2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0
580 data 2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0
590 data 2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0
600 :
601 rem programmnamen, laenge und tabellen der programme
610 data "durchgang.obj",49244,49244
620 data "decodieren.obj",49288,49288
630 data "list.obj",49928,49662
640 data "mps801 grfk.obj",50014,50014
650 data "mps801 dwnld.obj",50843,49977
660 :
670 :
680 :
690 dim l(255)
700 fori=0to255:readl(i):next
710 fori=1to5:readfi$(i),e(i),ue(i):next
720 poke53280,14:poke53281,14
730 print"[147][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]";
740 print"[221][214]erschieben der [213]serportdruckertreiber[221]";
750 print"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]";
760 print" [215]elchen [196]ruckertreiber moechten [211]ie?"
770 printtab(6)"1) [196]urchgang"
780 printtab(6)"2) [196]ruckerzeichen"
790 printtab(6)"3) list - modus"
800 printtab(6)"4) mps801 [205]odus (grafikver.)"
810 printtab(6)"5) mps801 [205]odus (downloadver.)"
820 gosub121
830 fl=val(a$)
840 loadfi$(fl),8,1
850 a=49152:e=e(fl):ua=a:ue=ue(fl)
860 input" [215]o soll die [210]outine stehen 49152[157][157][157][157][157][157][157]";z
870 ifz<>49152thengosub140
880 iz=peek(z+1)+peek(z+2)*256
890 op=z+3:ho=int(op/256):lo=op-256*ho
900 ch=z+24:hc=int(ch/256):lc=ch-256*ho
910 pokeiz+6,lc:pokeiz+11,hc:pokeiz+16,lo:pokeiz+21,ho
920 iffl=5thenpokeue-a+z-24,peek(ue-a+z-18)
930 :
940 :
950 iffl=1then1920
960 print"[147] [205]oechten [211]ie die vorgegebenen [211]teuer-
970 [153]" codes aendern (mid$/(NULL)) ?"
980 [141]121
990 [139]a$[178]"n"[167]1920
1000 [139]a$[179][177]"j"[167]980
1010 [145]fl[171]1[137]1020,1110,1300,1400
1011 :
1012 [143] decodieren
1020 [153]" <d>eutscher oder <a>merikanischer"
1030 [153]" (NULL)eichensatz ?"
1040 [141]121
1050 [139]a$[178]"d"[167]1920
1060 [139]a$[179][177]"a"[167]1040
1070 [151]49242[171]a[170]z,91
1080 [137]1920
1090 :
1100 :
1101 [143] list
1110 [153]" peekitte (NULL)teuercodes fuer unterstreichen"
1120 [153]" eingeben: ((NULL)aenge 3 peekyte ; erstes peekyte"
1130 [153]" chr$(27) )
1140 e2=45:e3=49:a2=45:a3=48:gosub2000
1175 poke49919-a+z,e2:poke49920-a+z,e3:poke49921-a+z,a2:poke49922-a+z,a3
1180 print" [206]un genauso fuer ueberstreichen :"
1190 e2=95:e3=49:a2=95:a3=48:gosub2000
1270 poke49923-a+z,e2:poke49924-a+z,e3:poke49925-a+z,a2:poke49926-a+z,a3
1280 goto1920
1290 :
1295 :
1296 rem mps801 emulation (grafikver.)
1300 print" [194]itte geben [211]ie die gewuenschte"
1310 print" [199]rafikdichte (0-6) (von <esc>'*') ein:"
1320 input" im [212]extmodus 4[157][157][157]";dt
1330 input" im [199]rafikmodus 0[157][157][157]";dg
1340 print" korrekt ([202]/[206]) ?"
1350 gosub121
1360 ifa$="n"thenprint"[145][145][145][145][145]";:goto1320
1370 ifa$<>"j"then1350
1380 poke49476-a+z,dg:poke49751-a+z,dg:poke49833-a+z,dt
1381 gosub2500
1382 ifa$="1"then1920
1383 poke49349-a+z,7
1390 goto1920
1395 :
1398 :
1399 rem mps801 emulation (downloadver.)
1400 print" <[196]>eutscher oder <a>merikanischer"
1410 print" [218]eichensatz ? ";
1420 gosub121
1430 ifa$="a"then1460
1440 ifa$<>"d"then1420
1450 poke49987-a+z,228:poke49988-a+z,228:poke49377-a+z,95:poke49415-a+z,222
1460 printa$
1470 input" [215]elche [199]rafikdichte moechten [211]ie 0[157][157][157]";dg
1480 poke49525-a+z,dg
1490 print" [215]elche [193]lternativdruckart moechten [211]ie
1500 [153]" fuer 'revers' (3peekyte peekefehl, dabei 1."
1510 [153]" peekyte chr$(27) )"
1520 e2[178]45:e3[178]49:a2[178]45:a3[178]48:[141]2000
1595 [151]49516[171]a[170]z,e2:[151]49517[171]a[170]z,e3:[151]49518[171]a[170]z,a2:[151]49519[171]a[170]z,a3
1600 [153]" (NULL)elche atnlternativdruckart moechten (NULL)ie"
1610 [153]" fuer '(NULL)perrschrift' (ascormat wie oben)"
1620 e2[178]87:e3[178]49:a2[178]87:a3[178]48:[141]2000
1700 [151]49512[171]a[170]z,e2:[151]49513[171]a[170]z,e3:[151]49514[171]a[170]z,a2:[151]49515[171]a[170]z,a3
1710 [141]2500
1790 [139]a$[178]"1"[167]1920
1810 [151]49521[171]a[170]z,7
1920 [141]3000
1930 [158]z
1940 [153]"loadstr$ruckertreiber installiert"
1950 [128]
1960 :
1970 :
1980 :
2000 [153]""[163]24)e2
2001 [133]"on 2. peekyte (einschalten) ";e2
2005 [153][163]24)e3
2010 [133]"on 3. peekyte (einschalten) ";e3
2015 [153]""[163]24)a2
2020 [133]"on 2. peekyte (ausschalten) ";a2
2025 [153][163]24)a3
2030 [133]"on 3. peekyte (ausschalten) ";a3
2040 [153]" korrekt (mid$/(NULL)) ?";
2050 [141]121
2060 [139]a$[178]"n"[167][153]"ononononononon";:[137]2000
2070 [139]a$[179][177]"j"[167]2050
2080 [153]:[142]
2100 :
2110 :
2120 :
2500 [153]" (NULL)ie moechten (NULL)ie den (NULL)eilenabstand"
2510 [153]" beim chr$rafikdruck ?"
2520 [153]" 1) (NULL)riginalgroesse der (NULL)(NULL)(NULL)801 chr$rafik"
2530 [153]" (weisser (NULL)trich zwischen den (NULL)eilen)"
2540 [153]" 2) etwas kleiner als die (NULL)(NULL)(NULL)801 chr$rafik"
2550 [153]" (kein (NULL)wischenraum zwischen den"
2560 [153]" (NULL)eilen)"
2570 [141]121
2580 [139]a$[178]"1"[167][142]
2590 [139]a$[179][177]"2"[167]2570
2600 [142]
2900 :
2990 :
3000 [153]"loadcont";
3010 [153]" exp.wait (NULL)newwait exp.wait ^7 wait@ :sinwait exp.wait j-wait usr7waitleft$xwaitleft$ exp.wait j-wait usr7waitleft$x*waitnot(waitnot";
3020 [153]"ewaittnotewaitu)waitt (NULL)sinpwaitc(NULL)posclosewaitclose"
3030 [153]" (NULL)oechten (NULL)ie den str$ruckertreiber ab-"
3040 [153]" speichern (mid$/(NULL)) ?"
3050 [141]121
3060 [139]a$[178]"n"[167][142]
3070 [139]a$[179][177]"j"[167]3050
3090 [133]" ascilename ";f$
3100 [158]1024,f$,8,z,e[171]a[170]z[170]1
3110 [142]
33536 @