MTREP PAGE : 1 DATED : 21MAY21 10 ICHAR = $1 20 VDUIND = $3 30 CURS = $A 40 ORDR = $60 50 ORDW = $61 60 PPIN = $62 70 VPP = $63 80 SCNADD = $64 90 EADD = $66 100 EEND = $68 110 MADD = $6A 120 SCN2 = $200 130 SCN3 = $300 140 CURSOR = $3EE 150 DDRC = $BFE3 160 DDRD = $BFE2 170 DDRA = $BFC3 180 ORA = $BFC1 190 ORC = $BFE1 200 ORD = $BFE0 210 IRA = $BFC1 220 PCR = $BFEC 230 RETMON = $FC00 240 OPCHR = $F80E 250 HEXPNT = $F81A 260 POLLKB = $F81D 270 OUTCR = $F80C 280 CUROFF = $F829 290 * = $400 0400 202B06 300 JSR CLRTOP 0403 203606 310 JSR CLRBOT 0406 A980 320 LDA #$80 0408 8560 330 STA ORDR 040A A9C0 340 LDA #$C0 040C 8561 350 STA ORDW 040E A9FF 360 LDA #$FF 0410 8DE3BF 370 STA DDRC 0413 8DE2BF 380 STA DDRD 0416 8568 390 STA EEND 0418 8DE0BF 400 STA ORD 041B A900 410 LDA #$0 041D 8DC3BF 420 STA DDRA 0420 8566 430 STA EADD 0422 8567 440 STA EADD+1 0424 856A 450 STA MADD 0426 A907 460 LDA #$7 0428 8569 470 STA EEND+1 042A A910 480 LDA #$10 042C 856B 490 STA MADD+1 042E A902 500 LDA #$2 0430 8565 510 STA SCNADD+1 0432 A920 520 LDA #$20 0434 8562 530 STA PPIN 0436 A9EE 540 LDA #$EE 0438 8DECBF 550 STA PCR 043B A9EC 560 LDA #$EC 043D 8563 570 STA VPP 043F A200 580 LDX #$0 0441 204106 590 JSR WMSG 0444 A903 600 LDA #$3 0446 8565 610 STA SCNADD+1 0448 A21E 620 LDX #$1E 044A 204106 630 JSR WMSG 044D 201DF8 640 GETYPE: JSR POLLKB 0450 A501 650 LDA ICHAR 0452 C941 660 CMP #'A 0454 F018 670 BEQ PTYPE 0456 C942 680 CMP #'B 0458 D0F3 690 BNE GETYPE 045A A90F 700 LDA #$F 045C 8569 710 STA EEND+1 045E A960 720 LDA #$60 0460 8560 730 STA ORDR 0462 A9E0 740 LDA #$E0 0464 8561 750 STA ORDW 0466 A980 760 LDA #$80 0468 8562 770 STA PPIN 046A A9CE 780 LDA #$CE 046C 8563 790 STA VPP 046E A902 800 PTYPE: LDA #$2 0470 8565 810 STA SCNADD+1 0472 203606 820 JSR CLRBOT 0475 A23E 830 LDX #$3E 0477 204106 840 JSR WMSG 047A A560 850 LDA ORDR 047C C980 860 CMP #$80 047E F006 870 BEQ WCMDS 0480 88 880 DEY 0481 88 890 DEY 0482 E8 900 INX 0483 204906 910 JSR WMSG1 0486 A256 920 WCMDS: LDX #$56 0488 204106 930 JSR WMSG 048B E8 940 INX 048C 204106 950 JSR WMSG 048F A903 960 LDA #$3 0491 8565 970 STA SCNADD+1 0493 A289 980 GETCMD: LDX #$89 0495 204106 990 JSR WMSG 0498 201DF8 1000 JSR POLLKB 049B A501 1010 LDA ICHAR 049D 8DEE03 1020 STA CURSOR 04A0 C954 1030 CMP #'T 04A2 D006 1040 BNE TRYR 04A4 20F005 1050 JSR TEST 04A7 4C9304 1060 JMP GETCMD 04AA C952 1070 TRYR: CMP #'R 04AC D006 1080 BNE TRYW 04AE 203605 1090 JSR READ 04B1 4C9304 1100 JMP GETCMD 04B4 C957 1110 TRYW: CMP #'W 04B6 D006 1120 BNE TRYV 04B8 204E05 1130 JSR WRITE 04BB 4C9304 1140 JMP GETCMD 04BE C956 1150 TRYV: CMP #'V 04C0 D006 1160 BNE TRYX 04C2 208B05 1170 JSR VERIFY 04C5 4C9304 1180 JMP GETCMD 04C8 C958 1190 TRYX: CMP #'X 04CA D0C7 1200 BNE GETCMD 04CC 202B06 1210 JSR CLRTOP 04CF 203606 1220 JSR CLRBOT 04D2 4C00FC 1230 JMP RETMON 04D5 A566 1240 READE: LDA EADD 04D7 8DE1BF 1250 STA ORC 04DA A567 1260 LDA EADD+1 04DC 0560 1270 ORA ORDR 04DE 8DE0BF 1280 STA ORD 04E1 ADC1BF 1290 LDA IRA 04E4 60 1300 RTS 04E5 A900 1310 PROGE: LDA #$0 04E7 8503 1320 STA VDUIND 04E9 A567 1330 LDA EADD+1 04EB 48 1340 PHA 04EC 0561 1350 ORA ORDW 04EE 8DE0BF 1360 STA ORD 04F1 68 1370 PLA 04F2 201AF8 1380 JSR HEXPNT 04F5 A566 1390 LDA EADD 04F7 8DE1BF 1400 STA ORC 04FA 201AF8 1410 JSR HEXPNT 04FD 2029F8 1420 JSR CUROFF 0500 A000 1430 LDY #$0 0502 B16A 1440 LDA (MADD),Y 0504 8DC1BF 1450 STA ORA 0507 ADE0BF 1460 LDA ORD 050A 4562 1470 EOR PPIN 050C 8DE0BF 1480 STA ORD 050F A21D 1490 LDX #$1D 0511 88 1500 DELAY: DEY 0512 D0FD 1510 BNE DELAY 0514 CA 1520 DEX 0515 D0FA 1530 BNE DELAY 0517 A561 1540 LDA ORDW 0519 8DE0BF 1550 STA ORD 051C 60 1560 RTS 051D A566 1570 INCRMT: LDA EADD 051F C568 1580 CMP EEND 0521 D006 1590 BNE SKIP1 0523 A567 1600 LDA EADD+1 0525 C569 1610 CMP EEND+1 0527 F00C 1620 BEQ SKIP3 0529 E666 1630 SKIP1: INC EADD 052B D002 1640 BNE SKIP2 052D E667 1650 INC EADD+1 052F E66A 1660 SKIP2: INC MADD 0531 D002 1670 BNE SKIP3 0533 E66B 1680 INC MADD+1 0535 60 1690 SKIP3: RTS 0536 201706 1700 READ: JSR START 0539 20D504 1710 NEXTR: JSR READE 053C 916A 1720 STA (MADD),Y 053E 201D05 1730 JSR INCRMT 0541 D0F6 1740 BNE NEXTR 0543 202506 1750 JSR STOP 0546 A29A 1760 LDX #$9A 0548 204106 1770 JSR WMSG 054B 4C8B05 1780 JMP VERIFY 054E 201706 1790 WRITE: JSR START 0551 A9FF 1800 LDA #$FF 0553 8DC3BF 1810 STA DDRA 0556 A2F0 1820 LDX #$F0 0558 204106 1830 JSR WMSG 055B 200B06 1840 JSR PRESSK 055E A561 1850 LDA ORDW 0560 8DE0BF 1860 STA ORD 0563 A563 1870 LDA VPP 0565 8DECBF 1880 STA PCR 0568 A940 1890 LDA #$40 056A 850A 1900 STA CURS 056C 20E504 1910 NEXTP: JSR PROGE 056F 201D05 1920 JSR INCRMT 0572 D0F8 1930 BNE NEXTP 0574 A9EE 1940 LDA #$EE 0576 8DECBF 1950 STA PCR 0579 202506 1960 JSR STOP 057C A900 1970 LDA #$0 057E 8DC3BF 1980 STA DDRA 0581 A560 1990 LDA ORDR 0583 8DE0BF 2000 STA ORD 0586 A29A 2010 LDX #$9A 0588 204106 2020 JSR WMSG 058B 201706 2030 VERIFY: JSR START 058E 20D504 2040 NEXTV: JSR READE 0591 D16A 2050 CMP (MADD),Y 0593 D011 2060 BNE FAIL 0595 201D05 2070 JSR INCRMT 0598 D0F4 2080 BNE NEXTV 059A 202506 2090 JSR STOP 059D A2AD 2100 LDX #$AD 059F 204106 2110 JSR WMSG 05A2 200B06 2120 JSR PRESSK 05A5 60 2130 RTS 05A6 A2B7 2140 FAIL: LDX #$B7 05A8 204106 2150 JSR WMSG 05AB A960 2160 LDA #$60 05AD 850A 2170 STA CURS 05AF A903 2180 LDA #$3 05B1 850B 2190 STA CURS+1 05B3 A90C 2200 LDA #$C 05B5 8503 2210 STA VDUIND 05B7 A567 2220 LDA EADD+1 05B9 201AF8 2230 JSR HEXPNT 05BC A566 2240 LDA EADD 05BE 201AF8 2250 JSR HEXPNT 05C1 2029F8 2260 JSR CUROFF 05C4 A915 2270 LDA #$15 05C6 8503 2280 STA VDUIND 05C8 20D504 2290 JSR READE 05CB 201AF8 2300 JSR HEXPNT 05CE 2029F8 2310 JSR CUROFF 05D1 A91C 2320 LDA #$1C 05D3 8503 2330 STA VDUIND 05D5 A567 2340 LDA EADD+1 05D7 0910 2350 ORA #$10 05D9 856B 2360 STA MADD+1 05DB A566 2370 LDA EADD 05DD 856A 2380 STA MADD 05DF A000 2390 LDY #$0 05E1 B16A 2400 LDA (MADD),Y 05E3 201AF8 2410 JSR HEXPNT 05E6 2029F8 2420 JSR CUROFF 05E9 202506 2430 JSR STOP 05EC 200B06 2440 JSR PRESSK 05EF 60 2450 RTS 05F0 201706 2460 TEST: JSR START 05F3 20D504 2470 NEXTT: JSR READE 05F6 C9FF 2480 CMP #$FF 05F8 D0AC 2490 BNE FAIL 05FA 201D05 2500 JSR INCRMT 05FD D0F4 2510 BNE NEXTT 05FF 202506 2520 JSR STOP 0602 A2AD 2530 LDX #$AD 0604 204106 2540 JSR WMSG 0607 200B06 2550 JSR PRESSK 060A 60 2560 RTS 060B A2D5 2570 PRESSK: LDX #$D5 060D 204106 2580 JSR WMSG 0610 201DF8 2590 JSR POLLKB 0613 203606 2600 JSR CLRBOT 0616 60 2610 RTS 0617 A900 2620 START: LDA #$0 0619 8566 2630 STA EADD 061B 8567 2640 STA EADD+1 061D 856A 2650 STA MADD 061F A8 2660 TAY 0620 A910 2670 LDA #$10 0622 856B 2680 STA MADD+1 0624 60 2690 RTS 0625 A9FF 2700 STOP: LDA #$FF 0627 8DE0BF 2710 STA ORD 062A 60 2720 RTS 062B A920 2730 CLRTOP: LDA #$20 062D A200 2740 LDX #$0 062F 9D0002 2750 LOOP1: STA SCN2,X 0632 E8 2760 INX 0633 D0FA 2770 BNE LOOP1 0635 60 2780 RTS 0636 A920 2790 CLRBOT: LDA #$20 0638 A200 2800 LDX #$0 063A 9D0003 2810 LOOP2: STA SCN3,X 063D E8 2820 INX 063E D0FA 2830 BNE LOOP2 0640 60 2840 RTS 0641 A000 2850 WMSG: LDY #$0 0643 BD5506 2860 LDA TEXT,X 0646 8564 2870 STA SCNADD 0648 E8 2880 INX 0649 BD5506 2890 WMSG1: LDA TEXT,X 064C F006 2900 BEQ END1 064E 9164 2910 STA (SCNADD),Y 0650 C8 2920 INY 0651 E8 2930 INX 0652 D0F5 2940 BNE WMSG1 0654 60 2950 END1: RTS 0655 40 2960 TEXT: DEFB $40 0656 4D 0657 49 0658 43 0659 52 065A 4F 065B 54 065C 41 065D 4E 065E 2D 065F 52 2970 DEFM 'MICROTAN-R 0660 20 0661 20 0662 45 0663 50 0664 52 0665 4F 0666 4D 0667 20 0668 50 0669 52 066A 4F 066B 47 066C 52 066D 41 066E 4D 066F 4D 0670 45 0671 52 2980 DEFM ' EPROM PROGRAMMER 0672 00 2990 BRK 0673 80 3000 DEFB $80 0674 53 0675 45 0676 4C 0677 45 0678 43 0679 54 067A 20 067B 54 067C 59 067D 50 067E 45 067F 20 0680 41 0681 3A 0682 20 0683 32 0684 37 0685 31 0686 36 3010 DEFM 'SELECT TYPE A: 2716 0687 20 0688 4F 0689 52 068A 20 068B 42 068C 3A 068D 20 068E 32 068F 37 0690 33 0691 32 3020 DEFM ' OR B: 2732 0692 00 3030 BRK 0693 80 3040 DEFB $80 0694 54 0695 59 0696 50 0697 45 0698 20 0699 53 069A 45 069B 4C 069C 45 069D 43 069E 54 069F 45 06A0 44 06A1 3A 06A2 20 06A3 32 06A4 37 06A5 31 06A6 36 3050 DEFM 'TYPE SELECTED: 2716 06A7 00 3060 BRK 06A8 33 06A9 32 3070 DEFM '32 06AA 00 3080 BRK 06AB C0 3090 DEFB $C0 06AC 43 06AD 4F 06AE 4D 06AF 4D 06B0 41 06B1 4E 06B2 44 06B3 53 06B4 3A 3100 DEFM 'COMMANDS: 06B5 20 06B6 28 06B7 54 06B8 29 06B9 45 06BA 53 06BB 54 06BC 20 06BD 28 06BE 52 06BF 29 06C0 45 06C1 41 06C2 44 3110 DEFM ' (T)EST (R)EAD 06C3 20 06C4 28 06C5 57 06C6 29 06C7 52 06C8 49 06C9 54 06CA 45 3120 DEFM ' (W)RITE 06CB 00 3130 BRK 06CC EA 3140 DEFB $EA 06CD 28 06CE 56 06CF 29 06D0 45 06D1 52 06D2 49 06D3 46 06D4 59 06D5 20 06D6 20 06D7 45 06D8 28 06D9 58 06DA 29 06DB 49 06DC 54 3150 DEFM '(V)ERIFY E(X)IT 06DD 00 3160 BRK 06DE E0 3170 DEFB $E0 06DF 45 06E0 4E 06E1 54 06E2 45 06E3 52 06E4 20 06E5 43 06E6 4F 06E7 4D 06E8 4D 06E9 41 06EA 4E 06EB 44 06EC 3A 06ED 2A 3180 DEFM 'ENTER COMMAND:* 06EE 00 3190 BRK 06EF 40 3200 DEFB $40 06F0 54 06F1 52 06F2 41 06F3 4E 06F4 53 06F5 46 06F6 45 06F7 52 06F8 20 06F9 43 06FA 4F 06FB 4D 06FC 50 06FD 4C 06FE 45 06FF 54 0700 45 3210 DEFM 'TRANSFER COMPLETE 0701 00 3220 BRK 0702 60 3230 DEFB $60 0703 53 0704 55 0705 43 0706 43 0707 45 0708 53 0709 53 070A 21 3240 DEFM 'SUCCESS! 070B 00 3250 BRK 070C 60 3260 DEFB $60 070D 46 070E 41 070F 49 0710 4C 0711 55 0712 52 0713 45 0714 20 0715 41 0716 54 0717 20 0718 24 3270 DEFM 'FAILURE AT $ 0719 20 071A 20 071B 20 071C 20 071D 20 071E 20 071F 45 0720 3D 0721 24 0722 20 0723 20 0724 20 0725 20 0726 4D 0727 3D 0728 24 3280 DEFM ' E=$ M=$ 0729 00 3290 BRK 072A E0 3300 DEFB $E0 072B 50 072C 52 072D 45 072E 53 072F 53 0730 20 0731 41 0732 4E 0733 59 0734 20 0735 4B 0736 45 0737 59 3310 DEFM 'PRESS ANY KEY 0738 20 0739 54 073A 4F 073B 20 073C 43 073D 4F 073E 4E 073F 54 0740 49 0741 4E 0742 55 0743 45 3320 DEFM ' TO CONTINUE 0744 00 3330 BRK 0745 40 3340 DEFB $40 0746 43 0747 4F 0748 4E 0749 4E 074A 45 074B 43 074C 54 074D 20 074E 56 074F 50 0750 50 3350 DEFM 'CONNECT VPP 0751 00 3360 BRK No errors. End of object = $0751