home *** CD-ROM | disk | FTP | other *** search
- 10 POKE53280,0:POKE53281,0:POKE646,5:PRINTCHR$(14)
- 20 PRINT"[147][197][216][212][210][193][205][207][206][160][201][206][211][212][210][213][195][212][201][207][206][211]"
- 24 PRINT"[207]UTPUT TO S[146]CREEN OR P[146]RINTER: ";
- 25 OPEN6,0:INPUT#6,A$:CLOSE6
- 26 IFA$<>"S"ANDA$<>"P"THENRUN
- 27 IFA$="P"THENOPEN1,4,7:DV=4:FORQ=1TO6:PRINT#1:NEXT:GOTO30
- 28 OPEN1,3:DV=3
- 30 PRINT"[147]"
- 31 PRINT#1," [197][216][212][210][193][205][207][206][160][201][206][211][212][210][213][195][212][201][207][206][211] "
- 32 PRINT#1:PRINT#1:PRINT#1," [197][216][212][210][193][205][207][206] IS ONE OF THE MOST COMMON ";
- 40 PRINT#1,"OF THE PUBLIC DOMAIN MACHINE LANGUAGE ";
- 50 PRINT#1,"MONITORS AROUND. [201]T IS ONE OF THE BEST ";
- 60 PRINT#1,"AS WELL. [200]ERE IS A BRIEF DESCRIPTION ";
- 70 PRINT#1,"OF ITS FEATURES.":PRINT#1
- 71 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 72 IFDV=3THENGETA$:IFA$=""THEN72
- 73 IFDV=3THENPRINT"[147]"
- 80 PRINT#1,"[211]IMPLE [193]SSEMBLER"
- 90 PRINT#1
- 100 PRINT#1,".[193] 2000 [193]9 12 [204][196][193] #$12"
- 110 PRINT#1,".[193] 2002 9D 00 80 [211][212][193] $8000,X"
- 120 PRINT#1,".[193] 2005"
- 130 PRINT#1:PRINT#1," [201]N THE ABOVE EXAMPLE, THE USER BEGAN ";
- 140 PRINT#1,"ASSEMBLY AT $2000. [212]HE FIRST INSTRUC- ";
- 150 PRINT#1,"TION WAS LOAD ACCUMULATOR IMMEDIATE ";
- 160 PRINT#1,"WITH $12. [201]N THE SECOND LINE THE USER ";
- 170 PRINT#1,"DID NOT NEED TO TYPE THE [193] AND ADDRESS. ";
- 180 PRINT#1,"[212]HE SIMPLE ASSEMBLER RETYPED THE LAST ";
- 190 PRINT#1,"ENTERED LINE AND PROMPTS WITH THE NEXT ";
- 200 PRINT#1,"ADDRESS. [212]O EXIT THE ASSEMBLER, PRESS ";
- 210 PRINT#1,"[[210][197][212][213][210][206]] AFTER THE ADDRESS PROMPT. ";
- 220 PRINT#1,"[211]YNTAX IS THE SAME AS THE DISSASEMBLER ";
- 230 PRINT#1,"OUTPUT. [193] ':' CAN BE USED TO TERMINATE ";
- 240 PRINT#1,"A LINE.":PRINT#1
- 241 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 242 IFDV=3THENGETA$:IFA$=""THEN242
- 243 IFDV=3THENPRINT"[147]"
- 250 PRINT#1,"[195]OMPARE [205]EMORY":PRINT#1
- 260 PRINT#1,".[195] 1000 2000 [195]000":PRINT#1
- 270 PRINT#1," [195]OMPARES MEMORY FROM $1000 TO $2000 ";
- 280 PRINT#1,"TO MEMORY BEGINNING AT $[195]000. [195]OMPARE ";
- 290 PRINT#1,"WILL PRINT THE LOCATIONS OF UNEQUAL ";
- 300 PRINT#1,"BYTES.":PRINT#1
- 301 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 302 IFDV=3THENGETA$:IFA$=""THEN302
- 303 IFDV=3THENPRINT"[147]"
- 310 PRINT#1,"[196]ISSEMBLER":PRINT#1
- 320 PRINT#1,".[196] 2000":PRINT#1
- 330 PRINT#1," [196]ISASSEMBLES TO THE END OF MEMORY ";
- 340 PRINT#1,"STARTING AT $1000. [212]HE THREE BYTES ";
- 350 PRINT#1,"FOLLOWING THE ADDRESS MAY BE MODIFIED. ";
- 360 PRINT#1,"[213]SE THE [CRSR] KEYS TO MOVE TO AND ";
- 370 PRINT#1,"MODIFY THE BYTES. [200]IT [[210][197][212][213][210][206]] AND THE ";
- 380 PRINT#1,"BYTES IN MEMORY WILL BE CHANGED. ";
- 390 PRINT#1,"[197][216][212][210][193][205][207][206] WILL THEN DISSASEMBLE THAT ";
- 400 PRINT#1,"LINE AGAIN.":PRINT#1
- 410 PRINT#1,".[196] 2000 3000":PRINT#1
- 420 PRINT#1," [196]ISASSEMBLES FROM $2000 TO $3000.":PRINT#1
- 421 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 422 IFDV=3THENGETA$:IFA$=""THEN422
- 423 IFDV=3THENPRINT"[147]"
- 430 PRINT#1,"[198]ILL [205]EMORY":PRINT#1
- 440 PRINT#1,".[198] 1000 1100 [198][198]":PRINT#1
- 450 PRINT#1," [198]ILLS THE MEMORY FROM $1000 TO $1100 ";
- 460 PRINT#1,"WITH THE BYTE $[198][198].":PRINT#1
- 461 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 462 IFDV=3THENGETA$:IFA$=""THEN462
- 463 IFDV=3THENPRINT"[147]"
- 470 PRINT#1,"[199]O [210]UN":PRINT#1
- 480 PRINT#1,".[199]":PRINT#1
- 490 PRINT#1," [199]O TO THE ADDRESS IN THE [208][195] REGISTER ";
- 500 PRINT#1,"DISPLAY AND EXECUTE CODE. [193]LL THE ";
- 510 PRINT#1,"REGISTERS WILL BE REPLACED WITH THE ";
- 520 PRINT#1,"DISPLAYED VALUES.":PRINT#1
- 530 PRINT#1,".[199] 1000":PRINT#1
- 540 PRINT#1," [199]O TO ADDRESS $1000 AND BEGIN ";
- 550 PRINT#1,"RUNNING CODE.":PRINT#1
- 551 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 552 IFDV=3THENGETA$:IFA$=""THEN552
- 553 IFDV=3THENPRINT"[147]"
- 554 IFDV=4THENFORQ=1TO6:PRINT#1:NEXT
- 560 PRINT#1,"[200]UNT [205]EMORY":PRINT#1
- 570 PRINT#1,".[200] [195]000 [196]000 '[210][197][193][196]":PRINT#1
- 580 PRINT#1," [200]UNT THROUGH MEMORY FROM $[195]000 TO ";
- 590 PRINT#1,"$[196]000 FOR THE [193][211][195][201][201] STRING '[210][197][193][196]' AND ";
- 600 PRINT#1,"PRINT THE ADDRESSES WHERE IT IS FOUND. ";
- 610 PRINT#1,"[193] MAXIMUM OF 32 CHARACTERS MAY BE USED.":PRINT#1
- 620 PRINT#1,".[200] [195]000 [196]000 20 [196]2 [198][196]":PRINT#1
- 630 PRINT#1," [200]UNT MUMORY FROM $[195]000 TO $[196]000 FOR ";
- 640 PRINT#1,"THE SEQUENCE OF BYTES $20, $[196]2, $[198][196] AND ";
- 650 PRINT#1,"PRINT ANY ADDRESS WHERE IT IS FOUND. [193] ";
- 660 PRINT#1,"MAXIMUM OF 32 BYTES MAY BE USED. [200]UNT ";
- 670 PRINT#1,"CAN BE STOPPED WITH THE [[210][213][206]/[211][212][207][208]] KEY.":PRINT#1
- 671 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 672 IFDV=3THENGETA$:IFA$=""THEN672
- 673 IFDV=3THENPRINT"[147]"
- 680 PRINT#1,"[201]NTEREGATE [205]EMORY":PRINT#1
- 690 PRINT#1,".[201] [198]000":PRINT#1
- 700 PRINT#1,".' [198]000 54 4[198] 4[198] 20 4[196] 41 4[197] 59[212][207][207] [205][193][206][217][146]"
- 710 PRINT#1,".' [198]008 20 46 49 4[195] 45 [196]3 46 49 [198][201][204][197][211][198][201][146]":PRINT#1
- 720 PRINT#1," [196]ISPLAYS HEX AND [193][211][195][201][201] UNTIL THE END ";
- 730 PRINT#1,"OF MEMORY.":PRINT#1
- 740 PRINT#1,".[201] [198]000 [198]080":PRINT#1
- 750 PRINT#1," [196]ISPLAYS HEX AND [193][211][195][201][201] FROM $[198]000 TO ";
- 760 PRINT#1,"$[198]080.":PRINT#1
- 761 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 762 IFDV=3THENGETA$:IFA$=""THEN762
- 763 IFDV=3THENPRINT"[147]"
- 770 PRINT#1,"[204]OAD":PRINT#1
- 780 PRINT#1,".[204]"+CHR$(34)+"FILENAME"+CHR$(34):PRINT#1
- 790 PRINT#1," [204]OADS A FILE FROM THE CASSETTE UNIT.":PRINT#1
- 800 PRINT#1,".[204]"+CHR$(34)+"FILENAME"+CHR$(34)+",08":PRINT#1
- 810 PRINT#1," [204]OADS A FILE FROM THE DISK DRIVE.":PRINT#1
- 820 PRINT#1," [194][197][215][193][210][197]: [204]OAD WITH A FILE NAME ";
- 830 PRINT#1,"BREAKS THE [201][210][209] SAVED BY THE MONITOR. ";
- 840 PRINT#1,"[196]O NOT USE .[199] TO THE [208][195] REGISTER AFTER ";
- 850 PRINT#1,"A LOAD WITH A FILENAME.":PRINT#1
- 851 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 852 IFDV=3THENGETA$:IFA$=""THEN852
- 853 IFDV=3THENPRINT"[147]"
- 860 PRINT#1,"[205]EMORY [196]ISPLAY":PRINT#1
- 870 PRINT#1,".[205] 0000 0008":PRINT#1
- 880 PRINT#1,".: 0000 00 01 [193]0 [194]3 4[196] 5[195] [198]6 [197]7"
- 890 PRINT#1,".: 0008 28 49 8[193] 4[194] 5[195] 7[196] 0[197] 3[198]":PRINT#1
- 900 PRINT#1," [196]ISPLAY MEMORY FROM $0000 TO $0008. ";
- 910 PRINT#1,"[212]HE BYTES FOLLOWING THE ADDRESS MAY BE ";
- 920 PRINT#1,"MODIFIED BY EDITING AND THEN PRESSING ";
- 930 PRINT#1,"[[210][197][212][213][210][206]].":PRINT#1
- 931 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 932 IFDV=3THENGETA$:IFA$=""THEN932
- 933 IFDV=3THENPRINT"[147]"
- 940 PRINT#1,"[206]EW [204]OCATOR":PRINT#1
- 950 PRINT#1,".[206] 7000 77[198][198] 6000 0400 9000":PRINT#1
- 960 PRINT#1,".[206] 77[195][196] 77[198][198] 6000 0400 9000 [215]":PRINT#1
- 970 PRINT#1," [212]HE FIRST LINE FIXES ALL THREE BYTE ";
- 980 PRINT#1,"INSTRUCTIONS IN THE RANGE $7000 TO ";
- 990 PRINT#1,"$77[198][198] BY ADDING $6000 OFFSET TO THE ";
- 1000 PRINT#1,"BYTES FOLLOWING THE INSTRUCTION. [206]EW ";
- 1010 PRINT#1,"LOCATOR WILL NOT ADJUST ANY INSTRUCTION ";
- 1020 PRINT#1,"OUTSIDE OF THE $0400 TO $[195]000 RANGE. ";
- 1030 PRINT#1,"[212]HE SECOND LINE ADJUSTS .WORD VALUES IN ";
- 1040 PRINT#1,"THE SAME RANGE AS THE FIRST LINE. [206]EW ";
- 1050 PRINT#1,"LOCATOR STOPS AND DISASSEMBLES ON ANY ";
- 1060 PRINT#1,"BAD OP CODE.":PRINT#1
- 1061 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 1062 IFDV=3THENGETA$:IFA$=""THEN1062
- 1063 IFDV=3THENPRINT"[147]"
- 1065 IFDV=4THENFORQ=1TO8:PRINT#1:NEXT
- 1070 PRINT#1,"[210]EGISTER [196]ISPLAY":PRINT#1
- 1080 PRINT#1,".[210]":PRINT#1
- 1090 PRINT#1," [208][195] [201][210][209] [211][210] [193][195] [216][210] [217][210] [211][208]"
- 1100 PRINT#1,".; 0000 [197]62[197] 51 [196][197] 03 04 05":PRINT#1
- 1110 PRINT#1," [196]ISPLAYS THE REGISTER VALUES. [212]HE ";
- 1120 PRINT#1,"VALUES MAY BE CHANGED BY EDITING THEM ";
- 1130 PRINT#1,"AND PRESSING [[210][197][212][213][210][206]].":PRINT#1
- 1131 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 1132 IFDV=3THENGETA$:IFA$=""THEN1132
- 1133 IFDV=3THENPRINT"[147]"
- 1140 PRINT#1,"[211]AVE":PRINT#1
- 1150 PRINT#1,".[211]"+CHR$(34)+"FILENAME"+CHR$(34)+",01,0800,0[195]80":PRINT#1
- 1160 PRINT#1," [211]AVE TO CASSETTE THE CONTENTS OF ";
- 1170 PRINT#1,"LOCATIONS $0800 UP TO (NOT INCLUDING) ";
- 1180 PRINT#1,"$0[195]80.":PRINT#1
- 1190 PRINT#1,".[211]"+CHR$(34)+"FILENAME"+CHR$(34)+",08,0800,0[195]80":PRINT#1
- 1200 PRINT#1," [211]AVE TO DISKETTE THE CONTENTS OF ";
- 1210 PRINT#1,"LOCATIONS $0800 UP TO (NOT INCLUDING) ";
- 1220 PRINT#1,"$0[195]80.":PRINT#1
- 1230 PRINT#1," [194][197][215][193][210][197]: [211]AVE TO TAPE WITH FILENAME ";
- 1240 PRINT#1,"BREAKS THE [201][210][209] SAVED BY THE MONITOR.":PRINT#1
- 1241 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 1242 IFDV=3THENGETA$:IFA$=""THEN1242
- 1243 IFDV=3THENPRINT"[147]"
- 1250 PRINT#1,"[212]RANSFER [205]EMORY":PRINT#1
- 1260 PRINT#1,".[212] 1000 1100 5000":PRINT#1
- 1270 PRINT#1," [212]RANSFER MEMORY IN THE RANGE $1000 ";
- 1280 PRINT#1,"TO $1100 AND START STORING IT AT $5000.":PRINT#1
- 1281 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 1282 IFDV=3THENGETA$:IFA$=""THEN1282
- 1283 IFDV=3THENPRINT"[147]"
- 1290 PRINT#1,"[215]ALK [195]ODE":PRINT#1
- 1300 PRINT#1,".[215]":PRINT#1
- 1310 PRINT#1," [211]INGLE STEP STARTING AT THE ADDRESS ";
- 1320 PRINT#1,"IN THE [208][195].":PRINT#1
- 1330 PRINT#1,".[215] 1000":PRINT#1
- 1340 PRINT#1," [211]INGLE STEP STARTING AT $1000. [215]ALK ";
- 1350 PRINT#1,"WILL CAUSE A SINGLE STEP TO EXECUTE AND ";
- 1360 PRINT#1,"WILL DISASSEMBLE THE NEXT INSTRUCTION. ";
- 1370 PRINT#1,"[211]TEP SPEED MAY BE CONTROLLED WITH [<] ";
- 1380 PRINT#1,"FOR [211][201][206][199][204][197][160][211][212][197][208], [[210][214][211]] FOR [211][204][207][215], AND ";
- 1390 PRINT#1,"[[211][208][193][195][197]] FOR [198][193][211][212].":PRINT#1
- 1391 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 1392 IFDV=3THENGETA$:IFA$=""THEN1392
- 1393 IFDV=3THENPRINT"[147]"
- 1400 PRINT#1,"[197]XIT TO [194][193][211][201][195]":PRINT#1
- 1410 PRINT#1,".[216]":PRINT#1
- 1420 PRINT#1," [210]ETURN TO [194][193][211][201][195] READY MODE. [212]HE ";
- 1430 PRINT#1,"STACK VALUE SAVED WHEN ENTERED WILL BE ";
- 1440 PRINT#1,"RESTORED. [195]ARE SHOULD BE TAKEN THAT ";
- 1450 PRINT#1,"THIS VALUE IS THE SAME AS WHEN THE ";
- 1460 PRINT#1,"MONITOR WAS ENTERED. [193] [195][204][210] OR ANYTHING ";
- 1470 PRINT#1,"THAT WOULD CAUSE A [211][217][206][212][193][216] [197][210][210][207][210] IN ";
- 1480 PRINT#1,"[194][193][211][201][195] WILL FIX ANY STACK PROBLEMS.":PRINT#1
- 1481 IFDV=3THENPRINT" [208]RESS A KEY TO CONTINUE. [146]"
- 1482 IFDV=3THENGETA$:IFA$=""THEN1482
- 1483 IFDV=3THENPRINT"[147]"
- 1490 PRINT#1,"[208]RINTED [207]UTPUT":PRINT#1
- 1500 PRINT#1," [208]RINTED OUTPUT CAN BE OBTAINED FROM ";
- 1510 PRINT#1,"ANY [197][216][212][210][193][205][207][206] COMMAND BY TYPING A '*'. "
- 1520 PRINT#1
- 1525 PRINT#1:CLOSE1
- 1530 PRINT" [212]HAT CONCLUDES THE INSTRUCTIONS.[146]"
- 1540 PRINT"LOAD"+CHR$(34)+"XMON64(SYS50135)"+CHR$(34)+",8,1"
- 1550 PRINT"SYS50135[145][145][145][145][145][145][145][145]"
- 9999 END
-