5 PRINT"[147][144] 10 [143] SUPERMON+ INSTR 20 [141] 10000 30 [153] "SUPERMON+ IS A NEW VERSION OF 40 PRINT"'SUPERMON' THE REASON FOR THE NEW 50 [153]"VERSION IS TO PROVIDE IDENTICAL 55 PRINT"COMMANDS TO THOSE OF THE BUILT-IN 60 [153]"MONITOR OF THE COMMODORE 128. 65 PRINT" THE MOST VISIBLE CHANGES FROM 70 [153]"EARLIER VERSIONS OF SUPERMON ARE: 75 PRINT" --DECIMAL OR BINARY INPUT ALLOWED; 80 [153]" --DISK STATUS AND COMMANDS (@); 85 PRINT" --LOOSER (EASIER) SYNTAX. 100 [141] 9000 110 [153]" NUMBER CONVERSION " 120 [153]" $2000 130 PRINT" $2000 140 [153]" +8192 150 PRINT" &20000 160 [153]" %10000000000000 170 PRINT 180 PRINT" IN THE ABOVE EXAMPLE THE USER 190 [153]"HAS ASKED FOR THE NUMERIC EQUIVALENTS 200 PRINT"TO HEXADECIMAL 2000. THE REPLY SHOWS 210 [153]"THE VALUE IN HEX ($), IN DECIMAL (+), 220 PRINT"IN OCTAL (&), AND IN BINARY (%). 230 [153]" THE USER COULD ASK FOR A NUMBER TO 240 PRINT"BE CONVERTED FROM ANY OF THESE BASES 250 [153]"BY GIVING THE APPROPRIATE PREFIX. 300 GOSUB9000 310 PRINT" IMPORTANT NOTE -- " 320 PRINT" AT ANY TIME IN THE FOLLOWING TEXT, 330 [153]"YOU MAY ENTER ANY NUMBER IN ANY BASE 340 PRINT"AND CONVERSION WILL BE DONE FOR YOU. 350 [153]"EXAMPLE: 360 PRINT" M +4096 370 [153]" ... WILL CAUSE A MEMORY DISPLAY 380 PRINT"FROM DECIMAL ADDRESS 4096. IN THE 390 [153]"DISPLAY, THE HEX ADDRESS ($1000) WILL 400 PRINT"BE SHOWN. SIMILARLY, 410 [153]" A +2048 LDACLOSE#%10000000 420 PRINT" ... WILL BE CONVERTED TO ASSEMBLE: 430 [153]" A $0400 LDA #$80 440 PRINT" IF YOU DON'T GIVE A PREFIX, THE 450 [153]"MONITOR WILL ASSUME HEXADECIMAL. 500 GOSUB9000 510 PRINT" REGISTER DISPLAY " 520 PRINT" R 530 [153]" PC SR AC XR YR SP 540 PRINT"; 0000 01 02 03 04 05 550 [153]" DISPLAYS THE REGISTER VALUES SAVED 560 PRINT"WHEN SUPERMON+[146] WAS ENTERED. VALUES 570 [153]"MAY BE CHANGED BY TYPING OVER THE 580 PRINT"DISPLAY FOLLOWED BY A RETURN CHARACTER. 590 [153]" PC - PROGRAM COUNTER 600 PRINT" SR - STATUS REGISTER 610 [153]" AC, XR, YR - A, X, AND Y REGISTERS 620 PRINT" SP - STACK POINTER 700 [141]9000 720 [153]" MWAIT 200WAIT 209 730 PRINT">0200 4D 20 32 30 30 20 32 30:M 200 20" 740 PRINT">0208 39 00 00 04 00 04 00 04:9......." 750 PRINT" DISPLAY MEMORY FROM 0200 HEX TO 760 [153]"0209 HEX. DISPLAY IS IN LINES OF 8 770 PRINT"SO ADDRESSES $200 TO $20F ARE SHOWN. 780 [153]" IF ONE ADDRESS ONLY IS GIVEN THEN 790 PRINT"12 LINES (96 LOCATIONS) WILL BE SHOWN. 800 [153]"IF NO ADDRESS IS GIVEN DISPLAY WILL GO 810 PRINT"FROM THE LAST ADDRESS. 820 [153]" EQUIVALENT ASCII CHARACTERS ARE SHOWN 830 PRINT"IN REVERSE AT THE RIGHT. 840 [153]"VALUES ARE CHANGED BY TYPING OVER THE 850 PRINT"DISPLAY FOLLOWED BY A RETURN CHARACTER. 900 [141]9000 910 [153]" EXIT TO BASIC " 920 [153]" X 930 PRINT" RETURN TO BASIC READY[146] MODE. 940 [153]"WHEN YOU WISH TO RETURN TO SUPERMON+, 950 PRINT"COMMAND SYS 8[146]. 1000 [141]9000 1010 [153]" SIMPLE ASSEMBLER " 1020 [153]" AWAIT 2000WAIT LDAWAIT #+18 1030 PRINT" (CHANGES TO:)" 1040 PRINT"A 2000 A9 12 LDA #$12 1050 [153]"A 2002 ..NEXT INSTRUCTION 1060 PRINT" IN THE ABOVE EXAMPLE THE USER 1070 [153]"STARTED ASSEMBLY AT 2000 HEX. THE 1080 PRINT"FIRST INSTRUCTION WAS LOAD A REGISTER 1090 [153]"WITH IMMEDIATE 18 DECIMAL. IN FOLLOWING 1100 PRINT"LINES THE USER NEED NOT TYPE THE 1110 [153]"A AND ADDRESS. THE SIMPLE ASSEMBLER 1120 PRINT"PROMPTS WITH THE NEXT ADDRESS. TO EXIT 1130 [153]"THE ASSEMBLER TYPE A RETURN AFTER THE 1140 PRINT"THE ADDRESS PROMPT. 1150 [153]" PREVIOUS LINES MAY BE CHANGED BY 1160 PRINT"TYPING OVER THE RIGHT HAND PART. 1200 [141]9000 1220 [153]" DWAIT 2000WAIT 2004WAIT 1230 PRINT". 2000 A9 12 LDA #$12 1240 [153]". 2002 9D 00 80 STA $8000,X 1250 PRINT" DISASSEMBLES INSTRUCTIONS FROM 1260 [153]"2000 TO 2004 HEX. IF ONE ADDRESS IS 1270 PRINT"GIVEN, 20 BYTES WILL BE DISASSEMBLED. 1280 [153]"IF NO ADDRESS, START FROM THE LAST 1290 PRINT"USED ADDRESS. 1300 [153]" CODE MAY BE REASSEMBLED BY MOVING 1310 PRINT"THE CURSOR BACK AND TYPING OVER THE 1320 [153]"RIGHT HAND PART. 1400 GOSUB9000 1410 PRINT" FILL MEMORY " 1420 PRINT" F[146] 1000[146] 1100[146] FF 1430 [153]" FILLS THE MEMORY FROM 1000 HEX TO 1440 PRINT"1100 HEX WITH THE BYTE FF HEX. 1500 [141]9000 1510 [153]" GO (RUN)" 1520 [153]" GWAIT 1000 1530 PRINT" GO TO ADDRESS 1000 HEX AND BEGIN 1540 [153]"RUNNING CODE. 1550 PRINT" IF NO ADDRESS IS GIVEN, THE ADDRESS 1560 [153]"FROM THE REGISTER IS USED. 1570 PRINT" JUMP (SUBROUTINE)" 1580 PRINT" J[146] 1000 1590 [153]" CALL ADDRESS 1000 HEX AND BEGIN 1600 PRINT"RUNNING CODE. RETURN TO THE MONITOR. 1700 [141]9000 2200 [153]" HUNT MEMORY " 2210 [153]" HWAIT C000WAIT D000WAIT 'READ 2220 PRINT" HUNT THRU MEMORY FROM C000 HEX TO 2230 [153]"D000 HEX FOR THE ASCII STRING READWAIT AND 2240 PRINT"PRINT THE ADDRESS WHERE IT IS FOUND. A 2250 [153]"MAXIMUM OF 32 CHARACTERS MAY BE USED. 2260 PRINT" H[146] C000[146] D000[146] 20[146] D2[146] FF 2270 [153]" HUNT MEMORY FROM C000 HEX TO D000 2280 PRINT"HEX FOR THE SEQUENCE OF BYTES 20 D2 FF 2290 [153]"AND PRINT THE ADDRESS. A MAXIMUM OF 32 2300 PRINT"BYTES MAY BE USED. 2390 [141]9000 2400 [153]" LOAD " 2401 [153]" LWAIT 2402 PRINT" LOAD ANY PROGRAM FROM CASSETTE #1. 2403 [153]" LWAIT ";[199](34);"RAM TEST";[199](34) 2404 [153]" LOAD FROM CASSETTE #1 THE PROGRAM 2405 PRINT"NAMED RAM TEST[146]. 2410 [153]" LWAIT ";[199](34);"RAM TEST";[199](34);",08WAIT 2420 PRINT" LOAD FROM DISK (DEVICE 8) THE PROGRAM 2430 [153]"NAMED RAM TESTWAIT. 2440 PRINT"THIS COMMAND LEAVES BASIC POINTERS 2450 [153]"UNCHANGED. 2490 GOSUB9000 2700 PRINT" SAVE" 2710 PRINT" S[146] ";CHR$(34);"PROGRAM NAME";CHR$(34);",01,0800,0C80" 2720 PRINT" SAVE TO CASSETTE #1 MEMORY FROM 2730 [153]"0800 HEX UP TO BUT NOT INCLUDING 0C80 2740 PRINT"HEX AND NAME IT PROGRAM NAME[146]. 2750 [153]" SWAIT ";[199](34);"0:PROGRAM NAME";[199](34);",08,1200,1F50" 2760 [153]" SAVE TO DISK DRIVE #0 MEMORY FROM 2770 PRINT"1200 HEX UP TO BUT NOT INCLUDING 1F50 2780 [153]"HEX AND NAME IT PROGRAM NAMEWAIT. 2790 GOSUB9000 2800 PRINT" TRANSFER MEMORY " 2810 PRINT" T[146] 1000[146] 1100[146] 5000 2820 [153]" TRANSFER MEMORY IN THE RANGE 1000 2830 PRINT"HEX TO 1100 HEX AND START STORING IT AT 2840 [153]"ADDRESS 5000 HEX. 2890 GOSUB9000 2900 PRINT" COMPARE MEMORY " 2910 PRINT" C[146] 1000[146] 1100[146] 5000 2920 [153]" COMPARE MEMORY IN THE RANGE 1000 2930 PRINT"HEX TO 1100 HEX WITH MEMORY STARTING 2940 [153]"AT ADDRESS 5000 HEX. 2990 GOSUB9000 3000 PRINT" CHECK DISK " 3010 PRINT" @[146] 3020 [153]" GET DISK STATUS MESSAGE 3030 PRINT" @9[146] 3040 [153]" GET DISK UNIT 9 STATUS MESSAGE 3050 PRINT" @,$0[146] 3060 [153]" GET DRIVE 0 DIRECTORY 3070 PRINT" @,S0:TEMP[146] 3080 [153]" SCRATCH FILE 'TEMP' FROM DISK 3090 GOSUB9000 3100 PRINT" OUTPUT TO PRINTER" 3110 PRINT"CALL SUPERMON+ FROM BASIC WITH: 3120 [153]" OPEN 4,4:CMD 4:SYS 8WAIT" 3130 [153]"ALL COMMANDS WILL GO THE PRINTER. 3140 PRINT" WHEN COMPLETE, RETURN TO BASIC 3150 [153]"WITH XWAIT AND COMMAND: 3160 PRINT" PRINT#4:CLOSE 4[146]" 3170 GOSUB9000 3500 PRINT"[145] SUMMARY " 3505 PRINT"$[146],+[146],&[146],%[146] NUMBER CONVERSION 3510 [153]"GWAIT GO (RUN) 3515 PRINT"J[146] JUMP (SUBROUTINE) 3520 [153]"LWAIT LOAD FROM TAPE OR DISK 3530 PRINT"M[146] MEMORY DISPLAY 3540 [153]"RWAIT REGISTER DISPLAY 3550 PRINT"S[146] SAVE TO TAPE OR DISK 3560 [153]"XWAIT EXIT TO BASIC 3600 PRINT"A[146] SIMPLE ASSEMBLER 3610 [153]"DWAIT DISASSEMBLER 3620 PRINT"F[146] FILL MEMORY 3630 [153]"HWAIT HUNT MEMORY 3660 PRINT"T[146] TRANSFER MEMORY 3665 [153]"CWAIT COMPARE MEMORY 3670 PRINT"@[146] DISK STATUS/COMMAND 4000 [141]9000 4010 [153]"ONSUPERMONWAIT WILL LOAD ITSELF INTO THE 4020 PRINT"TOP OF MEMORY .. WHEREVER THAT HAPPENS 4030 [153]"TO BE ON YOUR MACHINE. 4060 PRINT"BE SURE TO NOTE THE SYS COMMAND WHICH 4070 [153]"LINKS SUPERMONWAIT TO THE COMMODORE. IT 4080 PRINT"MAY BE USED TO RECONNECT THE MONITOR 4090 [153]"IF IT IS ACCIDENTALLY DISCONNECTED BY 4100 PRINT"USE OF THE RUN-STOP/RESTORE KEYS." 5000 GOSUB9000 8000 GOTO 20000 9000 PRINT" HIT ANY KEY TO CONTINUE [146]"; 9010 FORI=1TO10:GETA$:NEXT 9020 GETA$:IFA$=""THEN9020 10000 PRINT"[147]  S U P E R M O N + [146]" 10010 PRINT"COMMANDS - USER INPUT IN  REVERSE " 10040 RETURN 20000 PRINT"[147]TO LOAD AND RUN SUPERMON, "; 20010 PRINT"RESET YOUR COMPUTER AND THEN TYPE" 20020 PRINT" LOAD "CHR$(34)"SUPERMON+64"CHR$(34)",8" 20030 PRINT"AND THEN TYPE" 20040 PRINT" RUN 20050 [153]"TYPE SYS38169 TO REENTER SUPERMON+."