10 ' MACHINETAALMONITOR +++++++++++++ 20 ' 30 ' Benny Geurts 40 ' Louis Couperusstraat 16 50 ' 6901 LV Zevenaar 60 ' Januari 1986 70 ' 80 POKE&HFCAB,&HFF:OUT170,INP(170)AND191 90 KEYOFF:CLS:WIDTH37:CLEAR1000 100 ONSTOPGOSUB2190:STOPON 110 ONERRORGOTO2330 120 GOSUB2140:GOSUB2240:COLOR1,14,14 130 CLS:GOSUB2160:LOCATE5,1:PRINT"-----------------------" 140 LOCATE5,2:PRINT"- H O O F D M E N U -" 150 LOCATE5,3:PRINT" ----------------------" 160 PRINT" ----------------------------------" 170 PRINT" -"SPC(32)"-" 180 PRINT" - KEY 1 : GEHEUGEN TONEN -" 190 PRINT" - KEY 2 : 1 BLOK VERDER -" 200 PRINT" - KEY 3 : 1 BLOK TERUG -" 210 PRINT" - KEY 4 : EERST GEKOZEN -" 220 PRINT" - KEY 5 : PROGRAMMEREN IN ML -" 230 PRINT" - KEY 6 : ML ROUTINE STARTEN -" 240 PRINT" - KEY 7 : SCHERM PRINTEN -" 250 PRINT" - KEY 8 : ML ROUTINE LADEN -" 260 PRINT" - KEY 9 : ML ROUTINE SAVEN -" 270 PRINT" - KEY 10 : STOPPEN -" 280 PRINT" - TOETS M: HOOFDMENU -" 290 PRINT" -"SPC(32)"-" 300 PRINT" ----------------------------------" 310 LOCATE5,19:PRINT"-"SPC(5)"------------------" 320 LOCATE5,20:PRINT"------- maak een keuze.- 330 LOCATE11,21:PRINT"------------------":KEYOFF 340 ONKEYGOSUB370,570,630,680,750,1650,710,1880,1920,2190 350 IFINKEY$="M"THEN130ELSE340 360 ' TONEN GEHEUGENINHOUD ++++++++++ 370 KEYON:HU%=1:GOSUB1710 380 CLS:FORY=0TO20 390 PA$=HEX$(VAL(BA$)+(8*Y)) 400 IFLEN(PA$)=4THEN420 410 PA$=STRING$(4-LEN(PA$),"0")+PA$ 420 PRINTPA$:HU%=7:FORX=0TO7 430 PR$=HEX$(PEEK(VAL(BA$)+(8*Y)+X)) 440 IFLEN(PR$)=2THEN460 450 PR$="0"+PR$ 460 LI=ASC(LEFT$(PR$,1)) 470 RE=ASC(RIGHT$(PR$,1)) 480 VPOKEY*40+X+HU%,LI 490 VPOKEY*40+X+HU%+1,RE 500 TE=VAL("&H"+PR$) 510 IFTE=>32THEN530 520 TE=46 530 VPOKEY*40+X+31,TE:HU%=HU%+2 540 NEXT:NEXT:HU%=0:TE=0 550 GOSUB2100:RETURN 560 ' VOLGENDE BLOK GEHEUGEN ++++++++ 570 HU!=VAL(BA$)+168 580 IFHU!=>0THEN600 590 HU!=HU!+65536! 600 BA$="&H"+HEX$(HU!) 610 GOSUB380:RETURN 620 ' 1 BLOK GEHEUGEN TERUG +++++++++ 630 HU!=VAL(BA$)-168 640 IFHU!=>0THEN600 650 HU!=HU!+65536! 660 BA$="&H"+HEX$(HU!) 670 GOSUB380:RETURN 680 ' EERST GEKOZEN BLOK ++++++++++++ 690 BA$=ST$:GOSUB380:RETURN 700 ' PRINTEN SCHERM ++++++++++++++++ 710 FORY=0TO20:FORX=0TO39 720 LPRINTCHR$(VPEEK(Y*40+X)); 730 NEXT:LPRINT:NEXT:RETURN 740 ' PROGRAMMEER ROUTINE +++++++++++ 750 CLS:LOCATE1,10:PRINT"Het beginadres moet hoger zijn dan";SPC(53);"9C50";SPC(32);"------":HU%=1:HU=0 760 FORPA=1TO1000:NEXT:CLS:GOSUB1710:CLS 770 KEYOFF:PRINT" ----------------" 780 PRINT" - PROG. MENU -" 790 PRINT" ----------------" 800 PRINT" ================" 810 PRINT" - S = HOOFDMENU-" 820 PRINT" - I = INVOEREN -" 830 PRINT" - K = KONTROLE -" 840 PRINT" - V = VULLEN -" 850 PRINT" - Q = COPIEREN -" 860 PRINT" - M = MENU -" 870 PRINT" ----------------" 880 PRINT" -";SPC(36);"- ------------------" 890 PRINT" --- MAAK EEN KEUZE -" 900 PRINT" --------------------" 910 IFHU%=1THEN960 920 LOCATE15,16:INPUTA$ 930 HU=1:GOSUB1420 940 IFHU=1THEN920 950 '-------------------------------- 960 A$="" 970 LOCATE2,22:IFA$=""THENINPUTA$ 980 IFA$=""THEN970 990 IFLEN(A$)>8THENGOSUB1150 1000 P=(LEN(A$)-1) 1010 FORHU=1TOPSTEP2 1020 B$=MID$(A$,HU,2) 1030 L$=LEFT$(B$,1):R$=RIGHT$(B$,1) 1040 GOSUB1420:IFINSTR(1,"1234567890ABCEF",L$)=0ORINSTR(1,"1234567890ABCDEF",R$)=0THENGOSUB1160 1050 IFLEN(B$)=1THENB$="0"+B$ 1060 A=VAL("&H"+B$) 1070 LOCATE2,21 1080 PRINTBA$;": ";B$ 1090 BA=VAL(BA$) 1100 POKE(BA),A 1110 BA=BA+1:BA$="&H"+HEX$(BA) 1120 NEXT:A$="" 1130 GOTO960 1140 RETURN 1150 LOCATE2,21:PRINTSPACE$(LEN(A$)+2) 1160 LOCATE2,21:PRINT"FOUTE INVOER" 1170 BEEP:BEEP:BEEP:BEEP 1180 FORPA=1TO500:NEXT 1190 LOCATE2,21:PRINTSPACE$(15) 1200 AB=AB-1:A$="":RETURN970 1210 '------------------------------ 1220 CLS:HU%=2:X=0:GOSUB1710:CLS 1230 BA=VAL(BA$):EA=VAL(EA$) 1240 IFBA>EATHENBA=BA+15 1250 FORPR=BATOEA 1260 PR$=HEX$(PEEK(PR)) 1270 IFLEN(PR$)=1THENPR$="0"+PR$ 1280 TE=VAL("&H"+PR$) 1290 IFTE<=32THENTE=46 1300 PRINTHEX$(PR);": ";PR$;" :"; 1310 PRINTCHR$(TE) 1320 X=X-1:IFX=20THEN1370 1330 NEXTPR 1340 PRINT:PRINT"druk M voor menu." 1350 IFINKEY$<>"M"THEN1350 1360 CLS:KEYOFF:GOTO770 1370 BA=BA+X:X=0 1380 PRINT:PRINT"druk spatiebalk om verder te gaan." 1390 IFINKEY$<>" "THEN1390 1400 CLS:GOTO1250 1410 '------------------------------ 1420 IFA$="S"THENCLS:HU=0:HU%=0:GOSUB2140:RETURN1500 1430 IFA$="I"THENCLS:HU=0:HU%=1:GOSUB2170:RETURN960 1440 IFA$="K"THENCLS:HU=0:GOSUB2140:RETURN1220 1450 IFA$="V"THENCLS:HU=0:GOTO1520 1460 IFA$="Q"THENCLS:HU=0:GOTO1590 1470 IFA$="M"THENCLS:HU=0:HU%=0:GOSUB2140:RETURN770 1480 IFLEN(A$)>1THENLOCATE15,14:PRINTSPACE$(LEN(A$)+2) 1490 RETURN 1500 RETURN130 1510 ' GEHEUGEN VULLEN MET DATA +++++ 1520 CLS:HU%=2:GOSUB1710:CLS 1530 LOCATE2,5:INPUT"DATA :";D$:CLS 1540 COLOR14,1:LOCATE5,10:PRINT"MOMENTJE...." 1550 BA=VAL(BA$):EA=VAL(EA$):D=VAL("&H"+D$) 1560 FORHU=BATOEA:POKEHU,D:NEXT 1570 CLS:COLOR1,14,14:RETURN130 1580 ' GEHEUGEN COPIEREN ++++++++++++ 1590 CLS:GOSUB1710:CLS 1600 COLOR14,1:LOCATE5,10:PRINT"MOMENTJE...." 1610 BA=VAL(BA$):EA=VAL(EA$):SA=VAL(SA$) 1620 FORHU=BATOEA:POKESA,PEEK(HU):SA=SA+1:NEXT 1630 CLS:COLOR1,14,14:RETURN130 1640 ' ML ROUTINE STARTEN +++++++++++ 1650 CLS:PRINT:PRINT:PRINT"Hier moet wel een zinnig adres staan anders gaat het gegarandeert mis !!!" 1660 FORHU=1TO1500:NEXT 1670 GOSUB1820:CLS:SA=VAL(SA$) 1680 DEFUSR=SA:A=USR(0) 1690 CLS:RETURN130 1700 ' ADESSEN OPVRAGEN +++++++++++++ 1710 CLS:LOCATE1,5 1720 PRINT"Beginadres in HEX voor de routine :" 1730 LOCATE10,7:INPUTBA$ 1740 IFLEN(BA$)<>4THENBEEP:GOTO1710 1750 BA$="&H"+BA$:ST$=BA$ 1760 IFHU%=1THENHU%=0:RETURN 1770 LOCATE1,9:PRINT"Eindadres in HEX voor de routine :" 1780 LOCATE10,11:INPUTA$ 1790 IFLEN(EA$)<>4THENBEEP:GOTO1790 1800 EA$="&H"+EA$ 1810 IFHU%=2THENHU%=0:RETURN 1820 LOCATE1,13:PRINT"Startadres in HEX voor de routine :" 1830 LOCATE10,15:INPUTSA$ 1840 IFSA$=""THENSA$=BA$:GOTO1860 1850 IFLEN(SA$)<>4THENBEEP:GOTO1850 1860 SA$="&H"+SA$:RETURN 1870 ' LADEN ML ROUTINE +++++++++++++ 1880 A$="laden":B$="laden.":GOSUB1980 1890 IFTD$="T"ORTD$="t"THENBLOAD"cas:"+C$:RETURN130 1900 BLOADC$:RETURN130 1910 ' SAVEN ML ROUTINE +++++++++++++ 1920 A$="saven":B$="saved." 1930 GOSUB1710:GOSUB1980 1940 BA=VAL(BA$):EA=VAL(EA$):SA=VAL(SA$) 1950 IFTD$="T"ORTD$="t"THENBSAVE"cas:"+C$,BA,EA,EA,SA:RETURN130 1960 BSAVEC$,BA,EA,SA:RETURN130 1970 ' GEGEVENS OPVRAGEN IN/OUTPUT ++ 1980 CLS:LOCATE1,5 1990 PRINT"Geef naam te "A$" routine:" 2000 LOCATE10,7:INPUTC$ 2010 IFLEN(C$)>6THENBEEP:GOTO1980 2020 CLS:LOCATE1,5 2030 INPUT"Gebruikt u (T)ape of (D)isk :";TD$ 2040 IFTD$<>"T"ANDTD$<>"t"ANDTD$<>"D"ANDTD$<>"d"THEN2020 2050 CLS:LOCATE1,5:PRINT"Zet recorder of disk klaar [RETURN]" 2060 IFINKEY$<>CHR$(13)THEN2060 2070 CLS:LOCATE1,5 2080 PRINT"momentje... "C$" wordt ge"B$:RETURN 2090 ' TOETS OM VERDER TE GAAN ++++++ 2100 LOCATE1,21 2110 PRINT"druk een F-toets of 'M' voor verder":RETURN 2120 LOCATE0,21:PRINTSPACE$(36) 2130 ' F-TOETSEN INSTELLEN ++++++++++ 2140 KEY1,"tonen":KEY2,"verder":KEY3,"terug":KEY4,"eerste":KEY5,"prog" 2150 KEY6,"start":KEY7,"print":KEY8,"laden":KEY9,"saven":KEY10,"stop" 2160 FORK=1TO10:KEY(K)ON:NEXT:RETURN 2170 FORK=1TO10:KEYK,"":NEXT:KEY1,"M=MENU":KEY2,"K=KTRL":KEYON:RETURN 2180 ' EINDE - F-TOETSEN INSTELLEN ++ 2190 DEFUSR=&H3E:A=USR(0) 2200 CLS:COLOR15,4,4:KEYON 2210 ONERRORGOTO0 2220 POKE&HFDC2,&HC9:END 2230 ' CURSOR INSTELLEN 2240 COLOR15,4,4:CLS 2250 LOCATE6,2:PRINT"M A C H I N E T A A L" 2260 LOCATE6,3:PRINT"---------------------" 2270 LOCATE9,5:PRINT"M O N I T O R" 2280 LOCATE9,6:PRINT"_____________" 2290 LOCATE9,9:PRINT"version 1.03" 2300 LOCATE4,21:PRINT"druk een toets om verder te gaan" 2310 IFINKEY$=""THEN2310ELSERETURN 2320 ' ERROR ROUTINE ++++++++++++++++ 2330 IFERR=19ANDERL=1890ORERL=1900THEN2390 2340 IFERR=19ANDERL=1950ORERL=1960THEN2430 2350 CLS:KEYOFF:LOCATE2,10 2360 PRINT"ER IS EEN FOUTJE GEMAAKT." 2370 LOCATE5,11:PRINT"PROBEER OPNIEUW !!" 2380 FORA=1TO1500:NEXT:CLS:RESUME130 2390 CLS:KEYOFF:LOCATE2,10 2400 PRINT"ER IS EEN LOAD FOUT GEMAAKT." 2410 LOCATE7,11:PRINT"PROBBER OPNIEUW !!" 2420 FORA=1TO1500:NEXT:CLS:RESUME130 2430 CLS:KEYOFF:LOCATE2,10 2440 PRINT"ER IS EEN SAVE FOUT GEMAAKT." 2450 LOCATE7,11:PRINT"PROBEER OPNIEUW !!" 2460 FORA=1TO1500:NEXT:CLS:RESUME130