10 DATA *PORT-A EQU 0000 20 DATA *PORT-B EQU 0001 30 DATA *PORT-C EQU 0002 40 DATA *DDR-A EQU 0004 50 DATA *DDR-B EQU 0005 60 DATA *DDR-C EQU 0006 70 DATA *EOI-FLAG EQU 0011 80 DATA *DEV-# EQU 0012 90 DATA *SEC.FLAG EQU 0013 100 DATA *LABEL14 EQU 0014 110 DATA *CBM-FLAG EQU 0015 120 DATA *LF-FLAG EQU 0016 130 DATA *$22-FLAG EQU 0017 140 DATA *CRSR-FLAG EQU 0018 150 DATA *RESTORE EQU 0019 160 DATA *DOT-FLAG EQU 001A 170 DATA *ASC.FLAG EQU 001B 175 DATA *FRZ-FLAG EQU 001C 180 DATA *OPCODE EQU 0020 190 DATA *HI-BYTE EQU 0021 200 DATA *LO-BYTE EQU 0022 210 DATA *LABEL23 EQU 0023 220 DATA ORG 07FE 230 DATA DAT 04 240 DATA DAT 00 250 DATA ORG 0784 260 DATA DAT 80 270 DATA ORG 0080 280 DATA *GET-BYTE LDA@ 18 290 DATA *CLOCKL BIL CLOCKL 300 DATA *LCLOCK BIL LCLOCK 310 DATA BCL0 PORT-C 320 DATA *BIL BIL CLOCK1H 330 DATA *DECA DECA 340 DATA BNE BIL 350 DATA LDA@ 10 360 DATA BST0 PORT-C 370 DATA *DEC DECA 380 DATA BNE DEC 390 DATA BST7 EOI-FLAG 400 DATA BCL0 PORT-C 410 DATA *CLOCK1H BIH CLOCK1H 420 DATA *CLOCK1L BIL CLOCK1L 430 DATA BBC1 PORT-C BIT-1 440 DATA *BIT-1 RORX 450 DATA *CLOCK2H BIH CLOCK2H 460 DATA *CLOCK2L BIL CLOCK2L 470 DATA BBC1 PORT-C BIT-2 480 DATA *BIT-2 RORX 490 DATA *CLOCK3H BIH CLOCK3H 500 DATA *CLOCK3L BIL CLOCK3L 510 DATA BBC1 PORT-C BIT-3 520 DATA *BIT-3 RORX 530 DATA *CLOCK4H BIH CLOCK4H 540 DATA *CLOCK4L BIL CLOCK4L 550 DATA BBC1 PORT-C BIT-4 560 DATA *BIT-4 RORX 570 DATA *CLOCK5H BIH CLOCK5H 580 DATA *CLOCK5L BIL CLOCK5L 590 DATA BBC1 PORT-C BIT-5 600 DATA *BIT-5 RORX 610 DATA *CLOCK6H BIH CLOCK6H 620 DATA *CLOCK6L BIL CLOCK6L 630 DATA BBC1 PORT-C BIT-6 640 DATA *BIT-6 RORX 650 DATA *CLOCK7H BIH CLOCK7H 660 DATA *CLOCK7L BIL CLOCK7L 670 DATA BBC1 PORT-C BIT-7 680 DATA *BIT-7 RORX 690 DATA *CLOCK8H BIH CLOCK8H 700 DATA *CLOCK8L BIL CLOCK8L 710 DATA BBC1 PORT-C BIT-8 720 DATA *BIT-8 RORX 730 DATA *BYTE BIH BYTE 740 DATA BST0 PORT-C 750 DATA RTS 760 DATA *DATA JSR CHECK 770 DATA *BUSY BBS0 PORT-A BUSY 780 DATA STA PORT-B 790 DATA BCL3 PORT-C 800 DATA BST3 PORT-C 810 DATA *JSR80 JSR GET-BYTE 820 DATA BBS2 PORT-C DATA 830 DATA JMP TEST-DEV 840 DATA ORG 0400 850 DATA LDA@ 00 860 DATA STA DDR-A 870 DATA LDA@ FF 880 DATA STA DDR-B 890 DATA INCA 900 DATA STA PORT-B 910 DATA LDA@ 09 920 DATA STA DDR-C 930 DATA DECA 940 DATA STA PORT-C 950 DATA CLR EOI-FLAG 960 DATA CLR CBM-FLAG 970 DATA CLR DOT-FLAG 980 DATA CLR LF-FLAG 990 DATA CLR ASC.FLAG 995 DATA CLR FRZ-FLAG 1000 DATA LDA PORT-A 1010 DATA EOR@ FF 1020 DATA TAX 1030 DATA ASRA 1040 DATA AND@ 03 1050 DATA ADD@ 24 1060 DATA STA DEV-# 1070 DATA LDA@ D6 1080 DATA STA OPCODE 1090 DATA LDA@ 01 1100 DATA STA HI-BYTE 1110 DATA CLR LO-BYTE 1120 DATA LDA@ 81 1130 DATA STA LABEL23 1140 DATA CLC 1150 DATA TXA 1160 DATA ASLA 1170 DATA BCC TEST-LF 1180 DATA BST7 DOT-FLAG 1190 DATA *TEST-LF CLC 1200 DATA ASLA 1210 DATA BCC ATN 1220 DATA BST7 LF-FLAG 1230 DATA *ATN BBS2 PORT-C ATN 1240 DATA *CLOCK BIH CLOCK 1250 DATA CLR SEC.FLAG 1260 DATA CLR $22-FLAG 1270 DATA CLR CRSR-FLAG 1280 DATA CLR RESTORE 1290 DATA CLR ASC.FLAG 1300 DATA BST0 PORT-C 1310 DATA JSR GET-BYTE 1320 DATA *TEST-DEV CPX DEV-# 1330 DATA BEQ PLUS13 1340 DATA *UNLIST CPX@ 3F 1350 DATA BNE ATN2 1360 DATA *DATAL BRA RELEASE 1370 DATA *ATN2 BBC7 EOI-FLAG SLR 1380 DATA *RELEASE LDA@ 0E 1390 DATA BST0 PORT-C 1400 DATA *TFR DECA 1410 DATA BNE TFR 1420 DATA BCL7 EOI-FLAG 1430 DATA *SLR BCL0 PORT-C 1440 DATA *WAIT BBC2 PORT-C WAIT 1450 DATA BRA ATN 1460 DATA *PLUS13 JSR GET-BYTE 1470 DATA BBC2 PORT-C SEC.ADR. 1480 DATA JMP DATA 1490 DATA *SEC.ADR. CPX@ 3F 1500 DATA BEQ RELEASE 1502 DATA BBS7 FRZ-FLAG STORE 1510 DATA TXA 1520 DATA AND@ 0F 1530 DATA CMP@ 0E 1540 DATA BHS AUTOFEED 1550 DATA CMP@ 01 1560 DATA BEQ TRUTH 1570 DATA CMP@ 02 1580 DATA BEQ ASCII 1582 DATA CMP@ 03 1584 DATA BEQ FREEZE 1590 DATA CMP@ 05 1600 DATA BEQ TRUTH 1610 DATA CMP@ 06 1620 DATA BEQ TRUTH 1630 DATA CMP@ 07 1640 DATA BEQ BUSIN 1650 DATA *CLR.SEC. BCL7 SEC.FLAG 1660 DATA *STORE JMP JSR80 1670 DATA *AUTOFEED CMP@ 0F 1680 DATA BNE OFF 1690 DATA BST7 LF-FLAG 1700 DATA BRA STORE 1703 DATA *FREEZE BST7 FRZ-FLAG 1706 DATA BRA STORE 1710 DATA *OFF BCL7 LF-FLAG 1720 DATA BRA STORE 1730 DATA *TRUTH BST7 CBM-FLAG 1740 DATA BCL7 SEC.FLAG 1750 DATA BRA STORE 1760 DATA *BUSIN BST7 SEC.FLAG 1770 DATA BST7 RESTORE 1780 DATA BRA STORE 1790 DATA *ASCII BCL7 SEC.FLAG 1800 DATA BCL7 RESTORE 1810 DATA BST7 ASC.FLAG 1820 DATA BRA STORE 1830 DATA *CHECK TXA 1840 DATA BBC7 CBM-FLAG CHECK-2 1850 DATA CMP@ 0D 1860 DATA BNE PRINT 1870 DATA BBC7 LF-FLAG PRINT 1880 DATA JSR OUT 1890 DATA LDA@ 0A 1900 DATA *PRINT RTS 1910 DATA *CHECK-2 BBS7 ASC.FLAG ASCII-1 1920 DATA CMP@ 22 1930 DATA BNE VERDER 1940 DATA INC $22-FLAG 1950 DATA *VERDER AND@ 7F 1960 DATA CMP@ 1F 1970 DATA BLS CODES 1980 DATA TXA 1990 DATA BBS7 SEC.FLAG TRANSL. 2000 DATA CMP@ 5B 2010 DATA BHS GRAPHIC 2020 DATA RTS 2030 DATA *ASCII-1 JMP ASCII-2 2040 DATA *GRAPHIC CMP@ 60 2050 DATA BHS BIT-8H 2060 DATA LDA@ 03 2070 DATA STA HI-BYTE 2080 DATA LDA@ 40 2090 DATA STA LO-BYTE 2100 DATA TXA 2110 DATA SUB@ 5B 2120 DATA STA LABEL14 2130 DATA ASLA 2140 DATA ASLA 2150 DATA ADD LABEL14 2160 DATA ADD LABEL14 2170 DATA ADD LO-BYTE 2180 DATA STA LO-BYTE 2190 DATA JMP BIT-IMM. 2200 DATA *BIT-8H CMP@ 9F 2210 DATA BHI M.ADR. 2220 DATA ADD@ 60 2230 DATA TAX 2240 DATA *M.ADR. CLR LO-BYTE 2250 DATA LDA@ 01 2260 DATA STA HI-BYTE 2270 DATA JSR MULTIPLY 2280 DATA JMP BIT-IMM. 2290 DATA *CODES JMP CODES-1 2300 DATA *TRANSL. JMP BUSINESS 2310 DATA *MULTIPLY TXA 2320 DATA SUB@ A0 2330 DATA STA LABEL14 2340 DATA *MULTI CLC 2350 DATA ASLA 2360 DATA BCC MULTI-4 2370 DATA INC HI-BYTE 2380 DATA CLC 2390 DATA *MULTI-4 ASLA 2400 DATA BCC MULTI-5 2410 DATA INC HI-BYTE 2420 DATA CLC 2430 DATA *MULTI-5 ADC LABEL14 2440 DATA BCC SUM 2450 DATA INC HI-BYTE 2460 DATA CLC 2470 DATA *SUM ADC LABEL14 2480 DATA BCC RESULT 2490 DATA INC HI-BYTE 2500 DATA CLC 2510 DATA *RESULT STA LO-BYTE 2520 DATA RTS 2530 DATA *BIT-IMM. JSR DOTTEST 2540 DATA *NXT JSR OPCODE 2550 DATA JSR OUT 2560 DATA INCX 2570 DATA CPX@ 06 2580 DATA BNE NXT 2590 DATA CLRA 2600 DATA *RETURN RSP 2610 DATA JMP JSR80 2620 DATA *OUT BBS0 PORT-A OUT 2630 DATA STA PORT-B 2640 DATA BCL3 PORT-C 2650 DATA BST3 PORT-C 2660 DATA RTS 2670 DATA *BUSINESS CMP@ 5B 2680 DATA BHS UPPER-1 2690 DATA CMP@ 41 2700 DATA BHS LOWER 2710 DATA RTS 2720 DATA *LOWER ORA@ 20 2730 DATA RTS 2740 DATA *UPPER-1 CMP@ 61 2750 DATA BHS UPPER-2 2760 DATA SUB@ 5B 2770 DATA STA LABEL14 2780 DATA LDA@ 03 2790 DATA STA HI-BYTE 2800 DATA LDA LABEL14 2810 DATA JSR MULTI 2820 DATA ADD@ 40 2830 DATA STA LO-BYTE 2840 DATA JMP BIT-IMM. 2850 DATA *UPPER-2 CMP@ 7B 2860 DATA BHS GRAPH-2 2870 DATA AND@ 5F 2880 DATA RTS 2890 DATA *GRAPH-2 CMP@ 80 2900 DATA BHS KAR-A9 2910 DATA SUB@ 7B 2920 DATA *GRAPH-3 STA LABEL14 2930 DATA LDA@ 03 2940 DATA STA HI-BYTE 2950 DATA LDA LABEL14 2960 DATA JSR MULTI 2970 DATA ADD@ 64 2980 DATA STA LO-BYTE 2990 DATA JMP BIT-IMM. 3000 DATA *KAR-A9 CMP@ A9 3010 DATA BNE KAR-BA 3020 DATA LDA@ 03 3030 DATA STA HI-BYTE 3040 DATA LDA@ 82 3050 DATA STA LO-BYTE 3060 DATA JMP BIT-IMM. 3070 DATA *KAR-BA CMP@ BA 3080 DATA BNE KAR-FF 3090 DATA LDA@ 03 3100 DATA STA HI-BYTE 3110 DATA LDA@ 88 3120 DATA STA LO-BYTE 3130 DATA JMP BIT-IMM. 3140 DATA *KAR-FF CMP@ FF 3150 DATA BNE KAR-C0 3160 DATA LDA@ 03 3170 DATA STA HI-BYTE 3180 DATA LDA@ 76 3190 DATA STA LO-BYTE 3200 DATA JMP BIT-IMM. 3210 DATA *KAR-C0 CMP@ C0 3220 DATA BNE GRAPH-4 3230 DATA LDA@ 03 3240 DATA STA HI-BYTE 3250 DATA LDA@ 5E 3260 DATA STA LO-BYTE 3270 DATA JMP BIT-IMM. 3280 DATA *GRAPH-4 CMP@ E0 3290 DATA BHS GRAPH-5 3300 DATA CMP@ C1 3310 DATA BHS UPPER-3 3320 DATA JMP M.ADR. 3330 DATA *GRAPH-5 AND@ BF 3340 DATA JMP KAR-A9 3350 DATA *UPPER-3 CMP@ DB 3360 DATA BHS GRAPH-6 3370 DATA AND@ 7F 3380 DATA RTS 3390 DATA *GRAPH-6 SUB@ DB 3400 DATA JMP GRAPH-3 3410 DATA *CODES-1 TXA 3420 DATA CMP@ 0D 3430 DATA BNE CODES-2 3440 DATA BBC7 CRSR-FLAG CR-1 3450 DATA LDA RESTORE 3460 DATA STA SEC.FLAG 3470 DATA CLR CRSR-FLAG 3480 DATA *CR-1 BBS7 LF-FLAG LF 3490 DATA CLR $22-FLAG 3500 DATA RTS 3510 DATA *LF JSR OUT 3520 DATA CLR $22-FLAG 3530 DATA LDA@ 0A 3540 DATA RTS 3550 DATA *CODES-2 CMP@ 11 3560 DATA BEQ CODES-3 3570 DATA CMP@ 91 3580 DATA BEQ CODES-4 3590 DATA CMP@ 12 3600 DATA BEQ CODES-5 3610 DATA CMP@ 13 3620 DATA BEQ CODES-6 3630 DATA CMP@ 0E 3640 DATA BEQ CODES-7 3650 DATA CMP@ 0F 3660 DATA BEQ CODES-8 3670 DATA BNE CODES-9 3680 DATA *CODES-3 BBS0 $22-FLAG PRINT-D 3690 DATA BST7 SEC.FLAG 3700 DATA BST7 CRSR-FLAG 3710 DATA JMP RETURN 3720 DATA *CODES-4 BBS0 $22-FLAG CODES-9 3730 DATA BCL7 SEC.FLAG 3740 DATA BST7 CRSR-FLAG 3750 DATA JMP RETURN 3760 DATA *CODES-5 BBS0 $22-FLAG PRINT-R 3770 DATA JMP RETURN 3780 DATA *CODES-6 BBS0 $22-FLAG PRINT-S 3790 DATA JMP RETURN 3800 DATA *PRINT-D LDA@ 8E 3810 DATA STA LO-BYTE 3820 DATA *PR-CODE LDA@ 03 3830 DATA STA HI-BYTE 3840 DATA JMP BIT-IMM. 3850 DATA *PRINT-R LDA@ 94 3860 DATA STA LO-BYTE 3870 DATA BRA PR-CODE 3880 DATA *PRINT-S LDA@ 9A 3890 DATA STA LO-BYTE 3900 DATA BRA PR-CODE 3910 DATA *CODES-7 BBS0 $22-FLAG CODES-9 3920 DATA LDA@ 1B 3930 DATA JSR OUT 3940 DATA LDA@ 57 3950 DATA JSR OUT 3960 DATA LDA@ 01 3970 DATA JSR OUT 3980 DATA JMP RETURN 3990 DATA *CODES-8 BBS0 $22-FLAG CODES-9 4000 DATA LDA@ 1B 4010 DATA JSR OUT 4020 DATA LDA@ 57 4030 DATA JSR OUT 4040 DATA LDA@ 00 4050 DATA JSR OUT 4060 DATA JMP RETURN 4070 DATA *CODES-9 BBS0 $22-FLAG END 4080 DATA CMP@ 10 4090 DATA BEQ CHR$16 4100 DATA CMP@ 08 4110 DATA BEQ CHR$26 4120 DATA RTS 4130 DATA *CHR$26 JSR GET-BYTE 4140 DATA TXA 4150 DATA CMP@ 1A 4160 DATA BEQ REPEAD 4170 DATA RTS 4180 DATA *REPEAD JMP REP-CHAR. 4190 DATA *CHR$16 JMP SET-TAP 4200 DATA *END ADD@ 40 4210 DATA TAX 4220 DATA CMP@ 45 4230 DATA BNE HOGER-1 4240 DATA LDA@ A0 4250 DATA STA LO-BYTE 4260 DATA LDA@ 03 4270 DATA STA HI-BYTE 4280 DATA JMP BIT-IMM. 4290 DATA *HOGER-1 CMP@ 80 4300 DATA BHS HOGER-2 4310 DATA LDA@ 03 4320 DATA STA HI-BYTE 4330 DATA TXA 4340 DATA SUB@ 5B 4350 DATA STA LABEL14 4360 DATA JSR MULTI 4370 DATA ADD@ 40 4380 DATA STA LO-BYTE 4390 DATA JMP BIT-REV. 4400 DATA *HOGER-2 CLR LO-BYTE 4410 DATA LDA@ 01 4420 DATA STA HI-BYTE 4430 DATA JSR MULTIPLY 4440 DATA *BIT-REV. JSR DOTTEST 4450 DATA *GO-ON JSR OPCODE 4460 DATA EOR@ FE 4470 DATA JSR OUT 4480 DATA INCX 4490 DATA CPX@ 06 4500 DATA BNE GO-ON 4510 DATA CLRA 4520 DATA RSP 4530 DATA JMP JSR80 4540 DATA *DOTTEST BBS7 DOT-FLAG IBM 4550 DATA LDA@ 1B 4560 DATA JSR OUT 4570 DATA LDA@ 4B 4580 DATA JSR OUT 4590 DATA LDA@ 06 4600 DATA JSR OUT 4610 DATA CLRX 4620 DATA CLRA 4630 DATA JSR OUT 4640 DATA RTS 4650 DATA *IBM LDA@ 1B 4660 DATA JSR OUT 4670 DATA LDA@ 2A 4680 DATA JSR OUT 4690 DATA LDA@ 00 4700 DATA JSR OUT 4710 DATA LDA@ 06 4720 DATA JSR OUT 4730 DATA CLRX 4740 DATA CLRA 4750 DATA JSR OUT 4760 DATA RTS 4770 DATA ORG 03A8 4780 DATA *SET-TAP LDA@ 1B 4790 DATA JSR OUT 4800 DATA LDA@ 44 4810 DATA JSR OUT 4820 DATA JSR GET-BYTE 4830 DATA TXA 4840 DATA AND@ 0F 4850 DATA ASLA 4860 DATA STA LABEL14 4870 DATA ASLA 4880 DATA ASLA 4890 DATA ADD LABEL14 4900 DATA STA LABEL14 4910 DATA JSR GET-BYTE 4920 DATA TXA 4930 DATA AND@ 0F 4940 DATA ADD LABEL14 4950 DATA JSR OUT 4960 DATA LDA@ 00 4970 DATA JSR OUT 4980 DATA LDA@ 09 4990 DATA JSR OUT 5000 DATA JMP RETURN 5010 DATA ORG 03D8 5020 DATA *ASCII-2 CMP@ 9F 5023 DATA BLS CMP-0D 5026 DATA AND@ 7F 5030 DATA *CMP-0D CMP@ 0D 5040 DATA BEQ ASC-LF 5050 DATA CMP@ 60 5060 DATA BHS ASC.LOW 5070 DATA CMP@ 40 5080 DATA BHS ASC.UP 5090 DATA *PRINTEN RTS 5100 DATA *ASC.LOW AND@ 5F 5110 DATA BRA PRINTEN 5120 DATA *ASC.UP ORA@ 20 5130 DATA BRA PRINTEN 5140 DATA *ASC-LF BBC7 LF-FLAG PRINTEN 5150 DATA JSR OUT 5160 DATA LDA@ 0A 5170 DATA RTS 5180 DATA ORG 0738 5190 DATA *REP-CHAR. LDA@ 1B 5200 DATA JSR OUT 5210 DATA BBS7 DOT-FLAG IBM-2 5220 DATA LDA@ 4B 5230 DATA JSR OUT 5240 DATA BRA REP-2 5250 DATA *IBM-2 LDA@ 2A 5260 DATA JSR OUT 5270 DATA LDA@ 00 5280 DATA JSR OUT 5290 DATA *REP-2 JSR GET-BYTE 5300 DATA TXA 5310 DATA STA LABEL14 5320 DATA JSR OUT 5330 DATA LDA@ 00 5340 DATA JSR OUT 5350 DATA JSR GET-BYTE 5360 DATA TXA 5370 DATA LDX LABEL14 5380 DATA *REP-3 JSR OUT 5390 DATA DECX 5400 DATA BNE REP-3 5410 DATA JMP RETURN 5420 REM 550 STATEMENTS - 148 LABELS 10000 PRINT"[147]":PRINT"ASSEMBLER FOR MOTOROLA MC68705":PRINT 10010 OPEN4,4:POKE56,144:CLR 10020 PRINT"EVEN GEDULD A.U.B.":PRINT 10030 FOR CL=36864 TO 38912:POKECL,0:NEXT 10040 POKE38910,4:POKE38788,128 10050 PRINT"BASE ADRESS OF ASS. CODE BUFFER $9000":P=36864:PRINT 10060 INPUT"HOW MANY LINES TO BE ASSEMBLED";D:PRINT 10070 INPUT"HOW MANY LABELS ARE USED";C:PRINT:PRINT 10080 DIML$(C),A(C):Z=1 10090 PRINT"FIRST PASS RUNNING":PRINT:PRINT 10100 K=0:Q=0 10110 FOR X=1 TO D:PRINTX; 10120 IF Z=3 THEN PRINT#4,X; 10130 GOSUB 12250 10140 GOTO 10240 10150 GOSUB 12450 10160 NEXT X 10170 Z=Z+1 10180 IF Z=4 THEN 10210 10190 IF Z=3 THEN PRINT"PRINT-OUT":PRINT:PRINT:RESTORE:GOTO10100 10200 PRINT"SECUND PASS RUNNING":PRINT:PRINT:RESTORE:GOTO 10100 10210 PRINT:PRINT:PRINT"ASSEMBLY COMPLETE":PRINT#4:PRINT#4:PRINT#4,"ASSEMBLY COMPLETE" 10220 PRINT#4:PRINT#4 10230 CLOSE 4:END 10240 READ S$:P$=S$ 10250 IF LEFT$(S$,1)="*" THEN GOSUB 10930 10260 M$=LEFT$(S$,3):S$=RIGHT$(S$,(LEN(S$)-3)) 10270 IF M$="ADC" THEN B=169:GOTO 11050 10280 IF M$="ADD" THEN B=171:GOTO 11050 10290 IF M$="AND" THEN B=164:GOTO 11050 10300 IF M$="ASL" THEN B=56:GOTO 10990 10310 IF M$="ASR" THEN B=55:GOTO 10990 10320 IF M$="BCC" THEN O=36:GOTO 11450 10330 IF M$="BCL" THEN B=17:GOTO 11610 10340 IF M$="BCS" THEN O=37:GOTO 11450 10350 IF M$="BEQ" THEN O=39:GOTO 11450 10360 IF M$="BHC" THEN O=40:GOTO 11450 10370 IF M$="BHF" THEN O=41:GOTO 11450 10380 IF M$="BHI" THEN O=34:GOTO 11450 10390 IF M$="BHS" THEN O=36:GOTO 11450 10400 IF M$="BIH" THEN O=47:GOTO 11450 10410 IF M$="BIL" THEN O=46:GOTO 11450 10420 IF M$="BIT" THEN B=165:GOTO 11050 10430 IF M$="BLO" THEN O=37:GOTO 11450 10440 IF M$="BLS" THEN O=35:GOTO 11450 10450 IF M$="BMC" THEN O=44:GOTO 11450 10460 IF M$="BMI" THEN O=43:GOTO 11450 10470 IF M$="BMS" THEN O=45:GOTO 11450 10480 IF M$="BNE" THEN O=38:GOTO 11450 10490 IF M$="BPL" THEN O=42:GOTO 11450 10500 IF M$="BRA" THEN O=32:GOTO 11450 10510 IF M$="BRN" THEN O=33:GOTO 11450 10520 IF M$="BBC" THEN B=1:GOTO 11720 10530 IF M$="BBS" THEN B=0:GOTO 11720 10540 IF M$="BST" THEN B=16:GOTO 11610 10550 IF M$="BSR" THEN O=173:GOTO 11450 10560 IF M$="CLC" THEN O=152:GOTO 11780 10570 IF M$="CLI" THEN O=154:GOTO 11780 10580 IF M$="CLR" THEN B=63:GOTO 10990 10590 IF M$="CMP" THEN B=161:GOTO 11050 10600 IF M$="COM" THEN B=51:GOTO 10990 10610 IF M$="CPX" THEN B=163:GOTO 11050 10620 IF M$="DAT" THEN 12060 10630 IF M$="DEC" THEN B=58:GOTO10990 10640 IF M$="EOR" THEN B=168:GOTO11050 10650 IF M$="EQU" THEN 12160 10660 IF M$="INC" THEN B=60:GOTO10990 10670 IF M$="JMP" THEN B=172:GOTO11050 10680 IF M$="JSR" THEN B=173:GOTO11050 10690 IF M$="LDA" THEN B=166:GOTO11050 10700 IF M$="LDX" THEN B=174:GOTO11050 10710 IF M$="LSL" THEN B=56:GOTO10990 10720 IF M$="LSR" THEN B=52:GOTO10990 10730 IF M$="NEG" THEN B=48:GOTO10990 10740 IF M$="NOP" THEN O=157:GOTO11780 10750 IF M$="ORA" THEN B=170:GOTO11050 10760 IF M$="ORG" THEN 12090 10770 IF M$="ROL" THEN B=57:GOTO10990 10780 IF M$="ROR" THEN B=54:GOTO10990 10790 IF M$="RSP" THEN O=156:GOTO11780 10800 IF M$="RTI" THEN O=128:GOTO11780 10810 IF M$="RTS" THEN O=129:GOTO11780 10820 IF M$="SBC" THEN B=162:GOTO11050 10830 IF M$="SEC" THEN O=153:GOTO11780 10840 IF M$="SEI" THEN O=155:GOTO11780 10850 IF M$="STA" THEN B=167:GOTO11050 10860 IF M$="STX" THEN B=175:GOTO11050 10870 IF M$="SUB" THEN B=160:GOTO11050 10880 IF M$="SWI" THEN O=130:GOTO11780 10890 IF M$="TAX" THEN O=151:GOTO11780 10900 IF M$="TST" THEN B=61:GOTO10990 10910 IF M$="TXA" THEN O=159:GOTO11780 10920 PRINT"MNEMONIC ERROR IN LINE ";X:CLOSE4:END 10930 L$=MID$(S$,2,1):S$=RIGHT$(S$,(LEN(S$)-2)) 10940 IF LEFT$(S$,1)=" " THEN 10970 10950 L$=L$+LEFT$(S$,1):GOSUB 12230 10960 GOTO 10940 10970 GOSUB 12230:K=K+1:L$(K)=L$ 10980 A(K)=Q:RETURN 10990 T=1:M$=LEFT$(S$,1):GOSUB 12230 11000 IF M$=" " THEN M=0:GOTO11140 11010 IF M$="A" THEN M=1:GOTO 11100 11020 IF M$="X" THEN M=2:GOTO 11100 11030 IF M$="(" THEN M=3:GOTO 11120 11040 PRINT"ADRESS MODE ERROR IN LINE ";X:CLOSE4:END 11050 T=2:M$=LEFT$(S$,1):GOSUB 12230 11060 IF M$="@" THEN M=0:GOTO 11350 11070 IF M$=" " THEN M=2:GOTO 11140 11080 IF M$="(" THEN M=3:GOTO 11120 11090 GOTO 11040 11100 GOSUB 11800 11110 GOTO 10150 11120 M$=LEFT$(S$,1) 11130 IF M$=")" THEN 11210 11140 GOSUB 11910 11150 IF F=0 THEN 11250 11160 IF T=2 THEN 11300 11170 IFH>0THENPRINT"READ/MODEFY/WRITE TO PAGE ZERO ONLY - ERROR IN LINE ";X:CLOSE4:END 11180 GOSUB 11800 11190 GOSUB 11880 11200 GOTO 10150 11210 IF T=2 THEN M=5:GOTO 11230 11220 M=4 11230 GOSUB 11800 11240 GOTO 10150 11250 IF Z=2 THEN PRINT"UNDEFINED LABEL IN LINE ";X:CLOSE4:END 11260 IF T=1 THEN 11180 11270 GOSUB 11800 11280 GOSUB 11840 11290 GOTO 10150 11300 IF A(Y)>Q THEN 11270 11310 IF H>0 THEN 11270 11320 IF M=2 THEN M=1:GOTO 11340 11330 M=4 11340 GOTO 11180 11350 GOSUB 12230 11360 GOSUB 11380 11370 GOTO 11180 11380 M$=LEFT$(S$,1) 11390 IF ASC(M$)<71 AND ASC(M$)> 64 THEN L=(ASC(M$)-55)*16:GOTO 11410 11400 L=(ASC(M$)-48)*16 11410 M$=MID$(S$,2,1) 11420 IF ASC(M$)<71 AND ASC(M$)>64 THEN L=L+ASC(M$)-55:GOTO 11440 11430 L=L+ASC(M$)-48 11440 RETURN 11450 GOSUB 11810 11460 GOSUB 12230 11470 GOSUB 11910 11480 IF F=0 THEN 11560 11490 IF A(Y)>Q+1 THEN 11530 11500 IF (Q+1)-A(Y)>128 THEN PRINT"BRANCH OUT OF RANGE IN LINE ";X:CLOSE4:END 11510 L=256-((Q+1)-A(Y)) 11520 GOTO 11580 11530 IF A(Y)-(Q+1)>127 THEN PRINT"BRANCH OUT OF RANGE IN LINE ";X:CLOSE4:END 11540 L=A(Y)-(Q+1) 11550 GOTO 11580 11560 IF Z=2 THEN PRINT"UNDEFINED LABEL IN LINE ";X-1:CLOSE4:END 11570 L=0 11580 IF O<16 THEN RETURN 11590 GOSUB 11880 11600 GOTO 10150 11610 M$=LEFT$(S$,1):GOSUB 12230 11620 IF VAL(M$)<0 OR VAL(M$)>7 THEN PRINT"BIT NUMBER ERROR IN LINE ";X:CLOSE4:END 11630 M=VAL(M$) 11640 GOSUB 12230:GOSUB 11910 11650 IF F=0 THEN PRINT"UNDEFINED LABEL IN LINE ";X:CLOSE4:END 11660 IF A(Y)>127THENPRINT"TARGET BYTE NOT IN RAM - ERROR IN LINE ";X:CLOSE4:END 11670 O=B+(2*M) 11680 GOSUB 11810 11690 IF B<16 THEN RETURN 11700 GOSUB 11880 11710 GOTO 10150 11720 GOSUB 11610 11730 J=L 11740 GOSUB 11470 11750 H=J 11760 GOSUB 11840 11770 GOTO 10150 11780 GOSUB 11810 11790 GOTO 10150 11800 O=B+(16*M) 11810 POKE(P+Q),O:Q=Q+1 11820 GOSUB 12300 11830 RETURN 11840 POKE(P+Q),H:Q=Q+1 11850 GOSUB 12350 11860 IF B=0 OR B=1 THEN L=L-1 11870 IF L<0 THEN L=0 11880 POKE(P+Q),L:Q=Q+1 11890 GOSUB 12400 11900 RETURN 11910 L$="" 11920 IF LEN(S$)=0 THEN 11960 11930 L$=L$+LEFT$(S$,1):GOSUB 12230 11940 IFRIGHT$(L$,1)=")"ORRIGHT$(L$,1)=" "THENL$=LEFT$(L$,(LEN(L$)-1)):GOTO11960 11950 GOTO 11920 11960 Y=0 11970 Y=Y+1 11980 IF Y>K THEN 12030 11990 IF L$=L$(Y) THEN 12020 12000 GOTO 11970 12010 F=0:H=255:L=255:RETURN 12020 F=1:H=INT(A(Y)/256):L=A(Y)-(H*256):RETURN 12030 IF Z=1 THEN 12010 12040 IF Y>C THEN 12010 12050 GOTO 11990 12060 GOSUB 12230 12070 GOSUB 11380 12080 GOSUB 11880:GOTO 10150 12090 GOSUB 12230 12100 GOSUB 11380 12110 H=L 12120 S$=RIGHT$(S$,(LEN(S$)-2)) 12130 GOSUB 11380 12140 Q=L+(256*H) 12150 GOTO 10150 12160 GOSUB 12230 12170 GOSUB 11380 12180 A(K)=256*L 12190 S$=RIGHT$(S$,(LEN(S$)-2)) 12200 GOSUB 11380 12210 A(K)=A(K)+L 12220 GOTO 10150 12230 S$=RIGHT$(S$,(LEN(S$)-1)) 12240 RETURN 12250 IF Z<3 THEN RETURN 12260 R=Q:E=3 12270 GOSUB 12560 12280 PRINT#4,TAB(6) R$; 12290 RETURN 12300 IF Z<3 THEN RETURN 12310 R=O:E=2 12320 GOSUB 12560 12330 PRINT#4,TAB(11)R$; 12340 RETURN 12350 IF Z<3 THEN RETURN 12360 R=H:E=2 12370 GOSUB 12560 12380 PRINT#4,TAB(14)R$; 12390 RETURN 12400 IF Z<3 THEN RETURN 12410 R=L:E=2 12420 GOSUB 12560 12430 PRINT#4,TAB(17)R$; 12440 RETURN 12450 IF Z<3 THEN RETURN 12460 HP$="" 12470 IF LEFT$(P$,1)="*" THEN 12490 12480 GOTO 12530 12490 HP$=HP$+(LEFT$(P$,1)) 12500 P$=RIGHT$(P$,(LEN(P$)-1)) 12510 IF LEFT$(P$,1)<>" " THEN 12490 12520 PRINT#4,TAB(21)HP$;TAB(32)P$:GOTO 12540 12530 PRINT#4,TAB(33)P$ 12540 : 12550 RETURN 12560 R$="" 12570 FOR Y=E TO 1 STEP-1 12580 I=INT(R/16^(Y-1))):R=R-(I*(16^(Y-1))) 12590 IF I>9 THEN I$=CHR$(I+55):GOTO 12610 12600 I$=CHR$(I+48) 12610 R$=R$+I$ 12620 NEXT Y 12630 RETURN