100 / HDS MOUSE PROGRAM 110 120 / LAST EDIT: 09-JAN-1990 12:00:00 CJL 130 140 / DISPLAYS HDS MOUSE POSITION. 150 160 / MUST BE ASSEMBLED WITH '/J' SWITCH SET. 170 EJECT 180 / ASSEMBLY PARAMETERS. 190 200 / SET ONE OF THE FOLLOWING HARDWARE PARAMETERS BY REMOVING THE "/": 210 220 / SET THE DISPLAY FIELD: 230 240 / DFIELD= 20 /DISPLAY FIELD 250 260 / SET THE TERMINAL LINE I/O DEVICE. 270 280 / LINE= 03 /USE DEVICE 03/04 I/O TO TERMINAL 290 / LINE= 40 /USE DEVICE 46/47 I/O TO TERMINAL 300 / LINE= 46 /USE DEVICE 46/47 I/O TO TERMINAL 310 320 / CONDITIONAL ASSEMBLY PARAMETERS. 330 340 IFNDEF DFIELD /USE FIELD TWO FOR DISPLAY CODE 350 IFNDEF LINE /USE DEVICE 40/41 I/O TO THE TERMINAL 360 370 / REMOTE LINE IOT DEFINITIONS. 380 390 / RECEIVE DEFINITIONS. 400 410 RKIEIOT=LINE^10+6005 /LOAD INTERRUPT ENABLE PER AC[11] 420 RKRBIOT=LINE^10+6006 /READ REMOTE, CLEAR FLAG 430 RKSFIOT=LINE^10+6001 /SKIP ON REMOTE INPUT FLAG 440 450 / TRANSMIT DEFINITIONS. 460 470 RTLSIOT=LINE+1^10+6006 /TRANSMIT CHARACTER, CLEAR FLAG 480 RTSFIOT=LINE+1^10+6001 /SKIP ON TRANSMIT FLAG 490 500 / NUMERIC LOAD DEFINITIONS. 510 520 NL0001= CLA IAC /LOAD AC WITH 0001 530 NL7777= CLA CMA /LOAD AC WITH 7777 540 550 / P?S/8 MONITOR DEFINITIONS. 560 570 SBOOT= 7600 /MONITOR RESTARTS THERE 580 SWAL= 7604 /SWITCHES /A-/L THERE 590 SWMX= 7605 /SWITCHES /M-/X THERE 600 SWY9= 7606 /SWITCHES /Y-/9 THERE 610 620 / CHARACTER DEFINITIONS. 630 640 ESC= 033 / CHARACTER 650 FS= "\&37 / CHARACTER 660 US= 037 / CHARACTER 670 EJECT 680 FIELD 0 /ENSURE FIELD ZERO 690 700 *0 /START AT THE BEGINNING 710 720 ROTATE, .-. /ROTATE VALUE 730 SIZE, .-. /CHARACTER SIZE 740 STKTMP, .-. /TEMPORARY FOR STACK OPERATIONS 750 STRPTR, .-. /STRING BUFFER POINTER 760 770 *10 /GET TO AUTO-INDEX AREA 780 790 CASE, .-. /LATEST ALPHA CASE 800 LATCHAR,.-. /LATEST STRING CHARACTER 810 PREVCHA,.-. /PREVIOUS STRING CHARACTER 820 TERMTMP,.-. /TERMINAL OUTPUT TEMPORARY 830 X, .-. /"X" COORDINATE 840 Y, .-. /"Y" COORDINATE 850 860 *20 /GET PAST AUTO-INDEX AREA 870 880 MS1, .-. /FIRST MOUSE ADDRESS CHARACTER 890 MS2, .-. /SECOND MOUSE ADDRESS CHARACTER 900 MS3, .-. /THIRD MOUSE ADDRESS CHARACTER 910 MS4, .-. /FOURTH MOUSE ADDRESS CHARACTER 920 930 EJECT 940 PAGE 950 960 START, JMS I (INITERMINAL) /INITIALIZE THE TERMINAL 970 LOOP, JMS I [STROUT] /SEND THE 971 GINMODE /GOTO GIN MODE FIRST 980 ENQMOUSE /MOUSE ENQUIRY STRING 990 0 /THIS ENDS THE LIST 1000 / JMS I [INCHAR] /GET RETURNED STATUS 1001 / JMP .-1 1010 / MQL /DISPLAY IT 1020 JMS I [INCHAR] /GET FIRST MOUSE ADDRESS CHARACTER 1021 JMP .-1 1030 DCA MS1 /STASH IT 1040 JMS I [INCHAR] /GET SECOND MOUSE ADDRESS CHARACTER 1041 JMP .-1 1050 DCA MS2 /STASH IT 1060 JMS I [INCHAR] /GET THIRD MOUSE ADDRESS CHARACTER 1061 JMP .-1 1070 DCA MS3 /STASH IT 1080 JMS I [INCHAR] /GET FOURTH MOUSE ADDRESS CHARACTER 1081 JMP .-1 1090 DCA MS4 /STASH IT 1091 JMS I [INCHAR] 1092 JMP .-1 1093 DCA MS4+1 1100 JMS I [STROUT] /SEND THE 1110 VECMODE /MOUSE RELEASE SEQUENCE 1111 VECMODE /GOTO VECTOR MODE 1120 0 /THIS ENDS THE LIST 1130 LKLUP, LAS 1140 TAD (TAD MS1) 1150 DCA .+1 1160 .-. 1161 ISZ 0 1162 JMP .-1 1170 KSF 1171 JMP LKLUP 1172 KCC 1180 CLA /CLEAN UP 1190 JMP LOOP /KEEP GOING 1200 1210 / JMS I [SETADR] /SETUP ADDRESS STRING 1220 / JMS I [STROUT] /OUTPUT TO TERMINAL 1230 / SLANTBUFFER /SLANT STRING 1240 / SIZBUFFER /SIZE STRING 1250 / ROTBUFFER /ROTATE STRING 1260 / VECMODE /GO INTO VECTOR MODE 1270 / ADRBUFFER /ADDRESS BUFFER 1280 / ANOMOVE /BACK TO ALPHA MODE 1290 / STRBUFFER /STRING BUFFER 1300 / 0 /THIS ENDS THE LIST 1308 GINMODE,ESC; "Z&37;0 1309 BELL, 7;0 1310 1320 PAGE 1330 EJECT