AT6060 Controller EDTASM+/01.01.00 PAGE 1 00100 * AT-6060 Pneumatic Robot 00110 * programmable controller emulator 00120 * 00130 * 00140 * (C) Copyright 1988 00150 * Radical Vision Systems, Inc. 00160 00170 00180 TITLE AT6060 Controller 0E00 00190 ORG $0E00 00200 00210 ** INDIRECT TABLE ADDRESSES ** 00220 00230 ** USR 0 IS RUN ** 0E00 0E0C 00240 FDB RUN 00250 ** USR 1 IS WINDOW ** 0E02 0E0D 00260 FDB WINDOW 00270 ** USR 2 IS DELETE STEP ** 0E04 0FE4 00280 FDB DELETE 00290 ** USR 3 IS INSERT STEP ** 0E06 0F93 00300 FDB INSERT 00310 ** USR 4 IS THE BELL ** 0E08 1023 00320 FDB BELL 00330 ** USR 5 IS CLEAR RAM ** 0E0A 106C 00340 FDB CLEAR 00350 00360 00370 00380 *** run a program *** 00390 0E0C 39 00400 RUN RTS 00410 00420 ***************** 00430 * MOVE * 00440 * THE * 00450 * WINDOW * 00460 ***************** 00470 00480 0E0D BD B3ED 00490 WINDOW JSR $B3ED 0E10 5A 00500 DECB 0E11 F7 0F65 00510 STB CURLIN 00520 0E14 86 08 00530 UPSIX LDA #8 0E16 B7 FE08 00540 STA $FE08 00550 0E19 F6 0F65 00560 LDB CURLIN 0E1C C0 07 00570 SUBB #7 0E1E 8E 2140 00580 LDX #$2000+(4*80) 0E21 BF FE00 00590 STX $FE00 00600 00610 0E24 B6 0F65 00620 UP100 LDA CURLIN 0E27 34 02 00630 PSHS A 0E29 E1 E0 00640 CMPB ,S+ AT6060 Controller EDTASM+/01.01.00 PAGE 2 0E2B 27 02 00650 BEQ UP101 0E2D 26 07 00660 BNE UP102 00670 0E2F 86 1D 00680 UP101 LDA #$1D 0E31 B7 FE08 00690 STA $FE08 0E34 20 05 00700 BRA UP200 00710 0E36 86 14 00720 UP102 LDA #$14 0E38 B7 FE08 00730 STA $FE08 0E3B 8D 0D 00740 UP200 BSR SHOWLN 0E3D 5C 00750 INCB 0E3E B6 0F65 00760 LDA CURLIN 0E41 8B 08 00770 ADDA #8 0E43 34 02 00780 PSHS A 0E45 E1 E0 00790 CMPB ,S+ 0E47 26 DB 00800 BNE UP100 00810 00820 0E49 39 00830 RTS 00840 00850 0E4A 34 76 00860 SHOWLN PSHS A,B,X,Y,U 0E4C 10FF 0F66 00870 STS STACK 0E50 F7 0F64 00880 STB LINE 0E53 86 04 00890 LDA #4 0E55 3D 00900 MUL 0E56 1F 01 00910 TFR D,X 0E58 30 89 2000 00920 LEAX $2000,X 00930 0E5C 86 37 00940 LDA #$37 0E5E B7 FFA1 00950 STA $FFA1 00960 0E61 A6 80 00970 LDA ,X+ 0E63 B7 0F60 00980 STA BYTE1 0E66 A6 80 00990 LDA ,X+ 0E68 B7 0F61 01000 STA BYTE2 0E6B A6 80 01010 LDA ,X+ 0E6D B7 0F62 01020 STA BYTE3 0E70 A6 80 01030 LDA ,X+ 0E72 B7 0F63 01040 STA BYTE4 01050 0E75 86 39 01060 LDA #$39 0E77 B7 FFA1 01070 STA $FFA1 01080 0E7A 86 20 01090 LDA #32 0E7C AD 9F A002 01100 JSR [$A002] SPACE FOR OPCODE 01110 0E80 B6 0F60 01120 LDA BYTE1 0E83 27 7A 01130 BEQ NEXT 0E85 12 01140 NOP 0E86 4F 01150 CLRA 0E87 F6 0F64 01160 LDB LINE 0E8A 2B 73 01170 BMI NEXT 0E8C 5C 01180 INCB 0E8D BD 0F84 01190 JSR DECNUM AT6060 Controller EDTASM+/01.01.00 PAGE 3 0E90 86 0A 01200 LDA #10 0E92 BD 0F69 01210 JSR LOCATE 0E95 B6 0F60 01220 LDA BYTE1 0E98 C6 0A 01230 LDB #10 0E9A 3D 01240 MUL 0E9B CE 0F38 01250 LDU #CMDTAB 0E9E 33 CB 01260 LEAU D,U 0EA0 C6 09 01270 LDB #9 0EA2 A6 C0 01280 PR100 LDA ,U+ 0EA4 AD 9F A002 01290 JSR [$A002] 0EA8 5A 01300 DECB 0EA9 26 F7 01310 BNE PR100 01320 0EAB 86 16 01330 LDA #22 0EAD BD 0F69 01340 JSR LOCATE 01350 0EB0 B6 0F60 01360 LDA BYTE1 0EB3 81 01 01370 CMPA #1 0EB5 27 0C 01380 BEQ PR150 0EB7 86 20 01390 LDA #32 0EB9 AD 9F A002 01400 JSR [$A002] 0EBD AD 9F A002 01410 JSR [$A002] 0EC1 20 05 01420 BRA PR200 0EC3 B6 0F61 01430 PR150 LDA BYTE2 0EC6 8D 43 01440 BSR HEX 01450 0EC8 86 22 01460 PR200 LDA #34 0ECA BD 0F69 01470 JSR LOCATE 0ECD B6 0F62 01480 LDA BYTE3 0ED0 26 0C 01490 BNE PR250 0ED2 86 20 01500 LDA #32 0ED4 AD 9F A002 01510 JSR [$A002] 0ED8 AD 9F A002 01520 JSR [$A002] 0EDC 20 05 01530 BRA PR300 0EDE B6 0F62 01540 PR250 LDA BYTE3 0EE1 8D 28 01550 BSR HEX 01560 0EE3 86 2C 01570 PR300 LDA #44 0EE5 BD 0F69 01580 JSR LOCATE 0EE8 B6 0F63 01590 LDA BYTE4 0EEB 26 0C 01600 BNE PR350 0EED 86 20 01610 LDA #32 0EEF AD 9F A002 01620 JSR [$A002] 0EF3 AD 9F A002 01630 JSR [$A002] 0EF7 20 06 01640 BRA NEXT 0EF9 F6 0F63 01650 PR350 LDB BYTE4 0EFC BD 0F84 01660 JSR DECNUM 01670 0EFF 86 0D 01680 NEXT LDA #13 0F01 AD 9F A002 01690 JSR [$A002] 0F05 10FE 0F66 01700 LDS STACK 0F09 35 F6 01710 PULS A,B,X,Y,U,PC 01720 01730 0F0B 34 10 01740 HEX PSHS X AT6060 Controller EDTASM+/01.01.00 PAGE 4 0F0D 34 02 01750 PSHS A 0F0F 8E 0F28 01760 LDX #TABLE 0F12 44 01770 LSRA 0F13 44 01780 LSRA 0F14 44 01790 LSRA 0F15 44 01800 LSRA 0F16 A6 86 01810 LDA A,X 0F18 AD 9F A002 01820 JSR [$A002] 0F1C A6 E4 01830 LDA ,S 0F1E 84 0F 01840 ANDA #$0F 0F20 A6 86 01850 LDA A,X 0F22 AD 9F A002 01860 JSR [$A002] 01870 0F26 35 92 01880 PULS A,X,PC 01890 0F28 30 01900 TABLE FCC /0123456789ABCDEF/ 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0F38 45 01901 CMDTAB FCC /END / 4E 44 20 20 20 20 20 20 20 0F42 4D 01902 FCC /Move / 6F 76 65 20 20 20 20 20 20 0F4C 57 01903 FCC /While / 68 69 6C AT6060 Controller EDTASM+/01.01.00 PAGE 5 65 20 20 20 20 20 0F56 54 01904 FCC /Time / 69 6D 65 20 20 20 20 20 20 0F60 00 01910 BYTE1 FCB 0 0F61 00 01920 BYTE2 FCB 0 0F62 00 01930 BYTE3 FCB 0 0F63 00 01940 BYTE4 FCB 0 0F64 00 01950 LINE FCB 0 0F65 00 01960 CURLIN FCB 0 0F66 0000 01970 STACK FDB 0 0F68 00 01980 OUTPUT FCB 0 01990 0F69 34 14 02000 LOCATE PSHS B,X 0F6B B7 FE02 02010 STA $FE02 0F6E 8E 2000 02020 LDX #$2000 0F71 86 A0 02030 LDA #160 0F73 F6 FE03 02040 LDB $FE03 0F76 3D 02050 MUL 0F77 30 8B 02060 LEAX D,X 0F79 B6 FE02 02070 LDA $FE02 0F7C 48 02080 LSLA 0F7D 30 86 02090 LEAX A,X 0F7F BF FE00 02100 STX $FE00 0F82 35 94 02110 PULS B,X,PC 02120 0F84 12 02130 DECNUM NOP 02140 0F85 86 00 02150 LDA #0 0F87 5D 02160 TSTB 0F88 27 81 02170 BEQ HEX 0F8A 8B 01 02180 LOOP1 ADDA #1 0F8C 19 02190 DAA 0F8D 5A 02200 DECB 0F8E 26 FA 02210 BNE LOOP1 02220 0F90 7E 0F0B 02230 JMP HEX 02240 02250 ***************** 02260 * INSERT * 02270 * A * 02280 * STEP * 02290 ***************** AT6060 Controller EDTASM+/01.01.00 PAGE 6 02300 0F93 1A 50 02310 INSERT ORCC #$50 0F95 86 37 02320 LDA #$37 0F97 B7 FFA1 02330 STA $FFA1 02340 0F9A BD 0FD3 02350 JSR GETEND 0F9D B7 0FE1 02360 STA RAMEND 02370 0FA0 BD B3ED 02380 JSR $B3ED 0FA3 86 04 02390 LDA #4 0FA5 3D 02400 MUL 0FA6 1F 01 02410 TFR D,X 0FA8 30 89 2000 02420 LEAX $2000,X 0FAC BF 0FE2 02430 STX INSPC 02440 0FAF B6 0FE1 02450 LDA RAMEND 0FB2 C6 04 02460 LDB #4 0FB4 3D 02470 MUL 0FB5 1F 02 02480 TFR D,Y 0FB7 31 A9 2004 02490 LEAY $2004,Y 02500 0FBB A6 3C 02510 LOOP2 LDA -4,Y 0FBD A7 A4 02520 STA ,Y 0FBF 31 3F 02530 LEAY -1,Y 02540 0FC1 10BC 0FE2 02550 CMPY INSPC 0FC5 26 F4 02560 BNE LOOP2 02570 0FC7 6F 01 02580 CLR 1,X 0FC9 6F 02 02590 CLR 2,X 0FCB 6F 03 02600 CLR 3,X 02610 0FCD 86 39 02620 LDA #$39 0FCF B7 FFA1 02630 STA $FFA1 0FD2 39 02640 RTS 0FD3 8E 2000 02650 GETEND LDX #$2000 0FD6 4F 02660 CLRA 0FD7 E6 84 02670 GET100 LDB ,X 0FD9 27 05 02680 BEQ GET200 0FDB 4C 02690 INCA 0FDC 30 04 02700 LEAX 4,X 0FDE 20 F7 02710 BRA GET100 0FE0 39 02720 GET200 RTS 02730 0FE1 00 02740 RAMEND FCB 0 0FE2 0000 02750 INSPC FDB 0 02760 0FE4 1A 50 02770 DELETE ORCC #$50 0FE6 86 37 02780 LDA #$37 0FE8 B7 FFA1 02790 STA $FFA1 0FEB BD B3ED 02800 JSR $B3ED 0FEE 86 04 02810 LDA #4 0FF0 3D 02820 MUL 0FF1 1F 01 02830 TFR D,X 0FF3 30 89 2000 02840 LEAX $2000,X AT6060 Controller EDTASM+/01.01.00 PAGE 7 02850 0FF7 34 10 02860 PSHS X 0FF9 8D D8 02870 BSR GETEND 0FFB C6 04 02880 LDB #4 0FFD 3D 02890 MUL 0FFE 1F 02 02900 TFR D,Y 1000 31 A9 2000 02910 LEAY $2000,Y 1004 35 10 02920 PULS X 02930 1006 10BF 0FE2 02940 STY INSPC 02950 100A A6 04 02960 LOOP4 LDA 4,X 100C A7 84 02970 STA ,X 100E 30 01 02980 LEAX 1,X 1010 BC 0FE2 02990 CMPX INSPC 1013 26 F5 03000 BNE LOOP4 03010 1015 6F A0 03020 CLR ,Y+ 1017 6F A0 03030 CLR ,Y+ 1019 6F A0 03040 CLR ,Y+ 101B 6F A0 03050 CLR ,Y+ 03060 101D 86 39 03070 LDA #$39 101F B7 FFA1 03080 STA $FFA1 03090 1022 39 03100 RTS 03110 1023 1A 50 03120 BELL ORCC #$50 1025 B6 FF01 03130 LDA $FF01 1028 84 F7 03140 ANDA #$F7 102A B7 FF01 03150 STA $FF01 102D B6 FF03 03160 LDA $FF03 1030 84 F7 03170 ANDA #$F7 1032 B7 FF03 03180 STA $FF03 1035 B6 FF23 03190 LDA $FF23 1038 8A 08 03200 ORA #8 103A B7 FF23 03210 STA $FF23 103D BD B3ED 03220 JSR $B3ED 1040 F7 1064 03230 STB TONE 1043 BD 1065 03240 BELL1 JSR BELL5 1046 BD 1065 03250 JSR BELL5 1049 1F 89 03260 TFR A,B 104B C4 F7 03270 ANDB #$F7 104D CA 02 03280 ORB #2 104F F7 FF20 03290 STB $FF20 1052 BD 1065 03300 JSR BELL5 1055 BD 1065 03310 JSR BELL5 1058 C6 02 03320 LDB #2 105A F7 FF20 03330 STB $FF20 105D 4A 03340 DECA 105E 4A 03350 DECA 105F 81 02 03360 CMPA #2 1061 24 E0 03370 BHS BELL1 1063 39 03380 RTS 03390 AT6060 Controller EDTASM+/01.01.00 PAGE 8 1064 12 03400 TONE NOP 1065 F6 1064 03410 BELL5 LDB TONE 1068 5A 03420 BELL6 DECB 1069 26 FD 03430 BNE BELL6 106B 39 03440 RTS 03450 106C 1A 50 03460 CLEAR ORCC #$50 106E 86 37 03470 LDA #$37 1070 B7 FFA1 03480 STA $FFA1 1073 8E 2000 03490 LDX #$2000 1076 CC 0000 03500 LDD #$0000 1079 ED 81 03510 CLR100 STD ,X++ 107B 8C 4000 03520 CMPX #$4000 107E 26 F9 03530 BNE CLR100 1080 86 39 03540 LDA #$39 1082 B7 FFA1 03550 STA $FFA1 1085 39 03560 RTS MISSING END STATEMENT 00001 TOTAL ERRORS AT6060 Controller EDTASM+/01.01.00 PAGE 9 BELL 1023 BELL1 1043 BELL5 1065 BELL6 1068 BYTE1 0F60 BYTE2 0F61 BYTE3 0F62 BYTE4 0F63 CLEAR 106C CLR100 1079 CMDTAB 0F38 CURLIN 0F65 DECNUM 0F84 DELETE 0FE4 GET100 0FD7 GET200 0FE0 GETEND 0FD3 HEX 0F0B INSERT 0F93 INSPC 0FE2 LINE 0F64 LOCATE 0F69 LOOP1 0F8A LOOP2 0FBB LOOP4 100A NEXT 0EFF OUTPUT 0F68 PR100 0EA2 PR150 0EC3 PR200 0EC8 PR250 0EDE PR300 0EE3 PR350 0EF9 RAMEND 0FE1 RUN 0E0C SHOWLN 0E4A STACK 0F66 TABLE 0F28 TONE 1064 UP100 0E24 UP101 0E2F UP102 0E36 UP200 0E3B UPSIX 0E14 WINDOW 0E0D