Digital PDFs
Documents
Guest
Register
Log In
AH-E777B-MC
January 1980
53 pages
Original
30MB
view
download
OCR Version
46MB
view
download
Document:
CZNCDB0 NCV11 NCV-11 EXER JAN 1980 bw
Order Number:
AH-E777B-MC
Revision:
000
Pages:
53
Original Filename:
CZNCDB0__NCV11__NCV-11_EXER__AH-E777B-MC__JAN_1980_gray.pdf
OCR Text
NCV-11 EXER AH-E777B-MC JAN 1980 CZNCDBO copyriGHT 78-s0 =0-00ED FICHE1OF 1 MADE IN USA IDENTIFICATION Copyright Digital (C) Product Code: AC=-E776B-M( Product Name: CINCDBO NCv=11 Date: AUGUST MAintainer: Diagnostic Engineerin~g EXERCISER 1979 1978, 1979 Fquipment This software SEQ 0001 is Corporation, MAynard, Mass. furnished under a lLicense for use only on a single computer system and may be copied only with the inclusion of the above copyright notice. This software, or any other copies thereof, may not be provided or otherwise made available to any other person except for use on such system and to one who agrees to these Llicense terms. gggte to and ownership of the software shall at ali times remain in The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. DEC assumes no responsibility for software on equipment which_ is not the use or reliability supplied by DEC. of its SEQ 0002 R O ABSTRACT OO rwWh—=O REQUIREMENTS W O LOADING PROCEDURE & O STARTING PROCEDURE Vv =0 OPERATOR OPTIONS OPERATOR KEYBOARD OPTIONS OPERATOR SWITCH REGISTER OPTION(S) OO V=0 RECOMMENDED OPERATOR ACTION NNNNN SfWN=O MISCELLANEOUS Device Bus Address Moditications Free Run Mode (Type '¥'") N=O o CONTENTS 0o0o0o TABLE OF O 0.0 Equipment Equipment PREL IMINARY Storage : Optional OGRAMS Camera Setup Joystick Setup Error Reporting Execution Time PROGRAM DESCRIPTION Data Connection & Display Joysti « Mode LISTING Page 3 ABSTRACT The 'B'’ version corrected the '0'' command. It also corrected ?rgblgms when no VSVO1 display was present. his is a self contained program designed to convert data from the GAMMA camera via the NCV11 interface and display it on a vSV01 display. It can be wused for camera/interface and joystick setup or for practice in image manipulation. It is meant as a exerciser rather than a diagnostic. TOTAL PROGRAM CONTROL IS ACCOMPLISHED THRU THE CONSOLE KEYBOARD. THE PROGRAM IS NOT CHAINABLE/SCRIPTABLE UNDER XXDP/APT. 2.0 REQUIREMENTS 2.1 Equipment 1. PDP=11 FAMILY OR LSI-=11 3. NCV11 Intertace 2. 4. 2.2 Gamma Camera (OR SUBST]ITUTE) Equipment = Optional 1. 2. 2.3 FAMILY Computer 1/0 Terminal (i.e., LA36) H3060 Joystick VSVO1 DISPLAY PREL IMINARY PROGRAMS MAINDEC-11=CZNCC SHOULD HAVE PREVIOUSLY BEEN RUN 2.4 Storage This program uses all of lower 12k of memory. 3.0 LOADING PROCEDURE Normal procedure tor BE fol lowed. loading a binary program into memory SHOULD 1 CEQ 0003 E Page 4 4.0 STARTING PROCEDURE Loading address 200 and starting will initialize the IDENTIFY THE PROGRAM and wait a keyboARd command. 5.0 OPERATOR OPTIONS 5.1 OPERATOR KEYBOARD OPTIONS system, TYPE 'H''= HELP OPERATOR AND DISPLAY OR TYPE THIS LIST ! Type ‘N''= Collect new data from camera - clears core matrix FIRST Type ‘("= Collect data from camera - starts N(CV11, previous core matrix data not cleared TYPE "X''= SELECT ANOTHER CAMERA CHANNEL : Type ''S''= %gg NCV11 data colLLection - also terminates free RUN Tyoe "7''- Zoom - Set NCV11 TO GAIN 2 Type 'R''- Regular = SET NCV11 TO GAIN 1 (DEFAULT COND) Type W'- Select VSVO1 display usmg 1st bit map Type Type Type Type 'M''~ "'A'''B''~'D''- Select VSVO1 display USING 2nd bit map Display ISOTOPE A (default cond) Display iSOTOPE B (B GAMMA) Display data - display selected ISOTOPE TYPE Type Type TYPE 'X''~ 'G''~ '"J''= "T''= SELECT ANOTHER CAMERA CHANNEL Initialize everything - start fresh Joystick calibration NCV11 = use '‘Cntrl C('' to terminate mode DISPLAY INTENSITY TEST PATTERN ON SELECTED DISPLAY -~ Type ‘L'~ Get Lower threshold from keyboard (default=0) = all matrix values less than typed value are not dvsgla;ed Type 'U''- Get upper threshold from KEYBOARD (default=177777) -~ ALl matrix values greater than typed value are NOT DISPLAYED _ Type '¥''- Free run mode = collect and display new data continuously = Type ''S'' to terminate this mode THIS FEATURE IS FOR DISPLAY VERIFCATION ONLY TYPE '0U''= OTHER TERMINAL Type '‘(ntrl 5.2 TO CONTROL & C'' - Abort whatever = back OPERATOR SWITCH REGISTER OPTION(S) NONE THE PROGRAM to keyboard monitor SEQ 0004 F Page 5 6.1 SEQ 0005 Camera/AQ17 Setup Place radioactive flood source IN FRONT OF (CAMERA DETECTOR, OR USE A WEAK RADIOACTIVE SAMPLE ABQUT 3 FEET FROM A DETECTOR WITH THE COLL IMATOR REMOVED. (ollect data (C) and display (D) Adjust the X and Y gain controls ON THE AO17 until a circler IS SEEN and centered within the box on screen. round Increase the circle* size until the edges just begin to TOUCH THE BOX. Collect data for a 3 minute period and observe the image. If there 1is an artifact on the center of the screen that looks : like a right angle bracket, the '7'' delay circuit should be adjusted. 6. * 6.2 IF THE MATRIX COLLECTED, THIS MAY BE AND 7 COUNTS EQUAL THEREFORE, NO DISPLAY. A HEXAGON FOR SOME MAKES OF O THEN NO DATA WAS CAMERA. Joystick Setup e Select Joystick configration by typing ''J''. 2. Adjust the Y Pot on the H3060 Joystick so that the HORIZCNTAL cross hair provide UNIFORM access within the box drawn on the screen. ADJUST THE X POT ON THE H3060 SO THAT THE VERTICAL CROSS HAIR WILL ALSO BE UNIFORM EXCEPT THAT DUE THE RIGHT EDGE AND EXCEED Ideally, a physcial THE center TO A HARDWARE OFFSET WILL NOT REACH LEFT EDGE BY of the approximately centered in the box. THE Joystick SAME AMOUNT. will provide a point Check that when the Joystick interrupt SWITCH is CROSS HAIRS DO not follow the Joystick. 4. A '"Cntrl C'' will return user back depressed to the keyboard monitor.- the Page 6 7.0 MISCELLANEOUS Device Bus Address Modifications NCVT1T ggg;f location 'NCVADR'' if base bus address 1is vSVvO1 Modify location "VIVADR'' if base bus address ((HARACTER GENERATOR) IS NOT 772600 MODIFY LOCATION "VTMADR'' IF BASE BUS ADDRESS (BIT IS NOT 772620 Note: Vol A restart is required after any of modifications. Free Run Mode the above not MAP) address (Type 'F'") Modification of location "‘TIME'' will alter the data collection time 1in the free run mode. The default value of 20(8) provides about 10 SECONDS ON AN LSI-11 CPU. 7.3 7.4 Error Reporting 1. INCORRECT 2. A MESSAGE WILL BE REPORTED IF ANY SELECTED DEVICE DOES NGT KEYBOARD (OMMANDS ARE RTMSPONDED WITH '?° RESPOND. (SEE SECTION 7.1) Execution Time The EXECUTION TIME whatever is completely option selected. dependent wupon the user for SEQ 0006 H PAGE 8.0 PROGRAM DESCRIPTION 8.1 Data Collection & Display The user may collect data from the NCV11 interface and display this gamma camera data on system via 7 the the VSVO1 (bitmap) display. ALl functions are ENTERED thru the keyboard as defined in section 5.1. When the data collection mode is selected the NCV11 is receiving X & Y data from the gamma camera (looking AT a radioactive source). This information is transformed via THE address maker LOGIC which forms a unique address within a defined matrix relative to the scan position of the camera. The NCV11 preforms an NPR increment to memory to this UNIQUE address. The program selects the address MATRIX 64x64x16 (RESOLUTION 2) OFFSET TO address 20000(8) FOR THE ‘'A' Isotope, -AND FOR THE 'B' ISOTOPE, (CAMERAS EQUIPPED WITH THE DUAL ISOTOPE ATTACHMENT) INFORMATION VIA B GAMMA LOGIC IS STORED STARTING AT ADDRESS 40000 (8). The intensity of each cell (memory location) of the image in memory is adjusted with the upper and lower thresholds and scaled to OF 16 intensity levelS. The cell with the highest count represents THE HIGHEST intensity level, therefore appears brightest on the display. At the completion of the image display, the following parameters are displayed: Lower Threshold = ALl Upper All Threshold = CAMERA P8 JB l Count MatRix Count Zoom B-Gamma 8.2 -~ - values displayed greater values above than this value are this value are omitted SELECTED CAMERA CHANNEL UP/DN INDICATOR OF THE PUSH BUTTON STATE DURING LAST COLLECTION UP/DN INDICATOR OF THE JOY BUTTON STATE DURING LAST COLLECTION 32 bit counter of EVENT pulses Total count of the contents of each cell 1in the 64x64 matrix Displayed if gain was selected Displayed if "B' Isotope selected Joystick Mode Selecting the TEST takes advantage of the Joystick : mode provided by the NCV11. This mode selects the JOYSTICK inputs and the NCV11 performs Like aN A/D with the X & Y CONVERTED values available 1in X=-Y holding register. The X and Y data is applied_ to the display ana should conform to the requirements in section 6.72. HF ySV01 uses the X & Y cross hairs as the DISPLAY indicator. SEQ 0007 CINCDB NCV1T EXERCISER MACY11 30G(1063) V.Jvm_. oo WNRY = —a ERRE T IZES g —~ ) b s CINCDB.P11 (3) 891 B93 907 31-AUG=79 11:21 31-AUG-79 TABLE OF BASIC DEFINITIONS TRAP CATCHER STARTING ADDRESS(ES) COMMON TAGS ERROR POINTER TABLE MAIN PROGRAM INITIALIZE THE COMMON TAGS KEYBOARD DISPATCH TABLE COMMAND DECODER PROGRAM ROUT INES PROGRAM SUBROUT INES TTY INPUT ROUTINE TYPE ROUT INE BINARY TO OCTAL (ASCII) AND TYPE READ AN OCTAL NUMBER FROM THE TRAP DECODER TRAP TABLE POWER DOWN AND UP ROUTINES DISPLAY MESSAGES ASCII MESSAGES TTY 13:08 CONTENTS T SEQ 0008 g ( ( ( ( ( ( ( ( g ( J SEQ 0009 s g tPROGRAM BY R.SHOOP AR A I PAGE 1 'MAYNARD MASS. 01754 fiTHIS PROGRAM WAS ASSEMBLED USING THE PDP=11 MAINDEC SYSMA( 'PACKAGE 000001 (MAINDEC-11-DZQAC-C3), JAN 19, §TN=1 160000 $SWR=160000 172760 .SBTTL 1977. -HALT ON ERROR, LOOP ON TEST, INHIBIT ERROR TYPOUT ABASE=172760 :DEFAULT NCV11 ADDRESS BASIC DEFINITIONS ;*INITIAL ADDRESS OF THE STACK POINTER #x* 1100 #x= 001100 STACK= .EQUIV .EQUIV 1100 EMT,ERRCR I0T,SCOPE ;;BASIC DEFINITION OF ERROR CALL ;;BASIC DEFINITION OF SCOPE CALL NN Y Y Y - S— R U i — . R I R R R R 13:08 :*DIGITAL EQUIPMENT CORP. AP B e i i e To B e i gl & ( ( ( ( NS O YO ( O ( ( ( O ( NS YR ( N YN QT N ( ( g YN ( ( SR ( ( ( ( YO ( R W ( ( g U ( ( ( 31-AUG-79 ;DEVELOPED USING SYSMA(C.(C3 CZNCDB NCV11 EXERCISER LTITLE ;*COPYRIGHT (C) 1979 g U NN PNININININ NN IS AN CINCDB NCV11 EXERCISER MACY11 30G(1063) (ZNCDB.P11 31-AUG=79 11:21 _ ;*MISCELLANEOUS DEF INITIONS 000011 HT= 177774 STKLMT= 177774 000012 000015 000200 177776 LF= CR= CRLF= PS= 177772 177570 177570 1 12 15 200 177776 .EQUIV PS,PSW PIRQ= DSWR= DDISP= 177772 177570 177570 ;:CODE FOR HORIZONTAL TAB ;.CODE FOR LINE FEED ;;CODE FOR CARRIAGE RETURN ;.CODE FOR CARRIAGE RETURN-LINE FEED ; ;PROCESSOR STATUS WORD ;:STACK LIMIT REGISTER ; :PROGRAM INTERRUPT REQUEST REGISTER ; ;HARDWARE SWITCH REGISTER ; ;HARDWARE DISPLAY REGISTER ; *GENERAL PURPOSE REGISTER DEF INITIONS 000000 RO= %0 ;GENERAL REGISTER 000001 000002 000003 R1= R2= R3= %1 %2 %3 : :GENERAL REGISTER ; ;GENERAL REGISTER ; :GENERAL REGISTER 000005 000006 000007 000006 R5= Ré= R7= SP= x5 %6 x7 %6 ; :GENERAL REGISTER ; :GENERAL REGISTER ; ;GENERAL REGISTER ;:STACK POINTER 000004 000007 000000 000040 000100 000140 000200 000240 000300 000340 R&4= : PC= 24 144 ;*PRIORITY LEVEL PRO= PR1= PR2= PR3= PR4= PR5= PR6= PR7= 0 40 100 140 200 240 300 340 ; :GENERAL REGISTER ; PROGRAM COUNTER DEFINITIONS ;;PRIORITY ;;PRIORITY ;;PRIORITY ;;PRIORITY ;;PRIORITY ;;PRIORITY ;;PRIORITY LEVEL LEVEL LEVEL LEVEL LEVEL LEVEL LEVEL O 1 2 3 4 5 6 ;;PRIORITY LEVEL 7 ;*''SWITCH REGISTER'' SWITCH DEFINITIONS CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 CZNCDB.P11 21-AUG=79 11:21 BASIC DEFINITIONS - (1) 1 (1 (1) 1 (1) (1) (1) (1) (1) (1) 100000 040000 020000 010000 004000 002000 001000 000400 000200 000100 000040 SW15= SW14= Sw13= Sw12= Swi1= SWi0= Sw09= Sw08= Sw07= Swoé= SW05= 100000 40000 20000 10000 4000 2000 1000 400 200 100 40 1§ P 000002 Swo1= 2 (1) (1 (1) (1 (1) (1) (1) (1) (1 (1) (1 (M (1) 000020 000010 000004 000001 5}; (1 (1 (1) (1) (1) (1) (1) G P (1) (1) (1) (1) (1) (1) (1) (1 (1 (1) (1) (1) (1) (1) (1) (1) (1) (1) g}; (1 Swo4= swo3= Sw02= Swoo= .EQUIV .EQUIV .EQUIV .EQUIV .EQUIV LEQUIV .EQUIV .EQUIV .EQUIV .EQUIV 100000 040000 020000 010000 004000 002000 001000 000400 000200 000100 000040 000020 000010 000004 000002 000001 20 10 4 1 SWO9,Sw9 SWO08,Sw8 SWO7,SwW7 SWO06, SW6 SWO5,SW5 SWO4,Swé4 SWO3,Sw3 SW02,Sw2 SWO1,Sw1 SW00,SwO ;*DATA BIT DEFINITIONS BITi5= 100000 BIT14= 40000 BIT13= 20000 BIT12= 10000 BIT11= 4000 BIT10= 2000 BITO09= 1000 BIT08= 400 BITO07= 200 BITO6= 100 BITO5= 40 BITO4= 20 BITO3= 10 BIT02= 4 BITO1= 2 BIT00= 1 .EQUIV BIT09.BIT9 .EQUIV BIT08.BIT8 .EQUIV BIT07.BIT7 .EQUIV BIT06,BIT6 .EQUIV BITO5,BITS .EQUIV BIT04,BIT4 .EQUIV BITO03,BIT3 .EQUIV BIT02.BITZ2 .EQUIV .EQulv K PAGE 1-1 (BITOO TO BIT15) BITO1,RITI BIT00,BITO ;*BASIC "'CPU'" TRAP VECTOR ADDRESSES SEQ 0010 (1) (1) 000010 000014 1) M (1) 1) %&b 000020 000024 000030 000034 000060 1 1) 000014 000014 1) SH 14 2 2 < m o *:TRACE TRAP * “BREAKPOINT TRAP (BPT) ““TTY PRINTER VECTOR *PROGRAM INTERRUPT REQUEST VECTOR :SOME COMMON PROGRAM VALUES AND EQUATES 16 020000 MATRIX=20000 (}? .SBTTL 1) 000000 1) 5h M 000174 000000 a 000200 888}35 000176 TRAP CATCHER .=0 “«SEQUENCE TO CATCH ILLEGAL TRAPS AND INTERRUPTS :'LOCATION194CONTAINS 0 TO CATCH IMPROPERLY LOADED VECTORS DISPREG: .WORD 0 000000 20 000100 000104 :STARTING ADRS OF MATRIX DATA s«ALL UNUSED LOCATICNS FROM 4 - 776 CONTAIN A *‘.+2,HALT'' s (1) (1) 1) TRAPVE (=34 TKVEC= 60 LY INPUT/OUTPUT TRAP (IOT) #**SCOPE*+ *“POWER FAIL *"EMULATOR TRAP (EMT) ~*ERROR** LITTRAP' TRAP *ITTY KEYBOARD VECTOR 14 14 20 24 30 TPVEC= 64 PIRQVE (=240 13 : RESVEC= 10 TRITVEC=14 =4 TRTVEC= BPTVEC= 10TVEC= PWRVEC= EMTVEC= 000064 000240 L PAGE 1-2 ;:TIME OUT AND OTHER ERRORS **RESERVED AND ILLEGAL INSTRUCTIONS TiPeRIT m ~ - ~ CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 CZNCDB.P11 31-AUG=79 11:21 BASIC DEFINITIONS 001326 000340 000002 SWREG: .SBTTL .WORD 0 STARTING ADDRESS(ES) L : :SOFTWARE DISPLAY REGISTER *"SOF TWARE SWITCH REGISTER START ;:JUMP TO STARTING ADDRESS OF PROGRAM 104.340.RTI :LSI=11 B EVENT SEQ 0011 CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG-79 CZNCDB.P11 31-AUG=79 11:21 COMMON TAGS “l?;‘ .SBTTL 13:08 M PAGE 1-3 SEQ 0012 COMMON TAGS §2) :.'t't.i'fi"'t"t"'ififitfi'Q'..it..fifitttt&.tfit'i..tt.t.tt.'t'.fit'.. fl; ;*USED IN THE PROGRAM. (1) (1) ;*THIS TABLE CONTAINS VARIOUS COMMON STORAGE LOCATIONS (1) 001100 (1) (1) 001103 001104 (1) (1) (1) 001100 001100 001102 $PASS: $TSTNM: 001106 001110 001112 001114 001115 001116 001120 001122 001124 001126 001130 001132 000000 000000 (1) (1) 001135 001136 - MO0 000J00 001150 001152 177564 177566 001134 (1) (1) (1) (1) 001140 001142 001144 001146 (1) 001154 (1) (1) (1) (1) (1) (1> (1) (1) (2) 001155 001156 001157 001160 001161 001162 0 O SLPADR: .WORD 0 SLPERR: $ERTTL: $ITEMB: $ERMAX: $ERRPC: $GDADR: $8DACR: $GDDAT: $BDDAT: 000 $AUTOB: $INTAG: 177570 177570 177560 177562 0CO 002 012 000 077 015 000012 .=1100 .WORD .BYTE $ERFLG: $ICNT: (1) (1) (1) (1> (1Y (1) (1) (1) (1) (1) (1) (1) $CMTAG: .BYTE .WORD .WORD .WORD .BYTE .BYTE .WORD .WORD .WORD .WORD .WORD WORD WORD .BYTE .BYTE .WORD SWR: .WORD DISPLAY: .WORD $TKS: 177560 $TKB: 177562 $TPS: 177564 $TPB: 177566 - 0 O 0 O ;- INTERRUPT MODE INDICATOR ;;AUTOMATIC MODE INDICATOR DSWR DDISP :;ADDRESS OF SWITCH REGISTER ; ;ADDRESS OF DISPLAY REGISTER ;:TTY KBD STATUS ::TTY KBD BUFFER ;:TTY PRINTER STATUS REG. ADDRESS ;. TTY PRINTER BUFFER REG. ADDRESS $FILLC: $TPFLG: .BYTE .BYTE 12 0 .ASCII .ASCII LASCIZ ;;CONTAINS SCOPE LOOP ADDRESS O 0 $QUES: $CRLF: $LF: ;:CONTAINS ERROR FLAG ;;CONTAINS SUBTEST ITERATION COUNT ;s CONTAINS SCOPE RETURN FOR ERRORS ;;CONTAINS TOTAL ERRORS DETECTED ;;CONTAINS ITEM CONTROL BYTE ;;CONTAINS MAX. ERRORS PER TEST ;:CONTAINS PC OF LAST ERROR INSTRUCTION ;;CONTAINS ADDRESS OF 'GOOD' DATA ;;CONTAINS ADDRESS OF 'BAD' DATA ::CONTAINS 'GOOD’ DATA ;:CONTAINS 'BAD' DATA ; ;RESERVED==NOT TO BE USED .BYTE .BYTE ; :CONTAINS PASS COUNT ;:CONTAINS THE TEST NUMBER 0 O O 1 O 0 0 0 O O O $NULL: $FILLS: ;;START OF COMMON TAGS 2 /2/ <15> <12> ;s CONTAINS NULL CHARACTER FOR FILLS ;;CONTAINS # OF FILLER CHARACTERS REQUIRED ;s INSERT FILL CHARS. AFTER A 'LINE _FEED'' ;. TERMINAL AVAILABLE'' FLAG (BIT<07>=0=YES) ;;QUESTION MARK : : CARRIAGE RETURN ;:LINE FEED "."!lttt*.tt'ttt'ttttii!."*tt!fifiQ.!Q'tti!"*.'.'tt.ttt"fi'ifiitt' ’ CZNCDB NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 31-AUG=-79 2 N 31-AUG=79 13:08 PAGE 1-4 ERROR POINTER TABLE ERROR POINTER TABLE ;*THIS TABLE CONTAINS THE INFORMATION FOR EACH ERROR THAT CAN OCCUR. ;*THE INFORMATION IS OBTAINED BY USING THE INDEX NUMBER FOUND IN ;*LOCATION SITEMB. THIS NUMBER INDICATES WHICH ITEM IN THE TABLE IS PERTINENTT % % » :*NOTE1: ;*NOTEZ2: » IF SITEMB IS O THE ONLY PERTINENT DATA IS (SERRPC). EACH ITEM IN THE TABLE CONTAINS & POINTERS EXPLAINED AS FOLLOWS: EM DH DT DF :;POINTS ;;POINTS ;:POINTS ;;POINTS $ERRTB: 001164 ;THIS PROGRAM DOES NOT USE TO TO TO TO THE THE THE THE ERROR MESSAGE DATA HEADER DATA DATA FORMAT THE ABOVE ERROR TABLE sNCV11 BUS ADRS ASSIGNMENTS = MODS ARE TO BE MADE HERE 001164 172760 NCADR: ABASE ;VSVO1 BUS ADRS ASSIGNMENTS (CHAR GEN) = MODS ARE TO BE MADE HERE 001166 172600 VTVADR: 172600 ;VSVO1 BUS ADRS ASSIGNMENTS (BIT MAP) - MODS ARE TO BE MADE HERE 001170 172620 VTMADR: 172620 ;FIRST MAP 2ND MAP IS 20 HIGHER ;COUNTER FOR FREE RUN MODE 001172 000024 TIME: 001174 001176 000060 000062 TKVECO: TKVEC TKVECT: ‘TKVEC+2 20. ;LOOP COUNTER FOR 'F'' MODE ;CONSOLE TERMINAL VECTOR ; ADDRESS AN PRIORETY -~ i N ed e D D DD b Db f\)vvvvvvvvvvvv AAAAAA’\AAAA’\" 7 .SBTTL SEQ 0013 8 CZINCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG-79 13:08 PAGE 1-5 CZNCDB.P1T 31-AUG=79 11:21 ERROR POINTER TABLE 49 SEQ 0014 sNCV11 REGISTER ADDRESS POINTERS ABASE sNCV11 STATUS CONTROL REGISTER ABASE+?2 sNCV11 OFFSET REGISTER ABASE+4 sNCV11 WORD COUNT REGISTER ABASE+6 sNCV11 BUS ADDRESS REGISTER / LOW Z COUNT ABASE+10 sNCV11 SPECIAL FUNCTION / JOYSTICK STATUS REGISTER ABASE+1?2 sNCV11 ADDRESS MAKER REGISTER ABASE+14 sNCV11 JOYSTICK DATA REGISTER ABASE+16 INCV11 SPARE <SAME AS NCBAR> ;VSVO1 REGISTER ADDRESS POINTERS (CHARACTER GENERATOR) 50 51 52 53 54 55 56 57 58 001200 001202 001204 001206 001210 001212 001214 001216 172760 172762 172764 172766 172770 172772 172774 172776 NCCSR: NCOFF: NCWCR: NCBAR: NCSFR: NCADM: NCJOY: NCBAR1: 60 61 62 001222 001224 001220 172600 172602 172604 VIVCRG: 172600 s CHAR/STATUS 64 65 66 gg 001226 001230 001232 001234 001236 172620 172622 172624 172626 172630 VIVCSR: 172620 ; COMMAND/STATUS 001240 001242 001244 001246 001250 001252 000000 000000 000000 000000 000000 000000 59 63 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 9 91 92 93 94 95 9 001254 001256 006400 000000 001264 001266 001270 001272 000000 000000 000000 000000 001260 001262 001274 001276 001300 001302 001304 001306 001310 001312 001314 001316 001320 001322 001324 000000 000003 177777 000000 000000 000000 010000 000000 000000 000000 020000 000000 000000 000000 000000 VIVCHP: 172602 :CROSS HAIR POS VTVPOS: 172604 ; CHAR POS ;VSVO1 REGISTER ADDRESS POINTERS (BIT MAP) VIVMAP: VIVPX: VIVPX1: VIVINT: 172622 172624 172626 172630 TEMPO: TEMP1: TEMP2: DUMMY1: DUMMY?2: INTLUT: ; COMMON PROGRAM TAGS AND STORAGE LOCATIONS O ;COMMON UTILITY LOC 0 :COMMON UTILITY LOC 0 ;COMMON UTILITY LOC 0 ;OCTAL TEMP LOC. 0 ;OCTAL TEMP LCC. O VTVSAV: 6400 MRXADR: 0 MAPADR: 0 PIXCNT: 3 PIXASM: 0 KBUFF: 0 TTYOUT: THLO: THHI: COMSAV: CAMERA: GAIN: TOTSIZ: CHARCT: CPERL: ROWCNT: TABLEX: FREERN: MSELCT: BELLEN: NOVSV: Q O 177777 0 0 0 4096. 0 0 O MATRIX 0 O O O :MAP ADRS :PIXEL WD ;PIXEL BYTE JINTENSITY LOOK UF :VSVO1 SET UP = FULL SCREEN, MONO(BLK/WHT), ENA DISPLAY ;CURRENT CORE ADRS OF CELL BEING DISPLAYED ;CURRENT ADRS OF BIT MAP LD ;CURRENT PIXEL BYTE COUNT ;4 PIXELS ASSEMBLED HERE BEFORE BIT MAP LD ;CONTAINS KEYBOARD CHAR TYPED :OUTPUT CHAR TO PRINTER ;LOW THRESHOLD VALUE APPLIED TO MTRIX CELLS ;HIGH THRESHOLD VALUE APPLIED TO MATRIX CELLS :SAVED NCV11 CSR CONTENTS WHEN DISPLAYING ;CAMERA SELECTION IN BITS 8-9 ;GAIN 1=0, GAIN 2=BIT10 ;TOTAL # OF CELLS IN MATRIX (ISTOPE A OR B) ;COUNTS TOTAL # OF CELLS IN MATRIX (ISOTOPE A OR B) ;CONTAINS LARGEST CELL OF MATRIX WITHIN THRESHOLDS ;COUNTS 64 CELLS EACH ROW OF CORE MATRIX ;CONTAINS STARTING ADRS OF MATRIX OF SELECTED ISOTOPE ;NON-ZERQO SAYS COLLECT NEW DATA & DISPLAY IN FREE RUN MO ;0 SAYS 1ST BIT MAP, -1 SAYS 2ND BIT MAP(VSVO1) ;0 SAYS RING BELL ON NO CONVERT, =1 SAYS DON'T ;NON-ZERC INDICATES NO VSVO1 DISPLAY CZNCDB NCV11 EXERCISER MACY11 CZNCDB.P11 31-AUG-79 11:21 001346 001354 001362 001370 012737 012737 012737 012737 007432 000340 007512 000340 000034 000036 000024 000026 001376 001402 001410 001416 001424 001432 013746 012737 012737 012737 022777 001012 000004 001436 177570 177570 177777 000004 001140 001142 177506 001434 000403 — »H H &~ PN PN 001100 001452 001460 001470 001474 001476 001502 001506 001512 001556 001562 123 001572 PAGE 2 C SEQ 0015 000176 000174 104401 0101cv 012637 004737 103004 005237 104401 013700 012701 #$CMTAG,R6 ;:FIRST LOCATION TO BE CLEARED (R6) + s ;CLEAR MEMORY LOCATION #SWR ,R6 ; ;DONE? 001140 012716 000002 012737 012737 pry &H o 012737 005777 - v o i g D D e -l d e 001100 001444 000004 000000 000137 012737 000005 004737 126 125 001576 001604 012777 005037 127 128 129 001616 001622 00163C 005037 012737 012777 CLR CMP BNE ;:LOOP BACK IF NO -6 #STACK, SP ;:SETUP THE STACK POINTER MOV ;INITIALIZE A FEW VECTORS #STRAP ,a#TRAPVEC ;;TRAP_VECTOR FOR TRAP CALLS MOV #340,@#TRAPVEC+2; LEVEL 7 MOV #SPWRDN, S#PWRVEC " ; ;POWER_FAILURE VECTOR MCV #3640, @4PWRVEC+2 ;:LEVEL 7 MOV ;:SIZE FOR A HARDWARE SWITCH REGISTER. IF NOT FOUND OR IT IS ;;EQUAL TO A "=1"", SETUP FOR A SOF TWARE SWITCH REGISTER. MOV MOV MOV MOV CMP BNE Q#ERRVEC ,~(SP) #6468, AWERRVEC #DSWR, SWR #DDISP,DISPLAY #-1,3SWR BR MOV 65% #65%, (SP) 65%: MOV #SWREG, SWR 66%: MOV 64%: 001140 001142 001324 010242 001164 001200 001546 177434 3%: 004766 020000 001302 020000 001272 177777 005220 MOV 000004 JSR BCC INC TYPE 001274 177336 ;;SAVE ERROR VECTOR ;;SET UP ERROR VECTOR ;:SETUP FOR A HARDWARE SWICH REGISTER ;;AND A HARDWARE DISPLAY REGISTER ::TRY TO REFERENCE HARDWARE SWR ;sBRANCH IF NO TIMEOUT TRAP OCCURRED ;;AND THE HARDWARE SWR IS NOT = -1 ; ;BRANCH IF NO TIMEOUT ::SET UP FOR TRAP RETURN ;;POINT TO SOF TWARE MSG1 - :GO IDENTIFY PROGRAM PC,SELCTA ;DEFAULT TO vSVO1 NOVSV ;SAVE THE FACT NO VSVO1 3% .MSG3 DISPLAY IF ;BR IF DISPLAY VSVO1 ;GET NCV11 BASE ADRS ;GET POINTER ADRS ADD #2,RO ;BUMP REG ADRS NCSET: #VTVCRG,R1 NCSET #1% ,ERRVEC aNCCSR 1%: CMP BNE MOV TST BR CMP HALT JMP START START1: MOV JSR MOV CLR MOV CLR MOV MOV RO, (R1)+ START1 (SP)+,(SP)+ .MSG5 IS THERE THERE CONNECTED ;GO TYPE 'BUS TIMEOUT ER - VSVO1 DISPLAY' NCADR,RO #NCCSR,R1 TYPE SWR #D]1SPREG,DISPLAY A (SP)+ ,a#ERRVEC ;;RESTORE ERROR VECTOR MoV RESET 177376 001314 66% MOV MOV 000004 010400 001326 000006 RTI TYPE 004546 000002 001220 001532 001540 MAIN PROGRAM 13:08 INITIALIZE THE COMMON TAGS :CLEAR ;SE COMMON TAGS (SCMTAG) AREA 012706 005026 022706 001374 012706 001436 31-AUG=79 START: SBTTL 001326 001332 001334 001340 001342 3 N S S NN NN s S N N N NN N NN e N S NN PN NN N N N N N N N NN PN S " N N NN PN NN N LA N7 N S 001326 e D D NN LD waa —_—— =0V~ WV D D D D D D D N N 102 30G(1063) sSET UP NCV11 REG ADRS PTRS ;ALL SET UP? :BR IF NOT ;SET UP TIMEQUT ADRS :WILL TRAP TO LOC 4 IF NOT THERE :BR IF THERE sFIX STACK SINCE NO RTI ;GO TYPE 'BUS TIMEOUT ER = NCV11' sNCV11 NOT SEEN AT ASSIGNED BUS ADRS #ERRVE(+2 ,a#ERRVE( ;JRESTORE ERR TRAP LOC TO PT ;CLR WORLD PC,NCSTP1 ;GO STOP NCV11 & CLR CORE MATRIX #MATRIX,@NCOFF :SET OFFSET(ADRS 20000} GAIN :REGULAR GAIN #MATRIX, TABLEX THLO #177777,THHI #KBINT ,@TKVECO :ISOTOPE A ;CLEAR LOWER THREZ SHOLD sCEILING THRESHOLD ;SET KEYBOARD INTR RETURN ADRS TO 6 D 31-AUG=79 13:08 PAGE 2-1 CINCDB NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 31-AUG=79 11:21 INITIALIZE THE COMMON TAGS 012777 012777 104401 000340 000100 010434 MOV MOV 177332 177272 TYPE oL ;U GET LOWER THRESHOLD FROM KEYBOARD & DISPLAY DATA GET UPPER THRESHOLD FROM KEYBOARD & DISPLAY DATA :N st :X :3 :G olo JRNTe NV, FoYW,V D el i COLLECT NEW DATA FROM CAMERA (CLEAR CORE MATRIX) COLLECT DATA FROM CAMERA CHANGE CAMERA STOP COLLECTION INITIALIZE EVERYTHING Z00M - SET GAIN TO 2 REGULAR = SET GAIN TO 1 :B DISPLAY ISOTOPE B ;W M 4 vV DISPLAY DATA ERASE THE SCOPE ;R JA b e ;GO ASK FOR KEYBOARD COMMAND(S) HELP FRAME 4 — .MSG6 ;SET UP NEW PRIORTY ON INTR ;SET INTR ENABLE ;H HY ;E 142 :J 5t DISPLAY ISOTOPE A SELECT VSVO1 DISPLAY USING 1ST BIT MAP SELECT VvSVO1 DISPLAY USING 2ND BIT MAP FREE RUN MODE - COLLECT & DISPLAY NEW DATA CONTINUALLY JOYSTICK CALIBRATION DISPLAY INTENSITY TEST IMAGE ON SELECTED DISPLAY .0 OTHER TERMINAL TO CONTROL PROGRAM ;CNTRL C ABORT WHATEVER = BACK TO KEYBOARD MONITOR sTHIS CODE WILL DISPATCH PROGRAM TO THE PROPER 160 161 162 163 164 165 166 167 168 169 170 171 172 173 001656 001662 001666 001672 001674 001700 001702 001706 001710 001714 001720 001722 001726 001732 005037 012706 005037 005046 012746 000002 013700 001775 005037 020027 103445 042700 020027 103040 001316 001100 001266 175 176 177 001736 001742 001744 005760 001434 000170 001746 174 #340,aTKVECT #100,3$7TKS sTHIS IS A LIST OF KEYBOARD COMMANDS FOR THE NCV11/DISPLAY/JOYSTI(K —=00 SVEIFRRNK 001636 001644 001652 » b P T J ) 130 131 2 SEQ 0016 001734 006300 JROUTINE VIA THE DISPATCH TABLE "RTABLE' LISEN: 001702 CO01266 001266 000101 177740 000033 001746 LISN: CLR MOV CLR FREERN #STACK,SP KBUF F CLR MOV -(SP) #LISN,-(SP) MOV BEQ KBUFF ,RO LISN RTI ;KNOCK DOWN FREE RUN MODE IF SET JRESET STACK PTR ;s INSURE NO KEYBOARD GARBAGE ;PUSH LEVEL O ONTO STACK :TO BE LSI=11 COMPATABLE ;FAKE RTI TO LOWER PRIORITY ;LOOK FOR CHAR :WAIT FOR ONE CLR KBUFF 3 BCS 800800 ;NOT A GOOD CHAR CMP RO, 433 CMP BIC RO, 4101 #177749,R0O BCC BO0OB0OO TST BEQ RTABLE=2 (R0) B00B00 ASL JMP RO aRTABLE=2(R0O) :WAS IT A CHAR? JELIMINATE LOWER CASE ;IS IT AN ALPHA (CHAR? ,BR IF NOT :MAKE UP WORD OFFSET ;IS IT A LEGAL COMMAND? ;BR IF NOT ;G0 DC IT CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 PAGE 3 CZNCDB.P11T 31-AUG=79 11:21 INITIALIZE THE COMMON TAGS 179 1%? : 182 001750 002054 RTABLE: ROUTA 186 187 188 189 190 191 192 193 194 195 196 197 001760 001762 001764 001766 001770 001772 001774 001776 002000 002002 002004 002006 002114 002124 002220 002230 000000 002302 000000 002320 002360 002420 002434 002000 ROUTE ROUT* ROUTG ROUTH 0 ROUT. 0 ROUTL ROUTM ROUTN ROUTGC 0 200 201 202 203 204 205 206 207 002014 002016 002020 002022 002024 002026 002030 002032 002632 002650 002664 000000 002724 (02762 000000 003102 183 184 185 198 199 001752 001754 001756 002010 002012 .SBTTL 002066 002100 002110 000000 002614 E SEQ 0017 KEYBOARD DISPAT(H TABLE ROUTB ROUTC ROUTD ;'A' ;'B' ;'C' ;'D" 0 ROUTR ;'Q' BOOBOO ;'R' REGULAR GAIN =1 ROUTS ROUTT ROUTU 0 ROUTW ROUTX 0 ROUTZ DISPLAY ISOTOPE A DISPLAY ISOTOPE B COLLECT DATA DISPLAY DATA ;'E' ;'F' ;'G' ;'H' ;'1' ;'J" ;"K' ;'L' ;'M' ;'N' ;'0" ;'P* ERASE SCOPE FREE RUN MODE (COLLECT NEW DATA & DISPLAY CONTINOUSL INITIALIZE EVERYTHING HELP THE OPERATOR BOOBOO GO TO NCV11 JOYSTICK CALIBRATION B0OOBOO GET LOWER THRESHOLD FROM KEYBOARD SELECT vSVO1 DISPLAY USING 2ND BIT MAP GET NEW DATA FROM CAMERA GET ADDRESS OF OTHER TERMINAL B00B0OO ;'S" ;'T' ;'U' ;'V' ;'W' ;'X" ;"Y' .'7" STOP COLLECTION DISPLAY INTENSITY TEST IMAGE ON SELECTED DISPLAY GET UPPER THRESHOLD FROM KEYBOARD BOOBOO SELECT vSVO1 DISPLAY USING 1ST BIT MAP CHANGE CAMERA (HANNEL BGOBOO 200M - GAIN =2 CINCDB NCV11 EXERCISER MACY11 30G6(1063) CINCDB.P11 31-AUG=79 11:21 209 31-AUG=79 13:08 COMMAND DECODER .SBTTL %}? PAGE 4 F SEQ 0018 COMMAND DECODER :REPORTS ILLEGAL KEYBOARD CHARACTERS 212 213 214 5}2 002034 002042 002046 002052 012737 004737 004737 000713 000077 005300 005260 001270 BOOBOO: MOV JSR JSR BF #77,TTYOUT PC,TYPO PC,TYPCR LISN ;SET UP *2° sTYPE IT :DO A 'CR' :GO LOOK FOR GOOD CHAR 217 002054 012737 020000 001314 ROUTA: MOV #MATRIX,TABLEX ;WILL DISPLAY ISOTOPE A 219 220 221 222 223 224 225 226 227 228 002066 002074 002100 002104 002110 002114 002120 002124 002132 002136 012737 000137 004737 000137 000137 004737 000137 012737 004737 004737 040000 003122 004704 001702 003122 005020 001702 177777 004766 004704 001314 ROUTB: MOV JMP JSR JMP JMP JSR JMP MOV JSR JSR #MATR]X+20000, TABLEX :WILL DISPLAY ISOTOPE B CHANGE :GO DO IT PC,NCSTRT :GO START NCV11 LISN :COLLECT DATA UNTIL KEYBRD COMMAND CHANGE :GO DISPLAY DATA PC,ERASE ;GO ERASE SCOPE LISN ;GO WAIT ON NEXT COMMAND #-1,FREERN :SELECT FREE RUN MODE PC.NCSTP1 :GO STOP NCV11 & CLR CORE MATRIX AREA PC,NCSTRT :GO START NCV11 218 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 002062 002142 002144 002150 002152 002154 002162 002170 002172 002200 002204 002210 002212 002214 002220 002224 002230 002234 002236 002242 002244 002246 002254 002260 002262 002266 002270 002272 002276 000137 005000 013701 005300 001376 001172 177010 001324 000137 002314 002320 000137 012746 ROUTF: BNE ) 2%: 003122 005020 001562 001324 ROUTG: ROUTH: 005020 002000 005316 176750 005316 011336 (001702 000137 001702 012746 000002 104401 002332 JMP CLR MOV DEC 1%: 000400 176774 001656 260 261 002324 002330 002332 001316 001266 001266 005737 001402 262 263 264 ROUTD: ROUTE: 000040 000123 002302 002306 002310 ROUTC: 042737 022737 001007 052777 005077 000137 005301 001356 000137 004737 000137 005737 001016 004737 000240 000240 012777 004537 010640 004537 011336 000402 104401 257 258 259 003122 1%: 2%: ROUTJ: 004332 000340 1%: ROUTL: 010161 1$: BIC CMP BNE BIS CLR JMP DEC BNE JMP JSR JMP TST BNE JSR NOP NOP MOV JSR HELPO JSR HELP1 BR TYPE, JMP TST BEQ JMP JMP MOV MOV RTI TYPE CHANGE ;GO DO IT RO TIME ,R1 RO ;SET UP TIMER :SET UP GROSS TIMER VALUE :COUNT #B1T5,KBUFF #123 ,KBUFF 2% #B1T8,aNCSFR aNCCSR LISEN R1 1% CHANGE PC,ERASE START1 NOVSV 1% PC,ERASE :LOOK FOR POSSIBLE STOP KEY - RID LOWER CASE :STOP BEEN STRUCK? *BR IF NOT :STOP NCV11 :ZERO NCV CSR ©GO AWAIT NEXT COMMAND oo LOOP AGAIN? BR IF SO ~ou GO DISPLAY DATA JUST COLLECTED :GO ERASE SELECTED DISPLAY “INITIALIZE AND START FRESH :CHECK IF DISPLAY :BR IF NO VSVO1 :CLEAR THE SCREEN 1% #2000,aVTVPOS RS,VTWRIT :WAIT FOR ZERO ;POSITION THE READ-OUT :TELL THE OPERATOR VIA VSVO1 RS,VIWRIT 2% HELPI LISN NOVSV K3 LISN TJOY #340,-(SP) #1%,-(SP) MSG2 :NO VSVO1 = TELL OPERATOR SHORT LIST :CHECK IF VSVO1 PRESENT *BR IF PRESENT :FORGET IF NO DISPLAY :CALB. THE JOYSTICK GO TO IT *PUSH HIGH PSW ON STACK ;PUSH RETURN ADDRESS :FAKE RT] TO RAISE PSW JASK FOR OCTAL DATA CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 CZNCDB.P11 31-AUG=79 11:21 COMMAND DECODER 265 266 267 268 269 270 271 272 273 274 275 002336 00234C 002344 002346 002352 002354 002360 002364 002366 002374 002400 104411 012637 005046 012746 000002 000137 005737 001013 012737 004737 000240 001272 002354 003122 177777 004546 276 277 062402 002406 013700 042760 001226 000400 279 280 281 282 283 002420 002424 002430 002434 00244C 004737 004737 000137 012746 012746 004766 004704 0017C2 000340 002446 278 284 285 286 287 288 289 290 291 292 293 294 298 (1) (1) (1) (1) (1) 299 300 301 302 303 304 305 306 307 308 309 310 311 212 313 314 315 316 002414 002444 002446 002452 002454 002456 002460 002464 002470 002476 002500 002504 002506 002510 002512 002514 002516 002520 (002522 002526 002532 002534 002536 002540 002544 002550 002554 002560 002566 002570 002574 002576 002600 002604 002606 002612 000137 000002 104401 104411 0712600 001002 000137 01374€¢ 012737 005710 0127017 010021 005720 010021 2%: ROUTM: 001324 001702 001320 177760 1$: ROUTN: ROUTO: 000004 012637 104401 104411 012600 001002 000137 042700 010037 010037 062737 005046 012746 000002 022626 012637 005046 012746 000002 MOV BIC JMP JSR JSR JMP MOV MCV RTI TYPE, RDOCT MOV 1%: BNE JMP MOV mMov TST MOV 2%: 001144 MOV TST MoV 005720 010021 005720 010021 TST BNE MOV JSR NCP 010324 002034 000004 00257¢ RDOCT MOV CLR MOV R11I JMP TST MoV TST MOV 000004 010555 002034 177003 001174 001176 000002 MOV TYPE, RDOCT MOV BNE JMP BIC MOV MOV ADD CLR MOV RTI CMP 3%: 001176 001326 000004 (002034 4%: e MOV CLR MOV G PAGE 4-1 (SP)+,THLO «{SP) #2%,-(SP) SEQ 0019 ;GO GET IT ;SAVE IT ;PUSH LOW PSW CHANGE NOVSV 1% #-1 ,MSELCT PC,SELCTA ;GO DISPLAY VIVCSR,RO #3178,-20(R0O) LISN PC,NCSTP1 PC _NCSTRT LISN #340,-(SP) #1%,-(SP) ;GET 2ND BIT MAP ADRS ;TURN OFF 1ST BIT MAP MSG4 (SP)+,RO 2% B00B00O a#ERRVEC,-(SP) #4% ,XERRVEC (RO) #$TKS ,R1 RO, (R1)+ (RO) + RO, (R1)+ (RO) + RC, (R1)+ (RO) + RO, (R1)+ (SP)+ a#ERRVEC MSG8 . sTEST IF vSVO1 DETECTED ? ;BR IF NOT ;SELECT 2ND BIT MAP sRELOAD ADDRESSES ;GO AWAIT NEXT COMMAND ;GO STOP NCV11 & CLR CORE MATRIX ;START THE NCV11 sCOLLECT DATA & AWAIT NEXT KEYBRD COMMAND JRAISE PS ;ASK OPR FOR ADDRESS ;GET HIS INPUT ;GET ADDRESS ;BR_IF NOT "'CR'' OR 0 ;FAT FINGER OPERATOR ;SAVE LCC 4 ;SAVE IF WRONG ADDRESS BY OPR. JREF. THE NEW CONSOLE ADDR. ;GET OLD ADDR. POINTER ;LOAD NEW ADDRESS ;BUMP ADDRESS ;LOAD NEW ADDRESS ;BUMP ADDRESS ;LOAD NEW ADDRESS ;BUMP ADDRESS ;LOAD NEW ADDRESS ;RESTORE LOC 4. :ASK OPR FOR ADDRESS (SP)+,R0 3% 800800 #177003,R0 RO, TKVECO RO, TKVEC1 #2,TKVECT -(SP) #START ,=(SP) .GET VALUE :BR IF VALID ;BR IF NOT GOOD NUMBER ;MASK OFF OTHER BITS ;SAVE THE VECTOR ;SAVE THE BR LEVEL ; ADDRESS (SP)+,(SP)+ (SP)+ a#ERRVEC -(SP) #800200,-(SP) ;CLEAN STACK ;RESTORE LOC. 4 ;LOWER PS ;RETURN ;LOWER PS AND START PROG AGAIN 31-AUG=79 13:08 NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 COMMAND DECODER 31-AUG=-79 11:21 CZNCDB 176352 176350 ROUTR: ROUTS: ROUTT: ROUTU: 002676 010161 1%: 001274 002720 003122 001324 2%: ROUTW: 001320 004546 001226 000020 1$: ROUTX: 010520 18: 003076 177774 003076 003100 003076 003076 2%: 003100 003100 001300 001301 176116 3%: 003072 003122 002000 001302 001702 A ¥ 108 : 001302 176062 11%: ROUTZ: CLR BIC JMP BIS CLR JMP JSR JSR JMP MOV MOV RT] TYPE RDOCT MOV CLR MOV RTI JMP 97 BNE CLR JSR NOP MOV BIC JMP MOV MOV RTI TYPE, RDOCT MOV NOP NOP NOP BIC INC CLR DEC BEQ INC BR MOVB H () o b 001302 002000 001702 000400 176334 N LIO.BNCCSR b 002614 PAGE 5 T8,aNCSFR PC,LDIMGE CHANGE #340,-(SP) #18,-(SP) .MSG2 (SP)+,THHI -(SP) #2%,-(SP) SEQ 0020 JWANT REGULAR GAIN s INSURE REGULAR GAIN ;LOOK FOR NEXT COMMAND ;STOP NCVTT s ZERO NCV (SR ;LOOK FOR NEXT COMMANL ;GO STOP THE NCV1i IF RUNNING ;GO SET UP TEST CORE IMAGE ;GO DISPLAY IT JASK FOR OCTAL DATA ;GO GET IT ;SAVE IT CHANGE ;GO DISPLAY 1% MSELCT PC,SELCTA :BR IF NOT VTVCSR,RO #B118,20(R0O) ;GET 1ST BIT MAP ADRS NOVSV sTEST IF VSVO1 DETECTED ;SELECT 1ST BIT MAP s CHANGE ADDRESSES :TURN OFF OND BIT MAP :GO AWAIT NEXT COMMAND #1$,=(SP) MSG7 (SP)+,10% #177776,10% 10% 11% 108 3% 11% 2% / 11%, CAMERA+1 CAMERA ,aNCCSR -(SP) ;TELL OPERATOR TO SELECT WAIT FOR HIS INPUT :GET CHAR. :MASK OFF BITS ":CLEAR ACTUAL VALUE ;UPDATE ACUTAL ;UPDATE CAMERA SAVE LOC. JAND SELECT THAT CAMERA BIS CLR MOV #4%,-(SP) JMP CHANGE ;RETURN MOV BIS JMP #BIT10,GAIN JENABLE GAIN JSET IT AT NCV CSR ;GO AWAIT NEXT COMMANL RTI 0 0 GAIN,aNCCSR LISN CAMERA . CINCDB NCV11 EXERCISER MACV}1 CZNCDB.P11 31-AUG=79 11:2 30G6(1063) 31-AUG=79 13:08 PROGRAM ROUTINES .SBTTL [ PAGE 5-1 SEQ 0021 PROGRAM ROUTINES ;GO CLEAR SCREEN OF SELECTED DISPLAY 003122 004737 CHANGE: JSR 005020 PC.ERASE ;GO ERASE SCOPE ;STOP NCV11 AND GET SET TO DISPLAY 003126 004737 004744 JSR PC,NCSTP ;GO STOP NCV11 003132 003136 003140 005737 001402 000137 001324 TST BEQ JMP NOVSV BOX LISN ;TEST IF vSVO1 DETECTED ;BR _IF YES JRETURN IF NOT 003144 003150 003154 003160 003162 012700 001750 073567 005060 001702 ;NOW DRAW A BOX AROUND POTENTIAL MATRIX DISPLAY ;AREA ON THE SELECTED DISPLAY BOX: 1%: 001770 003166 003170 003174 003176 005072 MOV #1750,R0 JSR PC,DISPY MOV INC 2%: 006010 005060 3%: 006030 005072 4%: 5%: 001730 000017 070000 006047 005060 JSR ADD JSR 013737 017700 013701 020021 001304 024137 001274 103005 101001 011100 005721 005337 001366 175764 001314 001306 001306 6%: ;LOAD NEXT PIXEL WD 1% #6010,R0 PC.DISPY RO _, #6030,R0 4% PC,DCONT 3% MOV 175730 001260 001262 PC,DCONT BR MOV JSR INC CMP BEQ JSR BR MOV CMP BEQ BR MOV MOV MOV CLR *GO LOAD BIT MAP sADVANCE ADRS #1770,R0 2% MOV ADD *SET UP PIXEL DATA IN R1 = INT 7 RC CMP BEQ JSR :SET UP BIT MAP ADRS - TOP L INE #73567 ,R1 #1730,R0 #17 ,RO ;TOP LINE DONE? ;BR IF SO - #70000,R1 #6047 ,RO 6% PC,DISPY 2%: 3%: DEC BNE ;SET UP BIT MAP ADRS SIDE LINES ;OFFSET NEXT ROW ;SET UP PIXEL 3 DATA IN R1 = INT 7 ;AT BOTTOM OF SCREEN? ;GO START VSVO1 DISPLAY ;GO LOAD BIT MAP #7 ,R1 sSET UP PIXEL O DATA IN R1 = INT 7 5% VTVSAV,aVTVCSR ;DO NEXT ROW ;START DISPLAY ;OFFSET BIT MAP ADRS ;SET UP PIXEL BYTE COUNT ;CLR PIXEL ASSEMBLY WORD #21,R0 PC,DISPY #2010 ,MAPADR #3 ,PIXCNT PIXASM JNOW LETS FIND THE LARGEST CELL LARGES: MOV TOTSIZ,CHARCT MOV aTABLEX,RO MOV TABLEX,R1 1%$: CMP RO, (R1)+ BHIS CMP BHI MOV TST sNEXT MAP LOAD ;SET UP BIT MAP ADRS = BOT LINE ;GO LOAD BIT MAP ;ADVANCE ADRS ;BOT LINE DONE? :BR IF SO ;LOAD NEXT PIXEL WD sNEXT MAP LOAD 3% =(R1) ,THHI 2% (R1) ,RO (R1)+ CHARCT 1% ;OFFSET TO RIGHT LINE ;GO LOAD BIT MAP ;NUMBER OF ELEMENTS TO CONSIDER sTHIS IS FIRST GUESS ;R1 POINTS TO TABLL ;COMPARE GUESS AGAINST NEW ;GUESS STILL GOOD ;GUESS SMALLER BUT CHECK NEW sHI AGAINST UPPER THESHOLD ;WITHIN BOUNDS. MAKE THIS NEW HI ; INCREASE REGISTER BY 2 sCOUNT THIS LAST COMPARISON — CINCDB NCV11 EXERCISER MACY11 30G(71063) 31-AUG=79_ 13:08 CINCDB.P11 31-AUG=79 11:21 PROGRAM ROUTINES 431 432 433 434 435 2%(7) 003360 003364 003366 003372 163700 101002 000137 010037 001272 SuB BHI 003720 001310 4%: 003376 003404 013737 062737 001314 017600 446 447 448 003432 003436 003440 005337 001006 012737 001312 003412 003420 003424 003446 003454 003460 012737 017702 062737 162737 020237 101003 452 453 003462 003466 455 456 457 458 003472 003474 003500 003504 000423 013701 012703 005004 003510 020201 454 003470 459 003506 461 462 463 464 465 466 003512 003514 003516 003520 003522 003524 460 467 468 469 470 471 472 JMP MOV THLO,RO 4% ;SUBTRACT LOWER THRESHOLD sBR IF CELL VALUE GREATER THAN LO THRESHOLD sDON'T DISPLAY=-ALL VALUES BELOW LO THRESHOLD ;SAVE LARGEST CELL OF MATRIX PATWRT RO, CPERL ;PROPER INTENSITY LEVEL. 441 442 451 SEQ 0022 sNOW PICK OUT EACH VALUE IN CORE MATRIX AND SCALE TO THE 228 449 450 PAGE 6 :THE LARGEST CELL WITHIN THE UPPER THRESHOLD IS NOW IN RO sNOW ACCOUNT FOR LOWER THRESHOLD - BOW OUT IF TOO SMALL 438 443 444 445 J 003526 003530 003532 003534 003536 003540 163702 101002 000100 175632 000002 000100 000400 001274 103404 005701 001401 005204 160102 000241 006001 005303 001365 160102 101401 005204 001312 DMATRX: MOV ADD ;BEGIN AT TOP LEFT ROW ;OFFSET TO BOTTOM OF CORE MATRIX sCOUNT CELL THIS ROW ;BR IF ROW NOT FINISHED JRESET NEXT ROW COUNT 001256 001312 MOV ROWCNT 1% #64 . ,ROWCNT BHI 2% 001256 DEC BNE 1%: 2%: 001310 000005 TABLEX ,MRXADR #8064. ,MRXADR MOV DISLOP: MOV ADD 001272 005004 006304 001256 001256 THEN DISPLAY IT ON THE SELECTED DISPLAY SuB CMP SuB BHI CLR BR SCLCEL: MoV MOV CLR 2%: ASL 3%: 4%: BLO TST BEQ INC SuB CLC CMP ROR DEC BNE SuB BLOS INC #64 . ,ROWCNT @MRXADR,R2 #2 ,MRXADR #256. ,MRXADR R2,THHI THLO,R2 SCLCEL R4 MAPLD CPERL .R1 #5,R3 R4 ;THERE ARE 64 CELLS PER ROW ;GET A CELL VALUE FROM MATRIX ;BUMP MATRIX ADRS sSET UP FOR NEXT ROW IN MATRIX ;CELL WITHIN HI THRESHOLD? ;BR IF NOT ;SUB LOW THRESHOLD ;BR _IF CELL ABOVE LOW THRESHOLD sSET CELL TO LOWEST INTENSITY ;NOW ESTABLISH THE INTENSITY LEVEL ;SCALE TO 16 LEVELS R4 ;MUL BY 2 48 R1 3% R4 R1.R2 ;BR _IF SMALLER ;CHECK CASE WHERE O DEVISOR ;BR IF SO sACCOUNT FOR GOOD SUBTRACTION ;NO DO THE SUBTRACTION R2.R1 R1 R3 2% R1,R2 MAPLD R4 ;COMPARE THIS CELL TO LARGEST ;MAKE DEVISOR SMALLER ;COUNT POSITION JAGAIN IF NOT SCALLED TO 16 LEVELS YET sACCOUNT FOR REMAINDER ;BR IF TOO SMALL ;ROUND UP CZNCDB NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 474 475 476 31-AUG=79 11:21 31-AUG=79_ 13:08 PROGRAM ROUTINES PAGE 7 K SEQ 0023 ;THIS CODE DISPLAYS EACH SCALED CELL ON THE vSVO1 003542 013700 : MAPLD 001260 1%: MOV TST BEQ DEC SWAB ASL ASL ASL ASL R4 1$ R4 R4 R4 R4 R4 R4 ROR ROR ROR ROR PIXASM PIXASM PIXASM PIXASM CLC 001264 001264 001264 001264 001264 001262 ADD TST BNE 001264 MOV 2%: MAPADR RO JSR DEC R4 ,PIXASM PIXCNT 2% PIXASM,R1 PC,DISPY PIXCNT DISLOP PIXASM #3,PIXCNT MAPADR 001262 MAPADR RO #5770 ,RO 3$ 3%: 000020 003420 007260 4%: PATWRT #177740,R0 #30,R0 4% #20 ,MAPADR DISLOP (ONE OF 16 LEVELS) ;SET UP BIT MAP ADRS ;LOOK FOR NO INTENSITY sBR_IF NO INTENSITY ;OFFSET TO 0-17 ;PREPARE FOR PIXEL LOC sMOVE TO TOP 4 BITS ’ "NOW ASSEMBLE THIS PIXEL INTO PIXEL WORD *NOW MAKE ROOM IN PIXEL WORD ;ADD THIS PIXEL TO OTHERS JALL 4 PIXELS DONE FOR THIS WORD? ;BR IF NOT ;LD PIXEL WORD INTO R1 ;LOAD BIT MAP ;COUNT PIXEL :BR IF & PIXELS NOT ASSEMBLED YET sCLR PIXEL ASSEMBLY WORD JRESET PIXEL COUNT ;ADVANCE MAP ADRS ;LOAD INTO RO JHAVE ALL 64 ROWS BEEN DONE? ;BR IF NOT sNOW GO DISPLAY PARAMETERS ;SAVE ROW POSITION BITS JNOW LOOK FOR END OF ROW :BR IF NOT AT END ;ADVANCE MAP ADRS TO NEXT ROW ;GO GET NEXT MATRIX DATUM - i s il S il b ol vivivvoanaoa v NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79_ 13:08 PROGRAM ROUTINES CZNCDB.P11 31-AUG=79 11 :21 oONOAWN S W TM CZNCDB PAGE 8 L SEQ 0024 ;CODE TO WRITE PARAMETER DATA AT BOTTOM OF SCREEN 003720 003726 012777 004537 012000 005316 175276 PATWRT: MOV JSR wD0O01 JSR 005342 THLO JSR wD002 #Szl 005316 005342 519 001301 000060 001246 001246 001246 010022 032777 001007 112737 112737 000406 112737 000040 175202 000125 000120 010036 010037 112737 000104 000116 010036 010037 1$: 032777 000100 175140 2$: 000125 000120 010053 010054 000104 000116 010053 010054 113737 O*U!Vl\.hl\l\b% novsrooNNVO SO ONNVO sEgEasEsEasts 004104 H 005316 #12000,avTVvPOS R5,VTWRIT RS ,AWRIT R5,VTWRIT RS ,AWRIT MovB CAMERA+1,DUMMY1 ADD #60,DUMMY1 MOVB DUMMY1,CAMOUT :TEST THE 'PB'' FLAG BIT BNE MOVB MOVB BR MOVB MOVB #BITS,aNCSFR 18 #'U.PBUP #'P.PBUP+1 2% #'D,PBUP #'N.PBUP+1 ;TEST FOR JOY-STICK BUTTON FLAG 3%: 4%: BIT BNE MOVB MOVB BR MOVB MovB J3807 W ;VSVO1 - SET (CHAR POS,LINE 20, LEFT MARGIN ;"'CR,LOWER THRESHOLD'' ;DISPAY OCTAL ;"'CR, UPPER THRESHOLD'' ;DISPAY OCTAL ;GET CAMERA VALUE sMAKE ASCII :SAVE FOR READOUT ;TEST FOR 'PB'' FLAG :BR IF SET :NO- TELL OPER. sTELL OPER. IT WAS DN . MBIT6,aNCSFR 38 ;TEST FOR '‘JOY-BUTTON'' FLAG :BR IF SET :TELL OPER. IT WAS UP #'D,JBUP #'N,JBUP+1 R5,VTWRIT ;TELL OPER. IT WAS DN #'U,JBUP 4P JBLP1 ;DISPLAY CAMERA VALUE AND BUTTON STATUS JSR wD003 MOV MOV JSR R5,VTWRIT 005316 JSR R5,VTWRIT s INSERT ="' 005342 JSR R5,AWRIT :DISPLAY OCTAL 005316 JSR wD004 RS,VTWRIT 005316 175062 175052 005342 001246 001250 IT WAS UP aNCBAR,DUMMY1 aNCWCR,DUMMY? RS,AWRIT ;"7 COUNT ="' ;DISPALY OCTAL ;"MATRIX COUNT="' CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79_ 13:08 CZNCDB.P11 31-AUG=79 11:21 PROGRAM ROUTINES gg? 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 2;2 004164 004172 004174 004176 004202 004204 004206 004212 004214 004220 004224 004230 004232 004236 004240 004244 004246 004252 013737 005002 005003 013701 062103 005502 005337 001373 010337 010237 004537 001250 004537 010634 004537 001246 004537 011716 001304 001240 001314 001240 001246 001250 005342 005316 005316 005737 001403 004537 007767 001302 585 586 004300 004304 004537 007776 005316 588 589 590 591 TOTSIZ,TEMPO R2 R3 TABLEX,R1 (R1)+,R3 ;NOW ADD UP ALL VALUES IN MATRIX MXSML R3,DUMMY1 R2,DUMMY?2 RS ,AWRIT ;TELL OPER. OCTAL RS,VTWRIT ; INSERT DASH R2 TEMPO R5 ,AWRIT R5,.VTWRIT ;TEST FOR GAIN = 2 AND B GAMMA STATES 004254 004260 004262 004266 587 MoV CLR CLR MOV ADD ADC DEC BNE MOV MoV JSR DUMMY2 JSR DASH JSR DUMMY1 JSR BCRLF 005342 579 580 581 582 583 584 ;DETERMINE THE # OF COUNTS IN THE MATRIX MXSML: g;g PAGE 9 M 004270 004276 004306 004312 004314 004320 004326 005316 023727 001003 001314 005737 001316 000137 013777 002124 001276 001402 000137 001702 ; 040000 1%: 2%: 174652 3%: TST BEQ JSR wD005 GAIN 1% RS,VTWRIT JSR wD006 R5,.VTWRIT BEQ 3% CMP BNE TST FREERN JMP MOV ROUTF COMSAV,aNCCSR JMP A TABLEX ,#MATRIX+20000 ;I1SOTOPE B? 2% :NO LISN :YES ;' B-GAMMA :IN FREE RUN MODE? :BR IF NOT ;YES, GO GET NEW DATA ;RESUME THE NCV11 ;DONE WITH MESSAGES SEQ 0025 CZNCDB NCV11 EXERCISER MACY1? 30G(1063) 31-AUG=79_ 13:08 CINCDB.P11 31<AUG=79 11:21 PROGRAM ROUTINES PAGE 10 N SEQ 0026 593 594 :THIS CODE DRAWS CROSS HAIRS(VSVO1) WITH THE X & Y JOYSTICK DATA *THE BUG WILL FOLLOW THE JOYSTICK WHEN THE INTERRUPT BAR IS NOT DEPRESSED = 596 597 ggg 004332 004737 *BE ACCESSIBLE IN A UNIFORM MANNER ‘A CNTRL 'C' WILL GET USER BACK TO KEYBOARD MONITOR TJoy: JSR PC,ERASE :START FRESH 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 004336 004340 004344 004350 004352 004356 004360 004364 004366 004372 004376 004400 004404 004406 004412 005000 012701 004737 005200 022700 001403 004737 000771 012700 004737 005200 022700 001403 004737 000771 617 618 004420 004424 012701 004737 000007 005060 004434 062700 000037 5§95 *ALL PARTS WITHIN THE DISPLAYED BOX ON THE SELECTED DISPLAY SHOULD 005020 :DRAW A BOX UP ON VSVO1 SCREEN FOR NCV11 JOYSTICK CALIBRATION CLR RO :SET UP BIT MAP ADRS - TOP LINE MOV #73567 ,R1 *SET UP PIXEL DATA IN R1 = INT 7 JSR PC,DISPY *GO LOAD BIT MAP 1%: INC RO *ADVANCE BIT MAP ADRS CMP #40,R0 :TOP LINE DONE? BEQ 2$ “BR IF SO JSR PC,DCONT *LOAD NEXT PIXEL BR 1% *NEXT MAP LOAD 28: MOV #7740 ,R0 *SET UP BIT MAP ADRS - BOT LINE JSR PC,DISPY :GO LOAD BIT MAP 3$: INC RO *ADVANCE ADRS CMP #10000,R0 sor LINE DONE? BEQ 4$ BR IF SO JSR PC.DCONT *LOAD NEXT PIXEL WORD BR 38 *NEXT MAP LOAD 073567 005060 000040 005072 007740 005060 010000 005072 616 004414 012700 000040 619 620 004430 012701 4%: MOV 5%: 070000 622 623 004444 004446 005200 022700 007740 252 004454 013777 001254 624 004452 001362 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 BNE MOV _ 004462 004470 004476 004502 004504 004512 004514 004516 004520 004524 004532 004534 004536 004540 004544 012777 052777 105777 100375 017737 000240 000240 000240 004737 032777 001356 000240 000240 004737 000751 004000 000001 174506 174504 005472 000040 . 005122 174520 174512 4 001240 174456 DISBG: 1%: 2$: *SET UP PIXEL 3 DATA IN R1 = INT 7 #37.R0 INC CMP gsg #70000,R1 ADD JSR 174544 “SET UP BIT MAP ADRS SIDE LINES #7.R1 PC.DISPY MOV 621 004440 004737 005060 #40,R0 MOV JSR PC.DISPY RO #7740 ,R0 5 VTVSAV,@VTVCSR “SET UP PIXEL O DATA IN R1 = INT 7 :GO LOAD BIT MAP *OFFSET TO RIGHT SIDE LINE :GO LOAD BIT MAP *GO TO NEXT ROW ON LEFT *TO BOTTOM YET? *BR IF NOT -ENABLE BIT MAP :NOW COLLECT ANALOG DATA FROM NCV11 JOYSTICK MOV BIS TSTB BPL MOV NOP NOP NOP JSR BIT BNE NOP NOP JSR BR #BIT11,aNCSFR #8ITO,aNCSFR aNCSFR 2% aNCJOY,TEMPO :CLEAR THE DEVICE - CONVERT JOYSTICK *DONE? ‘BR IF NOT -STORE CONVERSION VALUES PC,XYAVE #BITS,aNCSFR 1% ;GO AVG LAST 32. X=Y JOYSTICK VALUES +LOOK FOR JOY BOTTON DOWN *DON'T MOVE THE BUG PC.DISPY2 1% ;GO DISPLAY CROSS HAIRS = VSVO1 DO ANOTHER CONVERSION CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG-79 13:08 PAGE 11 CZNCDB.P11 31=-AUG=79 11:21 PROGRAM SUBROUTINES 648 IR 649 650 651 004546 013700 001166 655 656 657 658 659 660 661 662 663 664 665 666 667 004556 004560 004564 010021 062700 022701 000002 001226 671 672 673 674 675 676 677 678 679 5(1) 004552 004570 004572 004576 004602 004604 004610 004612 004616 004622 004624 004632 004636 004642 004646 004652 004656 004662 004664 004666 004674 004676 004700 004702 012701 001372 013700 005737 001402 062700 010021 062700 022701 001372 012737 005777 005777 013700 010077 062700 032700 001771 000241 012737 000207 022626 000261 1%: 001320 000020 001240 004676 174362 174364 001252 174364 000004 689 4%: IR RO, (R1)+ #2,R0 #VTVCSR,R1 MSELCT 2% "20,R0 k0, (R1)+ #2,R0O WTVINTQ R1 23 #5% ,a#ERRVE ( aVTVCRG aVTVCSR INTLUT RO RO,aVTVINT ADD #401,RO BR 4 BIT BEQ ELE MoV RTS CMP SEC 000771 AR AR #10000,RO 3% ;SET UP REG ADRS PTRS ;BUMP REG ADRS .CHAR GEN REGS ALL SET uP? *USING SECOND MAP? ‘BR IF NOT JPOINT TO 2ND BIT MAP ADRS'S sCONTINUE TO BIT MAP ADRS'S *BUMP REG ADRS JALL SET UP? ;BR IF NOT ;SET UP BUS TIMEOUT RETURN ADRS IF NO VSVO1 ;1S CHARACTER GENERATOR THERE? ;IS BIT MAP THERE? sSET UP ADRS & DATA OF INTENSITY LOOK-UP TABLE ;SET UP TABLE :ADVANCE ADRS & INTENSITY ;TABLE LOADED? BR IF NOT ;ZERO CARRY SAYS VSVO1 THERE OERRVEC*Z,MERRVEC JRESTORE ER TRAP LOC TO PT TO 6 PC JEXIT (SP)+,(SP)+ JFIX STACK SINCE NO RTI . ;CARRY ON EXIT SAYS NO VSVO1 ;GO EXIT AR AR AR AR R AR AR AR RNR AR AR AR RRARAARRARRRA AR AR JROUTINE STARTS NCV11 AT SELECTED GAIN AND CAMERA AR AR RN ttttttltt!ttttttttttttttttfittttttittittfittttttttttttttttttltttt 004704 004712 004720 004726 004734 004742 012777 012777 053777 053777 052777 000207 004030 020000 001302 001300 000001 174266 174262 174252 174244 174236 692 693 694 695 004744 017737 697 698 004760 004764 005077 000207 696 *BR IF NOT ;GET BASE ADRS OF BIT MAP MOV 5%: 68(. 1% VTMADR RO TST TST MOV 010000 000006 BNE MOV MOV 3%: 000401 :GET PTR ADRS (MP BNE 000004 ;GET VvSVO1 BASE ADRS OVTVCRG.R1 TST BEQ ADD MOV ADD 2%: 000002 VTVADR ,RO MOV MOV ADD (MP 001170 683 23(1) AN NN ROUTINE SELECTS VvSVO1 DISPLAY = SETS UP BUS ADRS AND INTENSITY LEVEL AND INTENSITY LOOK-UP TABLE = THE CARRY BIT IS SET ON EXIT IF THE SELCTA MOV 001220 682 685 686 687 688 AR AN R AR AR AR AR AR AR AR RN RN . t'Qt.ttttt"ttttt"tl.'tttQfitt.ttttllttttt.ttttttttt'tttt"'t't 653 668 669 670 R AR SEQ 0027 VSV01 IS NOT SEEN AT THE ASSIGNED BUS ADDRESS 652 654 AR R 8 004752 052777 174230 000400 174214 001276 174230 NCSTRT MOV MOV BIS BIS BIS RTS IR AR AR IR AR NCSTP: #4030,aNCCSR MTRIX.S‘JCOFF GAIN,aNCCSR CAMERA ,aNCCSR #B1T0,aNCCSR PC JSET UP :ENSLRE JSET UP ;SET UP ZB ENABLE AND 64*64 WORD MATRIX OFFSET REG. IS SET GAIN CAMERA ;SET GO BIT sRETURN AR AR AR AR AR RN AR AR RA AR AR AR RRRRRRR AR AR AR R RN JROUTINE STOPS NCV11 AND SAVES NCV11 AA AR R AR AR AR R AR RA AR R STATUS R RR RN RRRRARR R R R AR R AR AR AR AR RN RN MOV aNCCSR, COMSAV ;SAVE THE INTERFACE ACTION CLR RTS aNCCSR PC ;ZERO ALL STATUS JRETURN BIS #3178 ,aNCSFR ;DISABLE NPR'S R R RN CZNCDB NCV11 EXERCISER MACY11 C(ZNCDB. P11 31-AUG=79 11:21 30G(1063) 31-AUG=79 13:08 PROGRAM SUBROUT INES PAGE 12 C SEQ 0028 ::t't'tt‘."fi"t.'tttfit"ltt'i"'!t.QQ"Q'..Q'.Q.QQ"."Q..Q.ttt' ;ROUTINE STOPS NCV11, SAVES STATUS AND CLEARS MATRIX CORE AREA » tQQ.tt't't"ttttfittfittt'.'tfitt...fi.."fi"fi.*.'tttt..'.!tttt"'. 004766 004737 005077 005077 012700 005020 020027 001374 000207 004 744 NCSTP1: 174206 174204 020000 19: 060000 JSR PC ,NCSTP CLR ;GO STOP NCV11 AND SAVE STATUS aNCWCR CLR MoV CLA (MP ;CLEAR HIGH WORD aNCBAR ;CLEAR LOW WORD #MATRIX,RO :GET SET TO 2ERO CORE MATRIX AREA (RO) + :ZERO LOC RO,#MATRIX+40000 ;ALL DONE? BNE 1% RYS ;BR IF MORE PC ;RETURN PR AR A A AR AR AR AR AR AR A A AR R ;ROUTINE WILL AR AR AR AR AR AR R AR AR AR AR AR AR R AR ERASE R hh DISPLAY ’.t'ttQ‘ttfifi't.t.tt"*tttfitfittfi..Q.ttfi..t..fit...'l'fi".'t't.tt't' 005737 001014 052777 105777 100375 042777 012777 000207 ERASE: 001324 001000 174166 174172 001000 002035 1%: 2%: TST BNE BIS TSTB BPL BIC MOV RTS NOVSYV JTEST IF vSvOl1 DETECTED aVTVCSR ;LOOK FOR READY #1000,aVTIVCSR #2035,aVIVCRG PC ;TURN OFF ERASE DISPLAY ;CLR CHAR SCREEN & DISABLE CURSOR JEXIT 2% #1000,avTVCSR 1% BR IF NOT JERASE DISPLAY (CLR BIT MAP) :UAIT FOR IT AT A A AR AR AR A AR A AR A AR A AR AR AR A AR A AR AR A A AR AAARNR AR R AR AR R R R A AR AR ;ROUTINE WILL LOAD BIT MAP (VSV01) ;RO CONTAINS BIT MAP ADRS AND R1 THE BIT MAP DATA tttt'i**t.tttttl'ttitt!ttfii'.Qtfifit*i'.ttttt'fitttt..ttttttttt"' 042777 010077 042777 105777 100375 010177 052777 000207 000400 174136 000400 174140 DIS BIC #400,aVTVCSR ;STOP DISPLAY 174126 DCONT: BIC #400,aVTV(SR sAGAIN IF ENTERING HERE 174120 000400 174106 BIS #400,aVTVCSR 174122 1%: MOV TSTB BPL MOV RTS SRR RO,@VTVMAP :LOAD BIT MAP ADRS aVTVCSR 1% R1,aVTVPX sREADY? JWAIT THEN ;LOAD BIT MAP PC JRETURN AR AR AR AR AR sRESUME DISPLAY A AR AR AR AR R AR RA R AR AR A AR R AR AR AR RN A AN AR AN JROUTINE WILL DISPLAY X & Y CROSS HAIRS ON VSVO1 R 005777 174072 013777 052777 001241 001240 016000 100375 105137 000207 DISPY2: 174060 174050 I N I TST aVTVCRG COMB MOV BIS TEMPO+1 TEMPQO,aVTVCHP #16000,aVTVCRG BPL RTS T T ;READY? DISPY?2 ‘WAIT IF NOT PC sRETURN ;X NEEDS TO BE INVERTED ;LOAD X & Y CROSS HAIRS ;ENABLE THE CROSS HAIRS TM CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AuG=79 13:08 PAGE 13 CINCDB.P1T 31=AUG=79 11:21 PROGRAM SUBROUT INES 748 IR 749 I AR RRRRR D SEQ 0029 R AR AR R RN AR AR RRRRRRRRR AR R AR AR R AN JROUTINE WIIL FILL CORE WITH AN IMAGE THAT WHEN 750 75 752 753 754 sDISPLAYED WILL CONTAIN ALL THE INTENSITY LEVELS sROWS AT THE BOTTOM OF THE SCREEN WILL APPEAR BRIGHTEST JNOTE THAT THIS IS ONLY A DISPLAY TEST PATTERN FOR ;POSSIBLE DISPLAY ADJUSTMENTS BY THE USER IR RRARRRRAA AR AN AR RARAARARRRRRNRRRRRNRRRRRRRRRRRA R AR AR 755 756 005152 005156 012700 013701 000100 001314 LDIMGE: MOV MOV #100,R0 TABLEX ,R1 ;sCOUNT 64 ROWS sGET SELECTED ISOTOPE 758 759 005166 005172 012703 010321 000100 1%: MOV MOV #100,R3 R3.(R1)+ ;100 WILL REPRESENT HIGHEST INTENSITY LEVEL(100-0) ;LOAD CORE IMAGE 2%: BNE DEC BEQ SuB MOV BR RTS 757 760 761 762 763 764 765 766 ;gg 005162 005174 005176 (05200 005202 005204 005210 005214 005216 012702 000100 MOV 005302 001375 005300 001405 162703 012702 000766 000207 769 AR 005220 005226 005234 005242 005250 005252 005256 017737 013777 042737 022737 001002 000137 000002 173722 001266 177600 000003 001266 173716 001266 001266 001856 AR KBINT 1¢: AR 782 ROUTINE 783 005260 005266 012737 004737 000015 005300 005300 105777 173644 005272 788 005304 789 790 ;BR IF NOT ;DONE ROWS? BR IF SO JLOWER NEXT CELL VALUE JRESET ROW LENGTH COUNTER :LOAD THIS ROW IMAGE JRETURN FOR DISPLAY AR AR AR AR R AR R MOV MOV BIC cMP BNE JMP AR AR AR AR A RRAARRRRARRARRRARRRRAANRARRRAR AR RN R R R a$TKB ,KBUFF KBUFF.GSTPB #177600,KBUFF #3 ,KBUFF 1% LISEN AR AR AR R AR ARAR AR TYPES 'CR' AND JREAD KEY BOARD :ECHO CHAR. JRID PARITY JCNTRL 'C'? ;BR IF NOT ;ABORT WHATEVER & LOOK FOR NEXT COMMAND A RRRRAAARRA R AR AR AR RRAR AR ARR RN AR 'LF' OR CHAR IN TTYOUT R AR AR AR AR AR AR AR R AR AR RRAARAARRARRRRRARRRRRRRRA AR AR AR AR R R 786 787 ;DONE ROW? 1% RO 2% #1,R3 #100 R2 1% PC RTI 781 784 785 R2 KEYBOARD INTERRUPT SERVICE ROUTINE 772 ;Zg ;COUNT 64 DATA POINTS PER ROW R 2282220082202 2 8222232222223 1232322222222122322222322232% 771 773 774 775 776 777 778 DEC 000001 000100 770 #100, R2 005306 005314 012737 100375 013777 000207 000012 001270 001270 001270 173536 TYPCR TYPO: MOV JSR #15,TTYOUT PC,TYPO TSTB SSTPS MOV BPL MOV RTS #12,TTYOUT TYPO TTYOUT,Q$TPR PC ;SET UP FOR A 'CR' ;SET UP FOR LF JWAIT FOR LAST CHARACTER ‘ JSEND IT OuT CZNCDB NCV11 CZNCDB P11 EXERCISER MACV11 31-AUG=79 11:2 30G6(1063) 31-AUG=79 13:08 PROGRAM SUBROUTINES e i PAGE 14 E SEQ 0030 i 2333332222222t Rttt Rttt d) :THIS SUBROUTINE IS CALLED WITH THE ADDRESS OF A MESSAGE TERM WITH A 0 BYTE :;ttttfiittt."ttt'tfitfifii"tttQtttfi'Q'.ttt..ttt't'tti.".tt'."t" VIWRIT: MOV 1%: 173674 TST BPL TSTB 173662 2%: (R5)+,R4 ;GET ADDRESS OF MESSAGE IN R4 aVTVCRG ;JWAIT FOR READY 1% BEQ ggVB 2% %24)*.8VTVCRG (R4) ;TERM ? RTS RS JEXIT 22223R2022222 22 2222332222232 ;BR IF YES ;LOAD THE CHARACTER 2 Rttt SRt RtRRaRRRRllldl) :THIS ROUTINE CONVERTS OCTAL INTO ASCII FOR DISPLAY ':tfitt*tt'ttfi*ttfitfittttttttifitittttfiiifittt'tfitfittfi'ttiitttt"t'tt 012537 017737 010046 012700 012737 06 005454 000102 005470 000006 005454 005454 005454 005454 177770 000060 005456 005460 005454 AWRIT: 2%: 005470 060 060 060 060 *SAVE RO #NUMEND , RO ASR ASR ASR 108 108 108 :SHIFT DATA BIC #177770.11% “MASK OFF UNWANTED BITS MOV 10%: 0 11%: 0 12%: 5 NUMBEG: .BYTE NUMEND: RO,=(SP) MOV ADD MOVB DEC BNE MOV JSR G NUMBE RTS 005316 :GET VALUE'S ADDRESS 210$,10$ ggv 1$: (R5)+,108 MOV MOV 005460 005456 005456 005456 MOV .BYTE .EVEN 52,125 “GET ACTUAL VALUE *LOAD LAST ADDRESS OF OCTAL TYPEOUT *LOAD LOOP COUNTER 10$,11% :COPY THE VALUE #60,11% 11%.-(RO) 12% 1% (SP) +,R0 RS,VTWRIT *MAKE ASCII OCTAL “SAVE THE CHAR. *FINISHED ? RS :DISPAY THE OCTAL # SEXIT 60,60,60,60,60,60 0 CZNCDB NCV11 EXERCISER MACY11 CZNCDB.P11 31-AUG=-79 1121 30G(1063) 31-AUG=79 13:08 PROGRAM SUBROUTINES PAGE 15 F SEQ 0031 .'.'t'.'fi'!fi'.""t.'tttt"'t'tti‘t.'tt't..i.t'tt't.t.'t"it.'ttt" :THIS ROUTINE AVERAGES THE LAST 32. X=Y JOYSTICK VALUES :.'ttt.t'Q"Qt'Q'*Qtititfi"ttltfi.‘tt.iifit.i..'.fi""'tfit.'Qtt'ttt' 010046 001240 005720 XYAVE: 005720 005620 005720 005620 005562 1%: 005621 005562 MOV RO,=(SP) ;SAVE RO MOV RO, (R2)+ ;SAVE NEW X=-Y VALUE MOV MOV CMP BLO MOV MOV MOV JSR MOVB MOV JSR SWAB BISB MOV 001240 005720 177400 005720 000040 005720 005620 R2 ,AXYBUFE 1% #XYBUF ,R2 RZ ,XYBUFP #XYBUF ,R2 PC,10% RO,=(SP) #XYBUF +1 ,R2 PC,10% RO (SP)+,R0 JGET X B Y ;GET CURRENT BUFFER POINTER JEND OF BUFFER? ;NO JYES, GO BACK TO BEGINING OF BUFFER ;SAVE NEW BUFFER POINTER ;sCALC AVE X JSAVE IT sCALC AVE Y GO DO IT :GET X=Y IN RO JGET SAVED X JPUT IN TEMPO MOV RO, TEMPO (SP)+,R0O CLR CLR RO RS ;ZERO SUM ;DC A MOVB ADD R5.RO JADD ASL ASL RO RO RO RO #177400,RC ;DIVIDE BY 32. RTS 10%: 11%: TEMPO,RO XYBUFP ,R2 BISB INC CMP BLO ASL SWAR BIC RTS : XYBUF XYBUFE=. XYBUFP: XYBUF PC (R2)+,RS R2 R2 ,#XYBUFE 11% PC JRESTORE RO JEXIT WITH AVE X=Y TO A REG IT IN ;SKIP OTHER VALUE JEND OF BUFFER? :NO ;CLR HI BYTE IN TEMPO (UNSIGNED) CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 PAGE 16 CZNCDB.P11 31-AUG=79 11: 21 PROGRAM SUBROUTINES IR 879 LSBTTL (2) ':t't.t.'.'!Q..tttttlttt.'.ttttttttttt.t".t'it'tfit""'tt.."t" "ENABL (2) (1 005722 022737 000176 (1) (1) (1) 005732 005736 005740 105777 100071 117746 173206 (1) (1) 005750 005754 022726 001062 000007 005730 042716 005756 005764 123727 091456 0C1134 104401 006574 005766 (1) (1) 006010 006012 (1) (1) (1) (1) (1) (1) (1) (1) g}; (1) (1) (1 105777 100375 173124 006022 000001 006601 000176 006612 19%: 7%: 042716 117746 173120 006032 006036 006040 006044 006050 021627 001005 104401 062706 000757 000025 9%: 006567 000006 20%: 006052 006056 006060 006064 006066 006074 00 021627 001022 005766 001403 016677 062706 104401 000015 108: 001003 04 123727 000002 004737 177600 000002 000006 001161 173044 001135 000001 000100 173022 006774 11$: 14%: 15%: 16%: #~(C177,(SP) ;:STRIP-OFF THE ASCII (MP BNE #7,(SP)+ 15% TYPE TYPE MOV TYPOC TYPE CLR CLR TSTB BPL $SAUTOB,#1 15% .$CNTI.G . SMSWR SWREG,=(SP) . SMNEW -(SP) =(SP) a$TKS 7% ;. CHAR THERE? ;.IF NO, DON'T WAIT AROUND ;s SAVE THE (HAR ;:1S IT A CONTROL G? ;:NO, RETURN TO USER ;;ARE WE RUNNING IN AUTO-MODE? ;:BRANCH IF YES ;;ECHO THE CONTROL=G (*G) ;s TYPE CURRENT CONTENTS ;;SAVE SWREG FOR TYPEOUT ;:G0 TYPE=-OCTAL ASCII(ALL DIGITS) ; :PROMPT FOR NEW SWR ::CLEAR COUNTER ;:THE NEW SWR ;;CHAR THERE? ;2 IF NOT TRY AGAIN MOvB a$TKB,~(SP) ;.PICK UP CHAR CMP BNE TYPE ADD BR (SP) ,#25 108 LSCNTLU #6,SP 19% ;:1S IT A CONTROL-U? : ;BRANCH IF NOT :2YES, ECHO CONTROL-U (*U) :: IGNORE PREVIOUS INPUT J;LET'S TRY IT AGAIN CMP BNE TST BEQ MOV ADD TYPE (SP) ,#15 16% 4 (SP) 11% 2(SP) ,aSWR #6,SP . SCRLF ::1S IT A <CR>? ; :BRANCH IF NO 2YES, IS IT THE FIRST : ;BRANCH IF YES : :SAVE NEW SWR ;:CLEAR UP STACK ;.ECHO <CR> AND <LF> BNE 15% ; :BRANCH IF NOT BIC 000004 ; ;BRANCH IF NO ?$TKS 15% a$TKB,~.SP) (MPB BEQ $GTSWR: 15% TSTB BPL MOvVB BIC 006026 Jrar4 i (1) (1) (1) (1) 2}; 006014 006020 n ~ ~N ~N g}; AR AR R AR AR R ARSI R LSB SNE POND = sSrosrn (1) 104401 013746 104402 104401 SEEEE (1) g}; AR :: *WHEN OPERATING IN TTY FLAG MODE. S$CKSWR: CMP #SWREG, SWR ;:1S THE SOFT-SWR SELECTELC? 177600 005772 005776 006002 006004 005046 005046 001140 173202 005744 (1) (1) (2) (2) (1) 001074 o (1) g}; R AR AR R AR RN R AR R AR AR R AR ;*SOF TWARE SWITCH REGISTER CHANGE ROUTINE. s*ROUTINE IS ENTERED FROM THE TRAP HANDLER, AND WILL ;*SERVICE THE TEST FOR CHANGE IN SOFTWARE SWITCH REGISTER TRAP (CALL ( (1) (1) R TTY INPUT ROUTINE ':'ttttittQQ."..Qtfittfi"QitlQtt"fifitt.i.t.ttitt.ttttttttt.t'ttl' (1) (1) AR AR R R AR R R SEG 0032 878 (1) (1) R R G (MPB #~C177,(SP) $INTAG,#1 MOV #100,a87TKS JSR PC,$TYPEC RT] JIMAKE IT 7-BIT ASCI! (HAR? ;;RE-ENABLE TTY KBD INTERRUPTS? :RE-ENABLE TTY KBD INTERRUPTS : JRETURN ;JECHO CHAR CINCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 TTY INPUT ROUTINE 21 31-AUG=79 11: (MP 000060 N N 021627 e e AAAAP\’\I\I\AA’\AAAAAAA’\A’\AAAF\AAAAAAI\’\f\’\AAAA’\A’\AAAAAAAAAAAAAA CZNCDB.P11 e N N 000067 N N T N b 18%: N N B N 001160 BEQ 17% ; ;BRANCH IF YES =2(SP), (SP) ;:SET IN NEW CHAR BR TYPE BR LSB 2(SP) (SP) (SP) (SP) 2(SP) 7% , $QUES 20% ;:1S THIS THE FIRST CHAR ;sNO, SHIFT PRESENT ;. CHAR OVER TO MAKE ;. __ROOM FOR NEW ONE. ;;KEEP COUNT OF CHAR ;;GET THE NEXT ONE ;s TYPE ?2<CR><LI> ;s SIMULATE CONTROL=U NN N N .DSABL ;:CHAR < 0? ;sBRANCH [F YES ;;CHAR > 7? s :BRANCH IF YES ;;STRIP=OFF ASCII BIS N N 177776 (SP) ,#60 SEQ 0033 18% (SP) ,#67 18% #60, (SP) + ASL ASL ASL INC 17%: 000002 PAGE 16~ BLT (MP BGT BIC TST N N N 000060 000002 H A AR A AR AR R AR AR AR AR AR AR AR A A AR A AR A AR AR AARAA A AR AR AR A AR AR N “%THIS ROUTINE WILL INPUT A SINGLE CHARACTER FROM THE TTY N N s*CALL: N o* RDCHR RETURN HERE ;s INPUT A SINGLE CHARACTER FROM THE TTY ;s CHARACTER IS ON THE STACK ;:WITH PARITY BIT STRIPPED OFF N i S N I o % dh 000004 172724 000002 $RDCHR: MOV 1%: e N S S N 011646 016666 105777 000004 000004 000023 N N N G N 172720 177600 000004 28 N N NN DN 172672 N 000140 000004 000175 000040 000004 3%: 2$TKS JIWAIT FOR BPL MOVB 1% @$TKB,4(SP) TSTR ;:SAVE THE PS :;A CHARACTER SREAD THE TTY BIC ¢ #AC<177>,4(SP) 4(SP) 423 ::GET RID OF JUNK IF ANY SIS IT A CONTROL=-S? TSTB BPL MOvB @a$TKS 2% @$TKB,~(SP) “:WAIT FOR A CHARACTER S:LOOP UNTIL ITS THERE BNE (SP)+ 421 2% 1% 4(SP) 2140 4% 4(SP) ,m175 48 #40,4(SP) ::GET CHARACTER JoMAKE IT 7-BIT ASCII ;oIS IT A CONTROL-Q? ;:IF NOT DISCARD IT ;. YES, RESUME ;:1S IT UPPER CASE? ;;BRANCH IF YES ;1S IT A SPECIAL CHAR? ; ;BRANCH IF YES ;MAKE IT UPPER CASE ';tttttttt.ittti'ttittttt'tttiQittttti'fi.'.i'ti.it'ttt.fitttt'tttt 8 [ 4%: ;:G0 BACK TO USER N “%THIS ROUTINE WILL INPUT A STRING FROM THE TTY s«CALL: N N NN NSNS RTI #-C177.(SP) ;;BRANCH IF NO N CMP BNE BR CMP BLT CMP BGT BIC 3% N N N N N N NN NN 000004 ;:PUSH DOWN THE P(C 4(SP) ,2(SP) BIC W N N N 172666 177600 000021 (SP) ,-(SP) MOV RDLIN RETURN HERE ;2INPUT A STRING FROM THE TTY ; sADDRESS OF FIRST CHARACTER WILL BE ON THE STACK ;;TERMINATOR WILL BE A BYTE OF ALL 0°'S N N N S M N on i o 006324 006326 010346 005046 $RDL IN: MOV CLR R3,=-(SP) -(SP) ::SAVE R3 ;;CLEAR THE RUBOQOUT KEY I CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 CZNCDB.P11 31-AUG=79 11:21 TTY INPUT ROUTINE (1) 006330 012703 (1) 006334 022705 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) 006344 006346 006352 006354 006356 006360 006366 006372 006376 006400 112613 122713 001022 005776 001007 112737 104401 012716 005303 020327 (1) 006406 111337 (1) (1) (1) (1) (1) (1) (1) 006340 006342 006404 101456 104407 103434 006412 006416 006420 006422 104401 000746 005716 001406 (1) (1) 006432 006436 104401 005016 (1) (1) 006446 006452 104401 000726 (1) (1) (1) (1) (1) (1) (1) (1) 006462 006464 006470 006474 006476 006502 006504 006510 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) 0064246 006560 006567 000134 006556 177777 000022 006520 006522 006526 006532 006534 006536 006540 006546 006554 006560 006567 000007 136 006601 006606 006612 006620 015 036440 020040 020075 006556 006556 7%: 006567 8%: 001161 006560 001160 4%: 006556 006556 000015 3$: 177777 001162 000004 006560 000002 000004 000 000 043536 9%: 006525 005015 051412 000040 042516 000 000012 000 051127 020127 $TTYIN: S$CNTLU: SCNTLG: S$MSWR: SMNEW: SEQ 0034 MOV #STTYIN,R3 ;:GET ADDRESS BLOS RDCHR 6% ;:BR IF YES ;:GO READ ONE CHARACTER FROM THE CMP MOVB CMPB BNE TST BNE MOvVB TYPE MOV DEC CMP #STTYIN+7,R3 (SP)+, (R3) #177,(R3) 5% (SP) 6% #'\,9% 9% #-1,(SP) R3 R3,4$TTYIN BLO 4% TYPE BR TST BEQ 9% 2% (SP) 7$ mMovB 5%: 122713 001011 105013 104401 104401 000717 104401 000712 111337 104401 122723 001305 105063 104401 005726 012603 011646 016666 012766 000002 006574 6%: 006556 000025 006556 006557 006556 006556 122713 001003 006514 108: 006560 000134 006454 006460 2%: 000177 112737 006440 006444 1$: PAGE 16-2 (R3),9% MOVB #'\,9% CMPB BNE #25, (R3) 8% CMPB BNE CLRB TYPE TYPE BR TYPE BR MOvVB TYPE CMPB BNE CLRB TYPE TST MOV MOV MOV MOV RTI #22,(R3) 3% TYPE CLR TYPE BR “.BYTE BYTE .BLKB .ASCIZ .9% (SP) LSCNTLU 1% (R3) .SCRLF LSTTYIN 2% . SQUES 1% (R3),9% .9% #15,(R3)+ , 2% =1(R3) .SLF (SP) + (SP)+,R3 (SP) ,~(SP) 4(SP) ,2(SP) H#STTYIN,4(SP) 0 0 ;sBUFFER FULL? ;:GET CHARACTER .IS IT A RUBOUT ;BR IF NO .,IS THIS THE FIRST RUBOUT? ::BR_IF NO ::TYPE A BACK SLASH ;2 SET THE RUBOUT KEY ; :BACKUP BY ONE ;s STACK EMPTY? ;:BR _IF YES ;.SETUP TO TYPEOUT THE DELETED CHAR. :.GO TYPE ;GO READ ANOTHER (HAR. ;;RUBOUT KEY SET? ;:BR _IF NO ;:TYPE A BACK SLASH ;:CLEAR THE RUBOUT KEY ;:1S CHARACTER A CTRL U? ::BR_IF NO ;:TYPE A CONTROL "\1* ;:GO START OVER ;:1S CHARACTER A "“R'% ; :BRANCH IF NO ;:CLEAR THE CHARACTER ;;TYPE A ''CR' & "LF"' ::TYPE THE INPUT STRING ::G0 PICKUP ANOTHER CHACTER ;;TYPE A '2° ;;CLEAR THE BUFFER AND LOOP ;;ECHO THE CHARACTER ;;CHECK FOR RETURN ;:;LOOP IF NOT RETURN ;;CLEAR RETURN (THE 15) ;:TYPE A LINE FEED ;:CLEAN RUBQUT KEY FROM THE STACK ; ;RESTORE R3 ;;ADJUST THE STACK AND PUT ADDRESS OF i FIRST ASCII CHARACTER ON IT ; sRETURN ::STORAGE FOR ASCII CHAR. TO TYPE ; : TERMINATOR .ASCIZ 7 ..RESERVE 7 BYTES FOR TTY INPUT /*U/<15><12> .CONTROL 'V’ /4G/<15><12> : CONTROL ''G"' <15><12>/SWR = / .ASCIZ / .ASCIZ NEW = TTY THE J CINCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG-79 13:08 CZNCDB.P11 31=-AUG=79 11:21 TTY INPUT ROUTINE 1) 006624 880 PAGE 16-3 .EVEN ".'tfifi‘fi't.."t"'tfitQ‘ttfifi".fififit."'fi""'tttttt.fitfi'."'t'."t.' 8181 (1) .SBTTL (2) TYPE ROUTINE ""ttit'ttttfittttttttiitt*i'ttt'ti'ifi.!fifi.tti.'ttit.fi'tttttttttttt [@D) 1 1) ) ;*ROUTINE TO TYPE ASCIZ MESSAGE. MESSAGE MUST TERMINATE WITH A 0 BYTE. v :*THE ROUTINE WILL INSERT A NUMBER OF NULL CHARACTERS AFTER A LINE FEED. ;*NOTE1: SNULL CONTAINS THE CHARACTER TO BE USED AS THE FILLER CHARACTER. ;*NOTE2: $SFILLS CONTAINS THE NUMBER OF FILLER CHARACTERS REQUIRED. &'; ;*NOTE3: $FILLC CONTAINS THE CHARACTER TO FILL AFTER. - % (1) 1) %]l) i*CALL: :*7) USING A TRAP INSTRUCTION o % " TYPE ,ME SADR (1) 1 I M TYPE ME SADR $TYPE: TSTB BPL HALT $TPFLG 1% MOV RO,=(SF) ST (SP)+ ) () ;%0 (1) (1) (1) 006624 006630 006632 105737 100002 000000 (1) 006636 010046 (1) (1) (1) (1) (1) (1) 006634 006640 006644 006646 006650 006652 000407 017600 112046 001005 005726 012600 062716 000002 (1) 006662 122716 000011 122716 001006 005726 000200 105037 007040 004737 006774 (1) 006666 (1) 006670 (1) (1) 006700 006702 (1) (1) 006674 006676 (1) 006704 (1) 006712 (1) (1) (1) (1) (1) (1) (1) (1) (1) g; 000002 001430 104401 001161 006710 000755 006716 006722 006724 123726 001350 013746 006730 006734 006736 006742 006746 1%: 000002 006654 006660 # 001157 (1) (1) 105366 002770 004737 105337 000770 BR 2%: MOV MOVB BNE 60%: MOV 3%: 4%: 006750 (1) 006760 006754 5%: 001156 000001 132737 000007 006774 ;:IF TERMINATOR POP IT OFF THE STACK :2RESTORE RO #CRLF, (SP) CLRB $CHARCNT ;3CLEAR CHARACTER COUNT JSR PC,$TYPEC :2G0 TYPE THIS CHARACTER BR 8% 5% (SP) + pé 3 1(SP) 6% PC,$TYPEC DECB BR 007040 :2GET ADDRESS OF ASCIZ STRING ;sPUSH CHARACTER TO BE TYPED ONTO STACK :2BR IF IT ISN'T THE TERMINATOR CMPB BNE TST BEQ DECB BLT JSR 9%: ;2SAVE RO #HT, (SP) 7%: 8%: ;s LEAVE CMPB RTI $FILLC,(SP)+ 2% $NULL ,-(SP) 007040 ;:1S THERE A TERMINAL? ;:BR IF YES ;;HALT HERE IF NO TERMINAL #2,(SP) (MPB BNE MOV 006774 000040 (SP)+,R0 6%: 001154 112716 004737 @2(SP) ,RO (RO)+,-(SP) 43 ;:MESADR IS FIRST ADDRESS OF AN ASCIZ STRING ADD ;HOR]ZONTAL (1) 3% TYPE $CRLF g}; (1) SEQ 0035 $CHARCNT 7% ;JRETURN ;JBRANCH IF <HT> ; :BRANCH IF NOT <CRLF> ::POP <CR><LF> EQUIV ;TYPE A CR AND LF :2GET NEXT CHARACTER ;21S IT TIME FOR FILLER CHARS.? ;21F NO GO GET NEXT CHAR. ;:GET # OF FILLER CHARS. NEEDED :JAND THE NULL CHAR. ;;DOES A NULL NEED TO BE TYPED? ::BR IF NO=-GO POP THE NULL OFF OF STACK ;G0 TYPE A NULL ::DO NOT COUNT AS A COUNT ;.LO0P TAB PROCESSOR MOVB #' BITB #7 ,8$CHARCNT JSR 2 :ADJUST RETURN PC ,(SP) PC,$TYPEC ;;REPLACE TAB WITH SPACE ::TYPE A SPACE ;;BRANCH IF NOT AT CINCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 CZNCDB.P11 31-AUG=79 11:21 TYPE ROUTINE (1) 006766 9% ;:TAB STOP 000724 BR 2% :3GET NEXT CHARACTER 005726 (1) 006774 105777 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) fl; 007000 007002 007010 007016 007020 007024 007026 007034 007036 007040 007042 W BNE 006770 006772 SEQ 0036 001372 (1) (1) K PAGE 16-4 10037 116677 122766 00100 105037 122766 00140 105227 00 000207 TST 172150 $TYPEC: TSTB BPL MOVB 000002 000015 CMPB BNE CLRB BR CMPB 007040 000012 19: BEQ INCB $CHARCNT:.WORD $TYPEX: RTS 882 2 ??; ;.POP SPACE OFF STACK % TPS $TYPEC 2(SP) ,a%TPB #CR,2(SP) 1% $CHARCNT $TYPEX #LF ,2(SP) $TYPEX (PC)+ O PC JiWAIT UNTIL PRINTER IS READY ::LOAD CHAR TO BE TYPED INTO DATA REG. ;31S CHARACTER A CARRIAGE RETURN? ;JBRANCH IF NO 2 sYES==CLEAR CHARACTER COUNT JIEXIT ;21S CHARACTER A LINE FEED? ;sBRANCH IF YES ;sCOUNT THE CHARACTER ; sCHARACTER COUNT STORAGE 2332333333333 2333333333232333332323333332333323333323233232323323232332323323233233/ QBTTL (2) (SP)+ BINARY TO OCTAL (ASCII) AND TYPE 33233233333 233333323232323332332333333333233232333333333333233333223323232323232 313 1) *THIS ROUTINE IS USED TO CHANGE A 16-BIT BINARY NUMBER TO A 6-DIGIT Ell; *%LIEOS‘°-ENTER HERE TO SETUP SLPPRESS ZEROS AND NUMBER OF DIGITS TO TYPE &b % EB o 1) ;*0OCTAL (ASCII) NUMBER AND TYPE IT ." MOV NUM,-(SP) ;JNUMBER TO BE TYPED A 11 I .BYTE BYTE N M ;sN=1 TO 6 FOR NUMBER OF DIGITS TO TYPE ::M=1 0OR 0 ;:1=TYPE LEADING ZEROS - % (1) (1) ) 1) TYPOS ;:0=SUPPRESS LEADING ZEROS & 1) ) (1) ;*$TYPON==-=--ENTER HERE ;*$TYPOS OR $TYPOC J*CALL: (1) E}; o% % MOV TYPON ;:CALL FOR TYPEOUT TO TYPE OUT WITH THE SAME PARAMETERS AS THE LAST NUM,-(SP) ;sNUMBER TO BE TYPED ;sCALL FOR TYPEOUT - % g; ."%I\If(K“'ENTER HERE FOR TYPEOUT OF A 16 BIT NUMBER (1) H; % e (1) 007044 017646 000000 (1) 007062 062716 000002 (1) (1) 007050 007056 (1) (1) (1) (1) 007066 007070 007076 007104 (1) (1) 007124 007126 (1) (1) (1) (1) 007112 007114 007116 007120 116637 112637 000406 112737 112737 112737 010346 010446 010546 113704 005404 062704 000001 007271 000001 000006 000005 007271 000006 007267 007267 007271 007266 MOV TYPOC NUM,-(SP) ;JNUMBER TO BE TYPED ;;CALL FOR TYPEOUT $TYPOS: MOV a(SP) ,~-(SP) ;;PICKUP THE MODE ADD BR $TYPOC: MOVB MOVB $TYPON: MOVB #2,(SP) ;sADJUST RETURN ADDRESS R3,-(SP) R4 ,=(SP) RS.,=-(SP) $OMODE +1,R4 ;:SET THE ;:SET FOR :2SET THE ;:SAVE R3S :1SAVE R4 ::SAVE RS :2GFT THE MOVB MOVB MOV MOV MOV MOVB NEG ADD 1(SP) ,SOFILL (SP)+,$0OMODE+1 $TYPON #1,80FILL #6,$0MODE +1 #5,80CNT R4 #6 R4 ::LOAD ZERO FILL SWITCH ;;NUMBER OF DIGITS TO TYPE ZERO FILL SWITCH SIX(6) DIGITS ITERATION COUNT - NUMBER OF DIGITS TO TYPE ;:SUBTRACT IT FOR MAX. ALLOWED E° ¥ 31-AUG=79 13:08 PAGE 165 NCV11 EXERCISER MACY11 30G(1063) BINARY TO OCTAL (ASCII) AND TYPE 11:21 CZNCDB.P11 . 31-AUG=-79 £ -— N N 000004 8%: N $OCNT: $OFILL: : $OMODE &P .BYTE .BYTE .BYTE .WORD ;PICKUP THE ;:GET LSB OF THIS DIGIT ;sTYPE ;2GET RID OF JUNK BR IF MORE TO DO BR IF DONE (SP)+,R5 (SP)+,R4 (SP)+,R3 2(SP) ,4(SP) (SP)+,(SP) ..INSURE LAST DIGIT ISN'T A BLANK" 2:G0 DO THE LAST DIGIT ;;RESTORE RS ;;RESTORE R4 ;;RESTORE R3 ;:SET THE STACK FOR RETURNING s ;RETURN ;:STORAGE FOR ASCII DIGIT ::TERMINATOR FOR TYPE ROUTINE ;sOCTAL DIGIT COUNTER ;sZERO FILL SWITCH ;sNUMBER OF DIGITS TO TYPE N NN oo ;;tt'tttitttfi*ttti*i*fit.ttttttfittttt!fitfiit'!.fi"tfitt"ttitttttttt tTHIS ROUTINE WILL READ AN OCTAL TR A AR A AR A AR AR AR A AR AR AR AR AR AR AR AR AR AR AR AR AR AR AR AR AR AR AR Ak kR (ASCII) NUMBER FROM THE TTY AND NN N b b cd e :«THE INPUT CHARACTERS WILL BE CHECKED TO INSURED THEY ARE LEGAL ;*0OCTAL DIGITS. IF AN ILLEGAL CHARACTER IS READ A '"2'' WILL BE TYPED ;*FOLLOWED BY A CARRIAGE RETURN-LINE FEED. THE COMPLETE NUMBER MUST ;«THEN BE RETYPED. THE INPUT IS TERMINATED BY TYPING A CARRIAGE RETURN. N s*CALL: e NI NN REAM AN OCTAL NUMBER FROM THE TTY ;*CHANGE IT TO BINARY. e NN THIS DIGIT? s:BR IF NO .SBTTL Wt od el e INPUT NUMBER :.»LEAR THE OUTPUT WORD ;:TEST FOR O ;s SUPPRESS THIS 0? ;:BR IF YES ;sDON'T SUPPRESS ANYMORE 0°'S ;sMAKE THIS DIGIT ASCII ;JMAKE ASCII IF NOT ALREADY ;:SAVE FOR TYPING ::G0 TYPE THIS DIGIT ::COUNT BY 1 olelelels) -~ W n 8 N ~ di N N i e N N e i N N N D i D N N D ) N N D e N N D D N N D e N N D i N N D D N N ) e N D i N N N N N MOV MOV MOV MOV MOV RTI N D DECB BGT BLT INC BR 6%: 000002 R3 $OMODE 7$ TYPE 7%: ;+SAVE IT FOR USE ::GET THE ZERO FILL SWITCH ::G0 DO MSB ;;FORM THIS DIGIT INC BIS BIS MOvB 5%: SEQ 0037 ;ROTATE MSB INTO ''C"' TST BEQ 4%: NV N D oD i DECB BPL BIC BNE N d ROL ROL ROL MOV ROL 177770 000060 000040 007264 007264 007266 $OFILL R4 12(SP) ,R5 ROL 3%: 007270 R4 , $OMODE BR 2%: =D D a2 el ialalealailalalalalalalatlatala) MovB MOvB MOV CLR 1%: N el e N — e 007270 007267 000012 N PANPNPNPNPONINPNPNPNPNPNPNPINPNPNPNPNPCNICNPNICNPNPINIONPINPINININICNININININININININ — CZNCDB . 007272 007274 007302 011646 016666 010046 000004 000002 RDOCT RETURN HERE #* $RDOCT: MOV MOV MOV ;;READ AN OCTAL NUMBER ;.LOW ORDER BITS ARE ON TOP OF THE STACK ;sHIGH ORDER BITS ARE IN SHIOCT (SP) ,~(SP) ..PROVIDE SPACE FOR THE RO,=(SP) :;PUSH RO ON STACK 4&(SP) ,2(SP) T _NUMBER CZNCDB NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 1%: N N N N 007420 000060 000067 N N N N N NN N N 2%: N N N N N NP N N N N N N NP N NP N N N N B T T 3%: J N N N N N N N 4%: 001160 MOV MOV RDLIN MOV MOV CLR CLR MOVB BEQ CMPB BGT CMPB BLT ASL ROL ASL ROL ASL ROL BIC 177770 000012 007430 13:08 M PAGE 16-6 SEQ 0038 READ AN OCTAL NUMBER FROM THE TTY 010146 N NN e talalealealalalalalealalalalalala il lae Lo e T T W W N T B W N B ) (3) 3) 31-AUG=79 11:21 31-AUG-79 5%: ADD* BR TST MOV MOV MOV MOV MOV RTI TST CLRB TYPE .WORD TYPE BR $HIOCT: .WORD R1,=(SP) R2,=(SP) (SP) +,R0 RO,5% R1 R2 (gO)*.-(SP) 3 #'0,(SP) 4% #'7,(SP) :;PUSH R1 ON STACK ;sPUSH R2 ON STACK ;JREAD AN ASCIZ LINE ;:GET ADDRESS OF 1ST CHARACTER ;JAND SAVE IT ;sCLEAR DATA WORD ;sPICKUP THIS CHARACTER ;:1F ZERO GET OUT ;;MAKE SURE THIS CHARACTER ;.1S AN OCTAL DIGIT J3%d ::?4 ;:%8 #*C7,(SP) (SP)+,R1 2% + (SP) R1,12(SP) R2,$HIOCT (SP) +,R2 (SP)+,R1 (SP)+ ,R0O :sSTRIP THE ASCII JUNK ;;ADD IN THIS DIGIT :.LOOP ;;CLEAN TERMINATOR FROM STACK ;sSAVE THE RESULT + (SP) (RO) ;:POP STACK INTO R2 :;POP STACK INTO R1 ;;POP STACK INTO RO ; RETURN ;;CLEAN PARTIAL FROM STACK ;;SET A TERMINATOR 0 . SQUES S 1% 0 ;. TYPE UP THRU THE BAD (CHAR. i ¢l T ¥ ::TRY AGAIN :;sHIGH ORDER BITS GO HERE CZNCDB NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 31-AUG=79 11:21 31-AUG=79 13:08 PAGE 17 N READ AN OCTAL NUMBER FROM THE TTY SEQ 0039 &7 ;'-ttitt'.ttt.tttttttitttttt'ttttttttttttttttt'tt".tt'tttt'tttttt ??§ "SBTTL (2) .'.'Qttttttttiittttttttttfitt'fitttttttttfitt.ltittttttttttttttt.'tttt 1) “*THIS ROUTINE WILL PICKUP THE LOWER BYTE OF THE '‘TRAP'' INSTRUCTION f}; *%GO TO THAT ROUTINE. 1) 1) (1) (1) (1) (1) (1) (1) g}; “*«AND USE IT TO INDEX THROUGH THE TRAP TABLE FOR THE STARTING ADDRESS *«OF THE DESIRED ROUTINE. THEN USING THE ADDRESS OBTAINED IT WILL 007432 007434 007440 007442 007444 007446 007452 010046 016600 005740 111000 006300 016000 000200 $TRAP: 000002 007466 (1) MOV MOV ST MOVB ASL MOV RTS RO,=(SP) 2(SP) RO -(RO) (RO),RO RO $TRPAD(RO) ,RO ~ RO : :SAVE RO **GET TRAP ADDRESS “:BACKUP BY 2 *:GET RIGHT BYTE OF TRAP S:POSITION FOR INDEXING ::INDEX TO TABLE 2:GO TO ROUTINE ' g}g (1) (1) g}; TRAP DECODER ;:THIS IS USE TO HANDLE THE ''GETPRI'' MACRO 007454 007456 007464 011646 016666 000002 000004 000002 $TRAP2: MOV MOV RTI (SP) ,=(SP) 4(SP),2(SP) ::MOVE THE PC DOWN S*MOVE THE PSW DOWN *:RESTORE THE PSW gg; .SBTTL (3) ;*THIS TABLE CONTAINS THE STARTING ADDRESSES OF THE ROUTINES CALLED gg; : “«BY THE ''TRAP"' INSTRUCTION. f%g (3) 007466 007454 E?; 007500 005772 (3) (3) (3) (3) 007502 007504 007506 007510 005722 006204 006324 007272 (3) (3) (3) 2?; TRAP TABLE 007470 007472 007474 007476 006624 007070 007044 007104 ROUT INE $TRPAD: .WORD $TYPE $TYPOC $TYPOS $TYPON S$TRAP? ;:CALL=TYPE ;:CALL=TYPOC ::CALL=TYPOS ::CALL=TYPON TRAP+1(104401) TRAP+2(104402) TRAP+3(104403) TRAP+4(104404) TTY TYPEOUT ROUTINE TYPE OCTAL NUMBER (WITH LEADING ZEROS) TYPE OCTAL NUMBER (NO LEADING ZEROS) TYPE OCTAL NUMBER (AS PER LAST CALL) $GTSWR ::CALL=GTSWR TRAP+5(104405) GET SOFT=SWR SETTING $CKSWR SRDCHR $SRDLIN $RDOCT ::CALL=CKSWR ::CALL=RDCHR ::CALL=RDLIN ;. CALL=RDOCT TRAP+6(104406) TEST FOR CHANGE IN SOF T=SWR TRAP+7(104407) TTY TYPEIN CHARACTER ROUTINE TRAP+10(104410) TTY TYPEIN STRING ROUTINE TRAP+11(104411) READ AN OCTAL NUMBER FROM TTY CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31- AUG-79 CINCDB.P1T 31-AUG-79 11:21 TRAP TABLE 890 .SBTTL SEQ 0040 POWER DOWN AND UP ROUTINES ';'tttfit'iifi't"..ttlttttt'tttttt.ttlt'tt'tt'.t'ttttt.'it'ltt.'t' 007512 007520 012737 012737 007530 010146 007526 007532 007534 007536 007540 007542 007546 § 007552 ~ N N N N N N N N N D (WINWWINWNIN = N 2 N N 8 007562 010046 007656 000340 000024 000026 ;POWER DOWN ROUTINE $PWRDN: MOV MOV MOV , 010246 MOV MOV 010346 MOV 010446 010546 017746 010637 012737 000000 000776 MOV 171372 007662 007564 000024 A#SILLUP ,@#PWRVEC ;;SET FOR FAST UP #340,a4PWRVEC+2 ;;PRIO:7 RO,=(SP) ::PUSH R1 ON STACK R3,-(SP) ;sPUSH R3 ON STACK R2,=(SP) R4 ,=(SP) MOV MOV MOV R5,=-(SP) aSWR,-(SP) SP,$SAVR6 HALT RBR .~ MOV ; sPUSH RO ON STA(CK R1,=(SP) ;:PUSH R2 ON STACK ::PUSH R4 ON STACK :2PUSH RS ON STACK ;:PUSH aSWR ON STACK ; :SAVE SP #SPWRUP ,a#PWRVEC ;;SET UP VECTOR : JHANG UP N N N\ = PAGE 18 :;Q'ii.".'Q'!.'fii'.'."Qilt.ifi.'t"t""tt..tt..Q.i't.'l.'ll..'t i NN = o) — PNPNPNPNNINPNPNINPNINPINPNICNPNPNPNINANINININININ NS~ 89 13:08 N N N N N WWWW = N N N 9 0 N N N ';tttt'tfiititttttttfi*iQttltttttfit.fifii.tt'*.tttfiti.ttttttttt'tt't' (3) (3) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) 007564 007572 007576 007602 007606 007610 007614 007616 007620 007622 007624 007626 007630 007636 007644 007646 007650 007652 007654 007656 007660 007662 012737 013706 005037 005237 001375 012677 012605 012604 012603 012602 012601 012600 012737 012737 104401 010056 012716 001562 000000 000776 00000C 007656 007662 007662 007662 000024 171324 007512 000340 000024 000026 “POWER UP ROUTINE $PWRUP: MOV MOV CLR 1$: INC BNE MOV MOV MOV MOV MOV MOV MOV MOV MOV TYPE $PWRMG: .WORD MOV $PWRAD: .WORD RTI $ILLUP: HALT BR $SAVR6: 0O #SILLUP,@#PWRVEC ;;SET FOR FAST DOWN $SAVR6, SP ssGET SP $SAVR6 ;;WAIT LOOP FOR THE TTY $SAVR6 ;;WAIT FOR THE INC 1% ::0F WORD (SP)+,aSWR ;:POP STACK INTO aSwR (SP)+,R5 ;;POP STACK INTO RS (SP) + R4 ;:POP STACK INTO R4 (SP)+,R3 ;:POP STACK INTO R3 (SP)+,R2 ;:POP STACK INTO R2 (SP)+,R1 :sPOP STACK INTO R1 (SP) +,R0 :;POP STACK INTO RO #SPWRDN , a#PWRVEC ;;SET UP THE POWER DOWN VECTOR #340,a#PWRVEC+2 ;;PRIO:7 ;;REPORT THE POWER FAILURE PWRMSG ;;POWER FAIL MESSAGE POINTER (PC)+, (SP) s ;RESTART AT START1 STARTI s JRESTART ADDRESS o ;. THE POWER UP SEQUENCE WAS STARTED ;. BEFORE THE POWER DOWN WAS COMPLETE ::PUT THE SP HERE CZNCDB NCV11 EXERCISER MACY11 CZNCDB P11 31-AUG=79 11:21 30G(1063) 893 894 895 896 897 898 007664 007672 007700 007706 007707 007714 005015 020122 044123 000 040 050125 044124 046117 015 052517 04 6440 020130 036524 PAGE C 18-1 & SEQ 0041 SBTTL DISPLAY MESSAGES STHIS IS THE MESSAGE FOR THE BOTTOM OF THE SCOPE 042527 042522 020104 wD001: LASCIZ <15><12>/LOWER THRESHOLD / 020040 020040 020122 044123 WwD002: LASCIZ / WwD003: LASCIZ <15><12>/7 COUNT=/ wD004: LASCIZ / MATRIX 047517 wD0O05: LASCIZ / 047503 000 055040 UPPER THRESHOLD / COUNT=/ Z00M/ 043455 000 041412 020101 046501 wD006: LASCIZ / 8=GAMMA/ 046501 020043 wD007: LASCII <15><12>/CAMERA # / 020040 044440 020040 020102 020040 020123 020040 051511 : CAMOUT .BYTE LASCII 60 PBUP: LASCII /UP JBUP: LASCIZ /UP/ .SBTTL ASCII MESSAGES 051505 042105 051105 051105 052514 PWRMSG: .ASCIZ <15><12><12>/RESTARTED AFTER POWER FAILURE 047132 020040 030461 041522 020040 MSG1: JASCIZ <15><12><12>/CINCDB MSG2: LASCIZ <15><12>/ENTER THRESHOLD VALUE MSG3: LASCIZ <15><12>/BUS TIMEOUT ERROR - NO VSVO1 DISPLAY DETECTED 051012 910 911 912 13:08 DISPLAY MESSAGES 047514 044124 046117 000120 052105 000075 005015 044524 020124 020122 31-AUG=79 / PB IS / JB IS / NCV=11 EXERCISER / / IN OCTAL = THEN RETURN =/ 046101 020116 020114 047105 051125 052502 047516 / CZNCDB NCV11 (ZNCDB P11 EXERCISER 31-AUG=79 ASCII MESSAGES 042524 051516 052502 051104 020055 MSG4: LASCIZ <15><12>/ENTER CONSOLE BUS ADDRESS = THEN RETURN =/ 914 020123 052517 047522 041516 MSGS: LASCIZ <15><12>/BUS TIMEOUT ERROR = N(CV11/ 915 042520 043040 MSG6: LASCIZ <15><12>/TYPE '"H'' FOR HELP INFO 916 MSG7: JASCIZ <15><12>/ENTER CAMERA NUMBER 0-3 ? / 917 MSG8: LASCIZ <15><12>/ENTER (CONSOLE DASH: HELPO: LASCIZ JASCII / =/ <15><12>/MD=11=CINCD-B NCV11 010272 010300 913 053049 042040 054501 041505 000040 005015 SEQ 0042 030460 046120 052105 020104 051040 020116 020122 051505 044124 052105 000075 030455 041516 041516 054105 042523 ENTER KEYBOARD COMMAND(S)/ VECTOR ADDRESS = THEN RETURN =/ 920 020040 046120 052101 LASCII /D DISPLAY DATA/<15><12> 921 020040 051501 050117 LASCII /E ERASE 922 020040 LASCII /1 GET LOWER EXERCISER/<15><12><12> SCOPE/<15><12> THRESHOLD/<15><12> 020124 020122 125 020040 050125 044124 046117 101 020040 040514 052117 006501 102 020040 020040 042507 042520 042522 006504 020040 044504 020131 050117 012 020040 044504 020040 020124 020122 052117 050117 127 020040 052103 052123 046440 020115 051440 020040 042523 043040 041040 050101 020040 046105 042116 046440 020106 043040 052522 TN DISPLAY ISOTOPE A/<15><12> 020040 050123 051511 020105 LASCII /B DISPLAY ISOTOPE B/<15><12> LASCII /W SELECT FIRST BIT MAP/<15><12> LASCIT /M SELECT SECOND BIT MAP/<15><12> 041040 050101 020040 042522 020116 020040 042514 051111 052111 005015 020040 041505 047503 052111 005015 020040 020105 047515 LASCII /F FREE RUN MODE/<15><12> 0040 054517 LASCIT 7 JOYSTICK CALIB./<15><12> LASCIZ /T DISPLAY INTENSITY TEST/ LASCII <15><12>/N LASCIT /€ COLLECT MORE DATA/<15><i2> 020040 047101 046501 044103 LASCIT /X (HANGE CAMERA CHANNEL/<15><12> - o n put n W wvi A%} 020040 rnono P o -\ v Po 2 §° 3 = N Vi Vo own -0 VN 020040 Vi 020040 052123 _— O — WO 044123 012 020040 050123 05151 020105 on R W ASLLIL o GET UPPER THRESHOLD/<15><12> 020049 ~N 020116 020040 044103 041440 020101 ~n — o COLLECT NEW DATA/<15><12> R 4 Ro W 2 — o HELP1: o 130 020040 042507 051105 047503 020124 042040 R 020040 oW 020040 nN 103 020040 041505 042522 » 052101 - SEQ 0043 27U Ro A%,] 005015 E_4 PAGE 18-3 LASCII - ow n Ro g o 020124 044123 012 olelele] LS LIV 1N NO S wnwwno 045040 042522 006504 SR 3 &H - —_— 0o = %g R KRR o n no » 9 o wi 044124 046117 v no~ 88BN S ~ WONSON— D 042507 042527 N v =2ON~N NN = D o N'RNNNNNN—D—J—J_a—a_A—I—J—J_l_‘oo T R 35 VS NSINFS &8 NR N%O\OJ\ FENREENRFEIR VJ\OOSMM §O D D cnd D il ) ol ) D sl D D D D il il D d D i D ) D D ) D D D D D i D D D D ) D ) oD D cnd D D il il il il ) i i il i o) e i D ) ) i 933 il 932 i o 931 - 930 — 929 D D e 928 D D D ) S i i D 927 D D D ol il D e 926 D D 925 011030 011036 011043 01105C D 924 011007 011014 011022 eleleleleleolololelelelolelelelolalolelalelolelolololelalelolelelalelololeololalslolalole o) 923 010774 011002 020040 047514 2R 010760 010766 &> =0N CINCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG-79 13:08 CZNCDB.P11 31-AUG=79 11: 21 ASCII MESSAGES 046114 047515 052101 CZNCDB NCV11 CZNCDB P11 EXERCISER MACY11 31-AUG=79 11:21 011452 80\ XXEARZ2E om? eNN Nal,SP Vo Bl e LSF — DD D vy oAP NN OOV E BWAWAN = = =0 ~ o Yo 1,8 e Yol ,S1V, P 3¥s Yo IV VP Yo B d e V] o~ NNV D D D D o D D D D D D - D D e D e D e d D D o d o e D D D e D e e D o D D —d i D d D — o 939 e 538 D 837 ) 936 d 935 011466 oleleolololalololelelolaslalolelololalalolelelelolololalslele] 934 30G(1063) 31-AUG=79 ASCIT 13:08 MESSAGES PAGE F 18-4 SEQ 0044 042516 006514 020040 052123 046117 047511 020040 050117 042514 006516 JASCII /S STOP COLLECTION/<15><12> 020040 047111 0551M 020040 052111 006505 LASCII /G INITILIZE/<15><12> 020040 047532 044501 020040 046517 006516 LASCII /17 Z00M GAIN/<15><12> 020040 042522 020122 005015 020040 044124 020040 052507 040507 LASCII /R REGULAR GAIN/<15><1?2> 020040 051105 047523 051105 006514 LASCI] /0 OTHER CONSOLE TERMINAL/<15><12> 020040 042510 042510 020040 050114 047440 047524 020104 052101 020123 LASCII /H HELP THE .BYTE 15.,12.0 047117 052040 040516 000 BCRLF: OPERATOR AND REPEAT ;LOC. 20000 THRU 57776 ARE BUFFER AREA .END THIS LIST/ CZNCDB NCV11 EXERCISER MACY11 CZNCDB.P11 31-AUG=79 11:21 001306 104406 001276 001310 000015 000200 010634 005072 DDISP = 177570 DISBG 004462 DISLOP 003420 DISPLA 001142 DISPRE 000174 DISPY 005060 DiSPY2 005122 DMATRX 003376 DSWR = 177570 DUMMY1 001246 001250 RN _ - ) il il D ) ) il D D e il wil D d ) il D i b 000004 000010 000020 000040 000100 000200 000400 001000 002034 003144 000014 001300 010022 003122 D 020000 040000 100000 D BIT13 = BIT14 = BIT15 = BIT2 = BIT3 = BIT4 = BITS = BIT6 = BIT7 = BIT8 = BIT9 = BOOBOO BOX BPTVEC= CAMERA CAMOUT CHANGE CHARCT CKSWR = COMSAV CPERL = CR CRLF = DASH DCONT 001000 000002 002000 004000 010000 il = = = = = d BITO9 BIT1 8IT10 BIT11 BIT12 G 13:08 PAGE 19 31-AUG=79 CROSS REFERENCE TABLE == USER SYMBOLS 32 519 9404 50 546 630 689 320 629 370 51 550 52 568 1% IBL4 114 11# 114 114 ol 000010 000020 000040 000100 000200 000400 = = = = = = OS# 114 114 114 d BITO3 BITO4 BITOS BITO6 BITO7 BITO8 BITO1 = 000002 BITO2 = 000004 575 auld 011716 001322 000001 000001 - BCRLF BELLEN BITO = BITOO = 104 515 ) ABASE = 172760 AWRIT 005342 30G(1063) 525 638 277 322 176 2124 363 521 688 223 241 270 614 7304 411 494 523 567+ 544+ 569 428+ 344 695+ 456 9184 607 102 508 408 742 102 522+ 547 SEG 0045 H CZNCDB 4 NCV11 EXERCISER MACY11 30G(1063) 31-AUG-79 13:08 PAGE 19-1 CROSS REFERENCE TABLE == USER SYMBOLS CZNCDB.P1I1 31-AUG=79 11:21 ERASE 005020 ERRVEC= 000004 242 GAIN 125+ 888 FREERN 001316 GNS S 001302 ARRRRR GTSWR = 104405 HELPO 010640 HELP1 011336 HT = 000011 INTLUT 001252 I0TVEC= 000020 JBUP 010053 KBINT KBUF F LARGES LDIMGE LF = LISEN LISN 005220 001266 003316 005152 000012 001656 001702 MAPADR 001260 MRXADR MSELCT MSG1 MSG2 MSG3 MSG4 MSGS MSG6 MSG7 MSG8 MxSML 001256 001320 010120 010161 010242 010324 010400 010434 010520 010555 004202 NCADR NCBAR NCBART 001164 001206 001216 NCJOY NCOFF NCSET NCSFR MAPLD 003542 MATRIX= 020000 102+ 160+ 246 114 377 316+ 598 7154 121+ 587 290 291+ 299+ 370 371 579 687 538+ 539« 9054 166 168+ 233 234 778 167 215 222 225 495x 500 507« 226+ SEQ 0046 313« 667+ 676+ 773% 774 775 776 256 259 281 708 9314 591 476 476K Lok 445+ 217 219 583 686 237+ 320+ 323 363« 371« 590+ 685+ 001214 001202 001516 001210 533 629+ 630~ 631 638 696+ NCSTP1 NCSTRT NCWCR NOVSV 004766 004704 001204 001324 271 338 383 715 PATWRT 003720 489+ 490+ 493 NCADM NCCSR NCSTP NUMBEG NUMEND PBUP PIRQ 124 442 340 126 660 440 321 324 345 687+ 688+ 689+ 9114 001212 001200 004744 005462 005470 10036 = 177772 PIRQVE= 000240 PIXASM 001264 9044 488+ 497 I_4& CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 PAGE 19-2 CINCDB.P11 31-AUG=79 11:21 CROSS REFERENCE TABLE == USER SYMBOLS PIXCNT PRO PR1 001262 798 = 000040 1# = 000000 PR2 = PR3 = PRG = PRS = PR6 = PR7 = PS = PSW = PWRMSG PWRVEC= RDCHR = RDLIN = 114 000100 000140 000200 000240 000 000340 177776 177776 010056 000024 104407 104410 114 114 114 14 14 114 1% 114 891 1Me 879 885 RESVEC= 000010 1% RDOCT = 104411 265 415+ 9094 102* 888 8884 286 491 495% 498+ 552 50 891+ 301 ROUTA ROUTB ROUTC ROUTD ROUTE ROUTF ROUTG ROUTH ROUTJ ROUTL ROUTM ROUTN ROUTO ROUTR ROUTS ROUTT ROUTU ROUTW ROUTX ROUTZ ROWCNT 002054 002066 002100 002110 002114 002124 002220 002230 002302 002320 002360 002420 002434 002614 002632 002650 002664 002724 002762 003102 001312 182 183 8% 185 186 187 188 189 191 193 194 195 196 199 200 201 202 204 205 207 910 2174 219 210 2234 2044 2068 248 244w 2574 2614 2714 279 o8 319# 322 3254 328 3384 364 3704 443r 4bbr 4hBs SCLCEL SELCTA STACK = START START1 STKLMT= SWR SWREG = SW0 SW00 = SW01 = sw02 = Sw03 = SW04 = SWw05 = SWw0é = sw07 = 003474 004546 001100 001326 001562 177774 001140 000176 0000017 000001 000002 000004 000010 000020 000040 000100 000200 453 08 e 18 16 11# 214 184 114 114 114 114 114 114 14 114 114 4564 M 102 102# 1214 N 161 120 243 e 102+ 102 879+ 879 891+ RTABLE 001750 175 177 589 182 310 B9 e SEQ 0047 J_ 4 31-AUG=79 13:08 PAGE 19-3 NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 CROSS REFERENCE TABLE == USER SYMBOLS 31-AUG=79 11:21 TABLEX TBITVE= TEMPO TEMP1 TEMP2 THHI THLO TIME 001314 000014 001240 001242 001244 001274 001272 001172 TKVEC = TKVECO TKVECT TOTSIZ 000060 001174 001176 001304 TRAPVE= TRTVEC= TTYOUT TYPCR TYPE = 000034 000014 001270 005260 104401 TJOYy 004332 TPVEC = 000064 TYPO 005300 TYPOC = 104402 TYPON = 104404 TYPOS = 104403 VIMADR VIVADR VIVCHP VIVCRG VIVCSR 001170 001166 001222 001220 001226 VTIVINT VIVMAP VIVPOS VIVPX VIVPX1 VTVSAVY VIWRIT 001236 001230 001224 001232 001234 001254 005316 wD0O01 d SEQ 0048 e d i D D wd cd ) D ) i D o ) §:§§§§§§§§\§§§§hk§ = 000400 = 001000 = 000002 = 002000 = 004000 = 010000 = 020000 = 040000 = 100000 = 000004 = 000C10 = 000020 = 000040 = 000100 = 000200 = 000400 = 001000 no SW08 SW09 Swl Sw10 SW11 Sw12 SW13 SW14 SW15 Sw2 Sw3 Swé SWS Swé SwW7 SW8 SW9 N/ =3 200 a0 oo CZINCDB 114 217+ 219+ 420 421 441 561 564> 633 743> 744 838 852+ 333« 266+ 424 433 450 452 516 285 300 745 669 797 717+ 548 552 583 756 33 349 879 881 883 720+ 728+ 730+ 731 574 581 585 7964 47 306~ 307« 558 308+~ 784 786 789 118 132 255 891 7874 264 788 413 721 625+ 540 542 570 : K & CZNCDB NCV11 EXERCISER MACY11 30G(1063) 31-AUG=79 13:08 PAGE 19-4 CZNCDB.P11 31-AUG=79 11:21 CROSS REFERENCE TABLE == USER SYMBOLS wD002 wDOO3 wD004 wD00S wD006 wD007 XYAVE XYBUF XYBUFE= XYBUFP $AUTOB $BDADR $BDDAT $CHARC $CKSWR $CMTAG 8964 897# 898# 89%5# 900# 007707 007735 007750 007767 007776 010007 901# 8374 845 861 844> 879 005472 005620 005720 005720 001134 001122 001126 007040 005722 8704 881 885 881 885 881 885 888 102 001100 000000 006574 SCNTLG 848 8754 8764 879 881 881 8794 9 888 8854« 879 879 SMAIL = SMNEW SNULL SOCNT $OMODE $PASS wwwwnx 881 |J 006612 006601 001154 007266 8794 8834« 007270 0017100 891# 8914 SRDCHR SRDDE(C= 006204 wwwxxx SROLIN 006324 $RDOCT 007272 $RDSZ = 000007 (J 8794 8794 8854 8794 881 8914 879 888 888 888 876 SEQ 0049 L & 31-AUG=79 13:08 PAGE 19=5 NCV11 EXERCISER MACY11 30G(1063) CZNCDB.P11 31-AUG=79 11:21 CROSS REFERENCE TABLE == USER SYMBOLS CZNCDB " $TKB $7kS $TN $TPB $TPFLG $TPS $TRAP $TRAP2 = $TRP TRPAD STSTNM STTYIN $TYPBN= $TYPDS= $TYPE S$TYPEC $TYPEX $TYPOC S$TYPON $TYPOS $OF ILL LA 2 482 LA222 007662 000114 U U 177777 160000 001146 001144 000001 001152 001157 001150 007432 007454 000012 007466 001102 006560 LA 2 28 24 L e 2 2 2 24 006624 006774 007042 007070 007104 007044 007267 011721 888 888 8914~ 101# 1014 - On 214 2 ox 879 851 ‘879 293 879 789+ 881+ 881 CcC $R2A = $SAVRE= $SAVR6E $SETUP= $STUP $SWR SEQ 0050 2 102 8324 875 8794 881 885 891 M CZNCDB NCV11 EXERCISER MACY11 30G(1063) - 31-AUG-79 21 31-AUG=79 11: TYPNUM TYPOCS TYPOCT TYPTXT $S$CMRE SEQ 0051 D LD D D D i D e e e R D i 891 891 0o — el ¢« B e 885 885 ~ 102 21 648 652 684 881 102# 882 883 885 748 754 770 781 114 114 1% 114 11# 11# 879 2% $SCMTM $SESCA SSNEWT $SSET $$SKIP .EQUAT .HEADE .SETUP .SCATC .SCMTA . SPOWE . SRDOC .SREAD . STRAP .STYPE 24 11# 11# 888# 114 o o# o o o R 4 I I I . ABS. 011727 .$TYPO PAGE 20 e e R R i‘?i‘g “\‘QQ‘Q\‘&\“Q‘Q“ SWRSU TRMTRP TYPBIN TYPDEC TYPNAM P SETPRI SETTRA SETUP SKIP SLASH SPACE STARS O—= =3 REPORT SCOPE ol COMMEN ENDCOM ERROR ESCAPE GETPRI CSTSWR MULT NEWTST POP PUSH 13:08 CROSS REFERENCE TABLE == MACRO NAMES ) CZNCDB.P11 4 ERRORS DETECTED: CON 0 CZNCDB,CZNCDB/CRF=CZNCDB RUN-TIME: 13 6 .7 SECONDS RO ABS GBL D 702 805 891 712 807 714 834 724 836 727 878 738 879 CZNCDB NCV11 EXERCISER MACY11 CZNCDB.P11 31-AUG=79 11:21 RUN-TIME RATIO: 30/20=1.4 CORE USED: 18k (35 PAGES) 30G(1063) 31-AUG=79 13:08 N PAGE 20-1 CROSS REFERENCE TABL*TM == MACRO NAMES SEQ 0052
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies