0 REM 1 WIDTH 64 'VOOR SCHERMBREEDTE VAN 64 TEKENS 2 PRINT CHR$(12) 'SCHERM SCHOON 4 INPUT"Wilt u uitleg?....J/N...";J$ 5 IF J$<>"J" THEN 1000 6 PRINT:PRINT"U krijgt nu de listing te zien." 7 PRINT"Daarna opstarten met RUN." 8 FOR I = 1 TO 1000 : NEXT I 9 LIST 10-999 10 'PROGRAMMA "MAROBA"; -MBASIC 20 ' 30 'DOEL: EEN MACHINETAALPROGRAMMA DAT ALS COM-FILE OP 40 ' DISKETTE STAAT IN DE VORM VAN DATA-regels in 50 ' EEN BASICPROGRAMMA TE PLAATSEN. 60 ' 70 'VOORDELEN: 80 ' HET OMZETTEN VAN HEXADECIMALE OPDRACHTEN NAAR 90 ' DECIMALE EN HET INTYPEN DAARVAN GEEFT VEEL KANS 100 ' OP FOUTEN, VOORAL BIJ GROTE PROGRAMMA'S 110 ' OOK IS HET HEEL TIJDROVEND . 120 ' HET PROGRAMMA "MAROBA" VOOR KOMT DEZE PRO- 130 ' BLEMEN. 140 ' 150 ' 160 'TE VERRICHTEN HANDELINGEN: 170 ' 1.MAAK M.B.V. EEN EDITOR, ASSEMBLER EN EEN 180 ' LINKER EEN MACHINETAALPROGRAMMA IN DE VORM 190 ' VAN EEN COM-FILE OP DISKETTE. 200 ' 2.TEL HET AANTAL BYTES (LST- OF PRN-FILE). 210 ' 3.START HET PROGRAMMA "MAROBA" MET: 220 ' . 230 ' 4.GEEF OP: A. HET AANTAL BYTES 240 ' B. DE NAAM 250 ' VAN HET MACHINETAALPROGRAMMA (+ .COM). 260 ' 5.NA ENIGE TIJD WORDT DE LISTING VAN DE 270 ' DATA-REGELS GETOOND. 280 ' 6.U KUNT NU: 290 ' A.OVERBODIGE PROGRAMMAREGELS VERWIJDEREN 300 ' MET . 310 ' B.MET DE -OPDRACHT DE DATA-REGELS 320 ' VAN DE GEWENSTE NUMMERING VOORZIEN. 330 ' C.MET DE DATA-REGELS 340 ' IN ASCII-CODE OP SCHIJF ZETTEN. 450 ' D.MET DE DATA-REGELS OP EEN 460 ' LATER TIJDSTIP TOEVOEGEN AAN UW EIGEN 470 ' BASICPROGRAMMA. 480 ' 490 'LET OP! ALS ER TE WEINIG DUMMY DATA-REGELS IN HET 500 ' PROGRAMMA "MAROBA" STAAN, WORDEN ER OP EEN 510 ' ZEKER MOMENT DATA GEPOKED IN DE BASIC-VARIA- 520 ' BE LEN RUIMTE EN LOOPT HET PROGRAMMA VAST. 530 ' IN DE STANDAARDUITVOERING IS ER PLAATS 540 ' VOOR MAX. 260 MACHINETAALOPDRACHTEN 550 ' VAN 3 CIJFERS (DECIMAAL). 560 ' 570 ' 580 'WERKING VAN HET PROGRAMMA: 590 'REGELNUMMER: 600 '1010 DE VARIABELE -ADRES- BEVAT HIER DE GEHEUGEN- 610 ' PLAATS WAAR DE EERSTE PROGRAMMAREGEL BEGINT . 620 ' VOOR MBASIC EN DE EXIDYCOMPUTER IS DAT 630 ' 5FED HEX. 640 ' VOOR UW EIGEN COMPUTER KUNT U DAT TE WETEN 650 ' KOMEN DOOR EEN AANTAL PROGRAMMA REGELS GEHEEL 660 ' TE VUL LEN MET HETZELFDE TEKEN BIJV. 'A', EN 670 ' DAN EEN GEHEUGEND UMP TE BEKIJKEN TOT U 680 ' IN EEN BEPAALD GEBIED EEN GROOT AANTAL 690 ' KEREN DE ASCII-CODE VAN DAT TEKEN ZIET. 700 ' U ZIET DAN BIJVB.: 710 ' AA BB CC DD 41 41 41 41 720 ' AA BB GEEFT HET ADRES VAN DE VOLGENDE DATA- 735 ' CC DD GEEFT HET NUMMER VAN DEZE REGEL. 740 ' AA BB GEEFT HET ADRES VAN DE VOLGENDE REGEL 750 ' ALS CC DD OVEREENKOMT MET WAT U ALS EERSTE 765 ' REGELNUMMER HEBT INGEVOERD, DAN IS HET 770 ' ADRES WAAR AA STAAT DE WAARDE DIE DE VARIA 780 ' BELE -ADRES- BIJ U MOET KRIJGEN. 785 '1020-1030 OPZOEKEN PLAATS 1E DUMMY DATA-REGEL 790 '2000-2020 BEPAAL AANTAL RECORDS V.D. COM-FILE 795 '5010 DE VARIABELE -ADRES- WORDT GEBRUIKT 800 ' BIJ HET POKEN VAN GEGEVENS BETREFFENDE DE 805 ' NIEUWE DATA-REGELS. 810 '5020 -NRN- :REGELNR VAN BETREFF. DATA-REGEL 815 '5020-5160 GEGEVENS VAN SCHIJF HALEN, WAARDE OMZETTEN 820 ' IN ASCII-WAARDEN EN POKEN IN DATA REGELS 825 ' GESCHEIDEN DOOR KOMMA'S 830 '5040 OPEN COM-FILE ALS RANDOM-BESTAND. 835 '5200 INDIEN 16 DATA BYTES, DAN 00 OP EINDE REGEL 840 '5210 INDIEN LAATSTE DATA BYTE, DAN 00 00 00 845 ' OP EINDE REGEL. 850 '5220 VOLGEN BYTE 855 '5230 VOLGEND RECORD 860 '5340 SLUIT BESTAND 865 '6000 SUBROUTINE EINDE DATA-REGEL 870 '7000 SUBROUTINE EINDE LAATSTE DATA-REGEL 875 '8000-XXXX EVENTUEEL TE WIJZIGEN AANTAL DUMMY DATA- 880 ' REGELS. 1000 '==================================================== 1001 ' OPZOEKEN BEGINADRES DATA REGELS 1002 '==================================================== 1005 INPUT"Uit hoeveel bytes bestaat het mach.taalprogr";AT%:PRINT 1008 INPUT"Naam van het machinetaalprogramma";NAAM$ 1010 ADRES=&H5FED '(MBASIC) EXBASIC: &H611A 1020 IF PEEK(ADRES+4)=&H84 THEN 2000 1030 ADRES=PEEK(ADRES)+PEEK(ADRES+1)*256:GOTO 1020 2000 ' 2010 ATREC%=INT(AT%/128)+1 'BEPAAL AANTAL RECORDS 2020 IF AT% MOD 128 = 0 THEN ATREC%=ATREC%-1 5000 '==================================================== 5001 ' VERWERKING MACHINETAALPROGRAMMA 5002 '==================================================== 5010 ADRES=ADRES+6:ADRES1=ADRES-6 5020 NRN=PEEK(ADRES-4)+PEEK(ADRES-3)*256 5040 OPEN "R",#1,NAAM$ 5050 FIELD #1, 128 AS MACH$ 5052 FOR R = 1 TO ATREC% 5055 GET #1,R 5060 FOR I = 1 TO 128 5070 AB%=I+(R-1)*128 5080 GETAL=ASC(MID$(MACH$,I,1)) 5090 L=LEN(STR$(GETAL))-1 5100 FOR X = 1 TO L 5110 POKE ADRES+X-1,ASC(MID$(STR$(GETAL),X+1,1)) 5120 NEXT X 5130 POKE ADRES+L,44 5160 ADRES=ADRES+L 5200 IF I MOD 16=0 THEN GOSUB 6000 ELSE ADRES=ADRES+1 5210 IF AB%=AT% THEN GOSUB 7000 5220 NEXT I 5230 NEXT R 5240 CLOSE 5300 GOTO 7500 6000 '==================================================== 6001 ' SUBROUTINE EINDE REGEL 6002 '==================================================== 6010 POKE ADRES,0 'EINDE REGEL 6020 ADRES2=ADRES+1 6030 POKE ADRES1,ADRES2 MOD 256 ' ADRES NWE REGEL 6040 POKE ADRES1+1,INT(ADRES2/256) 6050 NRN=NRN+10 'NWE REGELNR 6060 POKE ADRES2+2,NRN MOD 256 6070 POKE ADRES2+3,INT(NRN/256) 6080 POKE ADRES2+4,&H84:POKE ADRES2+5,32 6090 ADRES=ADRES2+6 6100 ADRES1=ADRES2 6110 RETURN 6120 ' 6130 ' 7000 '==================================================== 7001 ' SUBROUTINE EINDE DATA REGELS 7002 '==================================================== 7010 IF I MOD 16 = 0 THEN ADRES = ADRES-6 7020 ADRES=ADRES-1:POKE ADRES,0:POKE ADRES+1,0:POKE ADRES+2,0:IF I MOD 16 = 0 THEN 7050 7030 POKE ADRES1, (ADRES+1) MOD 256 7040 POKE ADRES1+1,INT((ADRES+1)/256) 7050 I=128 7060 RETURN 7070 ' 7080 ' 7500 LIST 7510- 7510 'U KUNT DE DATA EVENTUEEL HERNUMMEREN 7515 'EN VOOR LATER GEBRUIK OP DISKETTE SAVEN 7520 'EERST: DELETE 0 TO 7999 7530 'DAN: SAVE "NAAM",A (IN ASCII) 7540 'U KUNT DAN LATER DEZE DATA IN EEN ANDER BASIC- 7550 'PROGRAMMA INVOEGEN MET: MERGE "NAAM" 7999 ' 8000 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8010 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8020 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8030 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8040 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8050 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8060 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8070 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8080 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8090 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8100 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8110 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8120 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8130 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8140 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8150 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8160 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8170 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8180 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 8190 DATA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  8180 DATA ,