home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1987 March
/
Ahoy_Magazine_87-03_1987_Double_L.d64
/
Flankspeed
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
3KB
|
116 lines
100 poke53280,12:poke53281,11
105 print"[147][155] flankspeed ";
110 print" mistakeproof ml entry program "
115 print" created by g. f. wheat "
120 print" copr. 1984, ion international inc. "
125 fora=54272to54296:pokea,0:next
130 poke54272,4:poke54273,48:poke54277,0:poke54278,249:poke54296,15
135 fora=680to699:readb:pokea,b:next
140 data169,251,166,253,164,254,32,216,255,96
145 data169,0,166,251,164,252,32,213,255,96
150 b$="starting address in hex":gosub430:ad=b:sr=b
155 gosub480:ifb=0then150
160 poke251,t(4)+t(3)*16:poke252,t(2)+t(1)*16
165 b$="ending address in hex":gosub430:en=b
170 gosub470:ifb=0then150
175 poke254,t(2)+t(1)*16:b=t(4)+1+t(3)*16
180 ifb>255thenb=b-255:poke254,peek(254)+1
185 poke253,b:print
190 rem get hex line
195 gosub495:print": [175][157]";:fora=0to8
200 forb=0to1:goto250
205 nextb
210 a%(a)=t(1)+t(0)*16:ifad+a-1=enthen340
215 print" [175][157]";
220 nexta:t=ad-(int(ad/256)*256):print" "
225 fora=0to7:t=t+a%(a):ift>255thent=t-255
230 next
235 ifa%(8)<>tthengosub375:goto195
240 fora=0to7:pokead+a,a%(a):next:ad=ad+8:goto195
245 rem get hex input
250 geta$:ifa$=""then250
255 ifa$=chr$(20)then305
260 ifa$=chr$(133)then535
265 ifa$=chr$(134)then560
270 ifa$=chr$(135)thenprint" ":goto620
275 ifa$=chr$(136)thenprint" ":goto635
280 ifa$>"@"anda$<"g"thent(b)=asc(a$)-55:goto295
285 ifa$>"/"anda$<":"thent(b)=asc(a$)-48:goto295
290 gosub415:goto250
295 printa$"[175][157]";
300 goto205
305 ifa>0then320
310 a=-1:ifb=1then330
315 goto220
320 ifb=0thenprintchr$(20);chr$(20);:a=a-1
325 a=a-1
330 printchr$(20);:goto220
335 rem last line
340 print" ":t=ad-(int(ad/256)*256)
345 forb=0toa-1:t=t+a%(b):ift>255thent=t-255
350 next
355 ifa%(a)<>tthengosub375:goto195
360 forb=0toa-1:pokead+b,a%(b):next
365 print:print"you are finished!":goto535
370 rem bell and error messages
375 print:print"line entered incorrectly":print:goto415
380 print:print"input a 4 digit hex value!":goto415
385 print:print"ending is less than starting!":b=0:goto415
390 print:print"address not within specified range!":b=0:goto415
395 print:print"not zero page or rom!":b=0:goto415
400 print"?error in save":goto415
405 print"?error in load":goto415
410 print:print:print"end of ml area":print
415 poke54276,17:poke54276,16:return
420 open15,8,15:input#15,a,a$:close15:printa$:return
425 rem get four digit hex
430 print:printb$;:inputt$
435 iflen(t$)<>4thengosub380:goto430
440 fora=1to4:a$=mid$(t$,a,1):gosub450:ift(a)=16thengosub380:goto430
445 next:b=(t(1)*4096)+(t(2)*256)+(t(3)*16)+t(4):return
450 ifa$>"@"anda$<"g"thent(a)=asc(a$)-55:return
455 ifa$>"/"anda$<":"thent(a)=asc(a$)-48:return
460 t(a)=16:return
465 rem adress check
470 ifad>enthen385
475 ifb<srorb>enthen390
480 ifb<256or(b>40960andb<49152)orb>53247then395
485 return
490 rem address to hex
495 ac=ad:a=4096:gosub520
500 a=256:gosub520
505 a=16:gosub520
510 a=1:gosub520
515 return
520 t=int(ac/a):ift>9thena$=chr$(t+55):goto530
525 a$=chr$(t+48)
530 printa$;:ac=ac-a*t:return
535 a$="**save**":gosub585
540 open1,t,1,a$:sys680:close1
545 ifst=0thenend
550 gosub400:ift=8thengosub420
555 goto535
560 a$="**load**":gosub585
565 open1,t,0,a$:sys690:close1
570 ifst=64then195
575 gosub405:ift=8thengosub420
580 goto560
585 print" ":printtab(14)a$
590 print:a$="":input"filename";a$
595 ifa$=""then590
600 print:print"tape or disk?":print
605 getb$:t=1:ifb$="d"thent=8:a$="@0:"+a$:return
610 ifb$<>"t"then605
615 return
620 b$="continue from address":gosub430:ad=b
625 gosub475:ifb=0then620
630 print:goto195
635 b$="begin scan at address":gosub430:ad=b
640 gosub475:ifb=0then635
645 print:goto670
650 forb=0to7:ac=peek(ad+b):gosub505:ifad+b=enthenad=sr:gosub410:goto195
655 print" ";:nextb
660 print:ad=ad+8
665 getb$:ifb$=chr$(136)then195
670 gosub495:print": ";:goto650