10 BO=53280:BA=BO+1:DIMMI$(20):GOSUB100:GOSUB600:GOSUB300:GOSUB8000:GOTO9000 20 : 21 : 22 : 100 MI$(0)=" LDA #0 [161]" 110 MI$(1)=" STA TMP [161]" 120 MI$(2)=" STA RES [161]" 130 MI$(3)=" STA RES+1 [161]" 140 MI$(4)=" LDX #8 [161]" 150 MI$(5)="MULT LSR MPR [161]" 160 MI$(6)=" BCC SKIP [160][161]" 170 MI$(7)=" LDA RES [161]" 180 MI$(8)=" CLC [161]" 190 MI$(9)=" ADC MPD [161]" 200 MI$(10)=" STA RES [161]" 210 MI$(11)=" LDA RES+1 [161]" 220 MI$(12)=" ADC TMP [161]" 230 MI$(13)=" STA RES+1 [161]" 240 MI$(14)="SKIP ASL MPD [161]" 250 MI$(15)=" ROL TMP [161]" 260 MI$(16)=" DEX [161]" 270 MI$(17)=" BNE MULT [161]" 271 MI$(18)=" RTS [161]" 275 E$=" " 280 RETURN 297 : 298 : 299 : 300 PRINTTAB(22)" REGISTERS" 310 PRINTTAB(22)"[154]X REG.[146][151] 00001000" 320 PRINTTAB(22)"[150]A REG.[146][151] 00000000" 330 PRINTTAB(22)"[159]TMP. [146][151] 00000000" 340 PRINTTAB(22)"[155]RES. [146][151] 00000000" 350 PRINTTAB(22)"RES+1.[146][151] 00000000" 360 PRINTTAB(22)"[153]MPR. [146][151] 00000011" 370 PRINTTAB(22)"MPD. [146][151] 00000101" 380 PRINTTAB(22)"[152]C.FLAG[146][151] 0" 390 PRINTTAB(5)"[154] USE SPACE BAR TO RUN TRACE " 395 RETURN 490 : 495 : 500 GOSUB570:I=128 510 IFBYTEANDITHENPRINT"1";:GOTO530 520 PRINT"0"; 530 I=I/2:IFI>.5THEN510 540 GOSUB580 550 RETURN 560 : 570 PRINT"":RR=PEEK(214):CC=PEEK(211):POKE214,X1:POKE211,29:SYS58640:RETURN 580 POKE214,RR:POKE211,CC:SYS58640:RETURN 590 : 591 : 592 : 600 POKEBO,6:POKEBA,6:PRINT"[147][158] BASIC MACHINE LANGUAGE PROGRMMING" 610 PRINT" TECHNIQUES" 615 PRINT" MULTIPLICATION TRACER" 616 PRINT" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 620 PRINT"TYPE IN MULTIPLICAND,PLEASE" 630 PRINT"RESTRICTED TO BETWEEN 1 AND 255" 635 INPUTMD:IF(MD<1)OR(MD>255)THENPRINT"[145][145]":GOTO635 640 PRINT"TYPE IN MULTIPLIER, PLEASE" 650 PRINT"RESTRICTED TO BETWEEN 1 AND 255" 655 INPUTMR:IF(MR<1)OR(MR>255)THENPRINT"[145][145]":GOTO655 660 M=0:Q=0:LL=MR:HH=MD:POKEBO,11:POKEBA,0:PRINT"[147]" 670 RETURN 700 GETA$:IFA$=""THEN700 710 AN=RH*256+RL 720 PRINT"[147]THE RESULT OF YOUR INPUT - ":PRINTHH"X"LL"="AN 730 PRINT"DO YOU WANT ANOTHER GO " 740 GETA$:IFA$=""THEN740 750 IFA$="Y"THENRUN 760 IFA$<>"N"THEN740 770 PRINT"[147][154]":POKEBO,14:POKEBA,6:END 997 : 998 : 999 : 1000 X1=4:A=0:BYTE=A:GOSUB500:RETURN 1010 X1=7:T1=0:BYTE=T1:GOSUB500:RETURN 1020 X1=10:RL=0:BYTE=RL:GOSUB500:RETURN 1030 X1=12:RH=0:BYTE=RH:GOSUB500:RETURN 1040 X1=2:X=8:BYTE=X:GOSUB500:RETURN 1050 IFMRAND1THENC=1:GOTO1070 1060 C=0 1070 MR=INT(MR/2) 1080 X1=15:BYTE=MR:GOSUB500 1090 X1=20:GOSUB570:IFCTHENPRINT"1":RETURN 1095 PRINT"0":RETURN 1100 IFC=0THENR1=R1+1:GOSUB8070:RB=14:GOSUB8080: 1101 RETURN 1110 X1=4:A=RL:BYTE=A:GOSUB500:RETURN 1120 C=0:X1=20:GOSUB570:PRINT"0":RETURN 1130 A=A+MD 1131 IFA>255THENC=1:A=A-256:GOSUB1090 1132 X1=4:BYTE=A:GOSUB500:RETURN 1140 RL=A:X1=10:BYTE=RL:GOSUB500:RETURN 1150 X1=4:A=RH:BYTE=A:GOSUB500:RETURN 1160 A=A+T1+C:X1=4:BYTE=A:GOSUB500:RETURN 1170 RH=A:X1=12:BYTE=RH:GOSUB500:RETURN 1180 IFMDAND128THENC=1:GOTO1200 1190 C=0 1200 MD=INT(MD*2):IFC=1THENMD=MD-256 1210 X1=17:BYTE=MD:GOSUB500 1220 X1=20:GOSUB570:IFCTHENPRINT"1":RETURN 1230 PRINT"0":RETURN 1250 CT=C:IFT1AND128THENC=1:GOTO1280 1270 C=0 1280 T1=INT(T1*2)+CT 1290 X1=7:BYTE=T1:GOSUB500 1300 X1=20:GOSUB570:IFCTHENPRINT"1":RETURN 1310 PRINT"0":RETURN 1320 X=X-1:X1=2:BYTE=X:GOSUB500 1330 IFX<>0THENZ=1:GOTO1350 1340 Z=0 1350 REM X1=21:GOSUB570:IFXTHENPRINT"1":RETURN 1360 RETURN: PRINT"0":RETURN 1370 IFZ=1THENR1=R1+1:GOSUB8070:RB=5:GOSUB8080:RETURN 1380 Q=1:RETURN 1390 : 1391 : 1392 : 8000 LN=214:CB=198:MM=18:MN=0:FORI=0TO18:PRINT"";MI$(I):NEXT:POKELN,0:RB=MN:CL=MN 8010 GOSUB8080:GOSUB9500:RETURN 8011 : 8012 : 8020 GETA$:IFA$=""THEN8020 8030 IFA$<>" "THEN8020 8035 C1=CL:R1=RB 8040 RB=RB+1:REM IFRB=MM+1THENQ=1 8045 IFMI$=E$THEN8020 8050 IF(C1<>CL)OR(R1<>RB)THENGOSUB8070:GOSUB8080 8060 M=RB:RETURN 8070 POKELN,R1-MN:PRINT"";MI$(R1):RETURN 8080 POKELN,RB-MN:PRINT"";MI$(RB) 8090 RETURN 9000 IFQTHEN700 9010 GOSUB8020:IFM>8THENM=M-8:GOTO 9040 9020 ONMGOSUB1000,1010,1020,1030,1040,1050,1100,1110 9030 GOTO9000 9040 ONMGOSUB1120,1130,1140,1150,1160,1170,1180,1250,1320,1370,1380 9050 GOTO9000 9060 GOTO9000 9500 X1=15:BYTE=MR:GOSUB500 9510 X1=17:BYTE=MD:GOSUB500 9520 RETURN