Digital PDFs
Documents
Guest
Register
Log In
EK-KXTCA-HR-001
June 1984
158 pages
Original
3.9MB
view
download
Document:
KXT11-CA ROM Listing
Order Number:
EK-KXTCA-HR
Revision:
001
Pages:
158
Original Filename:
EK-KXTCA-HR-001_KXT11-CA_ROM_Listing_198406.pdf
OCR Text
EK-KXTCA-HR-001 KXT11-CA ROM Listing Prepared by Educational Services of _ Digital Equipment Corporation First Edition, June 1984 ©Digital Equipment Corporation 1984. All Rights Reserved. Printed in U.S.A. This software is furnished under a license and may be used and copied only in accordance with the terms of s u c h 1 i c e n s e a n d w i -t h the i n c 1 u s i o n o f th e a b o v e copyright notice. This software or any other copies thereof may not be prQvided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred. The information in this software is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital assumes no .responsibility for re 1 i ab i 1 i t y o f i ts so ft wa re on e q u i pm en t supplied by Digital. The following Corporation: ma~aoma DEC DECmate DECsystern-10 DECSYSTEM-20 DECUS DECwriter DIBOL are trademarks MASS BUS PDP P/OS Professional Q-Bus Rainbow RSTS RSX of the use or th a t i s no t Digital Equipment TOPS-10 TOPS-20 UNIBUS VAX VMS VT Work Processor CONTENTS INTRODUCTION •• ••••••••••••••••••••••••••••••••••••• •1 KXTDEF.MAC Dual-Port RAM Definitions on KXTll-CA. ..s NFDEF - Native Firmware Definitions •• .10 SELF TEST OVERLAY 0 ••.••••••••••• .13 Tl I/O REGISTER CHECK •••••••••• .19 T2 NATIVE (AND USER) RAM. ...••. 21 T3 NATIVE (AND USER) ROM. .24 T4 Tll CPU INSTRUCTIONS AND TRAPS. •• 26 TS LINE CLOCK (BEVNT) INTERRUPT. .27 T6 CONSOLE SERIAL PORT DC319 •• • •• 2 9 T7 SECOND SERIAL PORT NEC7201 •••••••••••• .31 LB TEST • • 41 LOOP BACK TESTS. RESTRT RESTART HANDLER. • • • • • • • • •43 SAVERG ••• 4 7 SAVE REGISTERS ••• r • • SODTM SERIAL ODT MONITOR .•••••••••• .51 ·• 5 9 ADDREG GET ADDRESS/REGISTER. EXAM IN EXAMINE ••..••.••• •••••• 6 3 DI SP ST DISPLAY STRING ••• . ....•..• 67 DA TC OM GET DATA/COMMAND. • ••••••••••• 70 •7 2 DEPOS DEPOSIT •••••.• DISPWD DISPLAY WORD. • •••. 7 4 .77 ABAUD - AUTO BAUD ••••.••••••• GOPROC GO/PROCEED. • •80 • • 81 SETLED SET LEDS ••••••••• TRAP4 TRAP 4 EMULATOR. .84 • ••• 8 5 TRAPlO TRAP 10 EMULATOR. TRAP24 TRAP 24 EMULATOR. .•... 86 •••• 8 7 TRAP COMMAND EMULATOR. TRAPX WAITST WAIT FOR COMMAND STATE. •• 88 .90 QCOMIN Q-BUS COMMAND INTERP ••• DECTST DECODE AND DISPATCH Q-BUS SELF TEST REQUESTS •• .95 ••• 9 9 UPDATE LEDS AFTER SELFTEST NN •• TNNERR DMALD DMA LOADER •••••••• ••• 102 .104 BSUPV BOOT SUPERVISOR ••• QODTM Q-BUS ODT MONITOR. •••• 107 • •• 110 TUS8BT TU58 BOOT STRAP ••• PUTEST POWER-UP SELF TEST. •••• 114 . .•..... 116 EXT EST EXECUTE TEST ••••• ENTRY POINT ••••••••••••••• ..119 .120 POWER-UP HANDLER. PWRUP !NIT INITIALIZATION ••••• •• 122 • •• 124 DEVICE INITIALIZATION ••• DINIT •••• 12S ACCUM ACCUMULATE NUMBER •••• ..126 GET INPUT ••••••••••••••• GETIN •••••• 127 CHKCHR CHARACTER. CHECK • ••••••• 12 9 SETUP •••••• SPRSSU SP/RS • •• 130 VERS VERSION NUMBER AND TEST •• ••• 131 SELF TEST OVERLAY 1 . • • . • • . . • • . • . • • • • • • • • • ..••••••...••• 135 TlO PARALLEL I/O PORT Z8036. • •••• 14 0 Tll DMA CONTROLLER AMZ8016 •• ..14S Tl2 Q-BUS INTERRUPT •••••••• • •• 147 Tl3 DUAL-PORT RAM AND IPV. ..... .. .. .. .. ..... . . . . . ...... .... . . . . . . . ... . . . . . . . . . ... . . .. ... . . ... . . . .. . . . . .... . . . . . . . . . . . . . . . . . . . . . .. ...... . ..... . . . ... . . ....... .. .. .. . ....... ... ... . . . . . . . . . . . . . . . . . . .. . .. .... . . . . . . ... . . .. . . . . .... . ......... ...... .. ........ . . . . . . . . . . . . . .. . . . . . .. ... iii . . .. INTRODUCTION This is a general overview of native firmware implementation. the KXTNT KXTll-CA-macro VOS.00 The firmware was writ ten in sever a 1 modules which were assembled separately and linked to produce the complete native firmware. For purposes of generating a listing for publication, a command procedure was developed which converts these modules into a single module which, when assembled, yields a listing that contains the actual addresses in the address column and the operand field. The following is a list of each of the modules and a brief description of the function- provided by each. A more detailed description proceeds each module: '~AUD (Auto Baud) - Performs the auto baud function for seri~l ODT ACCUM (Accumulate Number) - Accumulates a 16-bit number from octal input ADDREG (Get Address/Register Number) register number for serial ODT Inputs an address or BSUPV (Boot Supervisor) - Controls the boot process CHKCHR (Check Character) - Polls for input from console line DATCOM (Data/Command) - Inputs data and commands for serial ODT DECTST (Decode Test) - Decodes Q-Bus controlled test commands DEPOS (Deposit) Q-Bus ODTs - Performs the deposit function for serial and nINIT (Device Initialization) - Initializes all local I/O devices DISPST (Display String) serial port - Sends a print string to the console DISPWD (Display Word) - Converts a 16-bit word to an ASCII string and sends the string out to the console serial port DMALD (DMA Load) - Controls the execution of the DMA load command ENTRY (Entry Points) - Defines the two entry points to the native f i r mw are ( 173 0 0 0 , 1730 0 4 ) EXAMIN (Examine) - Performs the ODT examine function EXTEST (Execute Test) - Executes each of the self tests 1 GETIN line (Get Input) - Waits for and gets input from console serial GOPROC (Go/Proceed) - Performs both the Go and Proceed function of ODT INIT (Initialization) - Initializes the local I/O KXTDEF (KXT Definitions) - Defines the KXT specific constants used by the native firmware, KUI and MicroPower LBTEST (Loop Back Test) - Performs when in the loop back test mode all NFDEF (Native Firmware Definitions) firmware related constants - PU TEST tests (Power-Up Tes ts) - the self tests executed Defines all general native Performs the appropriate power-up self '-- PWRUP (Power-Up Interrupt Handler) Power-Up interrupt (173000) QCOMIN (Q-Bus Command Interpreter) to first word of two-port RAM - Top level - routine entered by Decode Q-Bus commands passed QODTM (Q-Bus ODT Monitor) - Controls Q-Bus ODT RESTRT (Restart Interrupt Handler) Restart interrupt (173004) - Top level routine entered by SAVERG (Save Registers) registers on entry of ODT the SETLED (Set LEDs) Save user context of the CPU section of self - Controls the LED display SLFTSO (Self Test Overlay tests (tests 1 through 7) 0) '--· SLFTSl (Self Test Overlay (tests 10 through 13) 1) - Normally mapped - Overlay section of self tests SODTM (Serial ODT Monitor) - Controls serial ODT SPRSSU (Stack Pointer/RS Setup) - Initializes stack pointer and RS for particular memory map selection TNNERR (Test N Error Decoder) - Decodes error from given test TRAPlO (Trap 10 Emulator) - Emulates trap to 10 TRAP24 (Trap 24 Emulator) TRAP4 (Trap 4 Em~lator) - Emulates trap to 24 - Emulates trap to 4 2 TRAPX (Trap X Emulator) two-port RAM - Emulates trap to address passed in TU58BT (TU58 Boot) - TU58 primary loader VERS (Version) - Version code definition WAITST (Wait State) - Wait for Q-Bus command loop FIRMWARE MEMORY ORGANIZATION The native firmware is contained in a 4 K word set of ROMs which are mapped in a 3 K word space with 1 K of overlay. It is organized into five sections in the native ROM. Table 1 describes these sections. Table 1 ~KXT Memory Address Memory Organization ROM Address Description 160000 - 163777 0000 - 3777 Normally mapped section of overlay memory (OVLO) 164000 - 172777 4000 - 12777 Permanently 1 (PERMl) 173000 - 173007 14000 - 14007 Interrupt entries (VECT) 173010 - 173777 14010 - 14777 Permanently 2 (PERM2) 160000 - 163777 15000 - 17777 Overlay section 1 (OVLl) mapped mapped section section IMPORTANT ADDRESSES The addresses 1 i sted in Table 2 a re of spec ia 1 interest. Any specified by symbolic name can be determined by looking that name up in the symbol list at the end of the native firmware listing. ~address 3 Table 2 Special Addresses Name Module Description PERV(l73000) ENTRY Power-up interrupt address RSTV (173004) ENTRY Restart interrupt address FARS TR PUTEST Fatal self test error loop FAS BSUPV Fatal error loop when invalid Boot/Self Test switch position set FAR RESTRT Loop address after Restart interrupt when a fatal error condition exists REGISTER USE The only CPU register that ha.s a fixed use throughout the native firmware is RS. This register is used to point to the top of the native RAM (the highest word address) and is referenced throughout the firmware. This register should never be altered while the firmware is executing. 4 KXTNF - KXT11CA Native Flrmw< KXTOEF.MAC - Dual Port RA~ dl MACRO V05.0~ 00:51 .1itions on K~TllCA .S8TTL .tdent 5 6 1 8 Page 1 KXTDEF.MAC - Dual Port RAM definitions on KXTllCA /Vl.5/ FUNCTIONAL DESCRIPTION: 9 This •odule defines addresses and bit definitions for various registers on the KXTll-CA. ThP. f olioving na•in9 conventions are usedz 10 11 12 13 14 15 KW.xxx ~ord addressable register on the KXTll-C KL. xxx Low byte addressable register on the KXTll-C ltH.xxx High byte addressable register on the KXTll-C l(X s xxx = Read/write bit definition for a KXTll-C register KWSxxx Write only bit definition for a KXTll-C register KRSxxx Read only bit definition for the KXTll-C register KMSxxx Multi-bit •ask for a KXTll-C register KPSxxx Bit Pattern for Multi-bit fields ot KXTll-C registers 16 17 18 19 20 21 22 23 These definitions can be used in one of two ways. They can be accessed by ~sing the macro KXTDFS which will define each sy•bol locally in the module using the macro. Secondly, this •odule can be assembled which will define each syMbol globally In an oblect that other modules can link to. A KXT kernel includes the qlobal definitions so any application merging with a KXT kernel need not use the local macro. 24 25 26 21 U1 28 29 281 282 283 284 285 000000 IF TffIS MODULE IS ASSEMBLED, THEN GENERATE THE SYMBOLS IN A GL08AL MODE > and show the macro expansions .list KXTDSS •e <==:> KXTll-C CSR A definitions 177520 177520 000001 000002 000004 000010 000020 000040 000100 000200 KW.CSA KL.CSA ==: KXSODT ==: KXS2EN ==: KXSSMA ==: ICJISTTC KXSTIS ==: KX$DPE KXSRTF. KXSCTE ==: 117520 117520 ; KXTCSRA word location KXTCSRA low byte location 1 Sync Mode on channel 8 enable SLU 2 read enable ; Sync ~ode on channel A enable Terminal connect Ter•inal in service Diagnostic PROM enable Heal-ti•e clock interrupt enable Counter interrupt enable 2 4 10 20 40 100 200 KXTll CSR 8 definitions 177522 117522 000001 000016 000002 000004 000010 000360 KW.CSB Kl..CSB ==: ==: ICRSTNS -KMSMAP KX$MPO -KXSMPl KXSMP2 -KMSSWS 177522 117522 ; Word address for KXTCSRB Low byte address for KXTCSRB 4 Ter•inal in noraal service aode Me•ory aap configuration Me•ory aap bit 0 n " n 1 10 360 Boot/Self Test switch postion 1 16 2 .. .. .. 2 ( 00:51 KXTNF - KXT11CA Native Firawara MACRO Y05.00 KXTllEF.MAC - Dual Port RAM definitions on KXTllCA Page J-1 KXTll CSR C definitions 177S24 177524 000001 000002 000004 000010 000360 Klt.CSC KL.CSC ==: ==: KXSLDO ==: KXSLDl KXSLD2 KX$LD3 ==: KMSIDS ==: ==: ==: 177524 177524 ; Word address for KXTCSRC ; Low byte address for KXTCSRC 1 2 4 10 360 ; ; ; ; ; LED 0 LED 1 Ll'D 2 LED 3 KXTll-C ID switch setting KXTll CSR D definitions 177530 177530 177531 O"I 000001 000002 000004 000010 000020 000040 000100 000 200 000400 001000 002000 004000 010000 020000 040000 100000 KW.CSD KL.CSD KH.CSll ==: ==: ==: KXSR20 == KX$R24 KXSR34 == KX$I20 KXST24 == KXSl34 KX$DE!I KXSDRT == KX$8HE KXSBllF KXSORE == KXSQRI" KX$BQI == KXSQIE KRSQRP KX$!1XI! == == == == == == == == == == 177530 177530 177531 ; word address for KXTCSRD ; Low byte address for KXTCSRD ; High byte address for KXTCSRD l ; ; ; ; ) ; ; ; ; ; ; ; ; ; ; ; 2 I 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 40000 100000 Dualport RAM interrupt 120 request Dualport RAM interrupt 124 request Oualport RAM interrupt 134 request Oualport RAM interrupt 120 enable Dualpdrt RAM interrupt 124 enable llualport Rll! interrupt 134 enable Uualport RAM enable Dualport RAH non-aaskable trap B-halt enable b-halt flag Q-bus reset enable Q-bus reset Block Q bus interrupt register QIR interrupt enable QIR request pending Non-existent aeaory flaq KXTll l/0 Buffer Control definitions 177540 177540 177541 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 002000 004000 010000 020000 040000 Kit. IOC KL. roe KP.. IOC --. ==: ==: 177540 177540 177541 ; Word address for IOBFRC ; Low byte address for IOBFRC ; High byte address tor IOBFRC == == == == == == == == == == == == == 1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; KWSPBO KWSPBl Kll$PB2 KW$Pll3 KM$PB4 Kll$P85 == KWSPB6 KllSPB7 KWSPLD == KllSPllll KW$POO KWSPlO KllSP2D KllSPJD KWSPAB 2 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 40000 PIO port B byte 0 direction PIO port B byte 1 direction PIO port B byte 2 direction PIO port B byte 3 direction PIO port B byte 4 direction PIO port 8 byte 5 direction PIO port B byte 6 direction PIO port B byte 7 direction PIO port A low-byte direction PIO port 1 high-byte direction PIO port C word 0 direction PIO port C word 1 direction PIO port C word 2 direction P~O port C word 3 direction PIO ports A and B active pull-up ( KXTNF - KXTllCA Native Firmware ~~CRO V05.00 00:51 KXTDEF.MAr. - Oual Port PAM definitions on KXTllCA 100000 ( Page 3-2 KWSPCO ==: 100000 DUAL PORT RAM IOP COMMAND 175000 175000 175001 Kii. Cl40 KL.l:MO KH.r"o ---- ; PIO port C active pull-up R~GISTER 175000 175000 175001 DEFINITIONS KXT npp REGISTER 0 WORD toe. • • " • LOW BYTE toe. 11 • " " HIGH BYTE LOC. SYSTEM CO"MANO PIT DEFINITION~ -.J 000001 00000 2 000004 000010 000020 000040 100001 100 002 100004 100010 100020 100 040 100100 10020') 100 400 101000 102000 KXST~C ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: ==: KXSOMC KXSihC KXSOOC KXSSllC KXSNOP KXSTOl KXST02 KX$T03 K1$T04 KXST05 KXST06 KXST07 KXSTlO ::o: KXSTll KXST12 KX$T13 1 2 4 10 20 40 100001 100002 100004 100010 100020 I 100040 100100 100200 100400 101000 102000 ; TIHP COM"ANO ;OMA LOAD COMMAND ;RE-INITIALIZf. CO~MAND ;ENTE~ Q BUS ODT MODE COMMAND ;SHOW CONFIGURATION COMMAND ;MO OPERATION COMMAND ;r.SP TEST COMMAND ;RAM " " ;ROM II " ;CPU " " ;BEVENT II ' II ;SLUl " " 11 ;SLU2 " ;PAPALLFL l/0 TEST COMMAND ;OMA TEST COMMAND ;QIP " " ; OP R " " Q BUS ODT COMMAND DEFINITIONS 000001 000002 000004 000010 000020 100000 U'SOMO == KXSORO KXSDEO KXSGOO KX$Pk0 == KXSEXO == == == == 1 2 4 10 20 100000 OPF.N AND EXAMINE MF.MORY COMMAND OPEN AND EXAMINE REGISTER COMMAND DEPOSIT COMMAND GO COMllAND PROCEED COMMAND EXIT GOT COMMAND DUAL P~RT RAM IOP STATUS REGISTER DEFINITIONS 17500 2 175002 175003 000007 000000 000001 000002 000003 000004 000005 000007 000010 KW.STA KL.STA ==: 1rn.sTA ==: KP$INI == kP$STS == KPSQTS == KP$QOD == KP$WST == KPSPbS == KPSNNC == KXSSEF ==: KllSSTF .. .... 175002 175002 175003 ;KXT DP~ REGISTER WORD LOC. n ; " LOW BYTE LOC • .. HIGH BYTE Loe • ; " " 7 ;STATE FIELD 0 1 2 3 4 5 7 ;IMITilLIZATlON STATE ;POWER UP SELF TEST STATE ;Q BUS CONTROLLED TF.ST MODE ;Q BUS ODT MODt. ;WAITING FOR COMMAND STATE ;PRIMARY BOOTSTRAP STATE ;EXECUTING NON NATIVE CODE 10 ;STACK ERROR FLAG ( ( KXTNF - KXTllCA Native Fir•ware MACRO VOS.00 00:51 KXTOEF.~AC - Dual Port RAM definitions on KXT11CA 000020 000040 000100 000200 001000 002000 004000 010000 020000 040000 100000 Page 3-3 20 40 100 200 1000 2000 4000 10000 20000 40000 100000 KXSOHL KXSFEF KXSSOF KXSOOF KXSPlif' KXSBAT KXSSXT KX$NXF KXSBDf KXSDME KXSCHE ENTER ODT ON HALT FLAG FATAL ERROR FLlG SERIAL ODT FLAG Q BUS ODT FLAG POWER UP NO BATTERY BACKUP FLAG BATTERY BACKUP POWER UP FLAG STACK POINTER NXM TEST FLAG NXH HANDLING FLAG BWF.AK DISABLE FLAG TIHA LOAD ERROR FLAG COMMAND ERROR FLAG DUAL PORT RAH SYSTEM CONTROL REGISTER 2 175004 11501) 4 115005 175004 175004 175005 KW.SC2 KL. SC2 KH.SC2 KXT DPR REGISTER 2 WORD LOC. " " " " LO~ BYTE LOC. n n " " HIGH BYTE LOC. ERROR REPORT BIT DEFINITION Of REr.ISTER 2 000001 000002 000004 000010 ooooio co 000040 000100 000200 000400 001000 002000 KXSFOl KXSF02 K'XSF03 KllSF04 KXSF05 KXSf06 Klt$F07 KXSf"l 0 ==: KXSfll KXSfl 2 KXSF13 I 1 ;CSR TEST FAILED 2 4 ; RlH 10 20 40 100 200 400 1000 2000 n ' n ;ROI' " " ;CPU " " ;BEVENT " " ;SLUl " " ;SLU2 " " ;PARALLEL 110 TEST FAILED ;DMA TEST FAILED ;OIR n " ;Dl'R " " DUAL PORT RAii SYSTEM CONTROL REGISTER 3 175006 175006 115007 KW.SC3 Kt. SC3 K!l.SC3 175006 175006 175001 KXT DPR REGISTER 3 WORD LOC. n n " • LOW BYTE LOC. n n " " HIGH BYTE LOC. 115010 175021) Data Channel Base ~ddresses Con the KXT side) KW.DCC ==: 175010 ; CHANNEL 0 KW.DCl ==: 175020 ; CHANNEL 1 000000 000002 000004 Offsets to Data Channel Base ad~r~ss KV.DCO ==: 0 KW.OST ==: 2 KW.DAT ==: 4 ; Co••and word ; Status word beginning of data Bit definitions within Data Channel Co••and 000036 000040 000100 000200 003 400 004000 KC.CUM KC.ICC KC. IDA KC. IOP KC.tf.11 KC.EOI' 36 40 100 200 3400 4000 ; Co•11and Held ; Interrupt on co••and co•plete Interrupt on DA ; Interrupt on DR Len9th field End of •essage ~ACRO KXTNF - KXTllCA Native FirmwaC_ VOS.00 00:51 KXTOEF.MAC - Dual Port RA~ rtefinitions on KXTllCA 177400 ( PagP. 3-4 177400 KC.Vf.C ; Vector Number (high byte) Hit definitions within Data Channel Status 000036 000040 000100 000 200 003400 020000 040000 100000 KS.F.RC KS.OR KS.FOM KS.DA KS.ALN KS.D&G kS.ON KS.ERR ==: Error code Data requested (Vrite will succeed) Fnd of aessage Data available (Read will succeed) Actual length of transler Debug available lntP.rface ready (on) Error (Cuaulatlve) 36 40 100 200 3400 20000 40000 100000 ==: ==: ==: ==: ==: ==: ==: Oata Channel Command Codes 000000 000002 000004 000006 000010 000012 000014 000016 000020 000022 000022 KC$NOP KCSRES KCSEI KC SDI KCSr.S KCSSS KCSRD KCSllD KC$FD KCSIJD KC$MAX --. o. --. ==: ==: ==: --· --· -- . ==: ==: --· I 2. 4. 6. B. 10. 12. 14. 16. lB. KC SOD ; NOP coaaand Reset coa•and ; Enable Interupts coaaand ; Llsable lnterupts coaaand ; Get Status coa•and ; Set Status coa•and ; Read data coaaand ; llrite data coaaand ; Enable Debug comaand ; Uisabl~ Debug coaaand ; Haxlmu• coamand code ; Data Channel Error Codes l.O 000000 000002 000004 000006 000010 000012 000014 000014 286 287 KE SOK ll:E$NDl KESNDR KESILC KESILL KESILV KESONA KF.$MAX ==: • nl is t ae ==! ::=: ==: ==: --. --·. -- o. 2. 4. 6. 8. 10. 12. KE$DNl ; Success (no)error code ; No data available (read rejected) ; No data requested (write re1ected) ; Illegal co11aand fteld ; I lleg.al length field ; Illegal vector ; Debug not available ; Maxi•u• error code ( ( KXTNF - KXTllCA Native Fir•vare MACRO V05.00 NFDEF - Native Firmware definitions 00:51 Page 4 .SBTTL NFDF.F - Native Fir•vare definitions .f.NABLE LC,GBL 1 2 3 4 5 6 1 8 9 ; Module name: DEF - OEFINITIONS ; System: KXTll-CA Native Firmware 10 11 12 13 14 Functional Description: 15 16 11 18 19 ....... 0 ; This module defines on the KJCTll-CA. addresse~ and bit definitions for various I/0 reqisters ( KXT~F - KXTllCl Native Firmwar~ HlCRO V05.00 IFDEF - Native ~iraware definitions 1 2 3 4 5 6 1 8 9 10 11 12 13 14 15 16 17 18 19 000001 000002 000004 000010 000 020 000040 000100 000 200 000400 001000 002000 004000 010000 020000 040000 100000 ...... 27 28 29 30 31 32 33 34 39 40 41 42 43 44 45 46 41 48 -- BTT2 --- ---------- l:l IT6 llIT7 illT8 B 119 11 ITlO BITll il IT12 BIT13 BIT 14 BIT15 177'560 004000 000200 000100 177'562 100000 040000 020000 00400C RCS!!ll -- -- 177564 000 200 000100 000070 000004 000002 000001 177566 -- 1 2 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 40000 100000 177560 RCV AC B RCVDNl1 RCVIEB RBUf' l l BITll BIT7 BIT6 -- 177'562 ERli.B ORERRE FRERRR RCVRICB XCSRll 31 38 -- 81T3 8IT4 illT'5 ~5 36 -- BITO BIT 1 SLU1 ADDRESS DP.FINITIUNS n ...... ( Paye '5 31T SYMBOL DEFINITIONS 20 21 23 24 25 26 00:51 8ITl'5 BTT14 BIT13 BIT11 -- X!lDYB XIEB PBiff HAINTB PBREd XRRll'B XBUFlA 171564 -- BIT7 BIT6 BIT51PIT41BIT3 illT2 BITl BITO -- 177566 SLU2 Definitions 49 '50 '51 52 53 54 '55 '56 '57 175700 175711) 175704 175714 SL2SU SL2SB l SL2CU SL 2<:B l -- --- -- .. 175700 175710 175704 175714 ;SLQ 2 channel A Status register addres n B ; " " " " ; II " A Co•~and register " " 177000 ;PIO interrupt control register address ; II " . B " .. .. PIO Definitions 177000 PIO IC• -- ( KXTIF - KXT11CA Native Firaware MAC~O V05.00 NFDEF - Native Firaware delinitions 58 59 60 61 62 63 64 65 66 61 68 611 10 11 72 73 14 75 ..... ....., 11700 4 117 006 117010 00:51 Pa9e <;-1 PlOAVA I' !OBV A PTOTVA ---- 117004 117 006 117010 ...... ;PIO Port A interrupt vector re9ister , " B 11 Counter Ti•er " n n " n OMA Def lnltions 114410 11453 2 174530 114442 174446 174454 DMAMMA -DMAOV A -DMltVl -D~lOOA DMAOSA DMlCDA ---- 11447(1 114532 174530 174447 174446 174454 8255 Control Qe9ister 117526 C8255 -- 117526 ;OMA Master Mode Register ;OMA Channel O Interrupt Vector Register ; ..." .. 1 " .. " ;OMA Channel O Chain Offset Field " n Segment/Tag Field Co••and Register KXTNF - KXTllCA hative Fir•wa( SEL~ TEST OVERLlY 0 IACRO VOS. 00 ( Page 6 .SBTTL SELF TEST OVERLAY 0 .LIST ME,~E8 1 SEQ 1 LOC,BIN .NLIST MC,CNO,BEX .F'.NaBL Al4A,GBL • = 16001)0 1 2 3 4 5 6 1 8 9 00:51 160000 NORMAL LISTING MOOE DITTO Module name: SELF TEST OVfRLAY 0 System: KXTll-Cl ~ativ~ Fir~ware 10 11 12 13 14 15 16 Functional Description: 11 18 19 20 21 This module contains overlay 0 ot the self test code. The self test modules in this overlay are: 1/0 register check, Native (and user) RJM, Native (and user) ROH, CPU (~null test), ' Line clock CBF.VNT) interrupt, Console serial port (OC319), and Second serial port (NF'.C7201). 22 1-J w 23 24 25 26 21 28 29 30 31 32 33 34 35 36 ; ; ; Overlay O physically occupies the first 2 KB of the boot ROM. It executes starting at 160000 when the OIAG PROM EN bit, bit 5, in KXTCSPA is O. ERRORS APE BIT ENCODED IN PO (TTEEEE) = TF.ST NUMHER AND e = 12 DISCRETE ER~OR FLAGS. • I.E. 010004 = TEST 01 1 ERPOR(BIT) 2. RF.TURN~O W~ERE T ( KXTNF - KXTllCA Native Firmware MACRO V05.00 SFLF TEST OVERLAY 0 ; RS IS OOT"S "TOP-OF-HF.H" POINTER, ANO IS PRFSERVEO AS SUCH. ALL SCRATCH R~FERF.NCES ARE INDEXEO FROM RS AS FOLLOWS: 3 4 5 6 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 """' ~ 28 29 JO 31 32 33 34 J5 J6 J7 J8 J9 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 Page 7 ; SCRATCH RAM ALLOCATION. 1 2 7 8 9 10 00:51 LO MIO HI \S 077776 137776 157776 -27776 -17776 -fJ7776 TMP1+2 T'IP1+4 TMP1+6 TMPl+lO TMP1+12 THP1+14 THP1+16 O'iOOOO 060000 070000 110000 120000 130000 130000 140000 150000 , 000005 STOP= ; 15000 2 160002 170002 170004 170006 170010 170012 170014 170016 170020 177776 000005 BUFRl= BUFR2= Tl'Pl= TMP2= TMP3= TMP4= TMP5= T'IP6= TMP7= TMP8= SF.Fl= SEF= TOP-6lfW TOP-4101 TOP-2KW \ \ \ I > SCRATCH REGISTERS ••• ••• AND STACK SPACE. I I ; LAST 2 WORDS OF NATIVE RAM (BATTERY-BACK-FLAGS) ••• ; ••• ARE UTILIZE~ AS OUR ERROR FLAGS. -2 STOP ; ; HISCgLLANEOOS STUFF, , 000000 STN= INIT TEST NUMBER SEQUENCE. 0 I ; A FEW MACROS. , BEGIN N~ME,TAG,Vl,V2,V3 .NLIST ;; SET TEST NUMBER ••• STlll=ST1Hl ;; ••• ANn RESET ERROR NUMBER. SF'N=O .LIST .IRP N,\STN .SB TTL - T"N NAME ;;********************************************************************** ;;* TF.ST N -- NAME ;;********************************************************************** TST"N: TAG: .F:NtlR • IF NB <V l> Vl,-(SP) ;; SlVt. "Yl ". r!OV V1+2,-(SP) HOV • IF Nil <V2> ;; SAVE "V2". V,,-CSP) HOV V2+2,-(SP) 140Y .IF Nil <V1> ;; SAVE "VJ". Y3,-(SP) MOY V3+2 1 -(SP) MOV .ENDC .ENDC ."IACilO .f.~DC .MACllO CtR .F.NDM BEGIN EXIT V1, V2, VJ, ?TAG ($t:f) ;; CLEAR ERROR FLAG. ( KXTNF - KXTllCA Native Flr•wa> SELF TEST OVERLAY 0 58 59 60 61 62 63 64 65 66 67 68 69 HlCPO VOS.00 .If NB <Vl> HOV HOV .If NB <V2> HOV HOV .If hB <V3> fo\OV MOV .ENDC 75 76 77 TAG: 78 79 80 .l'ACRO 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 (SP)+,V1+2 (SP)+,Vl ;; RE STORE •v 1 •. CSP)+,V2+2 (SP)+,V2 ;; RESTORE ·v2·. (SP)+,V3+2 (SP)+,V3 ;; RESTORE •y3·. (Sf.I' ),RO ;; ERROR BITS => RO<ll:OO> ••• ;; ••• lNll SKIP If NONE. .~;NOC 70 lJ1 Page 7-1 .ENOC 71 72 13 74 ....... 00:51 .MACRO l'OV Bl'Q .JRP ,HS .F.NllR Rl'THRN .F:NOH TAG TN,\ $TN #<TN*B ITl 2 >,RO ;; ••• ANO RETURN (NZ). EXIT ERROP Tf.XT • NLIST Hf. .RADIX 10 • lRP N,\SF,N BlS #RIT·N,($F.f) .!'NOR Sl'N=SEN+l .RAlllX 8 .NLIST .LIST Hf .LI ST .ENDM ERROR LRESET SOB RESET SOB .!\NOH ;; ELSl, ADD TEST NOH => R0<15:12>••• ;; E•N = •TEXT kO,. ;; LOCAL RESET. kO,. LRESET .NLIST "'D ( KXTMF - KXTllCl Native firmware MACRO V05.00 SELF TEST OVERLAY 0 00:51 Page fl A FEW DF.FINITIONS 1 2 3 4 5 6 ., 8 9 10 11 12 13 ...... °' STANDAIW 000000 000040 000100 000140 000200 000240 000300 000340 PRO= PPl= PR2= PRJ= PR4= PR5= PR6= PR7-= 000 040 100 140 200 240 JOO 340 THE PRIORITIES. ; 14 ; 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ; 33 ~TUFF. ; P~IHARY CONTROL kEGISTERS. 171560 175700 175720 171000 174400 171520 171522 171524 171526 171530 171'532 175000 160000 175400 SSLl= $SL2= $18254= $PIO= 177560 175700 175720 177000 SD~A= 174400 SCSRA= 177520 SCSRB= 17752"} SCSRC= 177524 $CSRCON= 177526 $CSR= 177530 SQIR= 177532 SOPR= 175000 $QDPR1= 160000 $QIJPR2= 175400 175000 177524 171524 SIPV= $Lr.OS-: SUTO= , SDPR SCSPC SCSRC DEC DC319 (DLART) ASYNC SERIAL PORT. ; NFC7201 SYNC/ASYNC SERIAL PORT. 18254 PROGRAMMABLE BAUD GEN FOR ABOVE. Z8036 PIO/PIT. A~ZB016 DHA CONTROLLER. \ I > SECONDARY r.sR·s ••• ••• EMBEDDED IN 11!255 CHIP. PRIMARY CSR. Q-BUS INTFRRUPT RF.GJSTER. DUAL-PORT RAH (LOCAL) • DUAL-PORT RAH (GLOBAL SASE ID 0-7 ••• ; ••• ANO ID 8-F). IPV INTF.RRUPTS (Vil DPR WORDS O, 4, B, AND 12). CSRC<3:0> DRIVE THE LEOS. CSRC<7:4> SHOW THE ID SWITCH SETTING. KXTNF - KXTllCA Native Ftr•wal SELF TEST OVERLAY 0 1 2 -3 4 5 6 7 8 ~ 11 12 13 14 15 16 17 18 19 20 ...... -.J 00:51 Page 9 DEFAULT VECTORS. ; 000024 000060 000064 000070 000100 000104 9 10 .ACRO V05.00 000114 000120 000124 000130 000134 000144 000150 000154 000160 000164 024 060 064 070 100 104 ; 110 porvv= 114 DPRV4= 120 DPRV6= 124 BIACKV= 130 DPRV12= 134 ; 140 144 QIRV= QJRVl= 150 PIO AV= 154 PIOBV= 160 164 OMAV= PVRY= SLlRV= SLIXY= NF.CV= BF.VNT= PEVNT= (NON-MASKABLE). PllR-UP (hRF.SET) (PRI 4). CONSOLE (SLUl) RCYR CONSOLE (SLUl) XMTR (PRI 4). SYNC/ASYNC BOTH CHANS (Pkl 4). (PRI 6). LINE CLOCK PROGRAMMABLE CLOCK(S) (PRI 6). OPEN (PRI 7). MF.MORY PAlllTY DUAL-PORT RAM llORO 4 (PRI 5). DUAL-PORT kAH •OkD B (Pkl 5). Q-BOS "IACK" (PRI 5). DUAL-PORT-RA~ WORD 12 (PRI 5). PF.SF.RVED (FALCON). Q-BUS RF.QUEST (ARBITER F.XECOTF.S RTI). (ARBITER EXECUTES RESET,RTI) DITTO (PRI 4). PIO PORT A {PRI 4). PIO PORT B DMA (BOTH CHANNELS) CPRI 4). ( KXTNF - KXTllCA Nativ~ Firmware MACRU V05.00 SF.LF TEST UV~RLAY 0 1 2 3 4 5 6 14 ; LOW ENTRY BLOCK ; CALL: EIIC #BIT5,CSRA ; ~NABLE LO SEGMENT. ; CALL TN ; CALL TEST 0-7. ; bEQ OK ; Oil BNE ERROR. 160004 160010 160014 160020 160024 160030 1601)34 00 SEGME~T Page 10 ; 160000 160002 ~ 00:51 160000 005000 000207 160004 000137 160010 000137 160014 000137 160020 000137 160024 000137 160030 000137 160034 000137 i Tr>==· CLi< RF.TllRN RO JMP TST1 ;; EXECUTE TEST 1. JMP rsn ;; EXEClJTE TEST 2. JMP TSTJ ;; EXECUTE TEST J. JMP TST'I ;; EXP.CUTF TEST 4. J"IP TST5 ;; EXECUTE TEST 5. JMP TST6 ;; F.XECUTF. TEST 6. Jl'.P TST7 ' ;; EXP.CUTE TEST '7. ;SI,CF THERE IS NO T~ST BY THIS NAME, SHOW NO ERRORS. Tl==· 160040 160272 160700 161150 16116'1 16134" T2==. T3==· T4==· TS==· T6==· T7==· 161730 KXTNF - KXTllCA Native Fir~wal - Tl 1/0 REGISTER CHEC, .ACRO V05.00 .SBTTL 00: 51 Page l1 - Tl 1/0 RFGISTER CHECK CLR ($EF) ••********************************************************************** ,, ;;• TEST 1 -- 1/0 RF.GISTER CU~CK ••********************************************************************** ,, 160040 160040 160040 T5Tl: TIOR: 005015 2 3 4 5 6 1 8 INPUT: NONE. OUTPUT: RO = ERROR FLAGS OR lERO. VERIFY THAT ALL Tl 9 10 11 ...... l.O 12 13 14 15 16 17 18 160042 19 160046 20 160052 21 160056 22 23 160062 24 160066 25 160072 26 160076 27 28 1601()2 29 160106 30 160112 31 160116 32 33 160122 34 160126 35 160132 36 160136 37 38 160142 39 160146 40 160152 41 160156 42 43 16011>2 44 160166 45 160172 46 160176 47 48 160202 49 160206 50 160212 51 160216 ,, CLF.AR ERROR FLAG. 012700 012701 004737 052715 177520 000005 160254 000001 1$: 012700 012701 004737 052715 177532 000001 160254 000002 2$: 012700 012701 004737 052715 115000 000020 160254 00000 4 3$: 012700 012701 004737 052715 177560 000004 160254 000010 4$: 012700 012701 004737 052715 175700 000010 160254 000020 5$: 012700 012701 004737 052715 115720 000010 160254 000040 6$: 012700 012701 004737 052715 177000 000060 161)254 000100 1$: A~SIGNED I/0 ADDRFSSES ARE VALID. I/0 RFGISTEP CHECK EO = BUS-ERROR AT CSR AOORESS El = RUS-ERROP AT QIR ADDRESS E2 = BUS-ERROR AT DPR ADDRESS E3 = RUS-ERROR AT OC319 ADDRESS E4 = BUS-ERROR AT NF.C7201 ADDRESS E5 = BUS-ERROR AT 1~254 AOORESS E6 = BUS-ERROR AT ZB036 ADDRESS E1 = BUS-F.RPOP AT ZA016 ADDRESS MOV MOV CALL iJIS jj5., R1 ; THE CSR 'SET... ' ; ••• 5 RFGISTERS. lOS #'HTO,($EF) ;; F.0 )40V MOV CALL UIS #SQIR, RO #1 1 Rl 10$ #BITl, ($EF) ; THE QIF< ••• ; ••• ONE-OF-A-KIND. MOV MOV CALL BlS #SDf'R,RO #16.,Rl 10$ #BIT2, ($EF) ; TqE 2-PORT-RAM ••• ; ••• 16 REGISTERS. MOV #SSLl,~O MllV ; THE CONSOLE PORT ••• ; ••• 4 REGISTERS. BIS #4.,Rl 10$ #RlTJ, ($EF) l!OV HOV CALL BI$ #SSL2,RO #8.,Rl 10$ #B 1T4, ( $EF) ; THE SVNC/ASYNC PORT ••• ; ••• 8 RF.GJSTERS ••• MOV HOV CALL BIS 1$18254,RO /jll.,Rl 10$ #PITS, (SEF) ; ••• ANO ITS CLOCK GENF.RATOR ••• ; ••• HAS 8 HORF.. HOY MOV #$PIO, RO #48.,Pl 10$ #R lT6, ( SEF) ; TRE PARALLEL I/0 PORT ••• ; ••• A WHOPPING 48 REGISTERS. OLL CALL BIS ISCSl\A,, RO = BUS-ERROR AT CSR ADDRESS ;; £1 = BUS-ERROR AT QIR ADDRESS ;; E2 = BUS-ERROR AT DPR ADDRESS ,, ~3 ;; E4 i ' FS ;; F.6 = BUS-ERROR AT DC319 ADDRF.SS = BUS-ERROR AT NEC1201 ADDRESS &US-ERROR AT 18254 ADDRESS = BUS-ERROR AT Z8036 ADDRESS ( ( KXTNF - kXTllCA Native Fir•ware MACRO V05.00 1/0 REGISTER CHECK 00:51 Page 11-1 - Tl 52 53 160222 54 160226 55 160232 56 160236 57 160242 160242 160244 160246 160252 58 59 160 254 60 160256 61 160260 62 160262 63 160264 64 160 270 l\J 0 '·. i \. 012700 012701 004737 052715 011500 001402 052700 000207 005720 000240 10340 3 077104 062716 000207 174400 000056 160254 000200 010000 RS: HOV HOV CALL BIS 9S: HOV llEQ BIS 30000$: RF.TnRN 10$: 00000 4 llS: #SOMA, RO 146.,Rl lOS #BIT7,($Ef) ; T~E OMA ENGINE ••• ; ••• A CLOSE SECOND NlTH 46. ( SEF'), RO 30000$ ll<l*blT12>,RO 11 ERROR BITS => RO<ll:OO> ••• (RO)+ ; TF.ST AN ADDRESS. llS ; TAKE ERROR RETURN IF IT TRAPPED. TST NOP bCS SOB IH, 10$ ADO #4 1 (SP) Rf.TURN ii E7 = bUS-ERROR AT Z8016 ADDRESS ;; ••• AND SKIP IF NONE. ;; F.LSE, ADO TEST NOH => R0<15:12> ••• ;; ••• AND RETURN (NZ). ; ALL O~, TAKE SKIP RETURN. KXTNF - KXTllCA Native Firmware( - T2 NATIVE (AND USER) ~AM ·po V05.00 00:51 ( Page 12 NATIVE (AND USER) RAM .SbTTL - T2 ••****************•***************************************************** ;;* TEST 2 -- NATIVE (AND OSER) RAM II ,, ••********************************************************************** 160272 160212 160272 TST2: TRA~: CLR 005015 2 INPUT: Rt OUTPUT: RO 3 4 5 6 2. RSAD (OATI) ANO VERIFY CORRECT DATA. 3. COMPLIMENT WORD (DATTO) AND VERIFY. 4. COMPLIME.NT LO AND HI BYTES (PATIO(B)) ANO VERIFY. 11 ~ NONE. ERROR FLAGS OR ZERO. 1. WRITE (OATn) EACH LOCATinN WTTH 1r·s OWN ADDRESS. 10 (\.) i i CLEAR ERROR FLAG. TEST LOCAL RAM FROM BOTTOM UP (NON-DESTRUCTIVE). ; IF SOCKFT "A" CONTAINS USER RAM, TEST IT AS WELL. 7 8 9 12 13 14 15 16 17 18 19 20 21 22 160274 23 160 300 24 160302 25 160304 26 11;0310 27 160312 28 160316 29 160320 30 160324 31 160 326 32 160330 33 160332 34 160334 35 160336 36 160340 n 160344 38 39 160346 40 160350 41 160352 42 160354 4J 160356 44 160360 45 160364 46 160366 47 160370 48 16037 2 49 160374 50 160400 51 160402 CSE. .. > T2 NATIVE (AND USER) RAM F.0 = BUS-ERROR AT RAM ADDRESS El = WRITE-qEAD ERROR t2 READ-MOD-WRITE E.RkOR E1 = REAO-MOD-WRITE(LB) ERROR E4 = REAO-MOO-WRITE(HB) ERROR ES TO E9 SAME AS f.0 TO F4 IN USER RAM SPACE = = 020527 101007 001403 012702 000405 012702 000402 012702 010504 005046 000 241 011200 000240 103003 052715 000444 010201 010211 011103 02020 3 00140 2 052715 005102 005111 021102 001402 052715 00510 2 105111 137776 CMP ilf!I 000000 Mf.1'1: 040000 MF.1112: 100000 1'4F.M3: BFQ MOY ilR !4Elol3l: lS: MOY BR MOY MOY CLR CLC MOY NOP ilCC iHS 000001 2S: 000002 3S: 000004 4S: STOP, Jll 37776 MEM3 Mf."'2 #0, Q2 MEM3A #40000,R2 MEM3A #100000,R2 S,.OP,R4 -(SP) (R2) 1 RO 2$ reno, <SEF> ; BR IF kAM IS IN HIGH ••• ; ••• OR MID RANGE. SIOT BOTTOM AT o. ; SET enTTOI' AT e~. SET BOTTOM AT 16K. i Sf:T TOP. CLEAR NATIVE/USER SWITCH. i SAVE TARGET DATA. ;; EO = BOS-ERROR AT RAM ADDRESS aR 7$ MOY MOY MOY CMP R2,Rl R2 1 (Rt) (Rl) 1 R3 1!2,R3 TARGET ADDRESS :) Rl. WRITE (DATO) ••• ••• READ (OlTI) ••• ••• ANO CHECK. lll'Q ll JS 3$ #IJIT1 1 ($EF) ;; El = wRITE-REAO EPROR co~: R2 ; RF.AD- .. OD-~RITF. (DATIO) ••• ; ••• READ ANO CHECK. COM (Pl) C~P (111) 1 R2 BEQ 4$ il IS #BIT2 1 (SEF) R2 ;; E2 CflM CflMIJ (RI) ; RF.AD-MOD-WRITE-LB (DATIO(LB)) ••• = ~EAD-MOO-WRITE ERROR ( ( KXTNF - KXT11CA Native Fir•ware MACPO VOS.CO - T2 NATIVE (AND USER) RAH "'"' '52 160404 '53 160406 '54 160410 55 160414 '56 160416 57 160422 '58 160426 '59 160430 60 61 160434 62 160436 63 160440 64 160 444 65 160446 66 160452 67 160454 6B 69 160456 70 160 460 71 160462 72 160466 73 160470 74 160474 75 160500 76 160'502 77 160504 78 160506 79 160510 80 160512 Bl 160514 82 121102 001402 052715 000302 105161 126102 001402 052715 000302 010022 020227 001002 012702 020204 101725 005116 001416 011565 005015 004737 020 227 001406 010002 010104 005304 00630 4 060204 000705 00:51 .000001 000001 CMPB BFQ BIS SWAB COHR CMPB 000020 BIS 000010 5$: (j~Q 6S: 7$: 177176 160546 00000 3 1 (Rl) l(Rl),R2 6$ #PIT4 1 ($EF) 112 R2,111S 65$ HOV CMP bLOS COM BFQ HOV CLR CALL Cl'P BFQ HOV HOV DEC ASL ADD RR ;; EJ ;; E4 = llEAD-MOD-VRIT~(HB) ERROR RESTOllE AND BUMP TARGET ADDRESS. ********************************************* *** lF RUNNING IN RA~, DOR"T TEST THE "TES~". ********************************************* R"'.ACHEO TOP ?? LOOP IF NOT. 111$ 1 R2 R2,P4 1$ (SP) es ($EF) 1 -2($EF) ($EF) Sll'TA P1,#3 tl$ R0 1 R.l Rl, P4 R4 TOGGLF NATIVE/USiR SWITCH ••• ••• ANO EXIT IF BOTH DONE. SAVE NATIVE ERROkS ••• ••• AND CLEAR FOR 2ND PASS. GET SOCKET SPECS. CHECK VHAT"S THERE ••• ••• ANO BR IF ROH (OR EMPTY). IT"S RA~, lST AOORESS => P2 ••• ••• AND SIZE => R4. \ > CHANGE SIZE TO LAST ADDRESS ••• r..4 R2 1 R4 I ••• ANO GO "ROUND ONCF. HORE. IS ES TU E9 ; 005726 012700 006315 077002 056'515 011 '500 00140 2 052700 000207 8$: T~T 9$: HOV ASL 000005 177776 020000 sos ll TS MOV BEQ BIS 30001$: RETURN = READ-MOD-WRITE(LB) ERROR ; REAO-MOD-VRITF-HB (DATIO(HB)) ••• ; ••• READ AND CHECK. R0 1 (R2)+ BJ 84 85 160516 86 160520 87 160524 88 160'526 B9 160530 90 160534 160536 160540 160544 ; ••• READ ANO CHECll'. R2 CMP Btif. 65$: (Rl),P2 5$ #BIT3, ($EF) SWAB HOV 160330 160456 Pa<Je U-1 (SP)+ = SAME AS EO-TO E4 IN USER RAM SPACE DONE, POP THE STACK. #5 1 RO (SEF) llG,9$ -2($EF), ( SEF) ( SEF), RO 30001$ #<2"1HT12>,RO SHIFT USER ERRORS TO BITS<9:5> ••• ••• AMO AOO NATIVE ERRORS IR 8ITS<4:0>. ; ERROR BITS => RO<ll:OO> ••• ; ••• ANO SKIP IF NONE. ; ELSE, ADO TEST HOH => R0<15:12> ••• ; ••• AND RETURN (NZ). KXTNF - KXT11CA Native Fir•war - T2 NATIVE (AND USF.R) RAM 'UC'W V05.00 1 2 ; 3 4 5 ; ; ' l\J w 01270C 005705 100001 005000 012701 032737 001417 006301 032737 001412 006301 032737 001405 032737 00l401 006 30 l 000401 100000 004000 000006 177522 000004 177522 RETUR~ 000010 177527 000002 177522 Pa9e 13 RO = lST ADDRESS Pl = SIZE (WOROS) R2 = 3 IF ROM (OR EMPTY). SKTA: MOV TST bPL CLR l $: HIW BIT llF.Q fl IT Bf.Q 2$: ( TO DETERMINE OSER (SOCKET A) ADDRESS AND SIZE. A~L ASL BIT BEQ BIT B!'Q ASL IJR ; "100000, RO ; ASSUME ROH OVER RAH. STOP 1$ ; BR If SO ••• RO ; ••• ELSE, SET ROM AT O. #20 48., Rl ; START SIZING AT 2KW. #<3*BITl>,$CSRll 2$ ; BR IF 2KW SELECTED (MAP 0 OR 4). Rl i RAl~F. TO 4KW. j<2*UIT1>,$CSRll 2$ ; llQ IF 4KW SF.LECTED (MAP 1 OR 5). Rl i RAISE TO !!KW. #<4"B JTl>, SCSRB 2$ ; BR IF BKW SELECTED (MAP 2 OR 3). #< 1" BITl >, SCSRB 2$ ; DITTO (MAP 6). Rl ; RAISE TO 16Kiij (MAP 7). RAHLOA ; EXIT TH'U ROM/~lH CHECKER. I ; SUBROryTINF. TO ESTABLISH ROM OR RA~ IN VECTOR SPACE. ; ; RETURN R2<00> = 1 l~ LO BYTE NON-WRITABLE. R2<0I> = 1 IF Pl BYTE NON-WRITABLE. ; JU 31 160634 32 160636 33 160640 34 160642 35 160644 36 160646 37 160654 3B 160656 39 160662 40 160664 41 160666 42 160672 43 160674 44 160676 SUBROUTI~E ; ; ; 6 7 8 160546 9 160552 10 160554 11 160556 12 160560 13 160564 14 160572 15 160574 16 160576 17 160604 18 160606 19 160610 20 160616 21 160620 22 160626 23 160630 24 160632 25 26 27 2B 29 00:51 ; 005000 005002 011046 005116 005110 126066 001402 052702 121026 001402 052702 005110 005 702 000207 000001 00000 l RAMtO: CLR RAMLOA: CLR MOY C0!4 COH C'4PB BF:Q 111 s 000002 1$: CMPB DFQ 000001 2$: BIS COii T5T RETURN 1(0 R2 (RO),-(SP) (SP) (RO) l(R0) 1 l(SP) lS #BIT1,R2 (RO),(SP}+ 2$ #BITO,R2 (RO) R2 GET TARGET LOCATION ••• ••• AND COMPLI~F.NT IT. COMPLIMENT TARGET LOCATIUW. HJ PYTE WRITABLE ?? YES NO LO BYTE WRITABLE ?? YES NO RF:STORE TARGET LOCATION. SET CON~ITION FOR CALLER. ( KXTNF - KXTllCA Native Flr•~are MACRO V05.00 - T3 NATIVE (AND USER) ROH .SBTTL l 00:51 - T3 Page 14 NATIVE (AND USER) ROH ii******************~*************************************************** ;;* TEST 1 -- NlTTVE (AND USER) kOH 160700 160700 160700 ;;********************************************************************** TST1: TRO~: CLR 005015 2 3 5 6 1 8 9 CL~AR ERROR FLAG. CHECK SUM &OOT/SELf-TEST ROH (SOCK~T B). If SELECTFD, no THE USER PO~ (SOCKET A) AS ~ELL. T3 NATIVE (AND USER) ROH ~O = LO BYTE CHECK SUH ERROR (NATIVE) El = HI BYTE CHf.CK SUM ERROR (NATIVE) E2 = LO BYTE CHECK SUM ERROR (USER) ~3 = HI BYTE CHECK SOM ERROR (USER) HOV HOV MOY HOV SOB R1,R4 ; SAVE OPTION FLAG. #ACC+2,RO I #<ACC,2-CKSUH>/2,Rl -CRO),-(SP) ; POSH CRECK-SUM CODE ONTO THE STACK. Rl,IS HOV MOY CALL 11160000 1 RO #4096.,Rl O(SP) #BITO, ( SEF) 10 11 N .i.. ;; INPUT: Rl<qlTO> = iNCLUDE OSER ROM. OUTPUT: RO = ERROR FLAGS OR ZERO. 4 12 13 14 15 160702 16 160704 17 160710 18 160714 19 160716 20 21 160720 22 160724 23 160730 24 160734 25 26 160740 27 160744 28 160750 29 160754 30 160760 31 32 33 160760 34 160764 35 160766 36 160772 31 160714 38 160776 39 161002 40 41 161006 42 161010 43 161012 44 161014 45 161020 46 47 161024 48 161030 161032 161034 161040 CSH) 010104 012700 012701 014046 017102 161150 0001)43 012700 012701 004766 052715 160000 010000 000000 000001 012700 012701 004766 052715 160001 010000 000000 000002 032704 001417 004737 010046 010146 004766 05l715 000001 lS: IHS 2$: MOY HOV #160001,RO #4096.,Rl O(SP) #BIT1 1 ($EF) ; CHECK SUH (HI BYTE). ;; El = HI BYTE CHECK SUH ~RROR (NATIVE) RIS ; ; IF ERROR, CHECK FOR OVERLAY PROBLEM ?? OLL 3$: ; CHECK SUM (LO BYTE). ;; EO = LO BYTE CHECK SUM ERROR (NATIVE) ; 012601 012600 OO!i 200 004766 052715 062706 011500 001402 052700 000 207 4$: 160546 6$ i OLL SKTl RO,-(SP) Rl,-(SP) 4(SP) IB1Tl,($EF) IHS SS: 000000 000010 030001) IBITO,R4 1 USER ROM SELECTED ?? BEQ MOV MOY CALL 000004 000004 000106 an MOY MOV lNC CALL BIS anD MOY BEQ BIS 30002$: RETORN 6$: ~XIT IF NOT. ; Yf.S, GET SOCKF.T SPECS. ; PUSH START ADDRESS ••• ; ••• Alm SU.F.. ; CHECK SUM CLO BYTE). ;; E2 LO BYTE CHECK SUM ERROR (USER) = (SP)+,Rl (SP)+,RO RO ; POP SIZE ••• ; ••• AND ADDRESS. 0 (S!') ; CHECK SOM (HI BYTE). ;; El = HI BYTE CHECK SUM ERROR (OSER) #BIT3,($Ef) IACC+2-CKSU'4,SP ($H) 1 i\O 30002$ 11<3*BIT12>, RO FTX STACK. ERROR BITS => RO<ll:OO> ••• ••• ANO SKIP IF NONE. ELSE, ADD TEST NUM => R0<15:1~>••• ••• AND RETURN (NZ). KXTNF - KXT11CA Native Flr•wa{ NATIVE (lND USER) ROM llCRO V05.00 00:51 ( Page 15 - T3 ;*********************************************************************** ; ROM C~ECK SUH ROUTINE. ; THIS STUFF IS COPIED TO AND EXECUTED IN STACK SPACE. 1 2 3 4 5 6 ; .OSABL i ON ENTRY, RO ; UN ReTURN, R2 1 8 ; 9 tv lJ1 10 161042 11 161046 12 161050 13 161052 14 161056 15 161062 16 161066 17 161072 18 161076 19 161102 20 161104 21 161112 n. 161116 23 161120 24 161124 25 161126 26 161134 27 161136 28 161140 29 161144 30 161146 31 31 AHA ; 005067 005301 11100 2 042702 060267 106367 005567 062700 020027 103405 052731 042100 077124 116102 11100 3 042137 120 203 001002 062716 000207 000000 000100 CK SUM: 1$: 171400 000064 000060 000054 000002 174000 000040 017716 177520 000040 00000 4 177520 = STAPT ADDRESS AND RI = BYTE COUNT. = ACCUMULATED SUH AND R3 = CHECK-SUM. ACC Rt (F0),R2 ro11,R2 w2, ~cc lCC ACC #2, flO RO, #174000 2$ #11IT5,~#$CSPl ; CLEAR ACCUMULATOR ••• ; ••• AND OF.CR THE BYTE COUNT. ; lST/NEXT ROM LOCATION. ; ; \ > lCCU~UtlTE BYTE SUM. ; I i END OF NATIVE ROH 77 ; llR IF' NOT. ; YES, ~AP IN THE OVERLAY ••• ; ••• AND AOJOST SRC POINTER. i LOOP 'TIL DONE. ; THEN PUT ACCUMULATED SU~ IN R2 ••• ; ••• ANO THE CHEC~-SUM IN R3. ; UNMlP OVEPLlY. ; ACCUMULATED SUM SHOULD EQUAL CHECK-SUM. ; ER~OR RETURN TF NOT. ; SKIP RETURN IF SO. rc160001,i;o UlC SOB Rl, 1$ 1-'.0Vq lCC, R2 HOVB CRO), 1p BIC llB IT~ 1 @1f$CSRA R2, R3 CHPB llNE JS ADD #4,(SP) 3$: RETUR'l ACC: 0 .ENABt .\Ml ;*********************************************************************** 2$: 000022 CLR OF.C HOVEi IJIC ADD ASLO AOC ADO CHP EiLO UIS ; R!':LATIVE PIC. ( ( KXTNF - KXTllCl Native Firmware MACRO V05.00 - T4 Tll CPU INSTRUCTIONS ANO TRAPS .SbTTL 00:51 Page 16 - T4 Tll CPU INSTRUCTIONS AND TRAPS CLR CSEF) ,, ••********************************************************************** ;;* TF.ST 4 -- Tll CPU INSTRUCTXONS AND TRAPS ,, ••********************************************************************** 161150 161150 161150 TST4: TCPU: 005015 2 3 4 INPUT: NONE. OUTPUT; RO = ~RROR FLAGS OR ZERO. 5 6 TEST THE CPU 7 T4 8 9 10 11 161152 161154 161156 161162 l\J "' ;; CLEAR ERROR FLAG. 011500 001402 052700 000 207 040000 MOY bEQ BIS 30003$: RETURN (~HAT~VER THAT MEANS) !I Tll CPO INSTRUCTIONS AND TRAPS NOT INSTALLED. ($Ef),RO 30003$ #<4*AIT12>,R0 ERROR BITS => RO<ll:OO> ••• ••• ANO SKIP lF NONE. ELSt, ADD TEST NUM => R0<15:12> ••• ••• AhD RETURN (NZ). KXTNF - KXTllCA Native Firmwa/ .lCRO V05.00 - T5 LINE CLOCK (BEV"T) INTERRUPT 00:51 ( Paye 17 LINE CLOCK (BEVNT) INTERRUPT .Si;TTL - TS ;;***************************•****************************************** 1 ;;* TEST 5 -- LINE CLOCK (BEVNT) INTERRUPT ;;********************************************************************** 161164 161164 161164 161170 161174 TST5: TCLK: 013746 013746 005015 000100 000102 2 MOY '!Of Cl.R ,, CLF.AR ERROR FLAG. LINE CLOCK IS JUMPERED FROM CONSOLE DC3t9 OR Q-BUS BEVNT. ;· VERIFY THlT WE Cl'C ENABLE/DISABLE THE CLOCK VIA CSRA<6>, AND T~AT IT INTERRUPTS THRU VECTOR 100 AT PRI 6. 7 8 9 10 T5 LINE CLOCK (BEVNT) INTERRUPT EO ROM IN VECTOR SPACE -- CAN•T RUN CLOCK INTERRUPT NOT MASKED AT LEVEL 6 El E2 CLOCK DOESN•T INTERRUPT CAN•t SHUT IT OFF E3 CALL BEQ BIS BR RlMLO I 2$ •BIT0,($El') TCXIT VECTOR S~ACF USABLE 77 PROCEFD IF SO. ; FO = ROM IN VECTOR SPICE -- ClN"T RUN Rt ON "BEVNT", TICK AND RETURN. llPR6 #1$,BEVNT #PR6 1 BF,VNT+2 RO RUSE CPU. SET CLOCK VECTUR. 11 N .....J ;; SAVE 8EVNT. INPUT: NONE. OUTPUT: RO = F.RROR FLAGS OR ZERO. 3 4 5 6 12 13 14 15 16 161176 17 161202 18 161204 19 161210 20 21 161212 22 161214 23 24 161216 25 161222 26 Hil 230 27 1612l6 28 161240 29 161242 30 161250 31 161252 32 161254 33 161256 34 161262 35 161266 36 161270 37 161272 38 161274 39 40 161300 41 161304 42 161306 43 161310 44 161312 45 161314 46 161316 47 161322 48 161322 161326 BEV,.T,-(SP) BEV'CT+2,-(SP) ($EF) 004737 001405 052715 000 444 160634 000001 ; ts: 005201 000002 INC RTI 106427 012737 012737 005000 005001 052737 077001 005701 001402 052715 106427 077001 005 301 003002 052715 000300 161212 000300 005037 000240 005001 077001 005701 00140 2 052715 177520 000010 012637 012637 000102 000100 000100 000002 000240 ; 2$: 000100 00011i2 177520 3$: 00000 4 4$: MTPS MOV MOY CLR CLR BIS SOB TST BEQ II IS MTP<; SOB DEC BGT BIS CLR NOP <:LR SOB TST BfQ BIS 6S:TCXIT: MOY MOV Rt #BIT6 1 $CSRA RO,. Rl 3$ #RIT1 1 ($EF) #PR5 RO,. Rt 4$ llBIT2,($EF) $CSPA Rl po,. ~1 6$ #BIT3 1 ($EF) (SP)+,BEVNT+2 (SP)+,BfVNT ; CLEAR LOOP CONTROL ••• ; ••• um ncnR. ; TURN ON CLOCK INTERRUPT. ; DFLAY, INTERRUPT SHOULD ••• ; ••• BE ~ASKED AT THIS LEVEL. ; BP IF SO. ;; El = CLOCK INTERRUPT NOT MASKED AT LEVEL 6 ; NOW, LOWER CPU TO PRI 5. ; DFLAY lGlIN, CLOCK SHOULD COME IN ••• ; ••• lNO GIVE US A FEW TICKS (MORE THEN 1). ; BR IF SO. ;; E2 = CLOCK DOESN"T INTERRUPT ; TURW IT OFF. ; ••• FOR HlRDWARE LOGIC PUPOSE ••• DF.LlY ONCF MORE ••• ••• CLOCK SHOULD BE SffUT OFF. BR IF SO. ; E3 = CAN"T S~UT IT OFF ,, P~STORF BEVNT. ( I' KXTNF - KXTllCA Native firmware MACRO ¥05.00 LINE CLOCK (BEVNT) INTERRUPT - TS 161332 161334 lfil 336 161342 N 00 011500 00140 2 052100 000201 050000 00:51 Pa9e 11-1 MDV ($f.f),R0 BEQ BIS 30004$: iH'.TURN 30004$ #<5*BIT12>, RO ERROR BITS => RO<ll:OO> ••• ; ••• ANO SKIP If NONE. ; ELSE, lOO TEST NUM => R0<15:12> ••• ; ••• lNO RETURN (NZ). ; ( KXTNF - KXTllCA Native Flr•ware MACRO V05.00 - T6 CONSOLE SERIAL POPT OC319 00:51 Page 18 CONSOLE SF.~IAL PORT OC319 .SBTTL - T6 ••********************************************************************** ;;* TEST 6 -- CONSOLE S~RIAL PORT OC319 ••********************************************************************** I I TST6: 1 II 161344 161344 161344 161350 161354 161360 161364 roe: 013746 013746 013746 013746 005015 000064 000066 000060 000062 '40¥ MOY HOV MOY CLR 2 3 4 5 CSEF> H SAVE SLlXV. H SAVE SLlRV. ;; CL~AR E~ROR FLAG. INPUT: NONE. OUTPUT: RO = ~RROR FLAGS OR ZERO. 6 1 *** REQUIRES EXTEllNAL LOOP-BACK *** B 9 TEST THAT THE CONSOLE PORT ~ORKS AS ADVERTISED. 10 T6 CONSOLE SF.RIAL PORT DC319 EO = RO~ IN VECTOR SPACE -- INTERRUPTS NOT TESTED El = XMTR INTERRUPT NOT MASKED AT LEVF.L 4 £2 i XMTR INTERRUPT NOT,RECEIVED E3 = RCVR INTERRUPT NOT MASKED AT LEVEL 4 E4 = RCVR INTFRRUPT NOT RECEIVED E5 = PECElVED DATA INCORRECT E6 = NO RCVQ OONE 1 LOOP-BACK OPEN MIJV CALL BEQ BIS BR ISSLl,IH RAHLO DC.XH,. 119 ITO, ($EF) DC.OAT OC.XMT: MTPS HOV HOV SIS NOP BR #PR4 #2$, SLI XV IPR4,SL1XV+2 jl00,4(R4) 11 12 13 14 15 16 N l.O SLlXV ,- (SP) SL1XV+2,-(SP) SLlllV,-(SP) SL11lV+2 1 -(SP) ; 11 18 19 161366 20 161312 21 161376 22 161400 23 161404 24 25 161406 26 161412 27 161420 28 161426 29 161434 30 161436 31 161440 161440 32 161444 33 161446 34 161454 35 161460 36 161462 37 161466 38 161470 39 161412 40 41 161500 42 161504 43 161510 44 161512 45 161516 46 161520 012704 004737 001403 052715 000501 177'i60 160634 000001 106427 012737 012737 052764 000 240 000 40 3 000200 161440 000200 000100 052715 000 411 012737 106427 01)0 240 052715 000401 022626 042761 000002 016 400 106427 005000 110064 105714 100402 161470 000000 000064 000066 000004 2s: 000064 3$: 00000 4 4$: 000100 000002 000 20C 000006 000004 5$: BIS llR HOV MTPS NOP BIS 3$ IBIT 1, CSEF> 4$ t4S, SLl XV #PRO •BIT2, CSEF) POINTFR => R4. VECTOR SPACE USABLE ?? PPOCEED II' SO. ; EO = ROM IN VECTOR SPACE -- INTERRUPTS NOT TESTED 1 RAISE CPU TO XMTR LEVEL. S!';T VECTOR. SET INTERRUPT ENABLE. INTERRUPT SHOULD BE HELD OFF ••• ••• BR IF SO. ;; Fl = XMTR INTERRUPT NOT MASKED AT LEVEL 4 ;CHANGE THE VECTOR. ; LOWER CPU PRIORITY. ; INTERRUPT SHOULD HAVE COME IN. ;; E2 = XMTR INTERRUPT NOT RECEIVED llP 5$ CMP RIC (SP)+,(SP)+ #100,4(R4) ; ON INTERRUPT, FIX STACK. CLEAR THE INT ENABLE. 2 ( R4 ), RO ; ENSURE RCVR DONE IS CLEAR. RAISE CPU LEVEL. OC.RCV: HOV MTPS CLR MOVB 1$: TSTll 911,I ~PR4 RO R0 1 6(R4) (P4) 2$ ; ••• TRANSMIT A NULL CHARACTER ••• ; ••• WAIT "TTL R~VR GETS IT ••• ( KXTNF - KXTllCA Native Firmvare MACRO VOS.00 CONSOLE SF.RIAL PORT OC319 - T6 w 0 47 161522 48 161524 49 50 161526 51 161534 52 161542 53 161546 54 161550 55 161552 161552 56 161556 57 161560 58 161566 59 161572 60 161574 61 161600 62 161602 63 161604 64 161610 65 66 161614 67 161620 68 161622 69 161624 10 161630 71 161632 72 161634 13 161636 077003 000462 012737 012737 052714 000 240 000 403 052715 000411 012737 106427 000 240 0'52715 000401 022626 042714 016400 012700 005001 005002 010164 105714 100 410 077203 000415 161552 000200 OOOlOC :iS: Pa9e 18-1 SOB BR RO,lS OC.LBO ; ••• (BOT DON'T WAIT FOREVER). HOV 13$,SLlRV IPR4,SL1RV+2 11100, (R4) ; OK, SET RCV9 VECTOR. 1401 llJS NOP BR 3$: 000010 161602 000000 000060 4$: 000020 000100 0001)0 2 163666 000006 74 75 161640 76 161642 77 161644 78 161650 19 161652 80 161654 81 161660 82 161662 83 161664 84 161670 85 161672 161672 86 161676 161676 161702 161706 161712 161716 161720 161722 161726 000060 000062 00:51 5$: 6$: DC.OAT: MOV CLR CLR HOV 10$: TSTP BMI SOB llR 1$: 112001 001415 010164 105714 100376 016402 12010 2 001766 052715 000402 000002 052715 000100 000001; BIS ilR HOV MTP5 NOP bJS BR CMP BIC HOV ·2s: 3$: 000040 IBIT4,CSEF) 6$ (SP)+, (SP)+ l100,(R4) 060000 = RCVR INTERRUPT NOT MASKED AT LEVEL 4 ; C~ANGE VECTO~ ••• ; ••• AND LOWER CPU PRIORITY. ; INTERRUPT SHOULD COME IN. ;; E4 = RCYR INTERRUPT NOT RECEIVED 2(~4),RO ; ON INTERRUPT, FIX STACK. ; CLEAR THE INT ENABLE ••• ; ••• ANO LOWER RCVR DONE FLAG. IFLTIO,RO ; GET DATA TABLE POINTER. f<1 R2 Rl,6(R4) (R4) JS R2, 10$ OC.LBO (RO)+,Rl ; X14IT A NULL ••• ; ••• AND SEE IF LOOP IS INTACT. ; lT IS, PROCEED AT 3$. ; IT'S NOT, ABORT. ; NOW FLOAT DATA THRU THE LOOP ••• ; ••• UNTIL DONE. ; XM IT A BYTE• •• ; ••• AND WAIT. 2(R4) 1 R2 Rl,R2 1$ IBIT5, (SEP') OC. XIT ; REAO ••• ; ••• AND VERIFY. ; LOOP If' OK. ;; ES = RECEIVED DATA INCORRECT BIS #B IT6, (SEF) ;; P.6 = NO RCVR DONE, (SP)+,SLlRVt-2 (SP)+,SLlRV (Sf)+, SL1XV+2 (SP)+,SLlXV ($Ef) 1 RO 30005$ lf<6*iHT12>,RO ;; RESTORE SLlRV. or. XIT Rl,6(R4) (114) is DC.LBO: 000062 000060 000066 000064 ;; E3 MOVA BEQ MOY TSTB BPL MOY CMPll BEQ BIS BR DC. XIT: 012637 012637 012637 012637 011500 001402 052700 000 207 4$ #8 IT3, (SI.ff) SS #5$,SLlPV IPRO ; SET RCVR INTER&UPT ENABLE. ; INTF.RRUPT S~OULO BE HELO OFF ••• ; ••• BR If SO. HOV MOV MOY MOV HOV &EQ BIS 30005$: RF.TORN LOOP-BAC~ OPEN 11 RESTORE SLlXV. ;; ERROR BITS => RO<ll:OO> ••• ;; ••• AND SKIP IF NONE. 11 ELSE, ADO TEST NUM => R0<15:12> ••• ;; ••• AND RETURN (NZ). KXTNf - KXTllCA Native firmwi, HACRO V05.00 - T7 SfCON~ SERIAL PORT NEC7201 00:51 .SBTTL - T7 Page 19 SFCONO SEPIAL PORT MEC7201 ••********•************************************************************* ;;. TE3T 7 -- SECOND SERIAL PORT 'iEC7201 ,, ••********************************************************************** 161730 161730 161730 161734 161740 161744 161750 TST7: TNEC: 013746 013746 013746 013746 005015 HOV HOV HOV HOV CLR 00010 4 000106 000070 000072 2 PF.VNT ,- (SP) PEVNT+2,-(SP) hF:CV,-(SP) NF.CV+2,-(SP) ($EF) ;; SAVE PF.V'iT. H SAVE NF.CV. ;; CLfAP F.~ROP FLAG. INPUT: Rl<BITO> =RUN CRAN A ONLY (INCLUDES OHA ANO MODEM CONTROL). Rl<BlTl> = RllN CllAN B ONLY. OUTPUT: RO = ERROR FLAGS OR ZERO. 3 4 '5 6 7 NEC7201 SYNC/ASYNC (~PLTI-P~OTOCOL) SERIAL INTE~FACE. INCLUPES AN INTEL 8254 TRIPLE PIT FOR BAUD PATE GENERATION. ll 9 FIRST, SET UP THE dAUD GENERATOR, ANO VERIFY THAT GENERAL PURPOSE TIMER 2 (BOOHZ) WORKS AS ADVERTISED. 10 11 12 13 T7 SECOND SEPIAL PORT NEC7201 1:.0 F RO~ IN VECTOR SPACE -- CAN"T RUN El 18254 TIMER 2 (800HZ) OOF.SN"T INTERRUPT ASYNC HOOE, DATA XFER INCOMPLETE E2 1:.3 = SYNC MODE, EOF-SDLC NOT RECEIVED E:4 SYNC MODE, DATA XFER INCOMPLETE i,.s SYNC/ASYNC MODF.S, RECEIVED DATA INCORRECT CALL eri;: BIS JMP RAM LO 1$ #BIT0,($EF) NF.CX IT VECTOR SPACE USABLE 77 PROCEED lf SO. ;; EO = ROM IN VECTOR SPACE -- CAN"T RUN HOV HTPS HOVB HOVB HOVll j$SL2+36,R4 #PR6 fl066,(R4) j166,(R4) #2ti4,(R4) HZBOO,-(R4) H1.800+1,(R4) A4800,-(R4) A4800+1,(P4) A4800,-(R4) A'l800+1,(R4) GF.T 18254 CONTROL RF.G ADDRESS. RAISE CPU. CHAN A <TIHER-012-BYTESIMODE-JIBIN>. CHAN B <TIMER-11 SAME >. llOOHZ <TIHER-ll SAME EXCEPT MODE-2>. SET 800HZ DIVIDER == 50HZ 14 w ...... 15 16 17 18 19 20 21 161752 22 161756 23 161760 24 161764 25 26 161770 27 161774 29 162000 29 162004 30 162010 31 162014 32 162020 33 162024 34 162030 35 162034 36 162040 37 38 162044 39 162052 40 162060 41 162066 42 162070 43 162072 44 162074 45 162076 46 162100 47 162102 004737 001404 052715 000137 160634 012704 106427 112714 112714 112714 013744 113714 013744 113714 013744 113714 175736 000300 000066 000166 00026 4 162124 162125 162126 1621..!7 162126 162127 012737 012737 052737 005002 005000 106400 017001 005302 003002 052715 162120 000300 000200 000001 163470 000002 1$: HOV HOVB HOV MOVB HOY MOVR 000104 000106 177520 HOV HOV BIS CLR CLR HTPS SOB DF.C RGT 13$,PEVltT IPR6,PEYNT+2 #PIT7,$CSR.A R2 RO RO RO,. oJS #BITl,(SEF> R7 l$ 1 ; SF.T CHAN !l ••• ; ••• ANO CHAN l fOR ASYNC 4800 (SYNC 76.9K). J SET PEVNT VECTOR ••• ; ••• ANO ENABLE IT. CPU. OF.LAY, PEVNT SHOULD COME IN ••• ••• ANO GIVE A FEW TICKS (MORE THAN 1). LO~ER ;; El = 182~4. TIMER 2 (800HZ) OOESN"T INTERRUPT ( KXTNF - KXTllCA Native Fir•ware MACRO YOS.00 SECOND SERIAL PORT NEC7201 - T7 48 162106 49 162112 50 162116 51 52 162120 53 162122 54 55 162124 56 162126 w "' 005037 012714 000434 177520 000160 2S: 00520 2 000002 3$: 000020 000200 HZBDO: A4800: 00:51 Page 19-1 CLR MOV BR SC SPA •260 1 (R4) NEC.DATA ; TORN OFF PEVNT ••• ; ••• ANO TIMER 2 (MODE-0). ; ••• urn llOVE ON. INC R2 ; ON "PEVNT", TICK AND R~TURN. RTI 16. 128. i i DIVlDF.R YIELDS == 50HZ DIVIDER YIELDS lSYNC 4800 AND/OR SYNC 76.BK. ( KXTNF - KXT11CA Native Firawa, MJCPO V05.00 SECONO SERIAL PORT NEC1201 - T1 1 2 :; 4 5 6 1 ; FIVE PASS SYNf/ASYNC OATA TEST. ; *** REQOIRES EXTERNAL LOOP-BACKS (2) *** ; ; ; ; ; e 14 15 16 11 18 19 20 21 w w ASYNC (4800 BAUD). ASYNC (4800 BAUD). SYNC (16.BK RAOO). SYNC (16.BK BAUD). SYNC, OMA DRIVEN. ; 000003 00000 4 111174 111176 000000 000002 110002 110004 110006 110010 CHA= CHX= STAT= ROB= CTRL= XDB= KAT= HOOF.= ST/.TS= lNHIB= ; ; ; 22 23 24 25 162130 26 162132 27 162134 28 162136 29 162140 30 162142 31 162144 32 162146 33 34 35 36 162150 37 162152 3b 162154 39 162156 40 162160 41 162162 4~ 162164 43 162166 44 162170 45 162172 46 162174 47 162176 48 162200 49 162202 50 162204 51 162206 1. rHAN B, 2. ChAN A, J. CHAN B, 4. CHAN A, 5. CHAN A, ; 11 13 Page 20 ; 9 10 12 00:51 000 002 004 003 005 000 001 111171 030 024 104 301 152 020 036 \4 -4 -2 0 2 TMPl TMP2 T'4P3 TMP4 ASY NC SET-UP A.SET: DEDICATE R3 AS "CRAN-A" AND ••• ••• R4 AS "CHAN-lN-T~ST" PORT POINTERS. INDICES TO CHAN A/B STATUS ••• ••• RCVR DATA ••• ••• CONTROL ••• ••• A~D XMTR DATA PORTS. EQUATE A KEF.P-ALIVF.-TIMEW ••• ••• SET-UP/'40DE FLAr. ••• ••• STATUS BYTES ••• ••• AND lNHibIT (A/B) FLAG IN RAM. \3 .BYTE .BYTE .BYTE • BYTE .BYTE .BYTE .BYU -1 R - o, 2, 4, 3, 5, o, l, rDDE --,-030 024 104 31il 152 020 036 FUNCTION -------- ' <CHANNEL RESET>. COM" AND BUS INTERFACE <NON-VECTOREDlPRlllNO-DMA>. PROTOCOL <Xl61ASYNC-1-STOPINO-PARITY>. RCVR CONTROL <B-BPC I RX-ENAB>. XMTR CONTROL <R-BPCITX-ENABIPRTYX-B>. cnMMAND <RESET-EXT-INTS>. INT CONTROL <RXI-ON-ALLICAVITX-IE!NO-EXT-IE>. ; ; SYNC SET-OP ; 000 002 004 006 007 003 005 000 000 000 001 111171 001 003 OO'i 117177 031) 024 040 000 176 311 153 700 100 020 036 S.SF.T: 004 300 142 C.CLR: .BYT!> .BYTt: .BYTE .BYTE .BYTE .BYTE .BYTE • BYT<: .BYTE .BYTE • BYTI:. -1 .BYTE • BYTE .BYTI:. -1 R con;;: ---o, 030 - FUNCTION -------- 024 040 000 176 3, 311 5, 153 o, 200 o, 100 o, 020 1, 036 COMAHD <CHAN'IEL RESET>. BUS INTERFACE <NON-VECTOREDIPRillNO-DMA>. PPOTOCOL <XllSOLCISYNCINO-PAPITY>. SYNC 1 <Sl:.ARCH ADDRESS -- ONOSF.D>. SYNC 2 <FLAG CODE>. l<CVP fONTROL <B-BPCICRC-ENABIRX-ENAB>. XMTP CONTROL <B-BPCITX-ENABICCITTIPRTYX-BICRC-ENAB>. COMMAND <RESET TX-CRC-GEN> • <RESET RX-CRC-GEh>. COMHA'IO COl!MAND <RESET EXT-INT>. <RXI-ON-ALLICAVITX-IE!NO-EXT-IE>. INT CONTROL 1, 004 3, JOO 5, 142 INT CONTROL RCVR XMTP 2, 4, 6, 1, <KEEP-CAVIOISABLE-ALL-KLSF> <PX-DISABLE>. <TX-DISABLE>. ( ( KXTNf - KXTllCA Native fir~ware MACRO VOS.00 - T7 Sf.CnNn SERIAL PORT NEC7201 1 f!RST, 2 w ,j:>. 3 4 162211) 5 162212 6 162216 1 162220 8 162224 9 162230 10 162232 11 162236 12 13 14 15 162242 16 162246 17 162:?50 18 162254 19 162262 20 162266 21 162272 22 162276 23 162300 24 162304 25 162306 26 162310 27 162312 28 162314 29 162320 30 1623 .!4 31 162326 32 162330 33 16<:332 34 162334 35 162336 36 162340 37 162:\42 38 162346 39 162350 40 162354 41 162356 42 162362 43 162364 44 162366 45 162370 46 162374 47 162400 48 162406 49 162414 50 162420 51 162424 'i2 162430 53 162434 54 162442 55 56 H7444 57 1624')0 Page 21 00:51 S~E If EITHER CHAN IS INHIBITED. ; 005000 032701 001407 012700 031701 001002 012700 010065 hF:C.OATA: CLR 000003 BTT !lf.Q Mm RO #RlTll !lITO,Pl 1$ #$SL2+14,RO 175714 000001 llIT ~!1ITO,RI 1$ 17570 4 170010 BNE MnV MOY 1~: #SSL2+4,RO ~O,TNHIB(STOP) SINGLE CHAN SELECTED 77 PPUCEFO IF NOT (II.UN BOTH). YES, ASSU~E RUN A, INHIBIT B••• ••• AND SKIP IF WE GUESSED RIGHT. ELSF, Sf.T Tn INHIBIT l. Sf.T/CLEAR CHAN INHIRlT FLAG. ; ; lST 4 PASSES. 012700 000405 012700 05273 7 010 065 012703 01270 4 111013 116013 000 240 112014 112014 000 240 106427 026504 001511 112013 112013 112014 112014 105710 100374 012701 010 50 2 062702 010 246 012700 005022 017002 01160 2 005065 005065 012737 012737 106 427 012700 112164 112714 026527 001411 020027 001 42 3 162130 162150 000004 17000 4 175704 175714 177520 000001 000200 170010 NF:C.ASYNC: "ov BP NEC.SYNC: l'OV l'lS NF.C.U: HOV MOV MnV Mf!VP MOVB NOP HOVB MnV!I NOP 1$: MTPS CHP 2$: 163666 150002 000020 3$: (RO)+,(CHA) (R0)+ 1 (CHA) (PO)+,(CHX) (RO)+,(CHX) (PO) 011322 ; ••• THEN, SYNC (SDLC) MODE ••• ; ••• ~~QUIRES <SYNCMAl-SYMCMB> IN CSRA. SlVF PUTNTER AS SYNC/ASYNC FLAG. SET CHAN-A CONTROL PORT POINTER. SF.T CHAN-A AS CURRF:NT CHAN-IN-TEST. COMMAND ~CHAN-A~RESET (INCLUDES INT LOGIC)>. WAIT A ~OMENT. COM~ANO <CHAN-H-RESF.T>. RAISE CPU. THIS CHANNEL INHIBITED 77 BP lf SO. ELSE, POINT TO ••• ••• AND SF:T BUS-INTEll.FACE (CRH ALWAYS). POINT TO... . ••• AND SET-UP THE REST. :£$ i1FLT10 1 Rl $TOP,R2 #BUFP1 1 R2 10,-(SP) X~T BUFfE.R POINTER => Rl. RCV BUFFER POINTER => 1\2. SAVE A COPY Of R2. #16.,PO UF:Q (112 )+ CLE.Al\ IT ••• R0, 3S (SP),R2 ••• AND RESF.T POINTER. STATS($TOP) CLEAR SAVF.D STATUS ••• ••• ANO KEEP-ALTVF-TIMER. KAT(STUP) S<:T VECTOR ••• #NE:C.I,NECV #PR4,NECV+2 #PRO ; ••• AND LOWF:R CPU. #1,PO ; INIT PYTE COUNfS (RCV=O, XMT=l) ••• (Pl)+,XOB(CHX) ; ••• X~IT lST BVTE ••• #<J*BIT6>,CCHX) ; ••• AND COMMAND <RESET-IDLE/CRC-LATCH>. MODF.CSTOP),#S.SF,T ; SYNC MOOE 77 41$ ; BP IF sn. CMP RF.II R0,#<18.*PIT8>11B. ; ASYNC -- 18 RYTf.S TRANSFERRED 77 41$ ; BP If SO. CLll. 4$: llPll.4 INHIB(STOP ) 1 CHX 5$ HOV HOV MTPS MOV MOVB '4UVR CMP 162150 ; ASYNC MODF FIRST ••• WAIT AGAIN. llf.Q CLR 000070 000072 (PO)+,(CHX) (PO)+,(CHX) MOVl1 llOVB MOVIJ MOVA TSTB l:IPL HnV MnV ADD MOY '40V CLR SOii ~~OV 170006 170002 163522 000200 000000 000001 000002 000300 170004 #A.SET,RO NEC. AA #S.SET,PO #4,SCSRA 11.o,1mDE(STOP) #SSl.2+4, Cl 1 A #SSU+l 4,CiiX (RO),(CHA) 1( RO), 'CHA) ( KXTNF - KXTllCA Native Firmware ~ACRO V05.00 SF.CONO SERIAL PORT NEC1201 - T1 VJ U1 58 162'152 59 162'156 60 162460 61 162"b'I 62 63 162466 64 162412 65 162'17'1 66 162500 61 162502 68 69 162506 10 162512 11 162514 12 73 162520 74 16252'1 75 162526 76 162532 17 162536 18 162540 19 162542 80 162546 Bl 82 16..!550 BJ 16255'1 84 162556 B5 16.2560 86 162562 81 162564 Bil 16:t566 89 162570 90 162572 91 162576 92 162600 93 94 162602 95 162610 96 91 162612 98 162616 99 162620 005365 001312 052115 000 '115 020021 001'102 052715 012022 010065 012602 012101 012100 122221 001402 052715 017 005 17000 2 012100 112014 112014 105110 100374 020 403 001405 010304 016500 005720 000645 TST BMI DEC BNE ll IS STATS( STOP) 42$ ; SYNC -- <EDF.> RECEIVED 77 ; BP If SO. ll:AT(STOP) 41$ #B IT3, ( $EF) ; ELSF., SAHE-OLf.-CRAP. ;; F,J = SYNC MOOE, EOF-SDLC NOT RECEIVED 47S: CHP bEQ BIS R0 1 1<20.*BIT8118.> ; BYTE COONTS RIGHT?? 43$ ; PROCEED IF SO. #BIT4,($EF) ;; F.4 = SYNC MOOE, DATA XFER INCOMPLETE 43$: RO,KATC$TOP) (SP)+,R2 !1FLT10 1 Rl #18.,RO (R2)+,(Rl)+ 45$ #QIT5, ( $Ef) R0,44$ ; *** OF.BUG SAVE FINAL BYTE COUNTS. ; GET RCV ·o ••• ; ••• AND XHT"D POINTERS. 45$: HOV MOY MOV HOV CMPB llEQ ll IS SOB 5$: 6$: MOY P40VB #C.CLR,RO (RO)+,(CHX) (PO)+, (CHX) (RO) 6$ CHX,CllA 7$ ; DONE, CLEAN-UP TABLE POINTER => RO. ; POINT ••• ; ••• ANO CLEAR (RESET) AS NECESSARY. 41S: 17000 2 000010 000020 163666 000022 4'1$: 000040 162200 MOVA TSTB BPL CMP BEQ MOY MOY TST 17000'1 026527 001217 17000'1 026503 00100 2 000137 170010 163470 162150 ( KAT( STOP) 000004 170006 Paqe 21-1 OF.C B'lf: BIS BR 11000 2 005165 100 '105 005365 00137 2 052715 00:51 1S: 4$ #BIT2,($0:F) 43$ C~A,CHX ; ELSE, HANG-AROOND. ;; f.2 = ASYNC MOOF., DATA XFER INCOMPLETE ; RCV"D SAME AS THAT XMT"D 77 ; BR IF SO. ;; F.5 = SYNC/ASYNC MODES, RECEIVED DATA INCORRECT ; BOTR CHANNELS DONE 7? i BR IF SO. ; ELSE, POINT TO CHAN A••• ; ••• GET SET-UP POINTER => RO ••• ; ••• BttMP PAST iRE CRAN-RESET ••• ; ••• AND GO "ROUND ONCE. 8" HOOE(STOP),RO ( 110 )+ 1$ CMP BNE MODE(STOP),#S.SET ; SYNC MODE DONE 77 NFC.SYNC ; NO, DO IT NOii. CMP BNE JMP I NH lB ($TOP) ,CH A NEC.DHA NEC HT CHAN A INHIBITED 77 PROCEF.D TO DMA AND MODEM TESTS IF NOT ••• ••• ELSE, QUIT RERE. KXTNF - KXTllCl Native Fir•vare MACRO V05.00 - T7 SECONO SERIAL PORT NEr7201 1 2 w CTI Paqe 22 STH PASS USF.S DMA (ASSUMING THAT 8016 IS ALIVE AND WELL). THE 12~1 CHIP IS STILL SET-UP FOR "CHAN A SYNC" MODE. l 4 5 162624 6 162630 7 162634 8 162640 9 162642 10 162644 11 162646 12 162650 13 162652 14 162654 15 162656 16 11 18 19 20 21 22 23 24 25 26 21 28 162660 29 16i662 30 162666 31 162612 32 162674 33 16.1616 34 162104 35 162110 36 16:/114 37 162122 38 162730 39 162736 40 162742 41 162746 42 162754 43 162162 44 162770 45 162774 46 163002 47 163004 48 163006 49 163012 50 163016 51 163020 5:t 163024 53 163026 54 163032 55 163036 56 163040 57 00:51 ; 106427 012701 012702 112113 112113 071203 000404 002 003 005 001 000200 162650 000004 NEC.OMA: MTPS MOY MOY lS: MOVR MOVll SOB liR 2S: .B~TE. .BYTE .BYTE .BYTE 025 311 151 016 ; ADJUST CHAN A SET-UP. POINT TO ••• ••• AND CHANGE ••• ••• THE FOLLOWING 4 REGISTERS. 3$ 2, 025 3, 311 s, 151 l, 016 CHANGE ROS-INTERFACE TO <CHAN-A-DMA> ENABLE PECVR ••• ••• AND XM ITTR. CHANGE INT CONTROL TO <RXl-ON-1ST-CHAR> ;DEFINE THE OMA CHIP REGISTERS THAT ARE USED BELOW. 70 1 MASTER ~ODE REGISTER. MMR= STlTl= 56 i CHANNEL 1 STATUS. 54 ; ••• AND COMMAND REGISTER (FOR BOTH). CMDR= CHUH= 46 ; CHAIN ADDRESS REGISTERS HIGH (SEG/TAG) ••• CRA2H= 44 ; ••• AND TRE LOW CQFFSET) µALFS. CHUL= 42 CHA2L= 40 TERMINAL COUNT STATUS BIT (BITO). 1 TC= 20000 ; INTERRUPT POSTE.D (DONE) STATUS BIT (8IT13). IP= 000070 000056 000054 000046 000044 0000 42 000040 000001 020000 010500 062100 012701 005020 07110 2 012737 012704 005064 012764 012764 012764 005064 005064 012764 012764 012764 060564 012764 000 420 001602 000000 000020 000022 000020 001602 000020 000000 000024 000000 IPR4 #2$ 1 Rl 14, 1U (Rl)+,(CHA) (R1)+ 1 (CHA) R2, 1 S JS: 15000 2 000020 35$: 163632 174400 000054 000115 000074 000075 000046 000044 163004 163024 000240 000002 000241 000010 000070 000054 000(154 000040 000042 000054 000054 4$: 163666 175707 MOY STUP,RO 111lUl'R1 1 'l0 ADD 1116.,Rl MOY (RO)+ CLR l<t, 35S SOB MOY II IX IT+ 2, MFCV ftSDIU,R4 HOV C:MOR(R4) CLR jll5 1 MMR(R4) MOY #40 I 34 1 CMDR(R4) HOV MOY 141I34 1 CMDl<CR4) CHl1H(R4) CLR CHA2H(R4) CLR 140V 114S, CHA2L(R4) MOY 115$,CHUL (R4) llOV i240 1 CMDR(R4) AOD $TuP,1(R4) MOY jj241 1 CMDR(R4) BR 6$ 1602 0 1 !'LTlO 20, 115106+1 18. 00120 l 5S: 175703 150002 001201 20, 1201 1602 20, 175102+1 0 1 RUFRl 20. o, 1201 GF.T BOFFgR POINTER. ; CLEAR RECEIVING BUFFER. CHANGE THE VECTOR (IMTS DISMISSED). ; SET-UP THE D.Ml ENGINE. ; CHIP RESET. ; SF,T MlSTER MODE <YllWAITICPINTLYIENlB>. ; CLEAR lE'S ••• ; ••• 60TR CHANNELS. ; CL~lR HI CH-IN ADDRESS ••• ; ••• BOTH CHAN~ELS. ; SET CHAN 2 (XMT) ••• ; ••• AND CHAN 1 (RCV) CHlIN ADDRESSES. ; CHAIN-LOAD CHAN 1 (RCYR) ••• ; ••• AND ADJ~ST BUFRl ADDRESS. ; CHAIN-LOAD AND START CHAN 2 (XMTR). CHAIN-LOAO ARA, ARli, OPK, AND CH-~ODE. FPO" -- DATl TABLE. TO ---- 7201 XDBCLB), ~O lUTO-INCR. OPK --- lR BYTES. MODE -- SFT-REQ 1 1P-ON-TCIEOP,SNGL,BYTE-8YTE. FROM -- 1201 ROB(LB), NO lOTO-INCR. TO ---- LOCAL BUFRl. OPK --- 20 AYTES (18 DATA + l CRC). MODE -- SAME AS ABOVE (EXCEPT NO SFT-REQ). ( KXTNF - KXTllCl Native Firmwar~ ~ACRO V05.00 - T7 SFCOND SERIAL PORT NEC7201 58 163044 59 163050 60 163052 61 163054 62 163062 63 163064 64 163066 65 163070 66 163076 67 163101) 163100 68 69 163104 10 163110 71 163112 72 163116 73 163122 74 163124 75 163126 76 163132 112713 005000 106400 032764 001002 077005 000404 032164 001002 000300 052715 001)100 012700 010501 062701 012702 122021 00140 2 052715 077 205 163666 020000 6$: 000056 1$: 00:51 MOVB CLR MTPS BTT tlNE BIT #C3*BlT6>,(CHA) RO RO #IP,STAT1(R4) 8$ K0,7$ 9$ uc,sTATl(R4) BNE llS ; GOT <IP>, SHOULD ALSO HAVF. <TC>. ; BR IF SO (ALL RECEIVEO). BIS #'1JT6,($EF) ;; f.6 1rnv ; CHt:CK DATA. ; BR IF OK. ;; E7 = OMA MODF. RECEIVED DATA INCORRF.CT J LOOP. ; ALL DONE, CLEAR CSRA ••• ; ••• RESf.T,DMA CHlf AND FALL TRRU. 506 llR 000001 000056 BS: ( Page 22-1 ; COMlllND <RESET-IDLE/CRC-LATCH> ••• ; ••• LOWF.f.. CPU. ; ••• AND WAIT FOR CHANl (RCVR) DONE. 9$: ll s: 12$: MOV AOD MOV CMPR 13$: bIS SOB #FLTlO,RO STOP,Rl #BUFRl,Rl Utl.,R2 (RO)+,(Rl)+ 13$ #RIT7 1 ($EF) R2, 12$ CLR CLR $CSR A CMDR(R4) 150002 000022 llf.Q ()00200 = UMA MODF, DATA XfF.R INCOMPLF.TE 11 78 163134 79 163140 005037 005064 11752('1 000054 I w .....J ( ( KXTNF - KXTllCA Native Firaware MACRO V05.00 - T7 SECOND SERIAL PORT NEC720l l 2 3 10 163144 106427 010304 062104 112713 112714 012700 077001 112713 112714 112713 112714 012737 005001 005002 12 163152 w 00 FINALLY, TEST ALL THE MODF.M CONTROL FUNCTIONS. 000004 13 163156 14 163162 15 163166 163172 16 163174 17 163200 18 163204 19 163210 20 163214 21 163222 22 163224 23 24 25 26 163226 27 163230 28 163232 29 163236 30 163242 31 163244 32 163246 33 163250 34 163252 35 163256 36 163260 37 163264 38 163266 163266 39 40 41 42 163272 43 163274 44 163302 45 163304 46 163306 47 163310 48 163312 49 163316 50 163320 51 163324 52 163326 163326 53 54 CHB= REDFFINF. R4 AS CHAN B POINTER. \4 ; 000200 000010 000030 000030 000031 000041 000021 000005 000005 163640 000070 NEC.MOM: MTPS MOY AOD lS: MOYD MOYll MOV SOii MOVB MOVR MOVB MOYB MOY CLR CLR RAISE CPU. llPR4 CHA, CHO 110,cHB SET CRA~ 8 POINTER. #<3*BIT3>, (CRA) <CHAll-RF.SF.T>. 1<3"BIT3> 1 (CHR) #100*2/5,RO ;;OF.LAY 100 USEC. RO,. ~<2*BIT3>11 1 (CHA) ; <RESET-EXT>, POINT TO CR! ••• H<2*BIT3>11,(CHB) #5,(CHA) ; ••• AND SET <CAVIINT-ON-EXT>. #5,(CffB) #NEC.EX 1 NF.CY ; SET THE VFCTOR. ; CLEA~ A S0 ACE FOR SRO(A) ••• Rl ; ••• AND SRO(B). R2 TEST REQ-TO-SEND 1 CL~AR-TO-SEND, AND RCVR-READY BITS. ; 005000 106400 112713 112713 105701 001002 077 00 3 000406 032701 001403 032701 001002 3$: 000005 000002 4$: 000040 5$: 000010 CLR ,'4TPS MOVB MOVB TSTR BNE SOh RO RO #5 1 (CHA) 12 1 (CHA) Rl 5$ KF.EP-ALIVE TIMER. LOWER CPU. POINT TO CR5(A) ••• ••• AND SET (QEQ-TO-SEMD>. SHOULD GET SRO(l) STATUS INTERRUPT. BR IF SO. R0,4$ BP 6$ BIT #RIT5 1 Pl BF.II b$ BIT llRlT3 1 Rl 811£ 1$ BIS 118 ITB, ( SEF) ; INTERRUPT NOT RECEIVE~. SHOULD RAYE <CLR-TO-SEND> ••• ; ••• AND 6$: 052715 000400 ;; EB ; <RCYR-~EAOY>. = STATUS WkONG OR NO INTERRUPT WITH REQ-TO-SERD SEt ; NEXT, TFST TT108/? (IN CSRA) AND DATA-MODE BITS. ; 005002 112737 105702 001002 077003 000406 032702 00140 3 032702 001402 7$: 000010 177520 BS: 9$: 000010 CLR l'IOVB TST!I BNE SOb BR BIT tlFll BIT 000040 BEQ R2 #8IT3,SCSRA W2 9$ R0,8$ lOS #BIT3 1 R2 !OS IBITS, R2 SF.T <TT108/2>. ; SHOULD GET SRO(B) STATUS INTERRUPT. ; BR IF SO. ; INTERRUPT NOT RECEIVED. ; SHOULD PAVE <DATA-MODE> ••• ; ••• l~D NOT <INCOMING-ClLL>. 11$ 10$: 052715 BIS 001000 llB IT9, ( SEF) ; ; ~EXT, ;; f.9 = STATUS WRONG OR NO INTERRUPT WITH TT108/2 SET TEST TERM-IN-SER~ (CSRA) 1 TT142 (CSRB), AND INCOMING-CALL BtTS. ; 55 56 163332 57 163334 58 163342 Page 23 ; 4 9 11 163150 00:51 005002 052137 105702 11$: 000020 177520 12$: CLP BIS TSTR R2 #B IT4, SCSP A h2 ; Sf.T <TERM-IN-SERV>. SHOULD GET ANOTHER SR0(8) CHANGE. ( ~XTNF - T7 w "" - Native Firmware MACPO V05.00 SECOND SERIAL PORT NeC7201 ~XTllCA '59 1633H 60 163346 61 163350 62 163352 63 163360 64 163362 65 163366 66 163370 163370 67 68 69 70 163374 71 163402 163406 1,;. 163410 73 163414 163420 74 163422 15 163426 76 163432 163436 77 163440 78 163444 79 163446 80 163452 81 163454 163454 82 83 163460 84 163464 85 163470 163470 163474 163500 163504 163510 163512 163514 163520 001002 077003 000407 032737 001'40 3 032102 001002 000001 052715 002000 00:51 SOii BR BIT llF.Q BIT 911E 13$ R0,12$ 14$ IBITO,SCSRB 14$ afl ITS, R2 15$ II IS #RIT10,($EF) dNE 177522 13$: 000040 ( Pdge 23-1 ; INTEHRUPT NOT RECEIVED. ; SHOULD HAVE <TT142> IN CSRB ••• ; ••• AND <INCOMING-CALL>. 14$: ;; ElO = STATUS WRONG OR NO INTERRUPT WITH TERM-IN-SERY SET ; ; FINALLY, TURN ALL THAT STUFF OFF 11111 ; 0427J7 012700 077001 005037 012700 077001 112713 112113 012700 077 001 OJ;i701 001003 032702 001402 000010 000031 052715 0041)00 112713 112714 000030 000030 012637 012637 012637 012637 011500 001402 05270(1 000207 000072 000070 000106 000104 177';20 15$: 177520 000031 000005 000000 000031 000050 000050 llIC MOY SOB CLR MOY SOB MOVB l!OYB HOV SOB BIT tlN" BIT UfQ #BIT3,SCSRA #101)*2/5,!<0 ; CLEAR <TTlOB/7> ;;DELAY 100 USEC. SCSQA #100*2/5, RO fi.O, • #5, (Cll A) 110,(CHA) #100*2/5,RO RO,. IBIT5111IT3,Rl 16$ I #B IT5 I BIT3, R2 17$ ; CLEAR <TERM-IN-SERV>. ;;DELAY 100 USEC. BIS #BlTll,(SEF) ;; Ell = STATUS WRONG WITH EVERYTHING OFF MOVA MOV!l 1<3*BIT3>,(CHA) ; ALL DONE, RESF.T THE CHIP. #<3*1!IT3> 1 (CHB) ~o,. ; POINT TO CR5(A) ••• ; ••• AHO CLEAR <PEQ-TO-SEND>. ;;DELAY 100 USEC. ; <CSIRR~ IN SRO(l) SHOULD BE CLEAR ••• ; ••• AND <ICIDM> IN SRO(B) AS WELL. 16$: 17$: NECXIT: 010000 MOY HOV HOV HOV HOV ilF.Q II IS 30006$: RETURN (SP)+,NECV+2 (SP)+,NF.CV (SP)+,PEVNT+2 (SP)+,PEVNT ($El') 1 k0 30006$ #<7*0IT12>,RO ;; RESTORF. NE(:V. ;; RESTOR~ PEV~T. ERROR RITS => RO<ll:OO> ••• ••• ANO SKIP IF NONE. ELSE, ADO TEST NUM => R0<15:12> ••• ••• AND RETURN (NZ). ( ( KXTNF - KITllCA Native Firmware MACRO V05.00 - T1 SF.CONO SERIAL PORT NEC7201 1 2 3 112163 116346 006016 103420 006016 103411 000002 00000 4 000010 i NEC.I: MOVB MOYIJ ROil BCS ROR HCS 11 ~ 0 12 13 163544 14 163546 15 163550 16 163554 17 163556 18 163560 19 163564 20 21 163566 22 163572 23 163576 24 25 163600 26 163606 21 163612 28 163620 29 163624 30 31 163630 32 163637. 33 163636 34 35 36 37 163640 38 163644 39 163650 40 163654 41 163660 42 163664 43 44 45 46 163666 47 163670 48 163700 49 163710 50 51 Page 24 SYNr./ASYNC DATA TEST INTERRUPT HANDLER. BYTr, COUNTS ARE MAINTAINED IN RO (LO=XMT, HI=RCV). 4 5 163522 6 163530 7 163534 8 163536 9 163540 10 163542 00:51 105711 00140 4 112164 005200 000 424 112114 000421 ITX: 000002 000050 116 42 2 062100 000 414 177176 000400 116465 112714 116465 112714 112114 117714 000001 117714 000060 000020 005726 112113 000002 000070 1$: ll<X: 110006 ISEXT: 170007 lS: IXIT: 112713 112114 116301 116402 112713 000002 000020 il00020 117714 117174 000070 015 001 316 000000 012 002 315 #2 1 10(CHA) ; POINT TO SR28 ••• STAT+lO(CHA),-(SP) ; ••• AND PUSH VECT/COND. (SP) i BIT 0 => "C"••• ISlXT ; ••• AND BP IF EXT/SPECIAL (1, 3 1 51 OR 1) (SP) ; BIT 1 => "C"••• IRX ; ••• ANO HP IF RCVR (2 OR 6) ••• ; ••• ELSE rALL THRU (0 OR 4). TSTB (Rl) BF.Q 1$ MOVR INC BR MOVB BR (Rl )+,XDB(CHX) i<O IXIT #<~*BIT3>,(CHX) IXIT X14IT -- ANYTHING LEFT ?? BR IF NOT. SEND NEXT BYTE ••• ••• AND COUNT IT. ; X~IT DONE, COMMANO <RESF.T-TXIP> ••• ; ••• AND RETURN MOVB AOO BR l<OB(CHX),(R2)+ M<l*BITB>,RO IXlT ~OVB MOYB MOVB MOVR 140VR STAT(CHX),STATS(STOP) ; EXTERNAL/SPECIAL, GET SRO ••• #1,(CHX) STAT(CHX),STATS+l(STOP) ; ••• AND SRl. #<6*BIT3>,(CHX) ; COM14AND <RESET-ERROR> ••• #<2*BIT3>,(CHX) ; ••• A~D <R~SET-EXTERNAL>. TST MOVB RTI (SP)+ f<7*BIT3>,(CHl) ; ~CVR -- STUFF TRE CHAR ••• ; ••• AND coµNT IT. FIX STACK. SIGNAL <END-QF-INTEPRUPT>. ••• AND RETURN. 1400EM CONTROL T£ST INTEPRUPT HANDLER. i #<2*BIT3>, (CHA) COM~ANO <RESET-EXTERNAL>. !lf.C.EX: MOVB MOVR #<2*BIT3>, (CllB) DITTO. GFT SPO(l) ••• MOVB STAT(CHA),Rl STAT(CllB),R2 ••• AMD SRO(B). MOVB #<7 .. BIT3>,(CHA) SIGNAL <END-OF-INTERRUPT>. MOVB ii TI FLOATING 1 ANO 0 DATA TABLE. ; 004 313 • BYTE • \'OPIJ 15 1 12 ; SYNC PATR. 001, 002, 004, 010, 020, 040, 100, 200 376, 315, 373, 361, 357, 337, 271, 111 0 ; TERMINATOR • .OSA9L A"lA FLTl • llYTE fl.Tl .BYTE FLTll ; FLOATING 1. ; FLOATING O• ( KXTNF - KXTllCl Native Firmware LBTEST - LOOP SlCK TESTS ~lCQO VOS.00 00:51 Page 25 .SBTTL 1 ( LATEST - LOOP DACK TESTS 2 .ENABLE GBL,LC 3 4 5 6 Module name: LOOP.BACK TEST - LBTFST 7 System: KXTll-CA Native Firmware e 9 10 11 functional Description: 12 13 14 15 This module controls the execution ol the loop back tests. The tests are: 16 17 SLU! SLU2A. SLU?R 18 19 20 21 22 23 24 25 ~ ....... PTO l'ower Up Tests Input 26 27 P~rameters: None 28 29 30 Output Parameters: 31 None 32 33 34 35 36 37 38 39 Poutines Used: ; 1) Execute Test C~XTEST) 2) Power Up Tests (PUTEST) ( ( KXTNF - KXTllCl N~tlve Fir•ware HlCRO V05.00 LATF.ST - LOOP BACK TESTS 1 2 163712 3 4 163712 5 6 163712 7 163716 00:51 Paqe 76 ;* PROCF.OURF. CONTINUOUS SELF TEST LBT"'.ST:: ;* * DO UNTIL POWER OOWN LBlOO: 012700 004767 000006 003256 HOV C'LL 1iCSTHD,RO SO:TLEl1 012702 004767 000006 006636 HOV CALL &6,P2 EXTF:ST 012701 012702 004767 000001 000007 006622 MOV HOV OLL ~q EXTFST 012701 012702 004767 000002 000007 006606 HOV HOV CALL #B ITl, Rl #7, R2 EXT1'ST 012702 004767 000010 006576 HOV CALL jjlO, R2 EXTF:ST 004767 006326 CALL ?UTES;r hR LBlOO ;* * * TEST SLUl LOOP BlC~ 8 9 163722 10 163726 11 12 163732 13 163736 14 163742 15 16 163146 17 16375 2 18 11>3756 19 20 163762 21 163766 22 23 163772 24 25 163776 26 .b N ;* * * SET LEOS TO LOOP BlCK TEST DISPLAY 11'0, .Ql ;* * * TlST SLU2 CHlNNEL l 111,112 ;* * * TlST SLU2 CHANNEL B ;* * * TEST PIO 000745 ;* * * PERFOR~ PUWER OP SELF TESTS ;* * END UNTIL ;* F.NO CONTINUOUS SELF TEST ( KXTNF - KXTllCA Native Firmware MACRO V05.00 RESTRT - RESTART HANDLER 00:51 .S8TTL RESTRT .ENABLE LC,r:BL 164000 1 2 3 164000 ( Page 21 R~START HANDLER 4 s Module naMe: RESTRT - RESTART 6 1 System: KXT11-CA Native firmware 8 9 10 11 12 13 14 15 16 11 18 19 20 21 22 23 24 25 ~ w functional Description: ; ;This module handles the restart interrupt at location 173004. ; ;lnput Parameters: NnNF. ; ;Output Parameters NON<: 26 ; 21 ;Data Structures Used 28 29 30 31 32 33 34 35 36 37 38 39 ; ;Routines Used 1. SOOTH (jump to) 2. QCO~IN J. TaAP4 (}U•P to) 4. TRAPlO (jump to) 5. TQAP24 (ju•p to) ; ; (jump to) ( ( KXTNF - KXTllCl Native Firmware ~lCRO V05.00 RFSTRT - RESTART HANDLER 1 2 164000 ;* PROCEDURE RESTART HA"DLER 132737 001437 132737 001433 132737 001427 11 12 164030 13 14 164036 15 16 164042 17 164050 18 19 20 164052 21 164060 000020 177522 000040 177"i22 000100 177522 BITB BF:Q aITB BF:Q lllTB BfQ ~ .i:.. #BIT4,UKL.CSB RE400 #BIT5,tlllKL.CSB RF.400 IB IT6,(!lf!KL.CSP RF.400 042737 100200 177530 005737 177562 032737 001015 020000 032737 001005 000100 17500 2 BIT BNE 052737 070000 175002 BIS 000167 000532 BIC TST 175002 llJT BNE Jlo'P #<KXSORT I KXSNXH~ 1 @#KW.CSD ;* * * CLEAR RRf.lK (!l!IRRUFll ;* * * IF BREAK DISABLE BIT = 0 #KX$BDF,@IKW.STA RE:<"iO ;* * * THF.N i* * * * If STATUS REr.JSTER SFRIAL ODT FLAG = 0 iKXSSOf,@IKW.STA RF200 ;* * * * THEN ;* * * * ~ DISABLE BREAKS I MKXSBDF,@IKW.STA ;* * * * * PeRFOR~ SERIAL OOT ;(NON STRUCTURED EXIT) SODTH i* * * * f.LSE RF.200: ;* * * * * REMOVE RETURN lDDR. AND PSW FROM STACK 062706 000004 ADD #'4 1 SP 000167 000570 JMP bRHNT RE250: 00000 2 RTI ;* * * * * RETURN TO SERIAL ODT Vil BREAK ENTRY POINT ;(NON STRUCTURED FXIT) ;* * * * END IF ;* * * ELSt: J* * * * RETURN FROM INTERRUPT ;(NON STRUCTUR~O EXIT) ; * * * ENO IF ;* * FNP IF RE400: 41 42 164106 43 164114 44 45 46 164116 47 48 164120 49 50 51 164120 52 164126 53 54 164130 55 56 164136 57 ;* * IF BREAK CAUSED RESTART i* * THEN i* * * CLEAR NXH AND DPR INDICATORS 22 23 24 164062 25 26 164070 27 28 164074 29 30 164074 31 32 16'4100 33 34 35 164104 36 37 164104 38 39 40 164106 Paqe 28 RESTRT:: 3 4 164000 5 164006 6 164010 1 164016 8 164020 9 164026 10 00:51 032737 001401 000040 175002 000777 BIT ijf.Q FAR:: #KXSFEF,@#KW.STA R".'450 ;* * IF FATAL ERROR FLAG or STATUS REGISTER ;* * THEN ;* * * STOP tlP ;* * ENF IF Rf.450: ;• * CASE C•USE OF RESTART ;* * ~H~N Q BUS COMMAND RECEIVED 032737 001405 000200 042737 100200 000167 003316 177530 BIT BEQ 177530 llJC JHP #HSDRT 1 @#KW.C"SO Rl'500 ;* * * CLF.AR NXM AND DPR INDICATORS #<KXSDRT I KXSNXH>,~IKW.CSD ;* * * DECODE COMMAND QCO'I IN ;CNON ST~UCTUR~D f.XIT) i* * VHF.N NXM =1 ( ( KXTNF - KXTllCA Native Firmware MACRO V05.00 RESTRT - RESTART HANDLER 58 164142 59 164150 60 61 164152 62 63 164160 64 164166 65 66 67 164170 68 69 164176 70 00:51 032737 001500 100000 177530 042737 100200 177530 032737 001442 004000 175002 042737 004000 175002 lllC 052737 000010 175002 IHS 132737 001005 000010 177522 BITR BNt; 010637 077676 HOV 012706 000421 077676 MOV 132737 001411 132737 001405 000002 177524 000004 177524 RESOO: BIT llF.Q BIC BIT BEQ 71 72 164204 73 164212 74 .i:. U1 75 76 164214 77 78 164220 79 164224 80 81 164226 82 164234 83 164236 84 164244 85 86 87 164246 88 89 164252 90 164256 91 92 164260 93 94 95 164260 96 97 164264 98 99 164270 100 101 164270 102 103 164274 104 105 164274 106 164302 107 108 109 164304 110 164312 111 112 164314 113 114 164314 Page 28-1 #KXSNXM,@JKW.CSU PE1040 1• * " CLEAR NXM AND DPR INDICATORS i<KXSDRT I KXSNXM>,@tKW.CSD ;* * * IF STACK NXM TEST FLAG = 1 #KXSSXT,@#KW.STA RE900 ; " * * THEN ;* " * * CLEAR STAC~ NXM TEST FLAG iKXSSXT,@#KW.STA ;* " * " SET STACK ERROR FLAG OF STATUS REG. #KXSSEF,@IKW.STA ;* * * * CASE MAP SELECTION ;* * * * WHEN MAP BIT 2 = 0 #Kl S MP 21@llKW. CSB RF.600 ;* * * * * SAVE STACK POINTER VALUE AT TOR 1 - APPLICATION ; DEFAULT STACK OFFSET SP,~#PTOPl+ADSTKO ;* * * * * SET STACK POINTER TO THAT ADDRESS i3'! Rf.600: BITB BEQ BITB BEQ #RTOPl+AOSTKO,SP REBOO 1 ;* * * * ~HEN MAP BITS 0 AND 1 = 11 tKXSMPO,@t~w.csc Rf.700 #KXSMPl,@IKN.CSC l<E700 ;* * * * * SAVE STACK POINTER VALUE AT TOR 3 - APPLICATION DEFAULT STACK OFFSET SP 1 @#RTOP3+ADSTKO ;* * * * * SET STACK POINTER TO THAT ADDRESS tRTOP3+ADSTKO,SP REBOO ;* * * * ELSE ; 010637 157676 MOY 012706 000404 157676 MOY BR RE700: 010637 137676 MOY 012706 137676 HOV ;***'**SAYE STACK POINTER YALUE AT TOR - APPLICATION ; DEFAULT STACK OFFSET SP 1 @IRTOP2+ADSTKO ;* * * * * SET STACK POINTER TO THAT ADDRESS IRTOP2+ADSTKO,SP ;* " * * F.ND CASE RE600: 000167 002756 JMP TRAP4 BIT BEQ #~XSNXF,@JKW.STA RElOOO BIS BR l1 1 2(SP) RF.1010 RE900: 032737 001404 010000 052766 000417 000001 175002 000002 000010 175002 ; * * * ELSE ;* * * * IF NXM FLAG = 1 RFlOOO: 042737 ;* * * * EMULATE TRAP TO 4 (NON STRUCTURED EXIT) ; * * * * THEN ;* * * * * SET THE CARRY FLAG OF RETURN PSW ;* * * * f.LSE ;* * * * * CLEAR STACK ERROR FLAG dIC #KXSSEF,HKW.STA KXTNf - KXTllCA Native Fir•varC RF.STRT - RESTART HA"DLER J:>, °' 115 116 164322 117 118 164330 119 164334 120 121 164340 122 123 164346 124 125 164352 126 127 164352 128 129 130 164352 131 164356 132 164362 133 164364 134 164370 135 164372 136 137 164376 138 164404 139 140 141 164406 142 143 164412 144 145 164412 146 147 164416 148 149 164416 150 164416 151 164424 152 153 164426 154 164434 155 156 157 164436 158 159 164442 160 161 164442 162 163 164450 164 165 164450 166 167 164450 168 052737 004000 005766 005766 177776 177774 042737 004000 000167 002700 ;CRO V05.00 00:51 175002 BIS #KXSSXT,@IKW.STA TST TST -2(SP) -4(SP) llTC #KXSSXT,@IKW.STA JMP TRAP4 175002 Page 2tl-2 ;* * * * * SET TEST STACK POINTER NXM FLAG = l ;* * * * * TEST STACK BEFORE EMULATING TRAP ;(READ NeXT TWO STACK SLOTS, WILL GET RESTART INT. IF STACK BAD) ;* * * * * SET TEST STACK POINTER NXM FLAG =0 ;* * * * * EMULATE TRAP TO 4 (NON STRUCTURED EXIT) ; * * * * F.NO IF RE1010: ;* * * F.NOIF kl'1020: ;* * WHEN HALT (TEST FOR RALT INSTRUCTION AT RETURN PC -2) ; 162716 005776 001403 062716 000 412 062716 000002 000000 RF.1040: SUB 000002 BFQ ADD BR RF.1045: ADD 032737 00140 2 000020 000167 000214 T~T 000002 #2,(SP) @(SP) Rf.1045 112, (SP) kF.1070 jj2, (SP) ;* * * IF ENTER ODT ON RALT FLAG 175002 BIT BP.Q #KXSOHL,@#KW.STA RF,1050 1 JMP SODTM Ji-p TRlPlO =1 ;* * * THEN ;* * * * ENTER SERIAL ODT ;(NON STRUCTURED EXIT) ;* * * FLSE RF1050: 000167 002676 kf.1060: ;* * * * F.MULATE TRlP TO 10 ;(NON STRUCTURED EXIT) ; * * * ENO IF ;* * WHEN BHlLT RE1070: 032737 001411 001000 177530 BIT BO:Q 012737 001002 000300 175002 HIT HNE 000167 002714 JMP RE1072: 042737 001000 ate 177530 RE1075: IKXSBRF,@#KW.CSO kF.1000 ;* * * Tf SOOT OR QODT FLAG NOT SET #<KXSSOF I KXSQOF>,@IKW.STA RElll72 ; * * * THEN ;* * * * EMULATE TRAP TO 24 TRAP24 ;* * * ELSE ;* * * * CLEAR BHALT INDICATOR llKXSBHF, HKW .CSD ; * * * END If ;* * EllD CASE RF.1080: ;* 000002 * RETURN FROM INTERRUPT ilTI ;* END RESTART HANDLER ( KXTRF - KXTllCA Native Firaware MACRO VOS.00 SlVERG - SAVE REGISTERS 5 6 1 Page 29 .SBTTL SAVERG - SAVE REGISTERS .f.NABLE LC,Gl!L l 2 3 4 00:51 ; ; Module name: SAVERG - SAVE REGISTERS System: KXTll-Cl Native Firmware 8 9 10 Functional Oescription: 11 12 13 14 15 16 11 18 This module is used by both the serial and Q bus ODT monitors. It saves the contents of the users CPU registers. This aodule exits by jumping back to the ODT monitor which called it. It deteraines which UDT monitor it is to return to by testing the state field of the IOP status register. The following table discribes the use of the native firmware reserved RAM for this purpose. 19 ob .....J NATIVE FIRMWARE RESERVED RAH USE 20 21 22 23 24 25 26 27 USE 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 ; ; ADDRESS ' -------------------------BATTERY BACKUP FLAG 1 ----------------------TOP OF NATIVE RAM " " 2 " l!OOT TYPE FLAG WORD NATIVE FIRMWARE FLAG WORD APPLICATION STACK POI•TER HOLD PS SAVE " PC " II SP II RS " " R4 " " R3 " " R2 n " Rt " "n RO " ODT TOP OF WORKING STACK ODT STACK GUARD WORD APPLICATION DEFAULT STACK TOR TOR TOR TOR TOR TOR TOR TOR TOR TOI< TOR TOR TOR TOR TOR TOR - 2 4 6 10 12 14 16 20 22 24 26 30 32 34 76 100 This routine exits by juaping to return address of QOOTM or SODTM depending on which aode the KXT ls in. ; ;Input Paraaeters: ; ALL CPU REGISTERS ; ;Output Parameters STACK POINTER ; ;Routines Used } NONE ( ( KXTNF - KXTllCA Native Fir•ware MACRO VOS.00 SAYERG - SAYE REGISTERS 1 2 3 4 5 6 1 8 9 10 11 12 lJ 14 15 16 17 18 19 20 21 22 23 24 25 26 21 ~ 28 00 29 30 31 00:51 Page 30 ;NATIVE FTRM~lRF. RESERVFD RAM DF.FINTIONS ; THESE ARE ADDRESS OFFSETS FROM THE TOP OF THE NATIVE RAM 000000 117776 117714 111112 BBFlO BBF20 BOOTFO NFFllDO 0 111110 117766 117764 117762 117760 117756 117754 177752 177750 177746 171702 177700 APLPSO APLPCO APLSPO APLR50 APLR40 APLRJO APLR:.!O APLRlO APLROO ODTSTK ODTSTG ADSTKO NFFVDO APLPSO APLPCO APLSPO APLR50 APLR40 APLRJO APLR20 APLRlO APLROO - 077776 137776 157776 000000 040000 100000 077762 137762 157762 000014 RTOP1 RTOP2 RTOP3 RROTl RBOT2 RROTJ SP1 SP2 SP3 SPOFF BATTERY BACKUP FLAG 1 ADDRESS OFFSET BBFlO - 2 BBF:>O - 2 BOOTFO - 2 2 ? 2 2 2 2 2 2 2 2 -76 -100 ; II H " " " SP RS " " • .. R4 RJ " " " " " .. " R2 " " " " RI " " " " " II RO n " " ;ODT WORKING TOP OF STACK STACK ADDRESS OFFSET ;ODT STACK GUARD VORD ADDRESS OFFSET ;APPLICATION DEFAULT TOP OF STACK OFFSET ADORESS ; n TOP OF Rljt 1 .. " ... 2 157776 .. " .. 3 0 BOTTOM OF RAM 1 RTOPl + lPLSPO RTOP2 + APLSPO RTOPJ + APLSPO -APLSPO H ;APPLICATION PS SAYE ADDRESS OFFSET " PC " " 77776 137776• 40000 100000 2 II BOOT TYPE FLAG, SPECIFIES BOOT DEVICE AND TEST NATIVE f IRMVARF. FLAG VORD ADDRESS OFFSET II ft II II II II 2 J INITIAL ODT STACK 1 ABSOLUTE ADDRESS n n n .. .. .. 2 3 n n " " OFFSET OF STACK POINTER FROM TOP OF RAM KXTHF - KXTllCA Native Flraware SlVERG - SAVE Rf.GISTERS .i:.. l.O 1 2 164452 3 4 5 164452 6 164460 7 8 164462 9 10 164466 11 164412 12 13 164414 14 164502 15 164504 16 164512 17 18 164514 19 20 1645 20 21 164524 22 23 164526 24 25 164526 26 27 164532 28 29 164536 30 31 164536 34! 164540 33 164542 34 164544 35 164546 36 164550 37 36 164552 39 164554 40 41 164560 42 164564 43 164570 44 45 164574 46 47 164600 48 49 164606 50 164614 51 52 53 164616 54 55 164622 56 57 164622 ~ACRO V05.00 00:51 ( Page 31 ;* PWOCEDURE SAVE REGISTERS SlVERG:: BNE #USMP2, (atlKil.CSB SRlOO 077762 MDV SP,tajlSPl 012706 0004:H 077762 Mnv #SPl,SP SR300 032737 001411 032731 001405 000002 177522 000004 l 77'i22 010637 012706 000404 032737 001005 000010 010637 117522 EIT IJR ;* * CASE MAP BITS ;* * WHEN MAP lilt 2 = 0 ;• * * SAVE USERS STACK POINTER AT ODT STACK 1 ;* * * SET STlC~ POINTER = ODT STACK 1 ;* * WHEN MAP BITS 0 AND 1 Sill 00: l:IIT M'.Q #KXSMPO,@flKW.CSB SR200 #KXSMPl,(aUil.CSB SR200 157762 MIJV SP,(ajSP3 157762 MOY BP #SP3,SP SR300 BIT OFQ = 11 ;* * * SAVE USERS STACK POINTFR lT ODT STACK 3 ;* * * SET STACf POINTER TO OOT STACK 3 ; * * ELSI> SR200: I 010637 131762 HOV SP,@ISP2 012706 137762 HOV llSP2,SP , ' ;* * * SAVE USERS STACK POINTER AT ODT STACK 2 ;* * * S~T STlCr POINTER TO DDT STACK 2 ;* * FND CASE SR300: ;* * SAVE USER REGISTERS 5 THROUGH 0 010546 010446 010346 010246 010146 010046 HOY HOV HOV HOV HOV MOY 115,-(SP) R4,-(SP) R3,-(SP} R2,-(SP} Rl,-(SP) RO,-(SP) ;* * SET RS 010605 162705 177750 HOV SUB SP,R5 UPLROO,R5 016500 012065 012065 171764 177766 177770 HOV HOV HOV APLSPO(R5),RO (R0)+,APLPCO(R5) (R0)+ 1 lPLPSO(R5) 010065 177764 HOV RO,APLSPO(R5) 012765 123456 177702 MOY #l23456,0DTSTG(R5) 032767 001402 000200 010166 &IT BF.Q #KX$QOF,KW.STA SR400 000167 004622 JMP QSRS::T JHP SSR .. T ;* * SAVE USER PC AND PS ;* * REMOVE USER PS lND PC FROM USER STACK ;* * WRITF. GUARD ilURD = 123456 ;* * IF STATUS REGISTER Q BOS ODT MODE FLAG SET ;* * THEN ;* * • SR400: 000167 000026 = TOP OF RAH ADDRESS R~TURN TO Q BUS ODT MONITOR (NON STRUCTURED JUMP TD Q ; * * f.LSE ;• * • RETURN TO SERIAL ODT MONITOR (NON STRUCTURED JUMP TO "' ..."'c ...."'°' "'°' . ...... "'"' CVl z l&lC ..« •"'z ., .... ... I ..,..... 41 "'"" c. ... U'> 0 0 . c c U'> ... 0 0 °'c u :E . 41 '----- .... :II ...•.... lo. "' °' >lal ....... ......"' 41 Zl.O .....u °',,,"' ....... ...... ."' "' ........."""'"'"' c Cl)°' 1()1() Ztal 50 ( KXTNF - KXTllCA Native Firmvart "ACRO VOS.00 SODTM - SERIAL OOT MONITOR 1 2 3 4 00:51 ( Page 32 .SBTTL SODTM - SF.RIAL OOT MONITOR .l".NABL LC,GBL Module na•e: SOOTH - SF.RIAL OOT 5 6 7 8 9 ~ONITOR System: KXTll-CA "ative Fir•warP. 10 11 12 13 Functional Description: 14 15 16 17 18 19 20 21 22 23 24 25 ; ; The valid OOT co••ands are as follows: 26 U1 ~ 27 28 kn/ n/ 29 30 31 I •,n/ R111,n/ n <LF> 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 This is the main controlling 111odule for the serial ODT •ode. It supervises the DDT tunction and on co•pletion returns control back to the application software. There is a secondary entry point to this •odule. This entry point is used by the RESTRT •odule vhen it determines a BREAK was received on the console serial line and the IOP was executing serial ODT. This entry causes the DDT to start with a fresh com•and pro•p~withou~ effecting the contents of the application register storage area. -<CR> p Gn - Open register n (n = O through 7 and S) - Open location n - Re-open previous location or register ~xa111ine locations • through n, leaving location n open -- Exa•ine registers • through n, leaving location n open Deposit n in open register qr location -- Close last location or register, open next + - Close last location or register, open next location or register -- Close Proceed with execution of application - ~xecute NOTE: A range examine can be aborted by pressing BRF.AK key. ; ; ;Input Paraaeters: ; NONF. ; ;output Parameters: NONI\ 48 49 ; 50 51 52 53 54 55 56 57 ; Routines Used: ; application at location n SAVERG SETLlD AOD REG UAMIR IJJSPST IJATCUM ( ( lXTNP - lXTllCA lative Fir•ware MACRO V05.00 SOOTH - SERIAL ODT MONITOR 00:51 Pave 32-1 DEPOS GOPROC 58 59 60 U'I I'>.) KXTNF - KXTllCA Native Firmware HlCRO V05.00 SODTM - SERIAL ODT MONITOR 4 5 6 7 e 9 10 11 12 Page 33 ;REGISTER 3 IS USED AS THE FLAG REGISTER FOR ~LL ODT ROUTINES ;THE FOLLOWING lRE THE BIT DEFINITIONS FOR THIS REGISTER l 2 3 00:51 000001 000002 000004 000010 000020 000040 000 200 100000 DCDFGB DlRF'GB APOF'GB F'CHP'GB CNOF'GB XOFF'GB Rr.GF'GB ERl<FGB ----- ----- 1 2 4 10 20 40 200 100000 ;DATA/COMMAND ROUTINE - DONE FLAG ;DATA/COMMAND ROUTINE - DlTl RECV"D WITH COMM. FLAG ;ADDRESS/REGISTER ROUTINE - DONE FLAG ;ADDRESS/REGISTER ROUTINE - FIRST CHAR. REcv·D FLAG ;SERIAL ODT MONITOR ROUTINE - CONDITION FLAG ;GENERAL - XOF'F FLAG ;GENEPAL - REGISTER FLAG ;GENERAL - F.RROR FLlG KXTNF - KXTllCA Native FirmJ SODTM - SERIAL ODT MONITOR l 2 1646.l6 3 4 164626 5 6 7 B 164634 9 10 164642 MACPO V05.00 00:51 ;* PROCF.OORE SERIAL ODT MONITOR SOOTH:: 042737 000100 ;* * DISABLE OOAL PORT RAM 177530 BIC 052737 030100 175002 BTS 042737 000 200 175002 SIC #rXSDEN,@IKW.CSD ;* * DISABLE BREAKS ;* * DISABLE NXM TRAP TO 4 ;* * SET SERIAL ODT FLAG #<KXSBDF I KXSNXF I KX$SOF>,@•KW.STA ;* * CLFAR Q BUS ODT FLAG l~X$QOF,@JKW.STA ;* * SET SERIAL ODT FLAG 11 12 13 14 164650 15 164654 16 17 164654 18 164660 19 20 164664 21 22 164670 n 1.11 w 24 164674 25 26 164674 27 164700 26 164702 29 30 164704 31 32 164712 33 34 164714 35 36 164716 37 3B 164724 39 40 164130 41 164734 42 43 164740 44 45 164746 46 47 164746 48 49 164746 50 164752 51 52 164756 53 54 164762 55 56 164766 57 164770 ( Page 34 ;* * SAVE REGISTERS (JUMP TO AND BACK FROM SAYE REGISTERS MODULE) ; 000167 177576 JMP SAVERG SSPFT:: ;* * SET LEDS TO SERIAL ODT MODE DISPLAY 012700 004767 000004 00 2314 HOV CALL #SOOTMO,RO SETLEI' 105737 177562 TSTR @llRBUFlA 004767 001762 CALL AB AUD ;* * READ RBUF ;* * SET BAUD RATE ;* * CLFAR RECEIVE BUFFER I BRKFNT:: 012700 060500 010006 177750 042737 020000 I mo HOV #ODTSTK+2,l<O P5,RO PO,SP BIC #KXSBDF,@JKW.STA 005003 CLR R3 005002 CLR R2 BIS fKXSNXF,@,KV.STA HOV ;* * RE-INITIALIZE ODT STAC~ POINTER ;* * ENABLE BREAK 17500 2 ;* * CLEAR ALL ODT FLAG BITS ;* * CLEAR TARGET BUFFER ;* * DISABLE TRAP TO 4 052737 010000 175002 004767 000560 CALL 016501 004767 177766 HOV CALL 042737 020000 001~72 175002 BJC SOlOO: ;* * PRINT CR LF ;<LOCAL CALL) ;* * DISPLAY PC VALUE APLPCO(R5),Rl DISPWD ;* * ENABL~ BREAKS •rX$BDF,@#KW.STl ;* * 00 UNTIL PROCEED COMMAND PCRLF ;* * OR GO COMMAND S0200: 012701 004767 oo 1 :no 166266 HOV CALL #PROMPT,R1 DI SP ST 042703 000010 DIC #FCHFGB,R3 004767 000534 CALL AOD REG TST BPL RJ SOJOO 005703 10000 2 ;* * * DISPLAY ODT PROMPT ;* * * CLEAR FIRST CHARACTER FLAG ;* * * G~T ADDRESS OR REGISTER NU~BER ;* * * IF ERROR FLAG = 0 ( ( KXTNF - KXTllCA Native Fir•ware MACRO VOS.00 SOOTH - SERIAL OOT MONITOR V1 ~ SB 164772 59 164116 60 61 62 164716 63 165002 64 65 66 165004 61 68 165006 69 10 11 165006 12 165012 73 74 165014 15 76 165020 11 165022 78 19 80 165024 Bl 165030 B2 83 84 165032 85 165034 86 87 BB 89 90 165036 91 165042 9;.? 93 165046 94 165052 95 96 165054 97 98 165054 99 100 165060 101 102 165062 103 165062 104 165066 105 106 165070 107 108 165072 109 110 165076 111 165102 112 113 165104 114 165104 000161 000414 00:51 Page 34-1 JMP SOlRSO S0300: 032103 001401 000002 010 402 ; * * * THEN ;* * * * IF ADDRESS OR REGISTER NO. ENTERED BIT BFQ •DARFGB,R3 S0400 HOV R4 1 P2 ;* * * *THEN ;* * * * * SAVE FIRST TARGET ;* * * * F.NO IF S0400: ;* * * * CASE COMMAND FOLLOWING ADDRESS OR REGISTER NUMBER ;* * * * WP~N ''," 122100 001023 000054 CMP11 BNr. I" ,,RO 50900 004161 000502 CUL AOIJREG TST BMI R3 005103 100 414 ;* * * * * GET ANOTHER ADDRESS OR RF.GISTER NUMBER ;* * * * * IF VALID ADDRESS OR REGISTER NUMBER smoo ;* * * * * AND COMMAND FOLLOWING ADDRESS OR REGISTER NUMBER IS "/" ; 122700 001011 000057 CMPB B"IE 11" / ,Rll S0700 ;* * * * * ANO ADDRESS OR RF.GISTER NUMBER GREATER ; THEN FIRST TARGET R4,R2 S0100 020 40 2 101407 CMP RLOS 012700 004761 000002 000674 ;R2=TAi<GET 1 ; R4=T AR GET 2 llRNGFGB,RO HOV EXA"l JN ClLL 052703 000 40 2 000020 BIS BR #CNOFGB,R'.l 50800 100000 oJS #F.RRFGB,R3 000445 SOBOO: BP S01450 CMPl1 l!NF: 11·1, RO SOlOOO CLR RO ;* * * * * * SET CONDITIOK FLAG = 1) = OPEN ; * * * * * ELSE S0700: 052703 ;* * * * * THEN ;* * * * * * DISPLAY DATA OF RANGE ;(PASS TARGET 1) ;(PASS TAPl:F.T 2) ;(PASS S~RIAL ·ooT FLAG = 1, RANGE FLAG ;* * * * * * SET ERROR FLAG ;* * * * * ~ND IF ;* * * * WHEN "/" 50900: 122700 001006 000057 005000 004767 000644 CALI. EXAMI"' 052703 000 43 4 000020 BIS BR #CtiOFGil,R3 501450 C"'PB # ·G, 1-:0 501000: 122700 000107 ;* * * * * DISPLAY DATA ;(PASS SERIAL ODT FLAG = 1, RANGE FLAG ;(PASS TARGF.T 1) ;* * * * * SET CONDITION FLAG = OPEN ;* * * *WHEN "G" = 0) ( ( 00:51 Page 34-2 001014 BNE SOl'.100 105703 100412 TSTR BMI R3 S01300 MDV CALL JINNCED,RO SETLEO KXTMF - KXTllCA Native Flravare MACRO V05.00 SODTM - SERIAL ODT MONITOR lJ1 lJ1 115 165110 116 117 165112 118 165114 119 120 165116 121 165122 122 123 124 165126 125 165130 126 121 165134 128 165140 129 130 165142 131 165142 13:.! 165146 133 134 165150 135 165154 136 137 138 165156 139 140 165162 141 165166 142 143 165170 144 145 165170 146 147 165174 148 149 165174 150 165174 151 165200 152 153 165202 154 165204 155 156 165206 157 165212 158 159 165216 160 161 165222 162 1652:.!4 163 164 165 165226 166 165232 167 168 169 170 171 165234 012700 004767 000000 002052 ;* * * * AND TARGF.T IS AN ADDRESS ;* * * * * SET LEOS TO NON NATIVE CODE DISPLAY ;* * * * * f.Xf.CUTf. AT ADDRESS ENTERF.D (VILL NOT ; 010400 004767 001636 HOY CALL 052703 000415 100000 II IS IJO Rf.TU~N R4, PO IF NO ERROR) GO #fRRFr.B,ld S!11450 ;* * * * * SET ERROR fLAG = 1 ;* * * * WHEN "P" $01300: 122700 001010 000120 032703 001005 000002 CHPR llNE jj"P,RO Sf11400 BIT #OAPFr.B,R3 501400 ;* * * * ANO NO DATA PRECEDED COMMAND llNE ;* * * * * EXECUTE PROCEED (VILL NOT RETURN IF ; 004767 001626 CALL PROC 1 052703 000 402 100000 il TS liR #io:RRFGB, R3 501450 ' NO ERROR) ;* * * * * SET ERROR FLAG =1 ;* * * * ELSE (IMYALID COMMAND) S01400: ;* * * * * SET ERROR FLAG 052703 100000 BIS #Er<RFGB,R3 ;* * * * END CASE S01450: ;* * * * DO WRILE CONDITION FLAG = OPEN S01470: 032703 001504 0000<!0 005703 100502 llEQ ICNDFGB,R3 SOlROO TST BMI k3 S01800 BIT ;* * * * AND ERROR FLAG = 0 ;* * * * * PRINT SPACE 012701 004767 166272 001130 MOY OLL ISP ACE,Jll DI SP ST 004767 001162 CALL OATC0'4 TST B"II R3 501600 illT bEQ #DARFGB,R3 SOl'iOO J* * * * * GET INPUT DATA 005703 100467 032703 001402 000002 ;* * * * * JF VALID DATA AND COMMAND J* * * * * THEN ;* * * * * * IF DATA PROCEEDED COMMAND * * * * * * THEN * * * * * * * DEPOSIT DATA INTO ADDRESS OR REGISTER (R2=ADOR.) (114=0lTA) 004767 001234 CALL OF.POS ( ( KXTNF - KXT11CA Native Firaware MACRO ¥05.00 SODTM - SF.RIAL ODT MONITOR U'I °' 112 173 165240 174 175 176 165240 177 165244 178 179 165246 180 165252 181 182 165254 183 165254 184 165260 185 186 165262 lll7 188 165266 189 190 165270 191 165272 192 193 194 165214 195 165300 196 165302 197 165304 198 199 165304 200 165310 201 202 165312 203 204 165312 205 206 165314 207 165316 2011 209 165322 210 211 165322 212 165326 213 214 165330 215 165330 216 165334 217 218 165336 219 220 165342 221 165344 222 2'23 224 165346 225 226 165350 227 165352 228 165356 00:51 Page 34-3 ;* * * * * * END IF 501500: ;* * * * * * CASE COMMAND ;* * * * * * WHEN CR 122700 001003 000015 CHPll BNE #CR,RO 501550 042703 000 453 000020 SIC llP #CNOfG8 1 R3 501510 ;* * * * * * * SET CONDITION FLAG =CLOSED ;* * * * * * WHEN LF 501550: 122700 001023 000012 CMPB ll'IE #LF 1 RO 501560 004767 000222 CALL PCRLF 005 202 INC R2 105103 100007 TSTll BPL R3 S01555 ;* * * * * * * PRINT CR LF ;(LOCAL CALL) ;* * * * * * * INCREMENT TARGET ;* * * * * * * IF TYPE IS REGISTER ;* * * * * * * THEN ;* * * * * * * * SET TARGET MOD 10 022702 101001 005002 000011 CMP BHI ctR #11 1 R2 SOl 552' R2 CALL BR DI5PRG S01551 S0155?.: 004767 000 404 000140 ;* * * * * * * * DISPLAY REGISTER NUMBER ;(LOCAL CALL) ;* * * * * * * ELSE S01555: ;* * * * * * * * INCREMENT TARGET AGAIN 005202 INC R2 010201 004767 '40V CALL R2 1 Pl OISPVD ;* * * * * * * * DISPLAY TARGET 001210 ;* * * * * * * F.ND IF 501557: 1.Jli l':XM[l IS 501570 122100 001022 000136 CMPR BNE II••, RO S01570 004167 000146 CALL PCRLF 10570 3 100007 TSTll BPL R3 501567 005302 DF.C R2 100002 012102 BPL 501565 HlO, R2 004167 000425 000142 CALL 501560: ;* * * * * * * EXAMINE ;(LOCAL ClLL) ;* * * * * * VHE~ A ;* * * * * * * PRINT CR LF ;(LOCAL CALL) ;* * * * * * * IF TYPE IS REGISTER ;* * * * * * * THEN ;* * * * * * * * DECREMENT TARGET ;* * * * * * * * SET REGISTER NUMBER MOD 10 HOV 000010 501565: ( ( KXTRP - KXTllCA Native Plr•ware MACRO V05.00 SOOTH - SERIAL ODT ~ONITOR U1 -...] 229 230 165356 231 165362 232 233 165364 234 235 165364 236 165366 237 238 165370 239 165372 240 241 165376 242 243 165376 244 245 165402 246 165402 247 248 165404 249 250 165404 251 252 165410 253 254 165410 255 165412 256 257 165412 258 259 165412 260 165414 261 262 263 165416 264 165422 265 266 165426 267 268 269 165432 270 ~71 165436 272 273 165440 274 275 276 165440 277 278 165444 279 280 281 004767 000405 000066 00~51 Pa9e 34-4 CALL BP DI SP Pt; SIJl 569 ;* * * * * * * * DISPLAY REGISTER NUMBER ;(LOCAL CALL) ;* * * * * * * ELSE 501567: ;* * * * * * * * DECREMF.NT TARGET BY 2 R2 005302 005302 DF.C OF.C 10 010201 004767 HOV CALL R2,Rl llTSPWO 001134 ;* * * * * * * * DISPLAY TARGET ;* * * * * * * END IF 501569: 004767 000066 ;* * * * * * * FXAMTNE ;<LOCAi. CALL) ;* * * * * * F.ND CASE CALL EXMOIS BP S01700 BIS #ERPFGB,R3 S01570: 0001!02 501600: 052703 100000 I S01700: 000671 BP Snl470 ;* * * * * ~I.SE ;* * * * * * SET ERROR FLAG ;* * * * * F.ND iF ;* * * * END WHILE 501800: ; * * * END I f S01850: ;* * * IF ERROR FLAG 01)5703 100011 TST BPL R3 501900 =1 ;* * * THEN ;* * * * SEND ERROR PROMPT 012701 004767 166264 000720 MOV CALL llF:RROP.,Rl OISPST 042703 000200 BTC llREr;FGb,R3 ;* * * * CLEAR REGISTER FLAG ;* * * * SET TARGET2 TO NXM ADDRESS (TO CAUSE AN ERROR IF RETURW I ENTERED) ; 012702 177777 MOV #177777,R2 CLR R4 ;* * * * CLEAR TARGETl C.05004 ;* * * F.ND IF SOl 900: ;* * * CLEAR ALL ODT FLAGS EXCEPT ; REGISTER FLAG 042703 177577 BIC 11•c<REGFGB>,R3 000167 177276 JMP 50100 ; * * EllD UNTIL ;* ENO SeRIAI. ODT MONITOR ( KXTNF - KXTllCA Native ~irmware MACPO V05.00 SODTM - SFRIAL ODT ~ONITOR 1 2 3 4 5 165450 6 1 165450 B 165452 9 165454 10 165456 00:51 Paqe 35 ; The following subroutines were created to conserve •e•ory and are only used ; by thts module. ;* PROCFOURE DISPLAY REGISTER NUMBER OISPRG: 010 201 006301 006301 062101 004161 ;* * CALCULATE DISPLAY POINTER "1 166303 MOV ASL ASL AOD 000660 CALL DI SP ST R2 1 Rl Rl jjRf,.GD IS, Rl 11 U1 00 12 165462 13 14 165466 15 lb 11 18 165410 19 20 165410 21 165414 22 23 165500 24 165502 25 26 165%6 21 28 29 30 165510 31 32 165510 33 34 165514 35 36 165520 31 ( 000201 ;* * DISPLAY STRING ;* F.ND DISPLAY REGISTER NUMBER l<ETURN ;* PROCEDURE EXAMINE AND DISPLAY EXMl1IS: ;* * DISPLAY "/" 012101 004161 005000 004161 166301 000646 MOY CALL IOHNOS,Rl DISPST 000234 CLR CALL RO EXAM TN ;* * EXAMINE DATA @ TARGET )* ~NO EXAMINE AND DISPLAY 000201 RET!'RN ;* PROCFDURE PRINT CRLF PCP.LF: 012101 166214 MOV #CRU', Rl 004167 000626 ClLL DISPST 000201 !il'TURN ;* * POINT TO STRING ;* * DISPLAY _STRING ;* END PRJNT CRLF ( KXTNF - KXT11CA Native Flr•ware HlCRO ¥05.00 AODREG - GET ADDRESS/REGISTER 00:51 Pa9e 36 .SBTTL AODREG - GET .ENAllLE LC,GBL 1 2 3 4 5 Module na•e: ADnR~G ~DDRF.SS/PEGISTER - GET lDDRlSS/REGTSTER 6 Syste•: KXTll-CA Native Firmware 1 8 9 10 11 12 13 14 15 16 Functional Description: This module is used by the serial ODT •onitor. It receives data fro• the console serial line, accumulates a word tarQet dell•lted by ~ valid co•~and or an error. The valid co••ands are: " 1 " 1 CR, LF, "/", "G" or "P". It returns the target, the co••and the tarqet type (register or address) and the error status. 17 18 19 20 21 22 ;Tnput Parameters: ; NONF. 23 \.Tl l.D 24 25 ;Output Parameters 26 27 1) 28 29 30 31 32 ; = RO COH~ANO RECEIVED 2) R4 =TARGET (ADDRESS OR R~GISTER NO.) 3) RJ, BIT REGFGB - 1 = kFGISTER NO., 0 ADDRESS 4) RJ, BIT DARFGB - ADDRESS/R~GISTER RECEIVED WITH COMMAND FLAG, 1 YES. 0 NO 5) RJ, BIT ERRFGB - 1 = ERROR, NOT ALTERED IF NO ERROR = = 33 34 ;DATA STRUCTURES USED 35 36 NONF. 37 ;Routines Used 38 39 40 41 1) CHKCHR 2) ACCUH = ( KXTNF - KXTllCA Native Flr•ware MACRO VOS.00 ADDREG - GET ADDRESS/REGISTER 1 2 165522 3 4 5 165522 6 7 165526 8 9 165530 10 11 165530 12 13 165530 14 15 165534 16 17 165536 18 165542 19 20 21 165544 22 23 165550 24 :.!5 165550 26 165552 00:51 ( Page 37 ;* PROCF.DURE GET ADDRESS/REGISTER ADC> REG:: 042703 BIC 000006 CLR 005004 ;* * CLEAR ADDRESS/REGISTER DONE FLAG ;* * CLEAR DATA RECEIVED FLAG #<ARDFGB I DARFGB>,R3 ;* * CLEAR ACCUMULATED NUM&ER R4 ;* * DO UNTIL DONE FLAG SET ADlOO: ;* * * DO UNTIL NON NUMBER CHARACTER RECEIVED AD200: ;* * * * GET INPUT CALL CF.TIN BCS AD253 BIT BNE #FCHFG8,R3 ADDO BIC #REGFG8,R3 105703 100002 TSTR BPL R:l AD.i40 010004 000402 MOV OP RO,R4 A0250 CALL ACCUM BIS #FCHFGB 1 R3 004767 006016 103417 ;* * * * IF INPUT = 0 THRU 7 ;* * * * * If FIRST CHARACTER 032703 001002 000010 042703 000200 AD220: I 27 °' 0 28 29 165554 30 165556 31 32 165560 33 34 165560 35 36 165564 37 38 165564 39 40 165570 41 165572 42 43 165574 44 45 165574 46 165600 47 48 49 165602 50 51 165606 52 53 165606 54 165612 5!> 165614 56 !'7 165614 ;* * * * * THEN ;* * * * * * CLF.AR REGISTER FLAG ;* * * * * END IF ;* * * * '* IF REt;ISTER FLAG = 1 ;* * * * * THEN ;* * * * * * REPLACE ACCUM YALUF. WITH INPUT ;* * * ... * ELSE AD240: 004767 005754 A0250: ;* * * * * * ~CCUMULATE DATA ;* * * * * END IF ;* * * * * SET FIRST CHARACTER RECEIVED FLAG = 1 052703 000010 ;* * * * * CLEAR NON NUMERIC INPUT FLAG 000 241 000424 CLC BR AD290 Clo!PI' l!LO RO,ll"a AD255 BIC #40,RO CMPB BtlE rs, Ro T~TB R3 AD253: 120027 103402 000141 042700 000040 AD255: 122700 001013 000123 ;* * * * * IF INPUT => "a" ;* * * * * THEN ;* * * * * * CONVERT TO UPPER CASE ;* * * * * F.ND IF ;* * * * * IF INPDT = "S" OR "s" AD2BO AD270: 105703 ;* * * * ELSE ;* * * * * AND R~GISTER FLAG = ( - ~X1NF ADDREG ~XTllCA Mative Firmware - G~T ADDRESS/REGISTf.R 58 165616 59 60 165620 61 165624 62 63 165626 64 65 66 165632 67 68 165636 69 165640 ( ~ACRO ¥05.00 100011 032703 001 406 000010 012704 000010 00:51 Page 37-1 LPL AD280 BIT BF:Q #FCHFC:8,R3 AD2RO HOV #10,!<4 ;• * * * * AND NUT FIRST CHARACTER RECEIVED ;* * * * * * 052703 000012 li IS 000241 000401 #<DARFGR I FCHFGH> 1 R3 ;• * * * * • SET NON NUMERIC FLAG CLC bP "' ....... ;* * " * * F.LSE An2fl0: ;* * * * * * SET NON NOMERIC INPUT FLAG 000261 SEC =1 ;* * * * * ENO IF A0~90: ; * * * * END If ;* * * FND UNTIL 103331 BCC AD200 AD300: I 012701 122100 001404 022701 00140 4 000172 165734 AD400: 16:>742 HOY CMPR BEQ Cl'P BFQ bR AD500: 0'52703 000414 000014 122700 001007 000122 032703 001004 000010 ICHTAR,Pl (Rl)+,RO AD500 #CHF.ND,Rl AD600 AD400 ;* * * CA~E COMMA~D RECEIVED ; * • • llllt.h "," ; * * * OR CR ; * * * OR l.F ; * * * o~ "I" ; * * * OR "G" ;* * * OR "P" ;* * * * SET FIRST CHARACTER FLAG = 1 ;* * * * SET DGNE FLAG 1 #<FCHFG8 I ARDFGl:l>,RJ A0800 ;* * * WHEN "R" = blS HR AD600: 052703 CMP!l B 1-'E #"R,RO AD700 ;* * * AND FIRST CHARACTER RECEIVF.D FLAG blT llNE 000212 BIS 005004 00040 2 CLR 11P 112 113 165720 114 =0 AD290 11 78 165644 79 165646 80 Bl 112 83 84 85 86 87 165646 88 165652 89 165654 90 165656 91 165662 92 165664 9J 165666 94 95 96 165666 97 165672 98 99 165674 100 165674 101 165700 102 103 165702 104 165706 105 106 107 108 165710 109 110 165714 111 165716 ~ET ;* * * * * * SET FIRST CHARJCTER RECEIVED FLAG 10 71 165642 72 73 165642 74 75 165644 76 = 10 DATA RECIEVED FLAG = 1 ;* * * * * * SET ACCUMULATED VALUE A0700: IFCHFG6,R3 AD700 = ;* * * * SET REGISTER FLAG 1 ;• * * * ~ET FIRST CHARACTER FLAG ;• * * * SET OATA RECEIYEO FLAG = #<DARFGB I REGFGB I FCHFGB>,RJ ;* * * * Cl.FAR TARGET R4 AD800 ;* * * ELSE ;* * * * SET ERROR FLAG =1 =0 ( ( KXTMF - KXTllCA Native Flr•ware MACPO V05.00 ADDREG - GET ADDRESS/REGISTER 115 116 165720 117 118 1657 24 119 120 165724 121 165730 122 123 165732 124 125 l 2b 127 128 129 165734 130 165742 131 O'I "' 052703 100004 00:51 Page 37-2 ;* * * * SET DONE FLAG I ARDFr.B> 1 RJ ;* * * F.ND CASE BIS #<~RRFCB iHT #ARDFGB, R3 ADlOO AD800: 1* * END ONTIL 032703 001677 000004 llF.Q ;* 000207 Rl'TIJRN * RETURN ;* END GET ;CHARACTER TAllLE 054 015 012 CH TAB: Cl'END: • ASCII .EVf.N •, "< 15><12 > /GP• 0 ADDRESS/R~GISTER ( ( KXTNF - ~XT11CA Native Firmware MACRO VOS.00 EXAMIN - EXA~INE 1 2 00:51 P~ge 38 .SBTTL EXA~IN - EXAMINE .FMABLE LC,GBL 3 4 5 6 1 8 9 10 ModulP. name: EXAHIN - EXAMINE System: KXT11-CA Native Firmware 11 12 13 14 Functional Description: 15 16 17 18 19 20 21 22 23 24 2!i 26 °' w 27 28· 29 This module performs the meaory or register examine function for both the Q bus and serial ODT •onitors. the output of this •odule is directly to the user (the serial line or the dual port RAH). ;Input Paraaeters: Rn - FLAGS, I BIT CRNGFGB~ = l (RANGE F.XAHIN) 1 BIT = 0 (SINGLE EXAMIN) R2 - TARGE'I l BIT 0 - TYPE, BIT = 0 (RFGTSTER), BIT = 1 (ADDRESS) R'I - TAPGF.T 2 BIT 0 - TYPE, BIT = 0 (R~GISTER) 1 BIT = 1 (ADDRESS) ;Output Parameters 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 R3 1 BIT (ERRfGB) - ERROR FLAG, BIT ;DATA STRUCTURES 1) 2) 3) 4) PRINT STRINGS DUAL PORT 0 AM REGISTER 2 JOP STATUS REGISTeR IOP COMMAND PEGISTF.R ;Routines Used 1) DISPLAY STRING (DISPST) 2) DISPLAY WORD (OISPWD) 3) CHECK CHARACTER (CHKCHR) 1 (ERROR), NO ERROR BIT NOT ALTERED ( KXTNF - KXTllCA Native firmYare MACRO V05.00 EXAMIN - FIAMINE 1 2 --· 2 RNGFGB 000002 3 4 5 6 ;* PROCEDURE EXAMINE EHMIN:: 1 165742 8 9 165142 10 165750 00:51 Page 39 ;* * IF SFRIAL DDT MODE EHT l~XSSOF,~#KW.STA 001525 BEQ EXlOOO 105703 100021 l'STB RPL R3 EX300 CMP BHI Cl.R • 11, R2 1.XlO R2 CMP UHi CLR #11,R4 EX20 114 032131 000100 175002 ;* * THEN ;* * * IF THE TARGET IS A hF.GISTER 11 °' A 12 13 165752 14 165754 15 16 17 165756 18 165762 19 165764 20 165766 21 22 165766 23 165772 24 165714 25 165776 26 27 28 165176 29 166000 30 166004 31 32 33 166006 34 166010 35 166014 36 166016 37 38 166020 39 40 166020 41 166024 022702 101001 005002 000011 EXlO: 022704 101001 005004 000011 006304 062704 060504 000 404 117750 117750 042702 042704 000001 000(.101 ASL ADD ADD R2 #APLROO,R2 R5,'l2 ASL AOD ADD bR R4 #Al'LROO, R4 R"i, r-4 EX400 000007 010204 EX500: l::X600: ;* * * * SET TARGET 2 = ; (TARGF'.T 2 * 2) + RlG 0 SAVE ADDRESS OFFSET ;* * * FLSE ;* * * * CLEAR ~IT 0 Of TARGET 1 AND TARGET 2 IHC dlC iBITO,R2 #BITO,R4 BIT ilNE #RNGFGll,RO EX500 HOV R2,q4 E.X400: 032700 001001 MOO 10 ;* * * * SET TARGET 1 = ; (TARGET * 2) 1 + REG 0 SAVE ADDRESS OFFSET F.X300: 42 43 166030 44 45 166030 46 166034 47 48 49 166036 50 51 166040 52 53 166040 54 55 56 57 ;* * * * SET TARGET 2 TO FX20: 006302 062702 060502 ;* * * THF'.N ;* * * * SET TARGET 1 TO MOD 10 ;* * * END IF ;* * * IF NOT RANGE EXAMINE ;* * * THEN ;* * * * SET TARGET 2 =TARGET 1 ; * * * F'.ND IF ;* * * DO UNTIL TARGET 1 = TARGET 2 * * * OR ERRO~ FLAG = 1 * * * OR INCREMENTED TARGET 1 = 0 * * * * GET DATA PER TARGET 1 AND INCREMENT TA~GET 1 POINTER ( ( 00:51 Page 39-1 000241 012201 CLC HOV (l'Ll)+,Rl 000 240 103003 NOP HCC KXTNF - KXTllCA Native Fir•ware HACRO VOS.00 EXAMIN - EXAMINE CTI (.)'I 58 166040 59 166042 60 61 166044 62 166046 63 64 65 166050 66 67 166054 68 69 166056 70 71 166056 72 73 166062 74 166064 75 76 77 166066 78 79 166072 80 81 166072 82 166076 83 84 85 166100 86 166104 87 88 166110 89 166112 90 91 92 166114 93 166116 94 166120 95 166124 96 166126 97 166132 98 166136 99 100 166140 101 102 166140 103 166142 104 105 166146 106 107 166146 108 166152 109 110 166156 111 112 166156 113 166160 114 166162 ;* * * * IF NXM 052703 EX700 ; * * * * THEN ;* * * * * SET ERROR FLAG 100000 BTS #ERPFGll,R3 BR EX1300 ;* * * * * FXIT EXAMINE (NON STRUCTURED EXIT) 00050 2 ; * * * * F.ND IF EX700: 004767 000450 020 20 4 10140 2 042700 000002 ;* * * * OISPLlY DATA CALL OISPWO CMl' Bl.OS R2, R4 Elt'75 0 blC #RNGfGB,RO ;* * * * IF TARGET 1 = TARGET 2 ;* * * * THEN ;* * * * * SET liANGF. FLAG ;* =0 * * * FNO IF EX750: I 032700 00142.7 000002 IHT BEQ #RNGFGB,RO EXBOO 012701 004767 166274 000236 MOV ClLL jjCRLF,Rl DI SP ST 105703 100012 TSTe ilPL R3 F.X760 010201 160501 162701 006301 062701 004767 000403 MOV SUB ;* * * * ff RlNGI EXAMINE ;* * * * THEN ;* * * * * DISPLAY CR Lf ;* * * * * If TYPE IS REGISTER ; * * * * * THE·N ;* * * * * * DISPLAY REGISTER NUMBER 177750 sue 166303 000210 ASL AOO CALL bP R2,Rl li5, Rl #APLROO,Rl Rl IPEr.OIS,Rl DI SP ST EX770 ;* * * * * F.LSE EX760: ;* * * * * * DISPLAY ADDRESS 010 201 004767 HOV CALL 000364 R2, ill DISPWO ;* * * * * F.NO If ~:xno: ;* * * * * DISPLAY "/" 012701 004767 166301 000170 MOV O.LL !IOPENDS,Rl DTSP ST TST BMI TST li3 ;* * * * ENl1 IF EXBOO: 005703 100 40 4 005 70 2 ;* * * ENO UNTIL EX900 112 ( KXTNF - KXTllCA Native Fir•vare MACRO V05.00 EXA~IN - EXAMINE °' O'I 115 166164 116 166166 117 166170 118 166172 119 120 166172 121 122 166176 123 166200 124 125 126 166202 127 166204 128 166210 129 130 166212 131 166216 132 166220 133 166222 134 135 166222 136 166222 137 138 166224 139 140 166224 141 142 1662i6 143 166230 144 145 146 147 166232 148 166234 149 166240 150 151 166242 152 153 166242 154 166244 155 15tl 166250 157 166252 158 159 160 166254 161 162 166260 163 164 1662&0 165 166 166262 167 168 166262 169 001402 020 20 4 101723 00:51 Paqe 39-2 BEQ BLOS EX900 R2 1 !14 EXbOO sue #2 1 R2 T~TB BPL RJ EX970 SOB SUB ASR R5 1 R2 #APLROO,R? r..2 CNP tll' I CLR #11, R2 lX950 R2 C~P EX900: 162702 000002 105703 10001(1 160502 162702 006 20 2 022702 101001 005002 177750 000011 ;* * * SlT TAPGET BACK 2 ;* * * IF TYPE IS HEGlSTER ;* * * THF.N ;* * * * RlSTOr..F. TARGET 1 TO REGISTFR NO. EX9'l0: ;* * * * SET TARGET TO HOO 10 ; * * " END IF EX970: 000 417 Bf' EX1300 I ;* " ELSl 1'.XlOOO: ;* * * SAVE TARGET 010 246 HOY R2 1 -CSP) 105703 100004 TSTB BPL R3 EX1050 ;* * " IF TARGET IS REGISTER ;* " * THEN ;* * " * SET TARGET = (2*TARRGET) + REGISTFR 0 SAVE ADDRESS OFFSET ; 00&302 06270 2 060502 ASL A!lC. ADO 177750 R2 llAPLROO,R2 R5 1 R2 EX1050: 000 241 011237 000 240 103002 052703 ;* * * GET DATA PER TARGET AND PLACE IN DPR 2 etc 1751104 100000 MOY (R2) 1 ~#KW.SC2 NOP ilCC EX1200 BTS 41ERRFGli,R3 ; * * * IF NXM i* * * THEN ;* * * * SET ERROR FLAG EJ!l 200: 012602 ;* * * END IF i* * * EliO IF ;" * * RESTORF TARGET ~nv CSP)+ 1 R2 ; * " END IF lX1300: i* * RETURN 000207 RO:TORN ;* END EXAMINE ( KXTNF - KXTllCA Native Firmware MACRO DISPST - DISPLAY STRING ( ~05.00 00:51 Page 40 .SBTTL DISPST - DISPLAY STRING .ENABLE LC,GBL l 2 3 4 5 6 7 Module name: OISPST - DISPLAY STRING Syste•: K~Tll-CA Native Firmware 6 9 10 11 12 13 Functional Description: 14 15 This module is a general use utility that sends an ASCII string out the console serial line. Th~ display string ls specified by passing the address of the first character to the routine. The end of the string ls marked by a null character. 16 17 lll 19 20 21 22 ;INPUT PARAMETERS: 23 ; 1) Rl - Start, of string address 24 25 ;OUTPUT PARAMETERS: 26 O'I -..J 27 NONF. 26 29 ;DATA STRUCTURES USED: 30 31 1) SLUl CSRs ( KXTKF - KXTllCA Native Fir•ware MACRO V05.00 00:51 Page 41 --. 15 12 DJSPST - DISPLAY STRING °' CX> 1 2 3 4 5 6 166264 1 166266 B 166212 9 166274 10 166277 11 166301 12 166303 13 166306 14 166307 15 166312 16 166313 17 166316 18 166317 19 166322 20 166323 21 166326 22 166321 23 166332 24 166333 25 166336 26 166337 27 166342 28 166343 29 30 31 000015 000 012 CR Lf 077 015 040 015 015 057 122 000 012 000 012 000 000 060 000 122 061 000 122 062 000 122 063 000 122 064 000 122 065 000 122 066 000 122 061 000 122 123 000 100 000 ERROR: PROMPT : SPACE: CRLF:: CRDS:: OPF.NDS:: WEGDIS:: ==: .lSCIZ •7• .lSCIZ <rR><Lf>"@" • lSCIZ • • .lSCIZ <CR><LF> • .lSCIZ <Ck> • .lSCIZ • .lSCIZ "RO" .OLKO 1 .1sc1z "Rl" .BLKB l .ASCIZ "R2" .BLKB 1 .lSCIZ "RJ' .OLKB 1 .ASCIZ "R4' .Bl.KB 1 • .lSCIZ "RS" .BLKB 1 .lSCIZ •R6' .BLKB 1 .ASCIZ "R1" .BLKB 1 .lSCIZ •ps• 0 0 / • F:VF.N ( KXTNF - KXTllCA Native Fir•vart MACRO VOS.00 DISPST - DISPLAY STRING 1 2 166346 3 4 166346 5 6 166346 00:51 Page 42 ;* PROCF.DURE DISPLAY STRING OISPST:: ;* * DO UNTIL NOLL CHARACTER POINTED TO DSlOO: ,.• * * DO UNTIL TRANS~IT BUFFER EMPTY DS200: 1 8 9 166346 10 166350 11 166354 12 13 166356 14 166362 15 166364 16 166370 010046 004767 012600 Mnv 005240 CALL HOV RO,-(SP) CHltCHR (SP)+,RO 177564 TSTR BPL BIT B~E l!#XCSRH DS200 #XUf'FGil,R3 05200 HOVB ( Rl) +,@llXBUFl A 105711 001362 TSTB ilNE (Rl} 0$100 000207 RETURN 105737 100371 032703 001366 000040 112137 177566 17 18 166372 19 20 166376 21 166400 22 23 166402 24 °' l.O ;* * .. OR XOFF ~LAG = 1 ;* * * * TF.ST FOR INPUT ;* * * ENO UNTIL ;* * * S~ND CHARACTER PER POINTER ;* * ENO UNTIL ;* * RETURN FROM CALL , ' ;* FND D[SPLAY STRING ( KXTNF - KXTllCA Native Fir•vare MACQO V05.00 DATCOM - GET DlTl/COM~AND 00:51 Page 43 .SBTTL DATCOM - GET .ENABLE LC,r.BL 1 2 3 4 DATl/COM~AND Module naae: DATCOM - GET DATA/COMMAND 5 6 1 8 9 System: KXT11-CA ~ative Firaware 10 11 12 13 Functional Description: 14 15 This aodule is used by the serial ODT monitor. It poles SLUl for valid data and returns when a CR, LF OR • are received or on an error. 16 17 18 19 ;Tnput Paraaeters: 20 21 22 ; 23 24 25 ;Output Parameters 1) RO 2) R4 3) RJ 4) QJ - 26 -.J 0 NONf: 27 28 29 30 ;DATA COMMAND RECEIVED INPOT DATA BIT ERRFGB, ERROR FLAG: 1 ON ERROR, NOT ALTERED IF NO ERRORS HIT OARFGR, DATA PECV"O WITff COMMAND FLAG: 1 = YES, Q = NO STROCTU~ES 31 NONE 32 33 34 35 36 ;Routines Used 37 ; 38 1) ACCUM 2) CHKCHR = USF.O ( ( KXTNF - KXTllCA Native firmware MACRO V05.00 DATCOM - GET DATA/COMMAND 1 2 166404 3 4 5 166404 6 7 166410 8 9 166412 10 11 166412 12 13 166412 14 15 166416 16 17 166420 18 19 166424 20 21 166426 22' ......J I-' 23 166426 24 25 26 166430 27 1664H 28 29 166436 30 166442 31 32 166444 33 166450 34 166452 35 36 166452 37 166456 31l 39 166460 40 41 42 166460 43 44 166464 45 46 166464 47 166470 48 166472 49 50 166472 51 52 00:51 Page 44 ;* PROCEDURE GET DATA/COMMAND DATrOM:: 042703 RIC 00000 3 005004 CLR ;* * CLEAR DATA RECEIVED FLAG ;* * CLEAR OATA/COMMAND DONE FLAG il<DARFGB I OCOFGB>,RJ ;* * CLfAR ACCUMULATED NUMBER R4 ;* * no UNTIL DONE FLAG SET DAlOO: ;* * * * nu UNTIL NON NUMF.RIC INPUT DA200: ;* * * * * GET INPUT 004767 005134 CALL GfTTN llCS DA370 CALI. ACC UM ;* * * * * If NUMERIC INPUT 103403 ;• * * * * * ACCUMULATE NUMBER 004767 005114 ;* * * * * * SET NON NUMERIC FLAG = 0 000 241 CLC ;* * * * * END IF DA370: 103371 HCC 122700 001406 000015 122700 00140 3 000012 122700 001003 000136 CMPB BfQ [l,\ 2 09 ;* * * * ENO UNTIL ;* * * CASE CHARACTER INPUT ;• * * WHEN CR #15,RO DHOO ;* * * OR LF CMPR BEi.i #12 1 RO DA400 CMPB &NE ,--,Ro DA500 ti IS llDCDFGB,R3 dR 0~600 ;• * * OR DA400: 052703 000 40 2 000001 ;* * * * SET DONE FLAG DA500: ; * * * ELSE * * * SET ERROR FLAG ;* * * * SET DONE FLAG i<EPRFGR I OCOFGll>,D3 ;* * * END CASE ;* 052703 100001 &IS OA600: ;* * END UNTIL 032703 001750 000001 bIT Bf.Q #DCDFGll,R3 DA100 DA700: ;* 000207 * RETURN RFTUll'f ;* END GET DATA/COMMAND ( KXTRF - KXTllCA Native Fir•ware MACRO vos.oo Dl'POS - DEPOSIT~ ( 00:51 Page 45 .SBTTL DEPOS - DEPOSITE .ENABLE GBL,LC 1 2 3 4 5 6 Module naae: OEPOS - DEPOSIT 1 8 Systea: KXTll-CA ~ative fir•ware 9 10 11 12 13 14 15 ; Functional Description: 16 17 ; 18 19 20 ;Input Paraaeters: 21 22 1) 112 - ADDRESS i!) R4 - DATA 23 24 25 26 This aodule is used by both the Q bus ODT and the serial ODT aonitors. It deposits the passed data in the register or aeaory location specified. 3) RJ bit REdFGB - Register flag ;Output Parameters 27 .....J 20 (\.) 29 30 31 32 33 34 35 36 l} R3, BIT (ERR~GB) ;DATA STHUCTURES USFD ; 1) USER REGISTER SAVE AREA ;Routines Used NONE 37 38 39 40 41 - eRROR FLAG, BIT ;Global Syabols Defined NONE ; l (ERROR), BIT NOT ALTERED IF NO ERROR ( ( KXTNF - KXTllCA Native firmware MACRO V05.00 OF.POS - OEPOSITE 1 2 166474 3 166474 4 5 166476 6 166500 00:51 Paqe 46 ;* PROCEDURE OEPOS:: 010246 HOY R2,-(SP) 105703 100004 TSTA BPL R3 DESO 1 8 ....J w 9 166502 10 166504 11 166506 12 13 166512 14 15 166512 16 166514 17 166516 18 19 166520 20 21 22 166522 23 24 166526 25 26 166526 27 166530 28 006302 06050 2 06270 2 ASL ADD ADO R2 R'i,R2 #APLROO,R2 000 241 010 41 2 000 240 CLC HOV NOP 1<4,(R2) 103002 BCC DF200 177750 ;* * IF TARGET IS A REGISTER ;**THEN ;* * * CONVERT REGISTER NO. TO ADDRESS ;* * FND If DESO: ;* * DEPOSIT DATA AT SUPPLIED ADDRESS ; * * Ir NXM ;* * THEN ;* * * SET ERROR FLAG 052703 100000 BIS #ERPFGB, R3 I ; * * ENll IF DF.200: 012602 000 207 MOY (SP)+,R/ ;* * RETURN fPOH CALL HTURll ;* <:NO DEPOSIT ( ( KXTNF - KXTllCA ~ative firmware MACRO VOS.00 DISPWD - DISPLAY WORD 1 2 3 4 5 6 7 6 9 00:51 Page 47 .SBTTL DlSPWD - DISPLAY WORD .FNABLE LC,GbL Module name: System: DlSP~D K~Tll-C- - DISPLAY WORD Native firmware 10 11 12 13 14 15 16 11 16 19 20 21 functional Description: This module is a general use utility that converts an 16 bit value to an ASCII string and sends it out the console serial line. ;INPUT PAPAMETEPS: n 1) 24 ;OUTPUT PARAMETERS: Rt - DATA WORD TO BE 23 .......) ""' 25 26 27 26 29 30 HONE ;DATA STRUCTURES QSED: 1) SLUl CSRs DJSPLA~ED KXTMF - KXTllCA Native Fir•ware MACRO V05.00 DISPWD - DISPLAY WORD 00:51 Page 48 1 ;* PROCF.DURE DISPLAY WORD 2 3 166532 4 5 166532 6 166534 7 8 1665.16 9 10 11 166542 12 166544 13 166546 DTSPWD:: ;* * SAYE REGISTERS USED 010046 010146 012702 000006 005000 006301 005500 HOY "lOV RO,-(SP) R7,-(SP) MOY #6, <?2 CLR ASL AOC ill ;* * SHTFT HIGH BIT OF DISPLAY WORD INTO ; NEXT NUMBER BUFFER RO ilO ;* * DO UNTIL CHARACTER COUNT : 0 14 --.J U1 15 166550 16 17 166550 18 t9 t66554 20 21 22 166554 :.!3 166556 24 166562 25 26 t66564 27 166570 28 t66572 29 166576 30 31 166600 32 33 166604 34 35 36 166606 37 1666t0 38 166612 39 1666t4 40 1666t6 41 166620 42 166622 43 166624 DilOO: 062700 000060 ;• * * CONVERT NEXT NUMBER BUFFF.R TO ASCII ADD i160, RO 005032 MOV CALL HOV RO,-(SP) CHKCHR (SP)+,RO B'IE (HXCSRU DI200 #XOFF'GB, R3 DT200 MOVB RO,UXi:IUFlA CLR RO DI200: 010046 004761 012600 ;* * * DO UNTIL TRANSMIT BUFFER EMPTY ;* * * OR XOFF FLAG = 1 ;* * * * CHECK FOR INPUT ;* * * END UNTIL t05737 100371 032703 00t366 t 77564 TSTB BPL 000040 BIT 110031 177566 005000 ;* * * DISPLAY NUMBER ;* * * CLEAR ~EXT NUBBER BUFFER ;* * * SHIFT NEXT TRREE HIGH BITS OF DISPLAY WORO ONTO NEXT NUMBER BUFFER ; 006301 005500 006300 00630t 005500 006300 006 30 t 005500 ASL ADC ASL. ASL AOC ASL ASL ADC Rt RO l<O Rt RO RO 005302 DEC R2 001347 BNE DllOO 012602 012600 HOV MOV (SP)+,R2 (SP)+,RO 000207 RETUl<N Rt RO ;* * * DECREMENT CHARACTER COUNT 44 45 166626 46 47 t66630 48 49 166632 50 t66634 51 52 166636 53 ;* * SET CHARACTER COUNT = 6 ;* * END UNTIL ;* * RESTORE ReGISTERS ;* * RETURN FRO~ CALL ;* ENO DISPLAY WORD ( KXTNF - KXTllCA Native Fir•wa,_ MACPO V05.00 DISPWD - DISPLAY ~ORD 00:51 Page 49 ( 1 .SBTTL A8AUD - AUTO BAUD .ENABLE LC,GBL 2 3 4 5 6 7 8 ; Module name: ABAUD - AUTO BAUD ; System: KXTlt-CA Native Ftraware 9 10 11 12 13 Functional Description: 14 This aodule perfor•s the auto baud function on the console serial line. It is used by the serial ODT monitor. The decision whether to atteapt to auto baud is made in this module. If the prograaaable baud rate enable bit of the DLART is set or writing to the baud rate bits does not change there value, the auto baud function is not perforaed. If the auto baud function is perforaed this mode will continue to attempt to determine the baud rate until it succeeds. 15 16 17 18 19 20 21 22 23 24 25 26 -..J °' The auto baud function ls perforaed by setting the baud rate to 2400 and coaparing,the input characte~ data td that of a table. This character aust be a CR and be sent at a baud rate within the range of 300 to 9600 (in doubling increaents). 27 211 29 30 31 32 33 34 35 The baud rate table has two enteries for 4800 baud to eliminate the 4800 baud detection problea that exists for the Falcon. ; ;Input Parameters: NONE ; ;output Paraaeters 36 NONE 37 38 39 40 ; ;DATA STRIJCTURES SLUl CSR (XCSRll) 41 42 43 44 45 46 ; ;Routines Used NONE ( KXTNF - kXTllCA Native Firmware MACRO VOS.00 ABAUD - AUTO BAUD 1 2 3 4 5 6 1 000002 000012 000022 000032 000042 000052 B300 11600 B1200 B2400 84800 B9600 8 9 10 166640 11 166641 12 160642 13 166643 14 166644 15 166645 16 166646 17 166647 18 166650 19 166651 20 166652 21 166653 22 166654 23 166655 24 200 002 170 012 346 022 015 032 362 042 363 042 311 052 00:51 Page 50 = = = 12 = = = 22 32 42 52 INDATA: .BYTE .BYTE .BYTE .BYTE .B'lTE .BYTE .BYTE .BYTE .BYTE .BYTE .BYTI:: .BYTE .BYTE ENOTAB: .flYTE .EVF.N 200 BJOO 170 8600 346 111200 00:51 Page 51 l 'i il2400 36:.> B4800 363 84800 377 B'l60o' ...J .....J KXTNF - KXTllCA Native Firmware MACRO V05.00 ABAUD - AUTO BAUD 1 300 BAUD DLART RATE COOE n n 600 " " 1200 " n 2400 " " " 4800 " "n " "n 9600 " 2 .. ;RECEIVE DATA AT 300 BAUD(BlUD RATE CODE ; . .. ; n ; ; . ; n ; " " .. .. .. 2400 " " " 4800 n n " 4800 n .. , 9600 " " 1200 " . ' " 600 .. .. " " .. " " .. " " ( ( KXTNF - KXTllCA Native Firmware MACRO V05.00 ABAttD - AUTO BAUD 2 3 166656 4 5 166656 6 166664 7 oo:st Page 52 ;* PROCFDURE AUTO BAUD AllAUO:: 032737 001041 000002 177564 llTT BNt: #2 1 @#XCSR1A A!l600 ; * * THF.N ;* * * SET PBF. llIT B -..J co 9 166666 10 11 166674 12 166702 13 14 15 166704 16 17 166712 lB 19 166712 20 166714 21 22 166716 23 24 166722 25 26 166722 27 166726 28 29 1667 30 30 31 166734 32 33 166740 34 166742 35 166744 36 166750 37 3B 166752 39 40 166754 41 42 166756 43 44 166756 45 46 166762 47 166764 48 166766 052737 000002 171564 BIS 112,@#XCSRU 032737 001432 000002 171564 HIT EIEQ #?,@#Jl:CSRU All'lOO =0 =l ;* * * IF P!IE RF.ADS BACK AS l ;* * * THEN ;* * * * SlT BAUD RATE TU 2400 012737 000032 177564 MOV llB2400 1 ta#XCSRU CLR SOtJ RO KO,. TSTA @fll{llUFl A ;* * * * no UNTIL BAUD RATE FOUND AlllOO: ;* 005000 077 00 l 105737 177562 I AB 200: * * * * DELAY .25 SECONDS ;* * * * * CLEAR RECEIVE BUFFFR ; * * * *.1 * DO UlfT IL OAT A PECE IVED ;* * * * * FND UNTIL 105737 100 375 177560 TSTB HPL @#RCS RU A!1200 113700 177562 MOVA @#RBUFl A1 RO 012701 166640 HOV #INDlTA,Rl 120021 001405 022701 001760 19300: 166655 CMPP llF. ... CMP BO:Q 005201 l!IC 000771 HR ;• * * * * G~T INPUT DATA ;* * * * * SET POINTER TO TOP OF TABLE ;* * * * * DU WAIL~ DATA <> (POINTER) OR LAST VALUE RO,(Rl)+ 111400 #ENOTAR,Rl APlOO ;(NON STkUCTUPED BRANCH FOR CODE OPIMIZATION) ;* * * * * * INCREMENT POINTtR Rl ;* * * * * END •HILE A11300 ;* * * * ~ND UNTIL (CONDITION TESTED ABOVE TO SAVE CODE) AB400: ;* * * * St:T BAUD RATE P~R TABLE 111137 171564 MDVII (Rl),@#XCSRU CLR RC ;* * * * PELAY .5 SECONDS 005000 077 00 l 077001 soa RO,. 503 RO,. ;• * * F:ND IF 49 50 166710 51 52 166770 AR~OO: ;* * F.ND IF AB600: ; * * RETURN '53 '54 166770 55 ;* * IF DLART XCSR PBRE BIT 000207 RF.TUR'! ;* ~ND AUTO BAUD ( ( KXTKF - KXTllCA Native Firmware MACRO V05.00 00:51 Pa11e 53 ABlUO - AUTO BAUD 1 .SBTTL GOPQOC - GO/PPOCEFD .ENABLE LC,GBL 2 3 4 5 6 1 8 Module na•e: GOPROC - GO/PROCEED System: KXTtl-Cl ~ative Firmware 9 10 11 12 ; 13 14 15 16 Functional Description: 17 ltl 19 20 21 -.J \0 This •odule perfor•s the 110 and the proceed functions for both the serial and Q bus ODT. lt has seperate entry points for each Go and PROCEF.D. The difference bein11 that a PC value is passed to the module tor the GO function. This •odule tests the user stack area and the user PC value. If a NXM is encountered at the user SP the module returns fro• the call. If no error 1s encountered contr.111 ts passed to the user application. 22 23 24 ; 25 ;Input Parameters: 26 27 26 29 1) RO = USEP PC VALUE FOW GO CO~MlNO ;output Parameters 30 31 32 33 34 :15 36 NONF. ; Routines Used NONF ( ( KXTNF - KXTllCA Native Firaware MACRO VOS.00 COPROC - GO/PROCEF.D CX> 0 1 2 3 166772 4 5 6 166772 7 8 166776 9 10 167002 11 12 167006 13 14 167010 15 16 167010 17 167016 111 167022 19 167026 20 21 2::t 167030 23 167034 24 167036 25 167040 26 167044 27 167046 28 167050 29 167054 30 167056 31 16706 2 32 33 34 167064 35 167070 36 37 167074 38 39 167102 40 167106 41 167112 42 167116 43 44 167122 45 167126 46 47 167130 48 167132 49 167134 50 167136 51 167140 52 167142 53 54 167144 55 56 167146 57 00:51 Page 54 ;* PROCEDURE GO/PROCEF.D ;* * IF GO GO:: ;* * THEN i* * * CLF.AR ADDRESS BITO OF TARGET 042700 000001 BIC iBITO,RO 010065 177766 MOY R0 1 lPLPCO(R5) 005065 177710 CLk APLPSO(R5) i* * * SET APPLICATION PC = ADDRESS PASSED i* * * SET lPLICATION PSW 000005 RESET =0 J* * * RESET IOP i* * F.NO If PROC:: i* * TEST USER SP FOR NXH AND WRITABLF. 052737 016500 012701 000 241 010000 177764 0525l5 175002 il TS HOV MOY CLC #KX$NXF 1 @JKW.STA APLSPO(RS),RO #'i2525 1 Pl ;* * IF TF.ST OF USER SP PASSES 010160 000240 103457 010160 000240 103453 020160 001050 020160 001045 177776 HOV NOP BCS MOY NOP BCS Cl'P BtiE CMP llNE 177774 177776 177774 R1 1 -2(R0) I GP300 Rl 1 -4(Rll) CP300 Rl,-2(1..0) GP300 RI I -4( RO) GP JOO ;* * THEN ;* * * SET LEDS TO NON NATIVE CODE STATE 012700 004767 000000 000104 HOV CALL #NNCED, RO SETLEI' 042737 010000 BIC #KXSN~F,@fKW.STA 016500 016540 016540 010065 177764 177170 177166 177764 MOY MOY HOV MOY lPLSPO(R5) 1 RO lPLPSO(R5) 1 -(R0) APLPCO(R5),-(P0) 1<0 1 APLSPO(R5) 012706 060506 177750 MOY ADD liAPLROO,SP R5,SP 012600 012601 01260 2 012603 012 60 4 012605 MOY llOV MOY MOV MOV HOV (SP)+,f<O (SP)+,Rl (SP)+ 1 k2 (SP)+,RJ (5P)+,R4 (SP)+ 1 R5 011606 M(1V (SP),~P IJIS #kXSDF.N,@#k~.cso i* * 052737 000100 175002 177530 * F.NlBLE tiXM'S TO TRAP TO 4 i* * * PUT APPLICATION PC AND PS ON APPLICATION STACK i* * * SET STACK POINT~R TO APPL. RO SAVE ADDR. ;* * * P.ESORE USER REGISTERS RO - RS ;* * * RESTGRE USER SP ;* * * F.Nl~LE DUAL PORT RAM ;* * * CLF.AR SEQJAL OOT, QBUS ODT ANO NXM FLAGS OF ( ( KXTNF - KXTllCA Native F1raware MACRO V05.00 GOPROC - GO/PQOCEED 58 59 167154 60 61 161162 62 63 167110 64 65 161114 66 61 167176 68 69 161176 70 042131 010301 115002 BIC 052131 000001 115002 a1s 005031 115000 CLR I-' Paqe 54-1 ; STATUS R~GISTER #<KXSSOF I KXSQOF I KXSNXF I KMSSTF>,@#~V.STA ;* * * SET STATUS REGISTER Tu MON NATIVE CODE STATE IKPSNNC,~IKW.STA ;* * * CLEAR COMMAND REGISTER f#K~.CMD ;* * * RETURN TCT APPLICATION (NnN STRUCTURED EXIT) RTI 000002 ;**FNDif GP300: ;* * RETURN FRO~ CALL RETURN 000201 KXTNF - KXTllCA Native Firaware MACRO VOS.00 SETLED - SET LEOS co 00:51 00:51 ;* ~NO GO/PROCEED Page 55 1 2 3 4 .SBTTL SETL~O .ENABLE LC 1 GBL 5 6 Module naae: SETLEO - SET LEOS 1 System: KXTll-CA Native Firaware S~T LEDS I 8 9 10 11 12 13 14 15 16 11 18 19 20 21 22 23 24 25 26 27 211 29 30 31 32 33 34 35 36 31 38 39 Functional Description: This mode sets the LED display to the state pass to it as a paraaeter. It only changes the state of the LEDs if they are not currently displaying an error or if the new display is to be Fatal Error. There are two entry points to this routine. SETLED is the entry used if the return address ls on the stack. SETLDJ ls used if there is not a usable stack and the return address is in Rl. ; ; ;Input Paraaeters: 1. 2. New LF.D State (RO) Return address if SETLDJ entry is used (Rl) ; ;Output Parameters ; NnliE ; ;Data structures used 1. LED State (KXTCSR C1 bits 3 - 0) Routines Used NONE .:' I 'I l ! 1 .! "i ( KXTMF - KXTllCA Native Firaware MlCRO V05.00 SETLED - SET LEOS 1 2 3 4 5 6 1 8 9 10 11 12 13 14 15 16 17 111 19 20 21 22 23 24 25 26 00 N 27 211 29 30 31 32 33 34 35 000017 000016 000015 000014 000013 000012 000011 000010 000007 000006 00000'5 000004 000003 000002 000001 000000 LSCJ LSl LS2 LS3 LS4 LS5 l.56 LS7 LS8 LS9 LSlO LS11 LS12 LS13 LS14 LS15 000017 000017 000010 000011 OOOCJ12 (100013 000014 000015 000016 LF.DT SO FERPD NHRRD UROMOD UROlllD SlLBD S2ALIJD S2 BLIHJ PARLBO 000007 0!10006 000005 000004 000003 000002 000001 000000 PUTSOS CSTHD QOOTMO SODTMD WAITD OMA ED PRIPO NNCF.D 00:51 Page 56 -- 17 16 15 14 -- -- -- -- ---- -- 13 11 10 -- 4 .... " 5 " " n 3 . 2 --- 1 0 ----------------- I.SO LSO LS7 LS6 I.SS LS4 LS3 LS2 LSl -- " 7 b -- .. ..... LEf'I STAT"'. 0 1 "n " 32 " 4 5 " 6 12 --- -- ( LStl LS9 LSlO LSll LSl 2 LS13 LS14 LS1'5 n I ., B 9 10 11 12 13 14 15 LED TEST DISPLAY FATAL FRROR DISPLAY NON VlTAL ERROR DISPLAY USEk RO~ 0 FAILED DISPLAY OSVk ROM l FAILED DISPLAY SLUl Loor BACK TEST FAILED DISPLAY SLU2 CHAN A LOO~ BlCK TEST FAILED DISPLAY SLUl CHAM B LOOP BACH TEST FAILED OISPLAY "ARALLEL LOOP BlCK TEST FAILED DISPLAY POWER UP TFSTS RUNNING CONTINUOUS SELF T~ST MODE DISPLAY Q RUS DOT MOOE DISPLAY SEKIAL OOT MODF. DISPLAY WAIT MOOE DISPLAY EXF.COTING OMA LOAD DISPLAY F.Xf.CUTING PRiMARY BOOTSTRAP DISPLAY F.Xf.CUTING NON NATIVE CODE DISPLAY ( ( KXTNF - KXTllCA Native Firmware ~-C~O V05.00 SETLED - SET LEDS 1 2 3 4 167200 5 6 1 167200 8 9 167202 10 11 167202 12 167206 13 14 167210 15 167216 16 167220 00:51 Page c;7 ;• PROCEDORE SET LEOS ;* * H CALLEO SETLED:: ;* * THEN ;* * * SET RETORN ADDRESS/FLAG 005001 CLR Rl i * * 022700 001405 000017 132737 00140 l 000410 000010 ;* * IF NEW DISPLAY IS FATAL ERROR CMP BCQ #FERRO, RO SElOO BITll #KXSLOJ,@IKW.CSC SElOO SE200 ;* * OR LEOS NOT DISPLAYING ERROR 1715l4 llEQ llll ;• * THEN lR 167222 SF.1 00: ;* * * SET LED TO STATE PASSED TO ROUTINE (RO) l '1 co w ... ,,. 1·· 110037 171524 ~0¥1' RO,@~Kll.CSC 122700 001003 000017 CMP!l llNE #FEQl!O, RO SE150I 052137 000040 BTS #KXSF!':F,@l#KW.STA ;* * • IF LEDS SET TO FATAL ERROR 175002 ;* • * THEl\o ;* * * * SET FATAL ERROR FLAG OF STATUS REGISTER ;* * * FND If 27 28 167242 29 30 167242 31 32 167242 33 167244 34 35 36 167246 37 38 167250 39 40 167250 41 42 END II' SETLDJ:: 17 20 167222 21 22 167226 23 167232 24 25 26 167234 =0 SE150: ;* * F.ND IF SE200: ;* * IF RETORN ADDRESS : 0 005701 001001 TST ilNE Rl SE300 ;* * THEN ;* * * RETURN FROM CALL RETURN 000207 ;* * i,:LSE snoo: 000111 ;* * * JUMP TO RETURN ADDRESS JMP (Rl) ; * END SET u;Ds ( KXTMF - KXTllCA Native Flr•ware MACRO V05.00 TRAP4 - TRAP 4 EMULATOR 00:51 .SBTTL 1 2 3 4 5 6 Paqe 58 TRAP4 - TRAP 4 F.MULATOR .ENABLE LC 1 GBL ~odule name: TRAP4 - TRAP 4 EMULATOR MODULE Syste•: KXTll-CA Native Firmware 1 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 00 .i::. Functional Description: This module e•ulates the Trap to 4. This e•ulatlon is performed by placing PSW and the vector address onto the stack and performtnq an RTI. If the stack pointer is not potntlnq to writeable me•orY (but not NXM) this routine will force a stack hXM situation where the Restart Interrupt handler (RESTRT) will re-establish the stack and retry the trap. KXTNF - KXTllCA Native Fir•ware MACRO V05.00 TRAP4 - TRAP 4 EMULATOR l 2 167 252 3 4 167252 5 167256 6 7 167262 8 167210 9 167272 10 167276 00:51 ;* PROCFDURE TRAP4 TPAP4:: 013146 013746 000006 000004 023166 001004 023716 001001 000006 ;* * SET UP STACK FOR TRAP TO 4 HOY !40V CMP BNE CMP BNE 000002 000004 11 12 13 167 30C 14 15 161302 16 17 167302 18 161310 19 20 Page 59 RTl 000002 TR410: 052737 005737 004000 111176 175002 IHS TST U6,-(SP) @,4,-(SP) ;* * IF STACK IS POINTING TO RAM @#6 1 2(SP) TR410 @~4 1 (SP) Tll410 ;* * THEN ;* * * EHULATF. TRAf (NON STRUCTURED EXIT) i* * ELSE ;* * * FAKE A STACK 3XH SITUATION (NON STRUCTURED EXIT) #KX$SU 1 @#KV.STA ;(FOPCF. A NX~ RESTART INT.) @#117176 i * * F.Nfl IF ; * F.N!l TR AP 4 ( ( KXTNF - KXTllCl Native Firmware MlCRO V05.00 TRAPlO - TRlP 10 E~ULATOR 00:51 .SBTTL 1 2 3 Page 60 TRAPlO - TRAP 10 EMULATOR .f'.NlBLE LC,GBL 4 Module name: TRAPlO - TRAP 10 EMULATOR MODULE 5 6 7 II 9 System: KXTll-CA Native Fir•ware 10 11 12 13 14 15 16 17 Functional Description: This module emulates the Tr1p to 10. The trap emulation is performed by placing the vector address and PSW on the stack and performtnq an RTI. If the stack pointer is not pointing to writable memory (but not NXM) this routines will force a stack NXM situation ~here the Restart Interrupt handler (RESTRT) will re-establish the stack and retry the trap. 18 19 20 21 22 00 lJ1 KXTNF - KXTllCA Native Fir•ware MlCPO V05.00 TRAPlO - TRAP 10 EMULATOR 00:51 Page 1;1 ;* PROCEDURE TRAP4 1 2 167314 TRAPlO:: ;* * SET UP STACK FOR TRAP TO 4 3 4 167314 5 167320 6 7 167324 8 167332 9 167334 10 167340 11 12 13 167342 14 15 167344 16 17 167344 18 167352 19 20 013746 013746 000012 000010 023766 0010()4 023716 001001 000012 000002 000010 HOV HOV ~112,-(~P) CMP BNE CMP BNE @#l2,2(SP) TlllOlO ;91110,(SP) TR1010 @IUO,-(SP) ;* * TF STACK IS POINTING TO RAM ;* * THFN ;* * * ~MULATE TRAP (NON STRUCTURED EXIT) 000002 RTI ;* * Fl.SI:: TP1010: 052737 005737 004000 177776 175002 BIS TST ;* * * FAKE A STACK NXM SITUATION (NON STRUCTURED EXIT) #KXSSXT,@l#KW.STA @11177776 ;(FOPCF. A NXM RESTART INT.) ;* * F.NO IF ;* END TRAPlO ( ( KXTNF - KXTllCl Native Fir•ware HlCPO Y05.00 TRlP24 - TRAP 24 F.MULATOR 00:51 .SBTTL 1 2 3 Paqe 62 TRAP24 - TRAP 24 EMULATOR .F.UBLE LC,GllL 4 5 6 Module name: TWAP24 - TRAP 24 EMULATOR ~OOULE System: KXTll-CA 1 8 9 ~ative fir•ware 10 11 12 13 14 15 16 17 Functional Description: This •odule emulates the Trap to 24. Thl3 e•ulation is performed by placing data at locations 26 into the PSW and 24 int the PC. 18 19 <X> "' KXTNF - KXTllCl Native Fir•wara MACRO Y05.00 TRAP24 - TRAP 24 EMULATOR 1 2 167356 3 4 167356 5 6 167362 1 00:51 Page 63 ;* PROCFDURE TRlP24 TPAPH:: ;* * MOfE CONTENTS OF 26 TO PSW 106437 ()00026 MTPS @1126 013707 000024 MOY @1124, PC i* * MOYE CONTENTS OF 24 TO PC ;* F.N!l TRAP24 KXTNF - KXTllCA Native Fir•wa( TRAPX - TRAP COMMAND EMULATOR .OCRO V05.00 00:51 .SBTTL 1 2 ( Pa11e 64 TRAPX - TRAP COMMAND EMULATOR • EN ABLE LC, <;BL 3 4 Module na•e: TRAPX - TRAP COMMAND EMULATOR MODULl 5 6 ; Syste•: KXT11-CA ~ative Fir•ware 7 8 9 10 11 ; 12 ll Functional Description: 14 ; 15 This module emulates the Trap specified by the DPR. This e•ulation is pertor•e~ by plactnq data in DPR re9ister 2 into the PSV and DPR re9ister 3 into the PC. 16 17 18 19 20 21 167366 22 23 167366 24 25 167372 26 27 167376 CX> -...J . < 28 29 ;* DROCEDURE TRAPX TRlPX:: ;* * CLEAR COMMAND REGISTER 005037 175000 CLR @IKV.CMD 106437 175006 MTfS @IKW.SC3 013707 175004 MOY ~JKV.SC2,PC I ;* * SET PSV TO OPR REGISTER 3 ;* * JUMP TO ADDRESS SPEC. IN DPR REGISTER 2 ;* END TRlPX ( ( KXTNF - KXTllCl Natlye Pir•ware MACRO Y05.00 VlITST - VAJT FOR COMMAND STATE 00:51 Page 65 .SBTTL WllTST - VllT FOR COMMAND STATE .ENABLE LC,GBL 1 2 3 4 5 ; Module na•e: VAITST 6 1 ; Syste•: KlTll-CA Native firmware 8 9 10 11 12 13 14 15 16 ; ; Functional Description: J 17 18 19 20 21 22 23 ; 24 25 CX> CX> This module is used to place the IOP in the wait state. In this state the IOP waits for a com•and to be received fro• the Q bus. The LED if not displaying an error will be set to the wait state display. The state field of status register of the DPR will be set to the wait state if the ~oot/Self Test Switch is not set to 10. If the switch is set to 10 then the state field is set to the Q Bus controlled test state. The routine continues to loop setting the LEDs and the stater field of the status regist~r so that if the serial DDT mode is entered via areak, while in this routine and a Proceed co•mand is executed the LED display and state field will be correct. 26 ; 27 ;Input Para•eters: 28 J 29 30 ; 31 32 NONE ;Output Para•eters NONE 33 34 ; 35 ;Routines Used 36 37 NONE ( KXTNF - KXT11Cl Native Firmware MACRO VOS.00 WllTST - WAIT FOR COMMAND STATE 1 2 167402 3 4 167402 5 6 167402 7 167406 8 9 167412 10 161416 11 12 167422 13 161426 14 167432 15 161436 16 00:51 P;ige 66 ;* PROCF.DURE WAITST liaITST:: ;* * DO UNTIL INTERRUPTfD WHOO: 012700 004767 000003 171566 HOV CALL #IUITD,RO si;;TLED 013700 042700 175002 000007 MOY BJC @#KW.STA,RO ll'l'M$STF,RO l 13701 142701 122701 001003 171522 171417 000240 HOVB BICB CHPB BNE @#KL.CSB,Pl rc<KMSSliS>,Rl #<10.*16.>,Rl liA200 (X) IC ;* * * If THE BOOT/SELF TEST SWITCH = 10 ; 052700 000402 000002 BTS BR #!l'.PSQTS,RO iiA300 QBUS CONTROLLED TEST STATE Wl200: I 052700 000004 BIS lfKP$WST,RO HOV 1<0 1 @•11:111. ST l llR WAlOO lil300: 21 28 161452 29 30 161456 31 ;* * * G~T STATUS REGISTER ; * * * TliF.N ;* * * * SET STATE FIELD OF STATUS REG. TO 11 18 19 167440 20 167444 ;.11 167446 22 23 24 167446 25 26 161452 ;* * * S~T LEO DISPLAY TO WAIT STATE 010037 000751 175002 ;* * * E~SE ;* * * ~ SET ST~TE FIELD OF STATUS REG. TO WAIT STATE ;* * * ENO IF ;* * * * WRITE STATUS REGISTER DATA ; * * END UltTIL P ENO Ill TTST ( ( KXTNF - KXTllCl Native Flr•vare MACRO VOS.00 QCOMIN - Q BUS COMMAND INTEPP. Pa9e 67 00:51 QCOMIN - Q BUS COMMAND INTEPP. 1 .~BTTL 2 • EN ABLE GB!., LC 3 4 ; 5 6 Module na•e: QCOMIN - Q BOS 7 Syste•: KXTll-C' Native COM~lNO lNTF.RPRITOR Flr•var~ II 9 10 11 12 13 14 15 16 17 18 19 Functional Description: ; This •odule decodes the Q bus co••ands received throu9h the co•mand register of the dual port RAM. Once a valid co••and ls recognised the appropriate routine ls called. If the co••and received ts a test co••and the test co••and decode routine (OECTST) is ju•ped to. 20 ; 21 22 ;Input Parameters: 23 HOHi' 24 ; 25 ;Output Parameters 26 \0 0 27 ; 28 29 ; ;Data Structures Used 30 ; 31 NONI' 1. IOP 2. lOP STATUS REr.ISTER 32 33 i 34 ; 35 ;Routines Used COM~lND 36 37 38 39 40 41 t. REl'llT (JMP) 2. OF;CTST (JMP) 3. llillTS T ( J'4P) RFGISTER ( KXTNF - KXT11Cl Native Fir•ware ~ACRO V05.00 QCOMIN - Q BUS COM~lNO INTERP. 00:51 ( Page 68 ;* PROCFOURE Q BUS COMMAND INTERPRETER 1 2 161460 QCO~IN:: J 4 5 161460 042131 140000 175002 8 IC 032737 001406 000100 175002 8IT BfQ QC50 052737 lOOflOO BIS #KXSCMi 1 @#KW.STl 005037 175000 CLR @ftKil.CMD b 1 167466 8 161414 9 10 11 167476 12 13 167504 l.O I-' 14 15 161510 16 11 161512 18 19 161512 20 161520 21 22 23 161522 24 25 161524 26 21 161524 28 161532 29 30 31 32 161534 33 161542 34 35 161544 36 161552 31 38 39 161554 40 41 161560 42 161566 43 44 45 167510 46 161516 41 161600 411 161604 49 161610 50 161614 51 52 161616 53 161616 54 167624 55 161626 56 57 161626 ;* * CLEAR COMMAND ERROR AND OMA LOAD ERROR ; BITS OF STATUS REGISTER #<KXSCHE l KXSOHE>,@#Kw.STl ;* * lF IN SERIAL OOT MOOE 17<;00] n~xssor,@nKw.sTa RTI 000002 QCSO: ;• * Tllf.N ;• * * SET COMMAND ERROR BIT OF STATUS REGISTER ;* * * CLEA~ COMMAND REGISTf.R ;* * * ~ETUPN FPRH INTERRUPT ;(NON STRUCTURED f.XIT) ; * * f ND If ;* * IF QOOT FLAG OF STATUS RfGISTER 032737 001401 000200 175002 BIT B<:Q #KXSQOF,~#KW.STA QC70 ;* * THEN ;* * * UNBLOCK QODT WAIT FOR COMMAND ;(NON STRUCTURED EXIT) ;• * FND/IF nI 000002 QC70: 175000 BNE #BITlS,{l#KW .CMO QCSOO 175000 CMP HNC: #KXSOOC 1 @#KW.CHD QCll)Q 17500 2 IHT IJNE #KXSSOF,@WKW.'iTl QClOO JMP QOOTM CMP BNr: #KX$INC,@#KV.CHO QClOO 032731 001141 100000 022131 001006 000010 032131 001002 000100 000161 001652 022131 001024 000004 175000 000006 115006 BIT ;• * IF TEST/COMMAND BIT = 0 • * THEN * * * CASE COMMAND * * * WHEN Q BUS OOT ;• * * lhO S~lTUS ~EGISTEP SEPilL ODT FLAG = 0 ;* * * * F.NTER ODT Q BUS ODT ~OOE (NON STRUCTURED JUMP TO Q BUS ODT MONITOP) 022131 103401 013100 042100 022700 101004 QClOO: CMP BLO HOV BIC CHP BHI 117522 111411 000160 000010 175006 ;* * * ANO OPR PEGISTER 3 = 0 THROUGH 6 ANO IO ; SWITCH < 1 #6 1 UKW. SC 3 QC120 @#ICW. CSB, RO rc<KHSSWS>,PO #<7*16. >,PO QCl'iO QC 120: 022131 001005 ;• • * VHEN RE-INITIALIZE ;• * * OR DPR REGISTER 3 = 8 CHP BNE #8.,@f!KW.SC3 QC200 BIC #KXSDFN,@#KW.CSA ; * * * * DISABLE OUAL PORT Pl~ QC150: 042131 000100 177520 { KXTNP - KXT11CA Native Pir•Ydre MAcqo V05.00 QCOMII - Q BOS COMMAND INTERP. \0 1'J . 58 59 60 167634 61 62 167640 63 167646 64 65 167650 66 67 68 167654 69 70 167660 11 167666 72 73 167670 74 167676 75 76 77 167700 78 167704 19 167710 80 167114 81 82 167714 83 167722 84 85 86 87 88 167730 89 90 167734 91 92 167736 93 167736 94 167744 95 96 91 167746 98 99 167754 100 101 167762 102 167770 103 104 10~ 167772 106 167174 107 108 167776 109 110 167776 111 112 170002 000167 003156 022737 001004 000002 062706 000004 175000 QC200: 00:51 Page 68-1 JMP RF.INIT CMP BNE #KXSDMC,@#KW.CMO Qr.JOO ADO f4,SP ;* * * WHEN OMA LOAD ;* * * * REMOVE RETURN ADOR. ANO PS FROM STACK ;* * * * PERFORM OMA TRANSFF.R ; 000167 001152 022737 001023 000001 175000 032737 001016 000001 175004 012700 012701 000167 QC300: JMP OM ALO CMP bNE #KX$TRC,@IKW.CMO QC400 en #0 ITO,@llKll. SC2 QCJRO BNE 000000 167114 177266 (NON STRUCTURED JUMP TO OMA LOADER MODULE) ;* * * WHEN TRAP COMMAND ;* * * * IF PC VALUE IN OPR REGISTER 2 IS EVEN ;* * * * THF.N ;* * * * * SET LEOS TO NON NATIVE CODE STATE MOY MOY JMP llNNCEO,RO •OC350,R1 SF:TLQJ BIC BIS llKM$STF,@JKW.STA #KPSNNC,@#KW.STA QC350: 042737 052737 000007 000007 175002 175002 ;* * * * * SET STATUS RF.GISTER NON NATIVE CODE STATE ;* * * * * EMULATE TRAP AT ADDRESS ; i ; 000167 177432 000442 QC300: J"P TRAPX BR QC450 i * * * PER DUAL PORT REGISTER 2 SET PSW PER DUAL PORT REGISTER J (HON STRUCTURED F.XIT) * ENO "If ;* * * WHEN SHOW STATUS COMMAND QC400: 022767 001027 000020 005034 113737 177522 175006 HOVB 042737 177401 175006 BIC 032737 00140 2 000010 177522 BIT CHP BNE BFQ 005000 000402 CLR BR QC420: 012700 100000 MOV #KX$SffC,KW.CMO QC447 ;* * * * PLACE BOOT SWITCH AND MAP S~tTCH VALUES TO DPR kEGISTER 3 i @#KL.CSB,@IKL.SC3 ;* * * * CLEAR ALL NON RELATED AITS #•C<KMSMAP I KMSSWS>,@#KW.SC3 i* * * * IF USER SOCKETS MAPPED LOW #ln$MP2,@IKL.CSB QC420 i* * * * THF.N ;* * * * * TEST FOR RAH AT 0 RO QC440 i" * * * ELSE ;* * * * * TEST FOR RAM AT 100000 11100000,RO i * * * * F.MD IF QC440: 113 114 170002 ;* * * * RE-INITIALIZF ; (NOh STkUCTURED JUMP TO POllERUP MODULE RE-INITIALIZE 011001 HOV (RO),Rl ;* * * * IF RAM PRESENT KXTNF - KXT11CA Native Fir•vl QCOMIN - Q BUS COMMAND INT~RP. MACRO VOS.00 1 BF.Q (RO) Rl;(RO) QC445 119 120 170012 010110 MOV Rt,(RO) BIS tlll JTO,. @;fkll. SCJ BR nc470 CMP •k~SNOP~@•kw.rMO 122 170014 123 124 110022 12!1 1100~1 126 V521J1 000001 115006 1Z1 110024 UB 1700;!4 b22'131 129 110032 130 131 110034 132 133 110040 QC447: 1100040 175000 bo1003 b050J1 115000 000002 134 135 110042 136 131 110042 138 w 139 170050 140 110050 141 142 1100!12 143' 144 110052 145 146 170056 147 148 170056 149 150 170062 151 152 170066 153 100000 175002 ;• * * llHFN NOP COMl.!AND 1!#~11.CMlJ Rti J(hOM S1RUCTUR~IJ EXtT) Bts ~kKSCM~,~#Kw.sta BR 000~14 * * * * SET PAM PRESENT BIT OF DPR REG. 3 CLR ;* * * * CLFAR COMMAND REGISTER ;* • * * RtTURM FROM INTERRUPT ;• * * ELSt {BAO COMMAND) ;* * * * SET COMMlNO ERROR BlT OF STATUS REGISTER , JMP O~CTST , I* * * F.MO CASE 1• * ELSE (TESt/CONMANO nit : 1) gr61lO QCSOO: 000161 J* * * * RESTORE LOCATION (,!C450 QC470: D00402 I* * l!Nt: gr45o: b52731 ;• * * • 1'Hf::N ;* * • " fhll H tlC445: boo412 ( 68-2 005110 020110 001404 111 COM CMP PaQ~ 115 170004 70006 1i6 1 1 10010 1 8 \D 00151 J* * * DECOOE tf:St COMIUNO (NOlll-STRIJCTURED JUMP to DECTST) ;• • END tF QC600: 062106 000004 AbD #4 1 SP 005037 115000 CLR @UW.CMO 000167 177310 JI.IP WAIT ST ;* * ~EMOVE R~tURN ADORESS AND ~SW F~OH STACK ;* * CLEAR COMMA~D REGISTER )* • ENTlR WAIT STATE (MON STRUCTURED EXIT) ;• E~D 0 BUS COMMAND INTER~RETER ( ( KXTNF - KXTllCA Native Fir•ware MACRO V05.00 00:51 OF.CTST - DECODE ANO DISPATCH QBUS SELF TEST REQUESTS 1 2 3 .SJTTL .ENlBL P~qe 69 DECTST - OlCODl AND DISPATCH QBUS SELF TEST REQUESTS G!IL 4 5 6 MODULE NAME: Of.CTST - DECODf ANO DISPATCH QRUS SELF TEST REQUESTS 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 l.O .i:.. FUNCTIUNAL DESCRIPTION: THIS MODULE DECODES THE Q!IUS SELF TF.ST REQUESTS AND DISPATCHES TO THE APPROPRIATE SF.LF TEST ~ODULf.. ON RETURN FROM THE SELF TEST MODULE, Df.CTST UPDATES THF. LEO DISPLAY, UPDJTES THE ACCUMULATED ERROR VORD, ANO PERFORMS Thf. ACKhO~L~OGF.HENT PURTION OF THE PROTOCOL TO NOTIFY THE APBITER OF CO~PLETION. INPUTS: TFR 0 CONTAINS THE S~LF TEST REQUEST CODE. TPR 3 COhTAt~S AN OPTIONAL CALLING ~ARA~ETER, IF ANY. CALLING SE~UENCf: A SPECIAL CASF. J~P TO DECTST FROM QCOMIN. 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 OUTPUTS: TPR 0 IS CLEAR. TPR 1 IS THE SA~E AS WHF.N CALLEO UNLESS DECTST SETS THE COM~ANO ERROR BIT, AIT 15. IF THE hOOT SVTTCH SELECTION IS 10 (Q6US CONTROLLED TEST), THE STATE FIELD IS SET TO "WAITING FOR aeus TEST COMMAND". ELSE, THE STATE FIELD IS SET TO "VAITING FOR QRUS COMMAND". TPR 2 HAS ITS APPROP~IATE TEST eIT CLEARED IF NO ERROR OCCURRED AND SET IF AN EPROR OCCURRED. TPR 2 IS THE ACCU~ULATED SELF ; TEST RESULTS. IF TPR 2"S 'PPROPRilTE ERROR PIT IS SET, TPR 3 CO!TlINS THE TEST CODE lN SITS <15:12> AND THE DISCRETF EhROR CUDE IN BITS <11:00>. IF lN EPROR OCCURRED, THE LEDS lRE nPOAT~D WITH A CALL TO TNNER9. 4~ 43 44 ROUTINES USF.D: SPR5SU, TN~F.RR, • TUE VlRJOrys SELF TEST ROUTINES 45 46 OTHER NOTES AND COHH~NTS: 47 48 49 1. THF. ARBITER IS RESPONSIBLE FOR CLEARl~C THE ACCUMULATED VALUE IN TPR 2. 50 51 l. ALL REGIST~RS ARE USFABLF. VITHnUT RESTORATION. ( KXTNF - KXTllCA Native Fir•ware MlCPO V05.00 00:51 DFCTST - DECODE AND DISPATCn QBOS SFLf TEST REQUESTS l.O l.n 1 170072 2 170072 3 170076 4 170102 5 170102 6 170106 7 170110 8 170112 9 170116 10 170122 11 170124 12 170130 13 170132 14 15 170136 16 170140 17 170140 18 170144 19 170150 20 170152 21 170156 22 23 170160 24 170164 25 170170 26 170172 27 170174 28 170176 29 170202 30 170204 31 170206 32 33 170214 34 170216 35 36 170224 37 38 39 40 170232 41 170234 42 170240 43 170242 44 170244 45 170250 46 47 170252 48 170254 49 170256 50 170260 51 170264 52 53 170266 54 55 170270 56 170274 57 170276 O<:CTST:: 012700 000137 170102 173706 012700 005710 001005 013700 052700 000 465 021037 001403 062700 170354 Page 70 HOV JMP #3$,RO (a#SP R5SU 14DV TST llNE HOV dlS #STSTAH,ilO (RO) 10$ BR ilEQ 45$ (RC),!illJKll.CMD 15$ ADD U~TSf:NL,RO dR 5$ HOV MDV !tOV BIC 140Y ~#Klt.STA 1 -(SP) ~#Kw. sc2,-c SP> 5$: 175002 100000 10$: 175000 000010 C'IP @~KW.STA,PO #K ~on;, 110 x 15$: 013746 013746 012046 042716 012046 175002 17500 4 013746 013746 005001 105720 001402 013701 105720 00140 4 052737 175006 171524 MDV MDV Cl.R TSTR 175006 MOY TSTB 100000 Bl'Q 20$: BFQ 000040 117520 l:llS 00040 3 042737 000040 117520 25$: BR BIC 052737 010000 175002 30$: BIS 004736 052616 000404 012637 005726 JSR MDV TST BEQ MDV MDV 171524 175006 175006 35$: JSR lllS bR MDII TST tlIC 042616 012637 012600 042700 ;~O UP A ~ETURN ADDRESS FROM SPR5SU. SET UP R5 ANO A DF.f lULT STACK POINTER. 3$: 000763 004730 012637 005700 001406 010037 012601 ;S~T 17500 4 40$: 000001 45$: MOY HOV l!IC (PO)+,-(SP} dlll Tl 5, (SP) (RO)+,-(SP) rOINT TU THE SELF TEST DISPATCH TlBLE. AWE WE AT THE FND Of TH~ TaBLE7 NO. YES, GET TPR 1. SET THE CDM'IANO ERROR BIT IN TH~ SAVED TPR 1. GO Ha~OLE THV. REST Of UPOaTING TPR 1 & TPR o. NO, OUF.S THE TABLE f.NTPY MATCH TPR 07 YES. NO, ADD THF. LENGTH Of A TABLE ~NTRY TO THE POINTER. GO TRY TPE NF.XT ENTRY JN THE TABLE. W~ HAVE fOUNO A VALIO COMMAND, SO SAVE TPR 1 (T~E STATUS REGISTER), TPP 2 1 THf. COMHlNO (alTH BIT 15 Cl.EARED), THE FRROR CONDITION ROUTINF•s ADDRESS ON THE STACK, ~tlKW. SC3,-(SP) TPR 3 1 ANIJ 1 @'KW.CSC,-(SP) THF. LEOS. Rl CLEAR Rl TO DEfAOLT TO NO PAPA~ETER IN TPR 3. (RO)+ NOW, IS THE~E A PARAMETER IN TPR 37 20$ NO, Rl Has ALREAOY BEEN CLEARED. @#KW.SC3 1 Rl YES, PUT THE PARAMETER IN Rl. (1!0)+ IS THE TEST RUOTINE IN OVERLAY O? 25$ YES. #KXSDPE,@#Kw.r.sa ;ND, Ir·s IN OVERLAY 1, so ENABLE THE J DVF.RLAY 1 MAP. 30$ #KXSDPE,@#KW.CSA ;IT·s IN OVERLAY o, so DISaBLE TffE ;OVERLAY 1 MAP. #KXSNXf,~JKW.STA ;EWABLF C-BIT SETTING ON REFERENCES TO ;NON-EXISTENT MEMORY (RATHER THAN A TRAP THRO ;4). KXSNXF WILL BE RESTORED WHEN TPR 1 IS ;RESTORED. PC 1 @(1!0 )+ ;CALL THE TF.ST ROOTINE VIA THE "VECTOR". (SP)•,@#KW.CSC" ;RESTOHf THE LEDS. RO ;~AS aN ERROR DETECTED? NO. 35$ YES, SET TPR 3 FOR TRIS ERROR. P0 1 @•1fll.SC3 (SP)•,Rl PUT THE VALUE Of TPR 3 1 WHEN CALLED, IN Rl (IN ~ASE THE LED HANOLING ROUTINE NEEDS IT). PC,~ (SP)+ YES, GO TO THE LF.D UPDATING ROUTINE. (Sf)+, (SP) SET THE TEST"S ERROR HIT IN THE SAVED TPR 2. GD flhlSH UP TPR 21 11 ANO 0 UPDATING. 40$ (SP)+, ~#KW. SC3 RESTORE TPR 3. (SP)+ FLUSH THE FRROR HANDLER ADDRESS OFF THE STACK. (SP)+,(SP) CLEAR THE TEST"S ERROR HIT IN THE SAVED TPR 2. STDRF THE RESULT IN TPR 2. (SP)• 1 @1Kll.SC2 GlT THE SAVEO TPR t. (SP)+,RO CL~AP ThF siVED STATE FIELD. #ICM$ STf, PO KXTNF - KXTllCA Native Fir•ware MACRO V05.00 00:51 DECTST - DECODE AND DISPATCH QBUS Sf.LF TEST REQUESTS 58 110302 59 60 170306 61 170312 62 63 170316 64 170320 65 66 170324 67 170326 68 170332 69 170336 10 170342 71 72 7J 170350 74 15 76 Page 70-1 013101 117522 HOV ~tKW.CSB 1 Rl 042701 022701 177417 000240 BIC CMP rc<KMSSWS>, Rl no. •20,R1 001003 052700 000002 BNE BIS 47S #KPSQTS,HO 000402 052700 010037 005037 052737 000004 175002 175000 000100 BR BIS HOY CLR BIS 50$ #KPS,ST,RO 000137 167402 47S: sos: 177530 JMP GET THE BOOT SWITCH SETTING FROM KXTCSPB BITS 4 •o 1. ISOLATE THE S~ITCH SETTING BITS. rs THE SWITCH SETTtNr. FOR "Q~US CONTROLLED TESTS"? ~o. YE5, SFT THE STATE TO "OBOS CONTROLLED TEST STATE". SET THE STATE TO "WAITING FOP QBOS COH~AND". ~EStnRE THE STATUS RF.GTSTER. @IKW.CHr CLF,AR THF rOMHA~D REGISTV.ft, TPR o. #KXSDEN,@IKW.CSO ;RE-FNABLE THE TWO PORT RAM (SOMETIMES IT"S ;NEEDED, SO~ETlMES IT"S Met, BUT DO IT ;ALWAYS). @IWAITST ;r.O TO THf. WAIT STATE A"D WAIT FOR THE NEXT ;QBUS co~~AND. ~0,@iKW.STA STSTAB, THE SELF TEST DISPATCH TABLE, DEFINES THE LEGAL SELf TF.ST CODES, THE EXISTE~CE OF A CALLING PARAMETER IN TPR 3, THE "ROM PAGE" CONTAINING THE TEST CODE, ANO THE ADDRESS Of THE CODE. 11 78 19 80 81 82 • WORD TPR 0 •VALUE OR 0 .WORD TNNERR .BYTE 0 OP NON-0 TPR 0 VALUE IF LEGAL DISPATCH CODE & 0 If END OF LIST (THUS IMPLYING CO~MlND EkROR) 8J '°°' 84 85 86 87 88 89 90 91 92 93 94 95 ; ; NON-0 IMPLIES THAT A CALLING IS IN TPR 3. 0 IMPLIES NO FARlMETER IN TPR 3. PARA~ETER ; .BYTE 0 OQ NON-0 ;•UN-0 IHPLI~S THAT THE TEST ROUTINE ;IS I~ THE HIGH OVERLAY, OVERLAY 11 OF ;ROM, THUS IMPLYIIG THAT ~XTCSRA ;BIT S MUST BE 1 TO MAP THE CODE ;TO THE 160000 BASE ADDRESS. 0 ;IMPLIES THAT TffE TEST ROUTINE IS ;IN THE LOii OVERLAY, OVERLAY 0 1 ;OF ROM, THUS KXTCSRA bIT 05 MUST ;BE 0 TO MAP THE CODE TO THE ;160000 8lSE ADDRESS. .WOPO AOD!lESS lDORESS OF TffE ROUTIJE•s "VECTOR" IN THE FIRST 32 (DFCIMlL) BYTES OF THF. RO~ OVERLAY. 100001 170506 000 000 160004 STSTAB: ;CSR TEST .WORD .WORD .BYTE .BYTE .WOPD Kl':STOl TlERk 0 0 Tl TPR 0 VALUE Lf.D UPDATING ROUTINE ON ERROR NO INPUT PARAMETER IN ROM OYl:.RLAY 0 VFCTOft ADDRESS 000010 STSENL .-STSTAB ;DEFINE THE TABLE ENTRY LF.NGTH ; ; '; 91> 97 98 99 100 101 102 103 104 105 106 170354 101 108 170354 109 170356 110 170360 111 170361 112 170362 113 114 ;ADDRESS OF ROUTINE THAT HANDLES L~O ;UPDATING IF AN ERROR IS INDICATED. TH~ ; = ( ( 00:51 KXTNF - KXTllCA Native Fir•vare MACRO V05.0" DECTST - DECODE AND DISPATCH QBUS SF.LF TEST REQUESTS '° -....) 115 116 117 1'10364 118 1'10366 119 1'10370 120 170371 121 1'10372 122 123 170374 124 170376 125 170400 126 170401 127 170402 128 129 170404 130 170406 131 170410 132 170411 133 170412 134 135 170414 136 1'10416 137 170420 138 170421 139 170422 140 141 170424 142 170426 143 170430 144 170431 145 170432 146 147 1'10434 148 170436 149 170440 150 151 170441, 15l 170442 153 154 170444 155 170446 156 17045(1 157 170451 1511 170452 159 160 170454 161 170456 162 170460 163 164 1'10461 165 170462 166 167 170464 168 170466 169 170470 170 171 170471 100002 110546 000 000 160010 100004 170576 001 000 160014 100010 170642 000 000 160020 100020 170650 000 000 160024 100040 170656 000 000 160030 100100 170664 001 000 160034 100200 170720 000 001 160 000 100400 170726 001 ;RAM TEST .WORD .WORD .BYTE .BYTE .WOPO ;ROM TEST .WORD .WOllD .BYTI:. .BYTE .WORD ;CPU TEST .llORD • WOllD .BYTE .BYTE .WORD ;BEVENT TF.ST .WORD .WORD .BYTE .BYTE .WORD ;SLU 1 TEST .WORD .VORO • BYTE .BYTE .WORD ;SLU 2 TeST .llORD .WORD .BYTE .BYTE .WORD ;PIO TEST .WORD .WORD .BYTE .BYTE .WORD ;OMA TEST .WORD .WORD .BYTE 101000 170734 001 .BYTE .WORD ;OIR TEST .IOORO .WOPD .BYTE 001 .BYTE. 001 16000 4 l'a9e 70-2 KXST02 T2l!IR 0 0 T2 Tl'R I) VALUE LEO UPDATING ROUTINE ON ERROR NO INPUT PAl<AMETEI\ IN ROM OVf;RLAY 0 VECTOR ADDRESS KX$T03 T3Ellk 1 0 T3 ;TPR 0 VALUE ;LEV UPDATING ROUTINE ON ERROR ;~PR 3 CONTAINS PAR,METEk ;IN ROM OVERLAY 0 ;YE.CTOk ADDRESS HST04 T4Ellfl 0 T4 ;TPR 0 VALUE ;LEO UPOATING ROUTINE UN ERROR ;NO INPttT PARAM~TER ;IN ROM OVERLAY 0 ;VECTOI\ ADDRESS KX$T05 T5ERR 0 I 0 TS ;TPR 0 VALUE ;LED UPDATING ROUTINE ON ERROR ;.110 INPUT PAkAMETEk ;IN ROM OVERLAY 0 ;VECTOR ADDRESS KXST06 TPR 0 VALUE LlD UPDATING ROUTINE ON ERROR NO INPUT PARAMETER IN l<OM OVERLAY 0 VECTOR ADDRESS i) T6E~R 0 0 T6 KXST07 T7ERI< 1 0 T7 TPR 0 VALUE LEO UPDATING ROUTINE OR ERROR TPR 3 CONTAINS PARAMETER, CHANNEL A I CHANNEL 8 TEST SELECTION IN ROM OVERLAY 0 VECTOR ADDRESS KXSTlO Tl OF.RR 0 1 TlO TFR 0 VALUE LED UPDATING ROUTINE UN ERROR NO INPUT PARAMETER JN ROH OVERLAY 1 VECTOR ADDRESS KXSTll TllF.:RR 1 TPR 0 VALUE LEO UPDATING ROUTINE ON F.RROR ~PR 3 CONTAINS PARAMF.TF.R, RlTS <21:06> Of A USEABLE QBUS OMA BUFFER JN ROM OVERLAY 1 l Tll KXST12 T12FllP l 1 TPR 0 VALUE LEO UFOATfNG ROUTINE ON ERROR TPR 3 CONTAINS PAHAHET~R, THF. QBUS IN~lq~UPT VECTOR ADDRESS TN Rfl'I OVERLAY 1 ( KXTNF - KXTllCA Native Fir•ware ~ACRO VOS.00 00:51 Pa9e 10-3 DECTST - DECODE AND DISPATCH QBUS SELF TEST REQUESTS T12 .WORD 112 110412 160010 ;T•O PORT RA~ TEST KXST13 113 .WORD T13F.RR 114 170474 102000 .llOPIJ 110742 115 110416 0 .BYTE 000 116 11050D 1 .BYT£ 001 111 110501 T13 .llOPD 160014 118 110502 ;F.NO Of TlBLE 0 119 .WORD 180 110504 000000 181 \0 co ( ;VECTO!i ADDRESS TPR 0 VALUE LEO UPDATING ROUTINE ON EKROR NO INPUT PARAMETFR IN ROM OVt:;RLAY 1 VECTOli ADDRESS ;Ir NO MATCH, THEN CUMMAND ~RROR. ( KXTNF - kXTllCA Native Firmwar~ MACRO VOS.00 TNNERR - UPDATE LEOS AFTER ScLfTEST NN 00:51 .SBTTL • ENAllL 1 2 3 4 5 6 ~ODULE NA~E: ( Pilge 71 TNNF.RP - UPDATE LF.DS AfTfR SELFTEST NN GIJL TNNfRR - UPDATE LEOS AFTER SELF.TEST NN 1 8 9 10 11 FUNCTIONAL DESCRIPTION: 12 13 TlERR T~ROUGH T13ERR HANDLE SETTING THE LEOS DEPENDING ON THE ERROR CODE RETURNED IN RO BY A SELf-TfST ROUTINE. EACH TEST HAS A SET OF bJTS GIVING "SIGNIFICANT" ERROR CO~OITIONS. "INSIGNIFICANT" ERROR CONDITIOhS ARE SUCH ERROW CODES AS "ROM ~APPED LOW SO INTERRUPT TFSTS ~ERE NOT EVEN T~IEO". Af TFR DECIDING ON AN LEO VALUF., THE ROUTINE CALLS SF.TLEO TO SET THE VALUE. ~ETLED PRIORITIZES THE LED SETTINGS SUCH THAT A NON-FATAL CUD~ WILL NOT REPLACE A FATAL CODE, FOR EXAMPLE. 14 15 lb 17 18 19 20 21 22 23 24 25 26 \0 \0 ; INPUTS: RO CONTAINS T~E TEST"S OISCPETE ERROR CODE. Rl CONTAINS THE VALUE IN Rl WHEN THE SELF.TEST ROUTINE WAS CALLEO. THIS VALUE IS OPTIONALLY USED BY TNNF.~R. 27 28 29 30 31 ; CALLING SEQUENCE: JSR PC,TNNEPR OUTPUTS: THE LEDS 32 33 34 ~RE UPDATED VIA A CALL TO SETLED. RO CONTAINS 0 If NO SIGNIFICANT ERROR OCCURRED. RO CONTAINS THE LEO VALUE U5En IN THE CALL TO SF.TLEO If A SIGNIFICANT ERROR OCCURRED. 35 36 31 38 39 40 41 42 43 44 45 46 41 NOT~: A SIGNIFICANT EQROR IS AN ERROR THAT RESULTS IN A REQUEST TO UPDATE ~HE LEOS. WHF.N A SELFTF.ST CAN NOT RE RUN (TYPICALLY Bf.CAUSE ROM IS MAPPED LOW), THE ~~SULTING ERROR IS NUT SIGNIFICJNT ANO, THEREFORE, THERE IS NO PEQUEST TO UPDATE THE LFOS. ; ROUTINES USED: SETLO:O REGISTERS CHANGED: K0,R2 ( KXTNF - KXTllCA Native Firmware HAC~O V05.00 T~NERR - UPDATE LEOS 'FTER SELFTEST NN 1 2 3 170506 " 170512 5 170514 032700 001407 032737 000004 000340 6 7 8 9 ....... 0 0 10 170522 11 170524 12 13 170530 14 170532 15 170536 16 170540 17 170544 18 19 20 21 170546 22 170552 23 170554 24 170560 25 170562 26 170566 27 170570 28 170574 29 30 31 32 170576 33 170602 34 170604 35 170610 36 170612 37 170616 38 170620 39 170624 40 1706;<6 41 170632 42 170634 43 170640 44 170642 45 170646 46 170650 47 170654 48 170656 49 170662 50 51 52 53 170664 54 170666 55 170670 56 170674 57 170676 0014()6 012700 000511 03270() 001511 012700 00050 3 032700 00140 3 012700 000475 032700 001475 012700 000467 000017 000373 000010 000037 000017 00174') 000011 177524 00:51 Page 72 ;THE CSR TEST, TF.ST 11 IS A SPECIAL CASE qECAHSE WE MUST DIFFERENTIATE BETWEEN ;THE FATAL ~ON-STANOALONE TPR ERROR AND THE OTHE~ NON-f ATaL ERRORS. TlF.RR:: dIT #4,RO ;IS THEPE A TPR ER~OR? ;~o. BF.'l TlERRl BIT #340,P#Km.CSC ;YES, BUT AR~ WE IN STANDALONF MODE (1. E. ;WITH IO FQUAL TO 0 OP 1)7 NOTE: THE 340 MASK ;IS A SUBSET OF THE KMSIDS DEFINITON. If THE ;LorATION OF KMSIDS CHANGES, THE 340 MUST BE ;CHANGED. T1ERR2 ;YES, SO TT"S A NON-FATAL ERROR. ll"Q MDV llFERRO,RO ;HO, WE ARE IN NON-STANOALONE HOOE SO IT'S A ;FATAL ERROR. TNNCMl BP ARE THEhE OTAER CSR ERllURS? TlERRl: BIT 11373,RO TNNINX ~o. llO:Q INF!':RQD, RO YES, SET UP THE NON-FATAL Lr'.D DISPLAY. TH;llR2: MOY TNNCMl BR ; ;ThE RAM TEST, TEST 21 IS A SPECIAL CASE BEfAUSE ~E MUST DlffERENTllTE BETWEEN ;FATAL NATIVE Rl~ E~RORS lNP NON-FATAL OSF.k RA~ ERRORS. T2ERR:: tllT #37,RO lkE THERE NATIVE RAH ERROkS? llEQ T2ERR1 ~O. HOV #~ERRD~RO YES, SET ~p fATAt LED DISPLAY. bR TNNCHl T2ERR1: dlT #1740,HO AkF. THEkE US~R RlM ERRORS? !lf.Q TNNINX NU. HOV #UROMOO,RO YES, SET UP NON-FATAL LEO DISPLAY. BP TNNCMl ; 032700 001403 012700 000 461 032700 00140 3 012700 000 453 032700 00000 3 000017 000004 000011 000010 00145~ 012100 000 445 01:<702 000 437 01270 2 000 434 012702 000 431 000012 170766 170772 170776 ;THE RO~ TEST, TEST 3 1 ERROR HANDLING IS A SPECIAL CASE BECAUSE THERE AQE ;3 POS~IBLE LEO SETTINGS THAT MAY ~!'SULT. ;ARE THF.kE NATIVE kOH ERRORS? TJEPR:: lllT #3,QO i NU •. llEQ T 3E!lR I ; VES. HOV #~ERllD,RO BR TllNC!oll lS T~ERE A LOW BYTF. USER kOM ~RROR? T3ERR1: oIT #4,RO NU. tlf.Q T3ERH2 Yr'.~. MDV #OROMOD,RO Ill/ TNNCMl IS T~ERE A HIGH BYTE USE!I ROM ERROR? T3ERR2: HIT #10,RO NO. llEQ TNNINX HOV iUROMlD,RO YES. BR TNNCMl ;AS A90VE FOR THr'. CPU TEST. T4ERR:: MOY #!4ET" 1 D2 BR TNNCOM ;lS ABOVE FOR THE BEV~NT TEST. T5ERR:: MOY #TSETB,112 llP TN NCO .. T~EQR:: ~nv #T6ETB,~2 ;AS ABOVE FOR THE OLART TF.ST. RR TNNcou ; 0(.15701 001403 032701 001401 012702 000001 171002 ;T~E 2ND SERIAL LIN~ UNIT Tr.ST, TFST 7, IS A CODED SPF.CIAL ClSE TO HANDLE ;CHANNEL A I CHANNEL rl LEP SETTINGS. T1ERR:: TST RI ;DID WE on THE "tlOTH CHANNELS GO/NO GO" TFST? riF.Q T7ERkl ;YES, USE CHA~KF.L A'S LF~ SFTTING. BIT IBITO,kl ;No, DlD We SELF.TEST ONLY CHANNEL A? llEQ T1~qR2 ;NO. T1ERR1: MOV #T7lETB 1 R2. ;YES. ( KXTNF - KXTllCA Native Firawar~ MACPO V05.00 TNNERR - UPDATE LEDS AFTER SELFTEST NN Sil 170702 59 170704 60 170710 61 170712 62 170716 63 170721) 64 170720 65 170724 66 170726 67 170726 68 170732 6':1 170734 10 170134 71 170740 72 170742 73 170742 74 75 76 77 110746 78 79 170750 80 170752 000421 032701 001424 012702 000 413 00:51 TNNCOM #BITl,P.l TNNtNX U7BETo 1 1<2 TNNCU"1 NU. YES. #Tl0ETB,R2 ;AS AROV~ FnR THE PIO CHIP TEST. #Tl 1 ETA, k2 TNNC0"1 ;AS ABOV~ FOR THE OMA CHIP TEST. #'l'l 2ETd 1 R2 TNNCOll J'S ABOVE FOR THE QIR TEST. 9P MOV Ul3ETB,R2 ;AS ABOVE FOR THE TPH TEST. ilR 000002 171006 012702 000410 171012 012702 000405 171016 012102 000 40 2 171022 012102 171026 Page 72-1 T7ERR2: BIT BEQ MOV llR TlGERR:: lolOV BR TllERR:: 'IOV BR Tl2ERR:: MOV WE SELFTEST ONLY DI~ CHAN~EL B? TNhCO~ Tl3ERP:: ; ;TNNCOM IS THE COM~ON ENTRY TO USE WhEN R? POINTS TO A TABLF. ENTRY OF fRROR BITS FOLLOWED BY LED VAL~E. (R2)+,RO ARF ANY or THE •s1GNiflCAHT" F.RROR BITS SET IN THe RETURNED ERROR CODE? BFQ TNNINX NO, DoN·r EVE~ TRY TO UPDATE THE LEDS. MDV (P2),PO ;SI~NIFICANT TN~COM: BIT 032 200 00140 4 01120 0 Ill 82 ...... 0 ...... 83 170754 84 85 1707b0 86 87 88 170762 89 170764 90 91 92 93 94 95 004737 llj7200 000 40 l 005000 000207 E~ROR TABLES GIVIN~ THf. "StGNl~ICANT" ERROR 91T SETTINGS AND THE ASSOCIATED LED SETTING FOR THE fkROR. TttE SPAPSENESS OF THE ~ITS IS bECAUSE CERTAIN TESTS RETUR~ NON-ZERO fRROP CODES THAT REALLY MEAN "COULON"T RUN THE TEST". THFRE ARE SEV~RlL TESTS WHERF. INTERRIJPTS CANNOT 9E TESTED RECAUSE RO~ IS IN LOW ~EUORV. 9b 97 <l8 170766 99 170772 100 170776 101 171002 102 103 104 105 106 107 108 171006 1(19 110 111 112 171012 113 171011) 114 1710:.!2 115 171026 116 ;T~NCMl IS THE COMMON ENTPY TP USE WHEN NO CONTAINS AN Leo SETTING. TNNCMl: JSk PC,~hSf.TLED ;UPDATE TPE L~DS USING SETLFD SO THAT A MORE ;IMPORTANT S~TTIN~ DOES NOT GET OVEPWRITTEN. BR T1'1NXIT ; ;TNNINX IS THE EXIT wHEN THF.RE ARE NO SIGNIFICANT ERPORS. TNNINX: CLR RO ;SHOW THAT NO SIGNIFICANT ERROR OCCURRED. TNN~IT: RTS PC 007777 000016 000176 007476 000017 000010 000013 000014 0(17776 000376 000074 000172 007767 ; ;Tl, ~2, & T3 MUST PE SPEC UL CAS'"D l'I COOE. TU T6: • wooo 7777 ,HRRD T5ETB: .l<OP.D T6ETB: .WORD T7AETA: .WOPD 16,'IFFRPD 176,SlLRD 7470,SHLBD 000015 T70ETA: .WUPO 7776,S2BLAD 000016 000010 000010 000017 TlOf.Tll Tllf.T!l Tl2f.TEl Tl 3Er8 .WOPD .WOPD .WOPD 376,PAPLBO 74,NFEPPD 172,NFERiW 77o7 1 Fi':RR0 .~OPU NOTE: AITS 6 & 7 ARE NOT INCLUDED BECAUSE A CONFIGUkATION JUMPER ON THE ~XTlt-CA SWITCHES TH~ OMA CHIP CONNECTION F~OM SLU2 CHAN A TO THE PIO CHIP. WHEN THE OMA CHIP IS CONNECTED TO TP.E PIO CHIP, BITS 6 & 7 WILL ALWAYS BE 11 EVEN THOUGH NO TRUE ERPO~ OCCURRED. THERFFORE, WE DO NOT SET THE LEOS. NOTE: DHA (ANO THEREF09L RITS 6 & 7) DO~S NOT APPLY TO CHANNEL 8. IF THE BITS COME ON WE HAVE A SERIOUS ERROR, SO WE OUGHT TO SET THE LE~S. { ( KXTNF - KXTllCA Native Firmware MACRO V05.00 D~ALD - OMA LOADER 00:51 Page 73 .saTTL DMALD - OMA LOADER • F:NABLE LC,r.BL 1 2 3 4 ~odule 5 6 1 8 9 name: OMALD - OMA LOlO System: KXT11-CA Native Firmware 10 11 Functional Description: 12 13 14 15 This ls the module that contols the loadiny of the JOP's application from the Q hus by the OMA controller. It is used by the Q bus co•mand interpreter module on reception of a OMA load command. This •odule expects the data which is to be placed into the chain control registers of the O~l controller to be in the dual port registers 2 and 3. On completion of the load, this •odule places the lOP in the Wait state. 16 17 111 19 .... 0 N 20 21 22 23 24 25 26 ;Input Parameters: Nf1NE ;riutput Parameters 27 NONF: 28 29 30 31 32 33 ;DATA STRUCTURES USED 1) 2) 3) 4) 5) o) 3'1 35 36 37 38 19 ;'loutines Used 40 41 42 43 44 1) WAIT$T (JUMP TO) ;r.lobal Symbols Defined KXTNF - KXTllCA Native Firmware MACRO V"S.00 DuALO - O~A LOAOEP 1 2 3 4 5 6 7 8 OMA MASTFR MOOE REGISTER OMA COMMAND REGISTFR OMA CHAWNEL 0 PEGISTER OUAL PORT RAU REr.ISTER 2 AND 3 IOP STATUS RFGI5TER IOP COMM•NO PEGISTFR 174442 174446 174470 174454 174456 010000 000 002 004001'1 CHNIJFO CHt;STO MMi\F.GA CM RI' GA SrtllEGA CUIT F.OPBIT NACA lT Ou:51 = = = = = = = = Page 74 174442 174446 174470 174454 1 74456 10000 ;_ 400'1 OMA CriAlN OFFSET REGISTER ADDRESS OF CHANNEL 0 OMA CHAIN SEGMFNT/TAG REGISTF.R ADDRESS OF CHANNEL 0 OMA uAStF.R MODE REGISTF.k ADDRESS OM~ fOMMAHO REC.lSTER ADDRESS OMA CHAhN~L 0 STATUS REGlST~R ADDRESS CHAI~ AfiO~T 91T OF STATUS FhD OF PPOCESS BIT Of STATUS NAC Rl~ Of STATUq KXTWF - KXTllCA Native Firmware MACRO(, ,5.00 DMALD - OMA LOADER O"ALD:: 3 B 'I 171046 10 11 12 13 14 15 16 17 ltl DMA50: ;* * SET LEDS TO OMA DISPLAY MOV MOV J"'P #D/o!AEO, RO llDMA50,Rl SC:TLDJ ;* * SET OMA MASTF.R MODE REGIST~R TO NO INTERRUPT 174470 MOVB #1~1,fl#llMRi::GA 171054 171062 013737 013737 1750(14 MOV MOV ~~kW.SC'2 1 @#CH~OFO 17~006 174442 1741\46 171070 112737 00020 2 174454 MOVB #'202 1 @#".:MPt:r;A 171076 112737 000240 174 454 MIJVB #241J, fi#01Rr,GA llMAlOO: 171ll'4 n w 1.100002 171046 176134 000151 23 171114 24 25 26 171114 0 012700 012701 00,167 112737 19 20 171104 21 171112 I-' Paqe 75 ;* PROCFOURE OMA LOA~ 1 2 171032 4 17103'2 5 171036 b 1710 42 7 171046 00:51 032737 001774 0140() 2 174156 dlT BEQ ~,KW.SC3 1 P#CHNSTO ;* * ~ET HAPDWAR~ MASK ;• * STANT CHAIN LOAD CHANNF.L 0 ;* * 00 UNTTL O~A CONTROLLEF STOPPED ;* * * Tf,ST fflj; !-:NO 01' TRAllSFF.R n<CABIT I EOPBIT I ~ACBIT>,P#SOPcGA O~ A100 ;* * END UHTlL D"!A200: I ;• • roPY D"A STlTUS PEGtSTFR CHANNFL 0 TO DUAL PO~T REGISTFR L ; 013737 174456 17~004 MOV @tSORFGA,~IKW.SC2 032737 001004 010002 174456 !HT llNE #<CABTT I Olo'A100 042737 000 40 3 040000 BIC llR 0'4A400 BIS ;fr fr * SET D'4A ERROR ANO COMMAND F.RROQ BITS OF DPR #<KXSCMf. I KXSDME>,@i~W.STA ; fr " ENO IF 27 28 171122 29 171130 30 31 32 171132 33 171140 34 35 171142 36 37 171142 311 39 171150 40 41 1711!>0 42 43 171150 44 171154 45 171160 46 47 171160 48 49 171164 50 ;* * COPY CPAI~ UATA TO OMA CHAIN RF.GISTERS 175002 DMA300: 052737 140000 175002 ;* * IF NORMAL COMPLETION ; fr fr FLSE ;* * ~ND IF DMA500: 1fr * SETUP STACK POINTER AND RS Mnv 171160 002526 ;fr * THEN ;fr fr * CL~AR D"!A ERROR BIT OF OPR #<K~SDMF.>,@#KW.STA DMA400: 012700 000167 EOPBIT>,@~SORf.GA J~P #DMA600,RO SPR'i SU DMA600: ;• * CLF.AR COMMAND REr.ISTER 005037 175000 CLR (!llKW .C"MD 000167 176112 JMP WAITST ;* fr F.NTEQ WAIT STATE (NO" STRUCTURED EXIT) ;fr f.ND DMA LOADF.R KXT"F - KXTllCA Native BSUPV - BOOT SUP~RVISOR Fi~M4are MACRO V05.00 00:51 Page 76 ( .SBTTL USUPV - BOOT SUPERVISOR .F.NAbLE LC,GBL 1 2 3 4 5 name: RSUPV - POOT SUPF.RVISOP 6 7 ~odule B CJ System: KXTll-CA Native Firmware 10 11 12 13 14 15 16 17 18 19 20 21 Functional Description: This •odule supervises the boot process. It •akes the deter•ination of which device the application will he loaded fro• and transfers control to the appropriate routines. ;Input Parameters: 22 ...... 0 ~ ~--. 23 :<4 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4:<! 43 44 45 46 47 48 49 50 51 52 1. BOOTFO of FLGWRD ; ;Output Parameters NONI". ; ;Data Structures Used 1. LED DISPLAY 2. IOP STATUS REGISTF.R J. TCSRB, bits of BOOTSW ; ;Routines Used 1. TU58 Root (TU5BBT) 2. Loop back tests (LBTEST) 3. Serial ODT monitor (SODTM) 4. Set LEDs (Sf.TLED) 5. Trap 24 emulator (TRAP2•) ; ;Global Symbols Uetined NOii~ KXTNF - KXTllCA Native flrmwa\_ MACRO V05.00 BSOPV - BOUT SUPeRVISOR 1 2 171170 00:51 ( P<1ge 77 ;* PROCFOORF. POOTSTRAP SUPeRVTSOk BSUPV:: ;* * SET SP TO DefAULT USF.R STACK J 4 171170 5 171172 6 171176 010500 062700 01000 6 HOV ADO MOV 177700 RS,PO llAOSTKO,RO RO, '>P ;* * CASE BOOT SELECTION ;* * WHF'" 0 ; * * OR l ; * • 01< 2 1 B 9 10 11 171200 12 171206 022765 103414 00000 2 012700 004767 1)00000 175760 117774 CHP bLO #2,!:IO(lTfO(R5) jjSlOO HOV CALI. llNN".EO,PO SF.Tl.FD ;* * * SET LEOS TO NON NATIVE CODF. STATE 1J 14 171210 15 171214 16 17 18 171220 19 171226 20 21 171234 ' ;* * * ; 042737 052737 1)00007 000007 000167 176116 022765 001014 000()03 012700 004767 000001 175720 042737 052737 000007 000005 000167 000434 022765 001007 000004 052737 020000 175002 175002 ii IC #KMSSTF',@#KW.STA HIS #~PSNNC 1 t!i#KW.STA JMP TRAP 24 C'IP LINE 113 1 ROOTF'O(f;5) IJS200 1 HOV OLL lfPRiilD,RO S!::Tl..Ell BTC BIS -KMSSTf ,@JKW.STA JHP T'l51lilT Cl'P B~E #4,BOO?l'O(R5) 05300 LI IS #KXSBnF',@JK~.STA Ct.R Cl.R -(SP) -(SP) ;* * * F.~ULATF TRAP TO 24 (NON STRUCTU~EO EXIT) ;* * WHEN 3 22 I-' 0 U1 23 171240 24 171246 25 26 171250 27 171254 28 29 171260 30 171266 31 32 171274 33 34 171300 35 171306 36 37 171310 38 39 171316 40 171320 41 42 171322 43 44 171326 45 171334 46 47 171336 41) 171344 49 171346 50 51 171346 52 53 171352 54 171352 55 171360 56 57 171362 177774 llSlOO: 175002 175002 S~T STATUS Rf.GISTER TO NON NATIVE CUDE STATE ;* * * SET LED TO PRIMARY BOOTSTRAP STATE ;* * * SET STATUS kEGISTER PRIMARY BOOTSTRAP STATE #KPSPRS,~#KW."TA ;* * * PERFOR~ TU5B PRI~ARY BOOTSTRAP (JUMP TO TU58 MODULF) ;* * WHEN 4 177774 BS200: ;* * * DlSA~LE BREAKS 175002 005046 005046 000167 173300 022765 00140 4 000005 177774 022765 001002 000006 177774 * * PU~H 0 ADURlSS AND PSW ON STAC~ Bffl ;* * * P~RF'OR~ S~RIAL ODT ;(NON-STRUCTUPED f,XJT Tfl SERIAL ODT) ;* * llHF:lii 5 #5, BOOTl'O( RS) 05400 ;* * flR b #6,llOOTfO(R5) as500 JMI' ll:AITST C"P Hrl.I #A.,300TF'O(P5) IJS550 CMP #'1.,JOtJTF'O(R5) JHP bS30o: ;* CMI' l:iEQ CHP SODTM 85400: 000167 176030 022765 001404 000010 0 22765 000011 ;* * * WATT F'OR ;(NON STRUCTURED ~XIT) ; * * llHF.N 8 BSSOO: 177771 177774 ;* * OR 9 COMMA~D ( ( KXTNF - KXT11CA Native Fir•ware MACPO V05.00 aSUPV - BOOT SUPERVISOR 58 171370 59 171372 60 61 171372 62 63 17140C 64 fi5 171404 66 171404 67 171412 68 69 171414 70 71 171420 001005 00:51 Page 77-1 ONE ilS570 BIC #KX$0PE,@#KW.CSA Jl'i' LBT"'.ST CMP IH;E 1110. ,BOOTFOOl5) bS600 JMP 1HlTST BS550: 042737 000040 000167 172106 022765 00100 2 000012 000167 1757b2 012701) 004767 0001)17 175550 177520 ;* * * PE.RFORM LOOP bACK TESTS ;(hON-STRUCTUPEO FXIT) ;* * WHEN 10 BS570: 177774 ;* * * WATT FOR COMMAND ;(NON-STRUCTURt:.0 EXIT) ; * * F.l.St:. oS600: 72 73 171421) 74 171424 75 76 171430 77 78 ...... 0 0\ ;* * * f.~ABLE OVERLAY 0 000777 f AS:: 140V #"'E.RRD,RO CALL S~TLEO BP . ;* * * SET LEOS TO FATAL ERROR ;* * * INVALID SELECTION STOP IOP ;* * F;NC CASE ;* .,Hn BOOTSTQAP SUPERVISOR ( KXTNF - KXTllC.l Native Firmware MaC90 VOS.00 ~ODTM - Q BUS ODT ~ONITOR oo:st ( Page 18 .sarTL 1 2 3 QODTM - Q uUS ODT MONITOR .FN.lBLE GBL,LC 4 5 Module name: QOOTM - Q BUS ODT MOHlTOP 6 1 8 9 System: KXTll-C~ Native firmware 10 11 12 functional Description: 13 This module is the main controlling module for the Q bus ODT aode. It supervises the ODT functions and on co•pletion returns control back to the application or places the IOP in the wait state. 14 15 16 11 ; 18 19 ;Input Parameters: 20 NonP. 21 22 ;Output Par•meters 23 24 None 25 2b I-"' 0 .....] 21 28 29 30 31 32 33 34 35 36 31 38 ;Routines Used l) 2) 3) 4) 5) 6) 1) Save Registers (S.lVEPG) Set LEDs (SF.TLED) Wait State (WAITST) Go/Proceed (PROC) Go/Proceed (GO) Deposit (DEPOS) F.xaminP. (EX.l~IN) ;Qegisters Used Outside of output Parameters: ( KXTMF - KITllCA Nativ~ Fir•vare MACRO ¥05.00 QODTM - Q BUS ODT MONITOR 00:51 Page 79 ;* PROCEDURE Q ~us ODT MONITOR 1 2 171432 QODTH:: ;* * SET OOT FORMAT FLAG OF STATUS REGISTER ;* * SET MXM ~LAG OF STATUS REGISTER 3 4 5 171432 6 052767 010200 000167 173006 003342 BIS #<KXSNXF JMP SAVERG BIC HIS #KM$STF 1 @#KW.STA #KPSQOD,@IKW.STA MnV CALL #QUDTHD, RO SF.Tl.ED CLR R3 CLR ~llK'll.CMD 1 ...... 0 00 8 171440 9 171444 10 11 171444 12 171452 13 14 171460 15 171464 16 17 171470 18 19 171472 20 21 171476 22 23 24 25 171476 26 27 171476 28 29 171500 30 31 171506 32 33 171512 34 171516 35 36 171520 37 38 171526 QSRFT:: ;* * SET STATUS RF.GISTER TO Q DDT MODE STATE AND 042737 052737 000007 000003 012700 004767 000005 175510 175002 175002 005003 ;* * SET LEDS TO D AUS ODT STATE ;* * CLEAR ALL FLAGS ;* * CLF.AP COMMAND REGISTER 005037 175000 ;* * DO UNTIL RECEIVE ~XIT COMhANO QSlOO: * * OR P~OCEED GOMMAMD * * OR GO COMMAND * * * DO UNTIL COMMAND REGISTER NOT EMPTY QS200: 000001 ;* * * EhD UNTIL wAIT ;* * * CLF.AR HIC #KXSCME 1 @,KW.STA 175000 MOV @llK\f.CMD,PO 022700 001007 100000 CHP O'XSEXO,RO QSJOO 042737 000200 005037 175000 CLR 000167 175644 JMP 022700 001006 000020 004767 175240 052737 lOOCOO 042737 100000 013700 175002 a~E 175002 bIC 3~ 40 171532 41 42 171536 43 171536 44 171542 45 46 171544 47 48 49 50 171550 51 52 171556 53 54 171560 55 171560 56 171564 57 KXSQnF>,KW.STA ;* * SAVE RF.GISTERS (NON STRUCTURED JUMP TO AND BACK FROM SAVE REGISTF.R MODULE} CO~MAND F.RROR BIT ;* * * CASE COMMAND RECEIVEO ;* * * WHFN EXIT ;* * * * CLFAP QliUS ODT FLAG OF STATUS REG. #KX$QOF ,@#IOI. ST A ;* * * * CLF.AR COMMAND RE~ISTER @tltV.CMO ;* * * * FhTER WAIT STATE •AITST ;(hON STRUCTURED FXtT) ;* * * WHEN PROCEED QS300: bttE U'X$PPC.,RO QS400 CALL P!'OC ars #KX~CME,@11<11. 9q QSlOOO CMP 175002 000454 ;* * * * EXECUTE PKOCEED STA * * * * JF ERROR (RETURN FROM PROC) * * * * THEh * * * * * SET COMMAND ERROR RIT OF STATUS REG. ; * * * * F.ND a· ;* * * llHEli GO QS400: 022700 001012 000010 CMP B~E llKJISGOO,RO QSSOO ;* * * * SET GO ADDRESS DPI! 3 ( ( KXTNF - KXTllCA Native Firmware MACRO V05.00 QODTM - Q BOS ODT ~ONITOR ...... 0 ID 58 171566 59 60 111572 61 62 63 64 171576 65 66 67 171602 68 171610 69 10 111612 71 171612 12 171616 73 14 111620 15 76 171624 11 111630 78 19 111632 80 111632 81 111636 82 83 111640 84 85 111644 86 87 171650 88 171654 89 90 171656 91 171656 92 171662 93 94 171664 95 96 171670 97 98 171674 99 171700 100 101 171702 102 103 171702 104 105 171710 106 107 171710 108 171712 109 110 111 171114 112 113 171722 114 00:51 Pa9~ 19-1 013100 115006 HOV ~!IKW. 004767 1151H CALL GO 052703 100000 BfS 052731 0('10437 oonoo SC3, RC ;* * * * PERFORM GU ;* * * * If RETURNED ; * * * * TH FN ;• * * * * SlT ERROR FLAG 111530 liERPfGil, R3 ilIS #KX$DEN,~fKW.CSO BP QSlOOO ;• * * * * QE-ENARLE llOAL PORT PAM (OISlBLEO ; BY THE RESFT PF~FORMED BY GO ROUTINE) ;* * * WHEN DEPOSIT QS500: !l~E #KXSDf.O,RO QS700 17500 4 HOV @WKW.SC2,R4 174644 CALL bP llEPflS QSlOOO CMP ll~E #W:XSORD,RO QS800 022700 001005 000004 013704 004767 000 421 CMP ;* * * * SET OATA = DPR 2 ;* * * * DEPOSIT PEPFOR~ ;* * * W~~N OPEN REGISTEk QS700: 022100 001007 000002 013702 175006 140V i!!f!KW.SC3,R2 052703 000200 llIS #REr.FGll,R3 004767 000 415 174066 CALL t:lCA~IN il!l ;* * * * SET TAPGET = OPR 3 ;* * * * SlT REG/AOOR FLAG = REGISTER ;* * * * PERFORM OPEN ON REGISTER QS100('1 ;* * * WHEN OP~N MEMORY QS800: 022700 001007 000001 CMP llNE #KXSOMO,RO QS900 013702 175006 MDV ~fKW.SC3,R2 042703 000200 ilJC IREGFGl:l,R3 01)4767 000403 174042 CALL ilR EXA!'IH QSlOOO BIS #lfXSC~E,@llKW.STA ;* * * * SET TARGET = DPR 3 ;* * * * SET REG/lDOR FLAG = lDORF.SS ;* * * * PERFORM OPEN MEMORY QS900: 052737 100000 175002 ;* * * FLSE ;* * * * SET CO~MANO ERROR BIT ;* * * F.NO CASE Q;;lOOO: ,.•• * If ~RROR FLAG SET TST JPL 005703 100005 05273 7 100000 042703 100000 175002 R3 USllOO ; * * * THEN ;* * * * SET COYMAND ERROR FLAG OF STATUS REGISTER :ns #KX$CME 1 1J#KW.STA ll IC UFRPFGii,R3 ;* * * * CLF•R FRROR FLAG ; * * * ENI) IF ( ( KXTNF - KXTllCA Native Firmware MACRO V05.00 QOOTM - Q BUS OOT MONITOR ...... ...... 0 Page 79-2 QSllOO: 115 171726 116 117 171726 118 119 171732 120 00:51 005037 175000 000661 ;* * * CLY.AR CO~MAND REGISTF.R CLP ~flf(W.CMD BR QSlOO ;* * ENO IJNTIL ;* FNO Q BUS ODT MONITOR f(XTNF - l<XTllCA Native Firmware ~ACPO V05.00 TIJ58BT - TUSA BOOT STRAP 00:51 Page RO 1 .SBTTL 2 3 TU58BT - TU5d BOOT STRAP .ENABLE G'IL,LC 4 5 6 1 8 9 10 11 12 13 14 15 16 17 18 19 20 ~ Module name: !.JD Syst~m: KXTll-CA ~ative Firmware ; functional Description: This is the primary loader for TU58s. It will attempt to load and transfer control to the code in the boot block of a TU58 drive connected to the console port (SLUI). If the first word of the block is in the range of 240 to 277 it is considered a valid boot block. This routine will continue to try to boot until it suceeds. ( ( KXTNF - KXT11CA Nativ~ Fir•ware MACRO V05.00 TU58BT - TU58 BOOT STRAP OO:St P;ig~ 81 1 ;* 2 012700 !'!OV 000001 ..... ..... ..... 600T #1,RO ;* * DO UNTIL SUCFSSFUL BOOT 6 7 171740 8 9 171740 10 171742 11 12 171746 13 14 171750 15 16 171754 17 171760 111 171764 19 20 171770 21 171774 22 171774 23 171776 24 171776 25 172002 26 172004 27 172006 28 29 172010 30 172012 31 172012 32 172020 33 34 35 172022 36 37 172026 38 172032 39 172036 40 41 172042 42 172042 43 172046 44 45 46 172050 47 48 172054 49 172060 '50 51 172060 'i2 172064 53 172066 54 172072 55 172074 56 172076 57 TU~8 ;* * SET ORIVE FLlG TO 0 4 5 171734 PROCFDU~F, TU583T:: 3 171134 1UlOO: ;* * * TOGGLE DRIVE FLAr. 005100 042700 177776 COM BIC RO rct,Ro CLR R4 ;* * * SFT POINTER = 0 005004 ;* * * SEND BqEAK 004767 000 26<' CALL SNUllRK 012702 012701 004767 000002 172320 000310 ~ov MOV CALL #2,R2 #INITST,Rl Sf.ND 012703 000002 MOV n,q3 CLR R2 TSTB BMl SOB SOB TU130 112,TU125 R3,TU120 llR TUlOO C!'.Pll bNE #20,@#RBUFlA TIJ120 ;* * * SEND INIT ;* * * DO UNTIL TIMED OUT OR CONTINUE RECEIVED Tt'120: 005002 TU125: 105737 100 403 077204 077106 177560 000753 @,RC~U ;* * * FND UNTIL ;NON STRUCTURFD BRANCH TU130: 122737 001365 000020 177562 004767 000206 CALL SND3RK 012702 012701 004767 000002 1723:<2 000236 MOV HOV CALL #2,R2 #BUOTST,Rl ;* * * SEND BREAK ;* * * SEND BOOT COMMAND S~:NO ;* * * DO UNTIL TRANSMIT BUFFER EMPTY TU150: 105737 100375 177564 110067 012702 TSTB 3PL @11.XCSRlA TU150 005512 MOVB RO, XBUFll 001000 Ht'"'V #512,,R;> HOV CLR #100,R3 Rl (!#RCSRlA T!•SOO H 1 TU400 k3,TU300 ;* * * END UNTIL ;* * * SEND DRIVE NUMBER ;* * * DO UNTIL 512 BYTES RECIEVED TU200: ;* * * 012703 005001 105737 10040 3 077104 077 306 000100 177560 TU300: TU400: T~TI' ;JMl SOB SOB O~ TIMED OUT ;* * * * IF TIMF.U UUT ( ~XTNF - KXTllCA Native Firmware MACRO VOS.00 TU58LT - ruse BOOT STRAP ..... ..... "' 58 59 60 172100 61 62 112102 63 64 172102 65 66 172106 67 68 172110 69 70 172110 71 172114 72 73 172116 74 172120 15 172124 76 77 172126 18 172132 19 80 172134 Bl 172140 82 83 84 172142 85 81> 172144 87 88 172144 89 172144 90 172146 91 92 172150 93 172150 94 172152 95 172156 96 172160 97 172164 98 99 172166 100 101 172110 102 172174 103 104 172200 105 172206 106 107 112214 108 172220 109 110 1722L2 111 112 172226 113 114 172230 000117 oo:st Page 81-1 BR TUlOO MOVB @llli8UF'll 1 (k4)+ DEC l<.2 Cl'P !1509., R2 TUbOO ;* * * * THEN ;* * * * * RETRY ;(NON STRUCTURED BRANCH) ; * * * * ELSE TU500: ;* * * * * INPUT DATA 113724 177562 ;* * * * * DECREMF'NT BYTE COUNTER 005 302 TUl>OO: 022702 001013 000175 ;* * * * END If ;* * * * If 3 BYTES HAVE BEFN RECEIVED BNI:: ;• * * * AND BYTE l 005001 122721 001007 000002 122721 001004 122711 001001 CLR CMPA ll'IE Rl #2, (Rl )+ TUBOO 000012 CMPA B'IE #12,(Pl)+ TIJ800 000100 CMPA HlOOi(Rl) TU80 ;* * * * ANO RYTE 2 = 12 i* * * * AND BYTE 3 fj!Jf. =2 = 100 ; * * * * THEN ;* * * * * RETRY 000676 !JR TUlOO ;* * * * ENO If TU600: ;• * * ENO UNTIL TU900: 005702 001344 TST ilNE R2 TU200 CLR CMI' BLO CMP BHI R2 (!12),!1240 TUlOIJ (!12),11277 TOlOO 1t0V RO, 114 MIJV CALL #NNCED,RO SETLf.D arc dTS #!';HSSTF I ~'Kii. STA #ltPSNlllC,@#Kll.STA MDV AOD fADSTKO,SP RS,;,p HOV #RCS I< lA, 1<1 MOY R4,RO JMP ~-0 ; * * EllO UNTIL TU100t': 005002 021227 103670 021227 101265 000240 000277 010004 ;* * SAVE UNIT NO. ;* * S~T LEO DISPLAY TO NON NATIVE CODE EXECUTING 012700 004767 000000 175000 042737 052737 000007 000001 012106 060506 177100 012701 177560 ;* * SET STATUS R~GISTER TO NON NATIVE CODE STATE 175002 115002 ;* * SET STACK POINTER TO DEFAULT USER STACK ;* * PASS CSR ADDRESS TO SECONDARY LOADER 010 400 ;* * PASS UNIT NUMBER TO SECONDARY LOADgR ;* * FXFCnTF AT 0 000137 000000 ( KXTNF - KXTllCA Native Firmware MACRO VOS.00 TU58BT - TUSH BOOT ST~AP 00:51 Pa~e Bl-2 ;* F:NO TU58 BOOT 115 KXTNF - KXTllCA Native Fir~ware MACRO VOS.00 TU5B6T - TU58 BOOT STRAP 1 2 172234 3 4 172234 5 172240 6 172244 7 172246 8 172254 9 172260 10 P aqe '3 2 ;* PROCEDURE BkEAK SNUBRK: 012702 105737 100 375 052737 005037 071211 000010 177564 000001 177566 SN100: 177564 11 ...... ...... w 00:51 ;* * SEND BREAK FOk 8 CHAR. TIMES MOV TSTB bPL BIS CLR SOB #R.,R2 UXCSRU SNlOC #1,@MXCSRll @llXBUFU R2,SN100 ;* * END ~NTIL I 12 172262 13 172266 14 15 16 172270 105737 100375 177564 042737 000001 17 111 172276 000207 SN200: 177564 TSTB BPL HXr.SRlA SN200 BIC Ill, ~IXCSRl A ;* * END UNTIL ;* * CLEAR BREAK RF:TUkN 19 20 21 22 23 24 25 26 27 28 172300 ;* * RLTURN FROM CALL ; * END BREAll' ;* PROCEDURE SEND SEND: i* * DO U'lTIL DATA COUNT ~ 0 ;* * * no UNTIL TRANSMIT BUFFER EMPTY 29 30 31 172300 32 172300 33 172304 34 35 36 172306 37 38 172312 39 40 1723\4 41 4:Z 17~316 43 44 45 I ;* * no UNTIL TRANSMIT BUFFER EMPTY SOlOO: 105737 100375 177504 112137 177566 TSTR HPI. @f!Xr.SfllA Sill 00 ;* * * E~O UNTIL ;* * * OUTPUT NEXT CHAR. r!OVP (Rl )+,@UBUFl ~ 005302 ore W2 001371 ANE SDlOO 000 207 RF:TllR'I P~R ;* * * DECRFHF:NT DATA COUNTER ; * * END UNTIL ;* * RETURN FROM CALL ;* ENO SEND POINTER ( ( KXTNF - Y.XTllCA Native Firmware MlCQO V05.00 T058BT - ~use BOOT STRAP ' 1 1111.20 .2 1123.21 3 4 17.2322 5 17.2323 Page 113 004 00 4 INITST: .BYTE • BYTE 4 004 ClO llOOTST: .BYTE .BYTE 4 10 6 7 8 4 .f.YSN KXTNF - KXTllCl Native Fir•ware ~lC~O V?S.00 POTEST - POWER UP SELF TEST 1 2 00:51 00:51 Page 84 .SBTTL PUTEST - POWEP OP SELF TEST .ENABLE GBL,LC 3 4 5 6 7 8 Module name: PUWER OP SELF' TO:ST - PHTEST Syste•: KXTll-CA Native firmware 9 10 ~ ~ .e. 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 functional Description: This module controls the Pxecution of the Power Up Auto self Tests. It detemines which of the test are to be executed per the Boot/Self Test selection. This routine also tests the Status Register of the OPR regardless of the eoot/Self Test Selection and halts the KXT if the test falls. Note: There are two important addresses with regard to the Power Op Self Tests. FARSTR (defined in this module) is the address the KXT will be looping at if the Status Register is found to be faulty. FTLST (defined in the EXTEST module) is the address that the KXT will be looping at if any other fatal self test error is found. 26 27 28 Input Para•eters: 29 30 31 32 BOOTFO(R5) - Boot selection location output rarameters: 33 34 35 36 37 38 39 40 41 42 None koutines Used: 1) Set LEDs (SETLFD) 2) Execute Test (EXT~ST) ( KXTNF - KXTllCA Native firmware MACPO V05.00 PUTEST - POWER UP SfLf TEST 1 172324 2 3 4 172324 5 6 00:51 Pa9e 85 PUTEST:: ;* PROCfDURE POWER UP SELF T~ST ;* * CLEAP ALL F,RROR BITS IN OPR 2 005037 175004 CLR 012702 011200 012701 010112 020112 001004 005112 005101 020112 001405 175002 MOV HOV HOV HOV CHP llNE COM COM CMP @t!K ii. SC2 ;* * TEST DPR STATUS REGISTfR BY WRITING ; ALTEPATI~G l"S AND o·s INTO IT ANO COMPARING WHAT IS REAU BACK ; 1 ...... ..... V1 8 172330 9 172334 10 112336 11 172342 1.2 172344 13 172346 14 172350 15 172352 16 172354 17 172356 18 19 172360 20 21 22 172360 23 172364 24 25 172370 26 27 172372 28 29 17237:> 30 31 172374 32 172400 33 172402 34 172404 35 172410 36 37 172412 38 172416 39 40 172420 41 172424 42 43 172426 44 172432 45 172434 46 172440 47 48 4~ 172440 50 172444 51 52 172450 53 172454 54 55 172460 56 57 17.1466 052525 BF,Q ~tnl.STA,R2 ( R2) 1 RO 152525,Pl Rl 1 (R2) Rl 1 (R]) Pu2n (R2) Rt Rl 1 (R2) PU30 ;* * IF TEST FAILED P020: ;* * TilEN ;* * * SET LEOS AND STATUS REGISTER TO FATAL ERROR 012700 004767 000017 174610 HOV CALL #f"ERRD 1 QO SO:TLEjll ;* * * STOP FARSTR:: BR 000111 ; * * END IF PUJO: ;* * RESTORE STATUS REGISTER 010012 016500 005700 001414 022700 101013 1777H 022700 001410 000005 022700 001405 000010 022700 00140 2 000167 000012 000004 MOV R0 1 (R2) MOV TST BEQ CMP BOOTFO(R5 ) 1 RO RO PU50 #4,llO PUlOO ilHl ;* * IF BOOT/SELF TEST SELECTION = 11 21 3 ;* * OR 5 CMF aF:Q #5 1 RO PUlOO ; * * l'JR 8 CMP 0F,Q #fl.,:<O PUlOO ; * * OR 10 C'IP B<'.Q 000126 PU50: PlllOO: J'!P #10.,RO PlllOO PU1010 ; * * TH£N 04.l712 052712 177770 000001 BTC BIS iAC<KM$STF> 1 ('l2) llKPSSTS,(R2) 012701) 004767 000007 174520 MOV CALL llPUTSDS, RO S<:TLED 052767 000100 ii IS #KXSDEN,K11.r.sr 140V #4 1 P2 012702 000004 005042 ;* * * S~T STATUS REGISTER TO AUTO TEST MODE STATE LEOS TO POWER OP TEST DISPLAY ;* * * S~T ;* * * F.~ABLE OPR ;* ... ·r:sr CPU ( ( KXTMF - KXT11Cl Native Fir•ware MACRO YOS.00 PUTEST - POWER UP SELF TEST 58 172472 59 60 172476 61 172502 62 63 172506 64 172514 65 66 172516 67 172524 68 172526 69 70 71 172526 72 172532 00:51 Pa9e 05-1 004767 000072 CALL EXTFST 01270 2 004767 000002 000062 NOV CALL #2,q2 EXTEST 022765 00140 4 000002 177774 C"!P bFQ f12,BOOTFO(R5) PU400 022765 00100 3 000011 171714 CNP kNt: #9., l!OOTFO( RS) prJ500 ;* * * TEST RlM ;* * * IF BOOT/SELF TEST SELECTION ; * * * OR 9 PU400: 012701 000401 000001 ;* * * ThF.N ;* * * * T~CLUDE USER ROM IN TEST /o!OV bR #1, Rl PU600 Ct.R Rt ;* * * FLSt: 73 74 172534 75 76 172534 PUSOO: ;* * * * OU NOT INCLUDE USER ROM IN TEST 005001 ; * * * FNO 11 78 172536 PUt>OO: ~ ~ "' 012702 004767 000003 000:122 MIW CALL 13,R2 012702 004767 000001 000012 HOV CALL 11, R2 012702 004767 000011 000002 1-!0V CALL #11, R1 EKT:OST EXTFS~ ;* * * TEST CSR EX TEST ;* * * TEST LOCAL DMl ;* * F.NO IF PUlOlO: ;* * RETURN FROM CALL 000207 RETUl<N ;* ~NO POWER UP SELF TEST KXTNF - KXTllCA Native Firmware MACRO vos.oo EXTF.ST - EXICUT~ TEST 1 2 3 4 5 6 7 8 If ;* * * TeST ROM 79 80 172536 81 172542 82 83 172546 84 172552 85 86 172556 87 172562 88 89 172566 90 91 172566 92 =2 00:51 .SBTTL Page 86 EXTEST - F.XICUTE TEST • F.NAllLE G8L, LC Module naMe: EXTEST - EXECUTE TEST SysteM: KXTll-CA ~ative Fir•ware 9 10 11 12 13 14 15 16 17 18 19 20 21 Functional Description: This module is used by PUTtST to call a particular self test and display any error results in the LEDs and the DPR. It will also halt the KXT if a fatal error is founj. Input Parameters: Rl = TEST PARA~ETERS R2 = !~ST NUMRER ( ( KXTNF - KXTllCA Native Firmware MACPO V05.00 EXT~ST - EXICUT~ TEST 1 2 172570 00:51 Page !17 ;* PROCFDURE TEST EXTF.ST:: ;* * INITIALIZE IO J 4 172570 5 6 172574 004767 000616 010246 CALL ilIIHT MOY R2 1 -(SP) MOY ~#Kil.CSC 1 -(SP) HOV Rl 1 -(S?) BIS #lfX$NXF ,@#KW.SU c..-p f7,R2 TrtOO ;* * SAV~ TEST NU ... BER ;* * SAVt LED STATE 1 ....... ....... ..... 8 172576 9 10 172602 11 12 172604 13 14 172612 15 172616 16 17 18 172620 19 172626 20 21 172630 22 23 172630 24 25 172636 26 27 172642 28 29 172642 30 172644 31 172646 32 33 172652 34 35 172660 36 37 172662 38 39 172606 40 41 172670 42 43 172672 44 172674 45 4b 172700 41 48 11no2 49 172704 50 51 52 172706 53 172710 54 172712 55 172714 56 172716 57 013746 177524 010146 ;* * SAVE TFST PARA ... ETER ;* * SET NXM FLAG OF STATUS RFGISTER 052737 010000 022702 103404 000007 042737 000405 000040 17500 2 illO [!JC 1775i0 Bt; ;* * IF TEST NUMBER < 1 ;* * THEN ;* * * CLEAR ROM MAP illT #KXS DPE 1 @#KL. CS A TE200 ;* * ELS!:: TElOO: ;* * * SFT ROM MAP BIT 052737 000040 162702 000010 177520 tlTS llKXSDPE,@#KL.CSA SUB 1110,R:' I ;* * * ~UBTPACT 'B FROM TEST NUMBER ; * * ENP IF TE200: 006302 006 30 2 004762 160000 042737 010000 ;* * PtRFORM TEST ;MULT. TEST NO. BY 4 ASL ASL CALL R2 R2 TO ( R2) BIC JKX$NXF 1 ~#KW.STA MOV (SP)+ 1 Rl HOV (SP)+, ~llKil.CSC 011602 HOV (SP) 1 R2 010003 MOY i<O,FJ 006 30 2 004772 ASL OLL «< 012602 HOV (SP)+ 1 k2 005701) 001410 TST RO l!f.Q T!'300 ;* * CLF.AR NXM FLAG Of STATUS REGISTER 175002 012601 ;* * PET~IEVE Tf.ST PARAMETER ;* * RESTORE LED STATE 012637 177524 ;* * RETRIEVE TEST NUMBER (P.UT LEAVE ON STACK) 17i746 ;* * SAVE TEST R!::SULTS ;* * SET LEDS PF~ RESULTS @<'r.RRTJ-2>(1l2) ;* * RETRIEVr. 1EST NU~BEk ;* * IF SIGNIFICANT ERROR ;* * THEli J* • * S~T ERRUP BIT Of TEST IN OPR 2 005000 000 261 00610!) 077202 050037 TF25J: 175004 CLR .>EC l<OL SOB BIS RO RO W2 1 TE:250 RO, l!#Kil.SC2 ;* * * PLACF ·DISCRETE ERkOk DATA IN DPR 3 ( ( KXTNF - KXTllCA Native Firmware MACRO VOS.00 EXTEST - EXTCOTE TEST '5B 112722 59 60 112726 61 62 172726 63 172734 64 65 66 172736 67 68 172740 69 10 112140 11 12 172146 13 14 010 331 175006 ...... ...... 00 MOY 032137 001401 000040 3 k3 1 @#Jl:W.SC3 ; * * ENO TF ;* * If FATAL ERROR BIT BE"Q 175002 iKXSFEF,@~KW.STA TE400 ;* * THEN ; * * * STOP . fTLST:: BR 000111 ; * * F'NO JF TF:401J: 042737 000040 117520 ;* * FNAbLE OVEPLAY 0 BIC 5KXSDPf.,@#KN.CSA Rf.TURN 000207 170506 170546 170576 170642 17065') 170656 170664 170720 170726 110734 170742 ENTRY ADORESS/TF'ST TABLE ERRT3: .WOPO .WORD .WORD .IWRD .WORD .WOPU .WORO .WORD .WOPD .WOl!O .WOPD 01):51 ;* * RETURN FROM CALL ;* F.ND TEST ;TN~ERR KXTNF - KXTllCA Mativ~ Firmware MACFO V0~.00 EXTEST - EXICUTE TEST 1 2 Page B7-1 TE300: 75 76 11 172750 78 172752 79 1727'54 BO 112756 Rl 172760 82 172762 IJJ 172764 84 172166 85 172170 8b 112172 87 172174 00:51 TlERR T2ERtl T1F.RR TURR T5ERR I T6ERR T1ERR TlOERR Tl 1 C:RP T12F.RP T13F.RR Page BB .SBTTL ENTRY POINT .=-173000 .FNABLE GBL,LC Functional Description: 113000 4 5 6 1 These are the entry 8 9 10 Power Up entry point 11 12 173000 13 14 15 16 173004 17 000167 000006 PERV:: ; 000167 170710 J~P ~estart KSTV:: PilRtJF entry point JMP RESTRT point~ to the native firmware ( ( KXTNF - KXTllCA ENTRY POINT Nativ~ Firmware MACRO V05.00 1 2 3 4 00:51 Page 89 .SBTTL PNRUP - PONEP UP HANDLER • ~llA8LE G8L, LC .=173012 173012 5 6 Module na•e: PNRUP - PONER OP 7 8 ; System: KKTll-Cl Native Fir•ware 9 10 11 12 13 14 ; Functional Description: 15 16 ; 17 18 19 20 21 ;This routine services the Power Up Interrupt at location 173000. 2.l ; 23 ;Output Parameters ; ;Tnput Para•eters: NCJNE 24 f-' f-' \0 1. P5 = Top of 25 26 27 ; 211 ;oata Structures 29 30 31 l. BATTERY BACrUP POWER UP FLAG (STATUS REGISTF.k) 3<! 2. POWER UP FLAG (STATUS REGISTgR) 33 34 35 3. JATTEPY PACrUP FLAG 36 4. BATTERY BAC~UP FLAG 2 5. Map Selection Bits (KXTCSP B, bits 1-3) 6. Boot Flag (BOOTFO) RA~ ~ointer 37 38 39 40 41 ; 42 ; Routines Used 43 44 45 46 1. INIT 2. PUTEST 3. BSUPV (1u•p to) 47 48 49 50 51 52 53 4. SETLED 5. TRAP24 (jump to) ( ( KXTNF - KXT11CA Native Fir•ware MaCRO V05.00 PWRUP - POmER UP HAIDLER 1 2 173012 3 4 5 6 173012 7 173014 8 9 173016 10 11 173016 12 13 173022 ~ I\.) 0 Page 90 ;* PROCF.DURE POWER UP PVRUP:: 005004 000404 ;* * IF POWF.R UP VECTOR ENTRY ;* * THEN ;* * * SlT 04 = 0 CLR BP PW050 R4 REillIT:: 000001 MOY #1,R4 013703 175006 MOV @JKW.SC3,R3 140V #'212,@#C8255 ;* * INITIALIZe THE 8255 012737 000212 005037 177530 CLR @l!KW.CSD 012700 012701 005021 077002 000020 175000 HOV MDV CLR SOB #20,RO llKW. Cl'D, Rl CRl )+ 1 Ro,rw100 005737 177562 TST @#RRUF 1 A 152737 005000 077001 077 001 142737 000017 177524 000017 177524 012700 000167 173112 000574 PWlOO: 022701 001013 113700 042700 006 200 006200 006 200 006200 010065 000 402 R4 PW300 CMP BNE 110.,;n ;* * IF POWER UP ENTRY PW500 @ftKL.CSB,PO blC #~C<KMSSlllS>,RIJ ASk ASR ASR ASR MOV RO RO RO kO R0,600TFO(R5) Pll600 llR ;* • FLSE PW500: 010365 ;* * OR ~EINIT ENTRY AND DPR 3 = 8 ;* * THEN ;* * * SE~ BOOT FLAG = BOOT SWITCH SETTING MOVB 177774 ;* * READ SLUl TO CLEAR A"Y PENDING BREAKS TST HEQ PllJOO: 177522 177417 ;* * CLF.AR THE DUAL PORT QAM MOV JMP PW200: 000010 ;* * CLEAR ALL KXT CSR"S ;* * SEQUENCE LF.DS (ON-.5 SEC.-OFF) #<KX$LD0 I KXSLDl I KXSL02 ! KXSLD3>,@#KW.CSC RO RO,. kO,. #<KXSLDO I KXSLDl I KXSLD2 I JXSLDJ>,@#Km.CSC ;* * INITIALIZE STACK POINTER ANO SET R5 TO TOP OF RAM #Pll200,RO SPR'iSU illSB CLR SOB SOB BICR 005704 00140 3 ;* * * SAVE DPR RF.GISTER 3 ;* * ENO IF Pll050: 177526 ;* * ELSe ;• * * SET R4 = l 012704 14 15 173026 16 17 173026 18 19 173034 20 21 173040 22 173044 23 173050 24 173052 25 26 173054 27 28 173060 29 173066 30 173070 31 173072 32 173074 33 34 173102 35 173106 36 173112 37 38 173112 39 173114 40 41 173116 42 173122 43 173124 44 45 46 173124 47 173130 48 173134 49 173136 50 173140 51 173142 5l 173144 53 173150 54 55 173152 56 57 173152 00:51 177774 ;* • * SET ROOT FLAG = BOOT SELECT PASSED WITH COMMAND MOV R3,P.OOTF0(!-5) ( ( KXTNF - KXTllCA Native Fir•ware MACRO V05.00 PllRUP - POWER UP HANDLER 58 59 173156 60 61 173156 62 173160 63 64 173162 65 173170 66 67 173172 68 173200 69 00:51 Page Q0-1 ; * * FND If PWbOO: 005704 001034 R4 PW700 CMP BNE #12~252,BBFtO(P.5) ;* * ANO BATTERY BACKUP FLAG 1 022765 001030 125252 022765 001024 0525;(5 000000 171776 cr~P tlNE Pll700 #52525,RBF20(D5) Pll700 .... .... "' 91 ;* * aNO BATTFRY BACKUP FLAG 2 = 52525 ; 052737 042737 002000 001000 004767 000060 175002 175002 BIS fHC #KXSB U 1 @1/Kil. STA #KXSPllf,@#Kll.STA OLL INIT ; 042737 052737 000007 000007 I.ii C !JI S IKMSSTf,~-KW.STA 012700 004767 000000 173732 MOV CALL #NNCED;Ro SET LED 000167 174104 JMP TRA"24 175002 175002 Of STATUS REGISTER = 1 ,... * * INITIALIZE 1/0 ;* * .. 11 78 1732<!2 79 173230 80 81 173236 82 173242 83 84 173246 85 86 173252 87 88 173252 89 90 173256 91 92 173262 93 173270 94 95 173276 96 = 125252 ;* * THEN ;* * * SE.T BATTERY BACKUP POWER UP FLAG 10 71 72 173202 73 173210 14 75 173216 76 >* * If POWER UP ENTRY TST llNE S~T STaTUS r.ooE. STATE REGIST~R TO NON NATIVE #KPSN~C,@~Kll.STA ;* * * SET!LEDS TO NON NATIVE CODE STATE OISP. ;* * * EMULATE TR•P TO 24 (NON STRUCTURED EXIT) ;* * FL.SE PW700: ;* * * RUN SELF TEST 004767 171046 CALL PUTEST 004767 000020 CALL INIT 052737 042737 001000 002000 UIS ll TC #KXSPWF,@WKW.STA #KXSBAT,@ftKW.STA 000167 175666 JMP !JSUPV ;* * * INITIALIZE 1/0 ;* * * SET POWER UP FLAG OF STATUS REGISTER 175002 175002 =1 ;* * * BOOT IOP (JUMP TO BOOTSTRAP SUPERVISOR) ; * * ENO If ;* ENO POWER UP KXTNF - KXTllCA Native FirmwaC IRIT - INITIALIZATION MACPO VOS.00 00:51 ( Page 91 .SBTTL INIT - INITIALIZATION .ENABLE LC,GBL 1 2 3 4 5 Module name: INIT - INITIALIZATION b 7 System: II KXTll-C~ Native Firmware 9 10 11 12 ; 13 14 15 lb 17 functional Description: This module resets and initializes the OMA controller, 7201 and PTO. It also places the conf iquration data in the dual port RAH and enables thd dual port ~AH. 18 19 20 , 21 ;Input Parameters: 22 23 ...... N N NONF 24 ; 25 ;output ParaNeters 26 27 1. Reset DMA,7201,PIO 28 29 2. PIO Master Interrupt Reqister 30 31 3. " Port 1 Tntr. 4. n 32 33 34 35 36 37 5. " 2 " Ti••er " Vee. Reg. " " n n ( ( KXTNF - r.XTllCA Native firmware MACRO V05.00 INIT - INITIALIZATION 00:51 Pa9e '12 ;* PROCF.DURF TNITIALIZATlON l l 173302 3 4 173302 5 6 7 173306 8 9 173314 10 173320 lNlT:: ;* * TNITilLlZE IO 004767 CALL 00010 4 I-' l\.) w ;* * CLFAR ALL Of STATUS REGISTER EXCEPT STATE FIELD ANO POWF.R UP FLAGS rc<KHSSTF ' KXSPllF I KXSRAT>,~#Kll.STA ;* * If hO AUTO Sf.LF TEST ERRORS FOUND @llKW.SC2 11'1400 ;* * THEN ;* * * PLACF IOP HAP & BOOT CONFIGURATION IN DPR REGISTER 3 @llKll.CSB,RO l~C<KMSHAP I KHSSWS>,RO R0 1 (1#KW.SC3 ;* * * IF USER SOCKETS MAPPED TO 0 IKX$MP2 1 @1KL.CSR INlOO ;* * * THEN ;* * * * TEST FnR RAM AT 0 RO IN200 ;* * * f:tSE I ; 042737 174770 005737 001030 175004 013700 042700 010037 177522 177401 175006 032737 001'402 000010 il IC 175002 TST !Ult: 11 12 13 173322 14 173326 15 173332 16 17 173336 lB 173344 19 20 21 173346 22 173350 23 24 173352 25 26 173352 DIN IT MOV IHC HOV 177522 BIT BF.Q 005000 000 402 CLR BR INlOO: ;* * * * Tt:ST FOR RAH .AT 100000 012700 100000 HOV #100000,RO 011001 005101 005110 020110 001005 HOV COM COM CMP BNE (R0) 1 Rl Rl (RO) Rl,(RO) IN300 005101 010110 COM MOY Rl Rl,(RO) fl IS #BITO, ~#KW. SC'.' 27 28 173356 29 30 173356 31 173360 32 173362 33 173364 3'1 173366 35 36 37 173370 38 173372 39 40 173374 '41 42 173402 43 44 173402 45 46 173402 47 48 173410 49 IN200: ;* * * END TF ;* * * If RAM PRESENT ; * * * THEii ;* * * * RiSTORE CONTENTS 052737 000001 175006 IN300: ;* * * * SET RAM PRESENT BIT Of OPR REG. 3 ; * * * ENO II' ; * * END IF IN400: 052737 000 207 000100 177530 ;* * FNAbLE THE DUAL PORT RAH BtS RETURN #KXSOEN,@#Kll.CSO ;* * RETORN ;* FND TNITIALIZATION ( ( KXTNF - KXTllCA Native Fir•ware MACRO V05.00 DINIT - DEVICE INITIALIZATION 00:51 Page 93 .S8TTL OINIT - DEVICF. INITIALl7.ATION .ENABLE LC,r.BL 1 :.! 3 4 5 6 Module name: QINIT - 1/0 OlVlCE INITllLIZATION 7 System: KXTll-Cl Native Fir•ware 8 9 10 11 12 13 14 15 16 17 ; Functional Oescriptior.: Initialize all progra••able 1/0 devices. Oisables interrupts and sets programable interrupt vector addresses. ...... IV ~ KXTNF - KXTllCl Native Firmware MlCPO V05.00 OINIT - DEVICE INITIALIZATION 1 l 00:51 Page 94 ;* PROCFDURE DINIT DI NIT:: 173412 3 4 173412 5 6 173416 7 173422 8 173430 9 173436 10 173444 11 173452 12 173460 13 14 173466 15 173474 16 17 173500 18 19 173506 20 21 173514 22 23 173522 24 25 173530 26 27 173536 ;* * RESET OMA 005037 174454 CLR t!llD'UCDA 113700 112737 112737 112737 112737 112737 112737 175700 000030 Oil0030 000002 000024 000001 000004 175704 175714 175704 175704 175714 175714 MOVB '40V!l MOVB MOV1l '!OVA MOVR MOV8 @IS!.2SAA,PO #30,t!f3L2Cll #30,USL2Clil #2,(HSL2Cll #24, USL2C .U 112737 105037 000001 177000 177000 MOVR CLR!.l #01,@llPIOICA 112737 000200 17700'1 Mf1VR 11200,@#PIOAYA 112737 000204 177006 Mf1VB 11204,{!#l'I08Vl 112737 000210 177010 MOV!l #210,(il#PIOTVA 112737 000110 174532 HOVR #110,(il•DHAOVA 112737 000114 11'1530 MOVB i 11'1,(aJ!OHll VA #1,(il#~L2CllA #4,(il#SL?.CBA ~#PIOICA ;* * RESl::T 7201 ;(SFT STATUS EFFECTS VEr.TOR 81T) ; * ft RESET Pin ;* * SETUP PIO PORT A INTERRUPT VECTOR REGISTER ;* ft SETUP PIO PORT 8 INTERRUPT VECTOR REGISTER ;ft * SETUP PIO TIMER INTERkUPT VECTOR RFGISTER ;* ft SETUP OMA CHlNNl::L 0 INTERRUPT VECTOR REGISTER ;* * SETUP OMA CHANNEL 1 INTERRUPT VECTOR REGISTER ;* F'.ND DJllIT 000207 lll"'.TURN ( ACCUM - ~XTNF ( Native Flr•vare MACPO V05.00 ACCU~"LATE NUMBER ~XTllCA 00:51 Page 95 .SBTTL ACCUM - ACCUMULATE NUMBER .ENlbU LC,<;BL 1 2 3 4 5 6 Module name: ACCUMULATE - 7 Syste•: KXTll-Cl Native Fir•vare ACCU~ 8 9 10 11 12 13 14 15 Functional Description: This routine accu•ulates a 16 bit nu•ber by shifting the previous accumulation left 3 and "or"ing the nev input value (which is a single octal digit value) into the accumulation. lb 17 111 ..... N lJ1 19 20 21 22 23 24 25 26 27 ;lnput Parameters: 1) PO = OCTAL OlGIT INPUT 2) P4 = PREVIqus ACCUMULATED NUMBER ;Output Parameters: 1) q4 = ACCUMULATED NUMRER 28 29 30 31 ;Routines Used: None KXTNF - KXTllCA Native Flr•vare MACRO ¥05.00 ACCOM - ACCUMULATE NUMBER 1 2 173540 3 4 173540 5 173542 6 173544 7 8 173546 OD:51 ;* PROC~DURE ACCU'.'t:: ACCU~ULATE ;* * SHIFT INPUT L~FT 3 006304 006304 006304 ASL ASL ASL R4 R4 R4 050004 BIS RO,R4 000207 RETURN ;* * SET ACCUMULATED NUMBER : ACCUMULATED 9 10 173550 Page 96 ;* F.ND ACCUMULATE NUM~ER CURl DATA ( ( KXTNF - KXTllCA Native Fir•ware MACPO VOS.00 GETIN - GET INPUT 00:51 Page 97 .SBTTL GFTIN - GF.T INPUT .f'.NABLE LC,GBL 1 "J. 3 4 5 Module name: GET INPUT - GF.TIN 6 1 ; Syste•: KXTll-CA Native Firmware 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Functional Description: This routine inputs a character and sets the non nu•eric flaq if the input i~ not a number. If the input is a number it ls converted to binary, clears the non-numeric flaq and sets the data received flaq. Output Para•eters: 1) Data Received flaq - OARFGB of R3 2) Non ~umeric Flag - Carry Flag J) Input Data,- RO 2.! 23 f--1 "' (j\ KXTNF - KXTllCA Native Firmware MACRO V05.00 GF.TIN - GF.T INPUT 1 00:51 Page 98 GUIN:: "J. 173552 ;* PROCF.DORF. GET IMPUT ;* * 00 UNTIL.INPUT J 4 5 173552 6 1 173556 B 9 173560 10 173564 11 173566 1"J. 173572 13 14 15 173574 16 17 173600 18 19 173604 20 173606 21 22 173610 23 24 173610 25 26 173612 004767 000036 GElOO: 103 375 122700 101011 122700 103406 000060 000067 CALL CHKCHR &CC G"100 C'IPB BHI CMP!'I BLO 1·0,RO GE200 1·1,RO .;E200 ;* * THEN ;* * * CONVF.RT TO BINARY 162700 OOOObO SUB 160,RO 052703 00000 2 BIS lllHRFGB,R3 ;* * * SET OATA RECEIVED FLAG ;* * * CLEAR NON NUMERIC FLAG 000 241 CLC OIJO 401 UR GE JOO ;* * F.LSE GF.200: ;* * * SET NON NUMERIC FLAG SF.C 000 261 GE300: 000 207 ;* * F.ND IF ;* * PETUTN FqOM CALL 27 28 173612 29 30 i * * END UNTIL ;* * IF INPUT = 0 THRO 1 RET'lrtN ;* F.NO GET INPUT ( ( KXTNF - KXTllCA ~ative Firmware MACRO V05.00 CRKCHR - CHF.CK CHARACTER 00:51 Paqe 99 .SBTTL CHKCHR - CHECK CHAR•CTER .ENABLE GBL,LC 1 2 3 4 5 6 1 Module name: CHKCHR - CHECK CHARACTER Syste•: Micro-PAX RTS II 9 10 11 12 13 Functional Description: 14 15 This •odule tests the console serial line receive buffer for a character, siqnals if one was received ,echos the character and returns that character to the calling routine. This •odule is to be used for input polling. It will handle XON XOFF protocol. This routine will not ecco the XON or XOFF characters. 16 I-' IV .....J 17 111 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ;INPUT PAPAHETEPS NONF ;OUTPUT PARAHETF.RS = 1 FOR CHlRAC!ER RECEIVED, = 0 FOR NO CHARACTER 2) PO = RECEIVE BUFFER DATA, IF DATA RECEIVED 1) CARRY BIT ;DATA STRUCTURES USED 34 ; 35 1) ~) 36 37 SLUl CSR SLUl REC~IVE BUFFER ;ROUTINES USED 311 NONF. 39 KXTNF - KXTllCA Native Fir•ware CHKCHR - CHECK CHARACTER 1 2 000021 000023 ~ACRO V05.00 XON XOFF 00:51 Paqe 100 "Q-100 ·s-100 ( ( KXt•F - KXTllCA Native Firmware MACRO V05.00 CHKCHR - CHECK CHARACTER 1 2 173614 3 173614 4 5 173616 6 173622 7 00:51 Page 101 ;* PROCEDURE CHF.CK CHARACTER CHKCHR:: CLC 000241 ;* * IF RECF.IVE DONE TSTR ii PL @llRCSRU CH400 177562 MOVB URBUFU,RO 042700 000200 BTC llHT7,RO 122700 00100 4 000023 Cf'IPB 8NE #l!:OFF,'10 CHlOO 052703 000 241 000415 000040 BIS CLC Bil llXOFfC8,R3 CH300 105737 100030 177560 113700 ;* * TdEN ;* * * READ RECEIVE BUFFER II ..... N CX> 9 1736;i4 10 11 173630 12 13 14 173634 15 173640 16 17 173642 18 173646 19 173650 20 21 173652 22 173652 23 173656 24 25 173660 26 173664 27 173666 211 29 173670 30 31 173670 32 173674 33 34 35 173676 36 37 173702 38 39 173702 40 41 173704 42 43 173704 44 173704 ;* * * CLEAR PARITY BIT ;* * * CASE CHARACTER ;* * * WHEN XOFF ;* * * * SET XOFF FLAG = 1 ;* * * VHF.N XOll CHlOO: 122700 001004 000021 CMPB BNE #XON,RO CH200 I 042703 000241 000 406 000040 iHC CLC BR #XOFFCB 1 R3 CH300 CMPB BFQ llLF ,RO CP250 ;* * * * SET XOFF FLAG CH200: 122700 001402 000012 010037 177566 ;* * * ELSE ;* * * * IF CHARACTER NOT LF ;• * * * THEN ;* * * * * ECHO CHARACTER ~ov cH:.5o: 000 261 RO 1 @1XBUFU ;* * * * EN!l IF ;* * * * SIGNAL CHARACTER RECEIVED S"C ;* * * F.ND CASE CH300: ; * * END IF CH400: 000207 =0 f<F'TUl<N KXTNf - KJTllCA Native SPR5SO - SP/RS SETUP Firmwar~ MlCRO vos.oo 9 10 Page 102 SPRSSO - SP/RS SlTUP .f:NlBLE l.C,Gl:!L .~BTTL 1 2 3 4 5 6 7 8 ( 00:51 Module na•e: SP RS SlTUP - SPR5SU A~D i Syste•: KXTll-CA Native Firmware i 11 12 13 14 15 16 17 18 Functional Description: This •odule sets up the SP to the native fir•ware stack area and R5 to the ad1ress of the last word ot native RAM. settin~ 19 20 Input Parameters: 21 1) Return address in RO 22 ....... N \0 23 24 25 26 27 28 Output Para•eters: i i 1 1) Top of RAM ad~ress in R5 2) Stack Pointer ( KXTNF - KXTllCA Native Firmware MAC~O Y05.00 SPR5SU - SP/R5 SETUP 00:51 Page 103 1 ;* PROCF.OURE SP ANO R5 SETUP 2 3 173706 4 5 6 173706 7 173714 8 9 173716 10 173722 SPR5SU:: ;* * CASE MAP SELECTION ;* * WHF.N MAP BIT 2 = 0 132737 001003 000010 012706 000415 077762 12 173724 132737 13 173732 . 001407 14 173734 132737 15 173742 00140 3 16 17 173744 012706 18 1737'>0 000402 19 20 173752 21 2.l 173752 012706 23 24 173756 25 26 173756 010605 27 173760 062705 28 29 173764 000110 30 000002 177522 000004 177522 177522 BITB B~IE #KXSMP2,@#KV.CSB SP200 ;* * * SET STACK POINTER TO STACK 1 MOY t>P #SP1, SP SP400 BITB dEQ #KXSMP0,@#11111.CSB SP300 11 ....... w 0 SP200: BITB #KX$MP1,~#KV.CSB Bf.Q SD300 MOY BR #SPJ,SP S?400 ;* * WHEN MAP BITS 0 AND 1 = 11 ;* * * SET STACK POINTER TO STACK 3 15776 2 ; * * ELSE SPJOO: ;* * * SET STACK POINTER TO STACK 2 13776 2 MOY IJSP2 1 Sf SP400: ;* * F.ND CASE ;* * SET R5 000014 HOY AOD SP 1 1l5 #SPOFF,R5 J'4P (RO) = TOP OF RAM (SP + STACK OFFSET) ;* * RETURN TO CALLER ;* END SP A~D RS SETUP ( ( KXTNF - KXTllCA Native Fir•ware MACRO V05.00 VF.RS - VERSION NUMBER AND TEST Pa<Je 104 .SBTTL VF.RS - VERSION NU~BER AND TEST .=173774 .nae LE LC 1 2 00:51 173774 3 4 5 6 7 B 9 Module name: VEqs - VERSION NUMBER System: KJTll-CA ~ative firmware 10 11 12 13 14 15 16 17 Functional Description: This modulP. places the version number in the last word of the permanP.ntly mapped native RO~. 18 19 20 173774 I-' w ...... 126 Obl 056 VERS:: KXTNF - KXTllCA Native Firmware MICRO V05.00 S~LF TEST OVERLAY 1 1 2 3 4 5 6 7 8 9 10 ·v1.o· .ASCII 00:51 Pdqe 105 .SBTTL .LIST .NLTST .~NlBL SELF TEST OVERLAY 1 HE,~EB 1 SKQ,LOC,01N MC,CND,BEX AMA,GBL NORMAL LISTING MODE DITTO .=174000 174000 Module name: SELF T~ST OVERLAY 1 ; System: KXTll-CA ~ative Fir•ware 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ; Functional Description: This •odule contains overlay 1 of the self test code. The self test modules in this overlay are: Parallel J/O port Z8036, DMA controller Z8016, Q-BUS interrupts, and Two-port RA"'• Overlay 1 physically occupies the top 2 KB of the boot RO~. It executes starting at 160000 when the DIAG PROM F.N bit, bit 5 1 in KXTCSRA is 1. . ( ( KlTNF - KlTllCl Native Fir•ware MACRO VOS.00 SELF TEST OVERLAY 1 1 2 3 4 5 6 1 8 9 10 11 12 13 14 15 16 11 ..... w "' 18 19 20 21 22 23 24 25 26 27 28 29 57 78 91 97 98 99 00:51 Page 106 SCRATCH Rlfll ALLOCATION. RS IS OOT"S "TOP-OF-M!M" POINTER, ANO IS PRESERVED lS SUCH. ALL SCRATCH REFERENCES ARE INDEXED FROM RS AS FOLLOWS: 000005 $TOP= LO MID HI 050000 060000 070000 110000 120000 130000 130000 140000 150000 ----- ------ ---; 077776 137776 157776 ; \5 ; 150002 160002 170002 170004 170006 170010 170012 170014 170016 170020 171776 000005 llUFRl= BUFR2= TMPl= TMP2= TMP3= TMP4= TMPS= TMP6= T'4P7= TMPB= SF.F 1 = $EF= -21116 -17176 -01116 TMP1+2 TOP-6Kll TOP-4Klll TOP-2KW \ T~P1+4 \ TMP1+6 TMP1+10 TMP1+12 TfllP1+14 TMP1+16 -2 STOP \ > SCRATCH REGISTERS ••• I ••• AND STACK SPACE. I I ; LAST 2 WORDS OF NATIVE RAM (BATTERY-BlCK-FLlGS) ••• ; ••• ARE U~lLlZED as OUR E~ROR FLAGS. ; ; ~ISCELLlNEOUS STUFF. ; 00001)1 014000 $TN= K3K= 1 3072.*.l l FEW MACROS. .NLIST MO INIT TEST NUMBER SEQUENCE. HISEG CALLS RFQUIRE JKlll OFFSET. KXTIF - KXTllCl Native SELF TEST OVERLAY l Fir•waI~ ~ACRO V05.00 1 11 ....... w w 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 21l 29 30 31 32 33 Pa9e 107 A YEW OfFTNITIONS 2 3 4 5 6 7 8 9 10 ( 00:51 STlNOlRO STUF!". ; 000000 000040 0001on 000140 000 200 000240 000300 000 340 PRO= PIH= PR2= PR3= PR4= Pll5= PR6= PP?= 000 040 100 140 200 240 300 340 TRE PRIORITIES. ; PRIMARY CONTROL RF.GISTERS. ; 177560 175700 175720 177000 174400 177520 177522 177524 1775 26 171530 177532 175000 160000 175400 175000 177524 177524 S'iLl= 177560 SSL2= 175700 SI 8254= 175720 SP IO= 177000 SOMA= 174400 SCSRA= 177520 SCSRll= 177522 SCSPC= 177524 SCSRCON= 177526 $CSR= 177530 $QIR= 177532 SOPR= 175000 $QOPR1= 160000 $QPPR2= 175400 ; SIPV= SOPR SLf.OS= $CSRC SIJIO= $CSRC DEC DC319 (OLJRT) ASYNC SF.RIAL PORT. NFC7201 SVNC/lSVNC SERIAL PORT. 18254 PRO~RAMMARLF. BAUD GEN FOR ABOVE. ZR036 PTO/PIT. AMZB016 UMA CONTROLLER. \ I > SECONDARY csR·s ••• ••. E~BF.OOEO I~ 18255,CRIP. PR I!U!lY CSR. Q-BUS INTERPUPT k~GISTER. DUAL-PORT RAM (LOCAL) • DUAL-PORT RAH (GLOBAL BASE IO 0-7 ••• ••• ANO IO 8-F). IPV INTEkPUPTS (VIA OPR WORDS O, 4, 8, lNO 12). CSRC<3:0> DRIVE THE LEOS. CSRC<7:4> SHOW THE ro SWITCH SETTING. ( ( KXTNF - KXTllCA Native Firmware MACRO ¥05.00 SF.LF TEST OVERLAY 1 00:51 Page lOR ; OF.FAULT VF.CTURS. 1 2 ; PWliV= SLl!IV= SLlXV= NECV= llEVNT= PEVNT= 000024 000 060 000064 000070 000100 000104 l 4 5 6 1 8 9 10 11 12 13 14 15 16 17 18 19 20 ; ; ; ; ; ; 024 Of>O 064 070 100 104 ; 110 PRTYY= 114 DPPY4= 120 DPRV8= 124 BUCKY= 130 DPRYl 2= 134 ; 140 QIRY= 144 QIRVl= 150 PIO AV= 154 P JOBY= 160 164 DMAV= 000114 000120 000124 000130 000134 000144 000150 000154 000160 000164 ; ; ; ; ; ; ; ; ; ; ; ; (NON-MASKABLE). PWR-bP (BRESET) (PRI 4). CONSOLE (SLUl) RCVR (PRI 4). CONSOLE (SLUl) XMTR SYNC/ASYNC ROTH CHANS (PRI 4). (PRI 6). LINF. Ci.OCK PROGRAMMABLE CLOCK(S) (PRI 6). OPEN (PRI 7). MF.MORY PARITY DUAL-POOT RAH wnRD 4 (PRI 5). DUAL-PORT R~M WORD R (PRI 5). (PRI 5). Q-BUS "YACK" DUAL-PORT-RAM ~ORD lL (PRI 5). RF.SERVED (FALCON). (ARBITER ~XECUTES RTI). Q-BOS RF.QUEST (ARBITER EXECUTES RESET,RTI) DITTO (PRI 4). PIO PORT A (PRI 4). PIO PORT P (PRI 4). OMA (ROTH CHANNEl.S) ...... w ~ KXTNF - KXTllr.A Native Fir•ware MACRO ¥05.00 SELF TEST OVERLAY 1 00:51 Paqe 109 ; HIGH SF.r.MFNT F.NTRY BLOCK 1 2 3 4 ; ; CALL: BIS t6IT5,CSRA ; ENABLE HIGH SEGMENT. ; CALL T~ST 10-17. CALL TN BF.Q OK ; ; OR ONE F.RROR. T10==.-K31f Jl'P TST10-K3K ;; EXECUTE TEST 10. Tll==.-1311'. TST11-K3K ;; EXFCUTF. TEST 11. JMP T12==.-K31' JMP TSTl 2-K3K ;; EXECUTE TEST 12. T13==.-1(31( TST1l-K3K ;; EXECUTE TEST 13. JMP T14==.-K3K CLR RO ;SINCF. THERE IS NO TeST BY THIS ~AME, RfTl'RN Tl5==.-K3K CLR RO ;SINCE THERF. TS NO TEST BY THIS NAME, RETURN T16==.-101' CLR RO ;SINCE THERf IS NO TEST BY THIS NAMF. 1 Rf.TOWN Tl7==.-K3K kO CLR ;SINCF. THF.RF. TS NO TEST BY THIS NAME, llF:TUl<N ; 5 13 174000 174004 174010 174014 174020 174022 1740;<4 174026 174030 174032 174034 174036 160000 000137 16000 4 000137 160010 000137 160014 000137 160020 005000 000207 160024 005000 000207 160030 005000 000207 160034 005000 000 207 160040 161106 162102 162432 SHOW NO ERRORS. SHOW NO ERRORS. SHOW NO ERRORS. SHOW NO ERRORS. ( KXTNF - KXTllCl Native Firmware MlCRO V05.00 - TIO PlRALLEL I/O PORT Z8036 .Sl!TTL I 00:51 Page 110 - TIO PARALLEL 1/0 PORT Z8036 MOV HOV l!OV HOV HOV MOV CLR PF.VNT,-(SP) PEVNT+2 1 -(SP) PIO AV ,-(SP) PYOAV+2,-(SP) P IOIW ,-(SP) PIUBV+2,-(SP) ;; SAVE PEVNT. CSE") ;; CLEAR ERROR FLlG. ,, ••********************************************************************** ;;• TEST 10 -- PARALLEL 110 PORT Z8036 ,, ••********************************************************************** 174040 174040 174040 174044 174050 174054 174060 174064 174070 TSTIO: TPlO: 013746 013746 013746 013746 013746 013746 005015 000104 000106 000154 000156 000160 000162 INPUT: NIJNf:. OUTPUT: RO = ERROR FLAGS OR ZERO. 4 5 ZILOG b036 CHIP HAS 48 Rf.GISTFRS. RESf:T THE CHIP ANn V~RIFY THAT ALL REGISTERS RETURN ZERO. 6 7 8 9 TlO 10 11 ....... w lJ1 44 45 ·;'i·: PARALLEL 1/0 PORT Z8036 EO = ROM IN VF.CTOR SPACE -- CAN.1 RUN El = RES~T STATE INr.ORRECT E2 ~ TIMER nio~·T START E3 = TIMER NEVEO STOPS. ~4 INTERRUPT NOT MASKED AT LEVEL 4 ES = INTERRUPT NOT PECEIVF.O. ~6 = LOOP TIMF-OUT, DATA XFf.R INCOMPLETE ~7 = RECEIVED DATA INCORRECT = 004737 001404 052715 000137 #RIT0 1 ($EI') JMP PTOXIT-l\'.31\'. Vf.CTOR SPACF USABLE 77 PROCEFD IF SO. ; EO = ROM IN VECTOR SPACE -- CAN"T RUN MOY MfJV #48.,R3 #SP IO, R4 Ul, (R4) #l,(P4) 2$ ; CHECK 48 REGISTERS ••• ; ••• STARTING HER~. SFT "CHIP-RESF.T" IN MICR. ; READ IT , SHOULD SEF THF 1 BIT. ; CHECK IT AT 2$. TSTR lt-l,(R4) ( R4) 2$: Bf.Q JS 3$: l!IS TST SOB #RIT1,($EF) (R4)+ R:l, 1$ THEN, WRITES SHOULD Bf. IGNORED ••• ••• AND Rf.ADS RF.TURN ZERO. BR IF 01\'.. ; Fl = ~ESF.T STATE INCORRECT NEXT ADDRF.SS ••• ••• ANO LOOP •tJL DONF. 163602 CALL BF<.i &IS 000001 161)746 012703 012704 112714 122714 000 403 000060 177000 000001 000001 112714 105714 001402 052715 005724 077310 177777 4$: ~OVB OIPB B~ 1$: 000002 HOVI> XRAMLO-K3K 4$ ; ; NEXT, SEE THAT EA~~ TIMER FUNCTIO~S AS ADVERTISED. ; :'l8 39 40 41 42 43 ;; SAVE PIORV. ; 2 3 12 13 14 15 16 17 18 19 174072 20 174076 21 174100 22 174104 23 24 174110 25 174114 26 174120 27 174124 28 174130 29 30 174132 31 174136 32 174140 33 174142 34 174146 35 174150 36 37 ,, SAVE PIOAV. 000000 000002 000010 000070 000024 000054 000040 MIC= MCC= CTV= CTkS= CTCS= CTTC= CTCC= 000 002 010 070 024 054 o~o MASTER INTERRUPT CONTROL REG. MAST~R CONFIGURATION CONTROL PEG. TIMF.R(S) INTERRUPT VECTOR REG. lST (OF 3) TIMER MODE SPEC REG. lST (OF 3) ~IMER CMn/STATUS REG. lST (Of 6) TIME CONSTANT REG (J PAIR). lST (Of 6) CURRF.NT COUNT REG (J PAIR). ( KXTNF - KXTllCA Native Firmware MAC~O VOS.CO PARALLEL 1/0 PORT Z8036 - TlO ....... w CTI 46 47 174152 48 174156 49 174162 50 174166 51 174170 52 174172 53 174176 54 174202 55 174210 56 57 58 174216 59 60 174222 61 174226 62 174234 63 174242 64 174244 65 174250 66 174254 67 174260 68 174262 69 174266 70 174270 71 174272 72 174276 73 174300 74 174304 75 174306 76 174310 77 174312 78 174316 79 80 174320 Bl 174322 82 174326 83 84 174330 85 174336 86 174342 87 174344 88 174350 89 90 174352 91 174354 92 174360 93 174364 94 174366 95 174372 96 97 174374 9B 174402 177000 000001 000060 012704 142714 012703 005024 077302 012704 112714 112764 112764 117000 000200 000104 000160 062704 000024 106427 012737 012737 005000 012701 112714 112714 000240 132714 001004 017004 052715 000426 132714 001411 077004 077105 052715 000416 000200 160320 000300 000240 052715 000411 062737 106427 000240 052715 000 401 022626 012714 012714 005724 020427 103713 112737 000 240 PIT: 2s: 000010 000002 PIT1: 000104 000106 000004 000040 000306 000001 lS: 000004 000001 2$: 000010 3$: 000020 000032 000000 000104 4S: 5$: 000040 b$: 1$: 000040 000160 #SPIO,R4 #1 1 (R4) f48.,R3 (ll4) + R3, 2$ ISP IO, R4 #201) 1 (R4) #PEVNT,CTV(R4) t160,MCC(R4) ADO "CTCS,R4 MTPS HOV MOV CLR MOY HOVB MOVB NOP BITR llNE SOD ll TS BR BITR BEQ SOB SOB BIS BP fl>R4 i3S-K311'.,PEVNT #PR6,PEVNT+2 RO #4, Rl #40 1 (114) 11306, ( R4) NOP BIS BP AClD MTPS hOP BIS BR CMP HOV ~(lV 177000 Page 110-1 MOY BICB MDV CLR SOB MDV MIJVB MOVB MOVE TST C'4P BLO 177032 000001 00:51 HOVB NflP ; GET BASF. ADDRESS. ; CLEAk "CHIP-RESET"••• ; ••• AND CLEAR ALL REGISTERS. ; GET BASE AGAIN. ; SET "MASTER INT ENA8". ; SET TO VECTOR THRU "PEVNT". ; ENABLF. ALL 3 TIMERS ••• ; ••• CTHS = 0 =PULSE-OUT, ONCE-ONLY ••• ; ••• CTTC : 0 = TIME K 65536. ; NOW KAISE R4 TO lST TIMER CSR. ; RAISE CPU TO PIO LEVEL. i S<:T VECTOR. ; SET A 1 SF.COND KEEP-ALIVE TIMER. ; CLEAk "IUSIIP"••• ; ••• AND SET "IEIGCBITCB" ••• ; ••• TIHF.R SHOULD TAl\'.E-OFF II ; TIMFR RUNWING (C~P=l) ?? ; BR ff SO. #1,{R4) 1 2S RO, lS #lllT2, CSEF) 7S #1 1 (R4) 4S RO, 2S Rl,2$ jBIT3,($EF) 7S ;; E2 : TIMER DIDN•T START ; ABORT. ; TIMER DONE (CIP=O) ?? ; bR H SO. #BIT4, CSEF) ; INTFRRUPT -- SHOULD HAVE BEEN HASl\'.ED. ;; ~4 : INTERRUPT NOT MASl\'.ED AT LEVEL 4 ii F,3 = TIMER NEVER STOPS. ; ABORT. 6$ •6S-3$,DEVNT 1PkO #BITS, CSEF) ; NOW CHANGE THF VECTOR ••• ; ••• LOWF.k TPE CPU ••• ; ••• AND LET INTERRUPT COME JN. ;; F.5 = I~TERRUPT NOT RECEIVED. 1$ (SP)+,{SP)+ #40 1 (R4) #160, ( R4) (!!4)+ R4, llSP IO+CTCS+6 PJTl ; INTF.RRUPT -- FIX THE STACK. ; CLEAR "IUSIIPIGCB"••• ; ••• AND "IE" (TIMER OFF). ; BOHP TO N~XT TIMER CHO/STAT ••• #1, SP IIJ ; TqEN, RESET THE CHIP. ; FALL TrlRU TO DATA TEST. ; ••• AND LOOP 'TIL AL~ 3 DONF. KXTNF - KXTllCA Native Flraware MACRO V05.00 PARALLEL I/0 POPT Z8036 - T10 1 2 3 4 5 6 1 8 9 10 11 ...... w ......J 12 13 14 15 16 17 18 19 20 21 22 23 24 174404 25 114410 26 174414 27 174420 28 174424 29 174430 JO 174434 31 174440 32 114444 33 174450 34 174456 35 114464 36 174412 37 174500 38 174506 39 174514 40 174522 41 174530 42 1745l2 43 174540 44 174546 45 174554 46 174562 47 114566 48 174514 49 174600 '50 174602 51 174606 52 174610 53 174614 54 174616 55 114620 56 174622 57 174624 00:51 Page 111 ; DATA PORT(S) TEST. ; ; *** REQUIRES EXTERNAL LOOP-BACK *** ; 000004 000020 000032 000100 000102 000006 000022 000034 000120 000122 000014 000036 000140 164377 165 400 PlV= PACS= PAOB= PAHS= PAHS= PAV= PBCS= PBOB= PBMS= PBHS= PCl!O= PC De= XCVR= Al. BO= AO.Bl= <351*400>!0 ; PORT A VECTOR ••• ; ••• C~O/STATUS ••• ; ••• DATA BUFFEk ••• ; ••• '400E ••• ; ••• AND HANDSHAKE SPEC. ; PORT B VECTOR ••• ; ••• CHO/STATUS ••• ; ••• DATA BUFFER ••• ; ••• HOOE ••• ; ••• AND HANDSHAKE SPEC. ; PORT C DATA OIRF.CTION ••• ; ••• A~O BUFFER (HANDSHAKE BITS). ; 1ST WORD ABOVE THE CHIP HOLDS ••• ; ••• XCVR CONTROL BITS TTL/A(IN)IB(OUT). ; TTL/A(OUT)IB(IN). DITTO TMFl ; DEFINE A SCRATCH LOCATIOM. 004 020 032 100 102 006 022 034 120 122 014 036 140 <3~0*400>1377 ; BYTES= 17000 2 ; 011704 142714 012701 010164 012121 012721 010164 012721 012721 112764 112764 112764 112764 112764 112764 112764 012764 000414 112764 112764 112764 012764 106421 11276'1 012702 010503 062703 010346 012700 005023 071002 011603 005001 005065 177000 000001 000154 000004 161010 000200 000006 161024 000200 000100 000000 000300 000200 000000 000300 000200 164377 000200 000200 000100 165400 000200 000377 163646 PIOO: 000100 000102 000020 000120 000122 000022 000022 000140 PIOOl: 000100 000020 000120 000140 PIOD2: PIOD3: 000014 15()(102 i;nv 000020 lS: 170002 I MOY BJCB HOV MOY MOY MOV HOV HOV MOY MOVB HOVB HOVB MOVB MOV8 HOVB MOVB HOV i!R HOYA MOYD MPVB HOV HTPS HOYB MClV HllY ADO HOV CLR SOB HOV CLR CLk ; GET BASE ADDRESS. #SPIO,R4 ; CLEAR "CHIP-RESET". #1,(R4) #PlOAV,Rl Rl,PAV(R4) ; SET PORT A VECTORS. #lI-K3K, (Rl )+ #Pk4,(R1)+ R1,PBV(R4) ; SF.T PORT B VECTORS. llBI-KJK,(Rl)+ fPR4, ( Rl )+ ; SET PORT A INPUT ••• #100 1 PAHS(R4) ; ••• INTERLOCKED US ••• •000,PAHS(R4) f300,PACS(R4) ; ••• INT ENABLED. ll200 1 PBMS(R4) ; SET PORT B OUTPUT ••• ; ••• INTFRLOCK~D HS ••• #OOO,PBl'S(k4) #300 1 PBCS(R4) ; ••• INT ENABLED. #200 1 PGCS(R4) ; SET OUT "IP" TO PRIME THE LOOP. #AI.BO,XCVR(R4) ; S~T XCVR CONTROL BITS. PI003 #200 1 PAMS(R4) ; CHANGE POPT A TO OUTPUT ••• l:l00 1 PACS(R4) ; ••• ARO SET OUT "IP". jf100,PFl4S(R4) ; CHANGE POPT B TO INPUT. IA0.6I,XCVR(P4) ; CRA~GE XCVR CONTROLS. IPR4 i RUSE CPU. 1377 1 PCOO(R4) ; PORT C DIRECTION ALWAYS "IN". #XFtT10-K3K,R2 i X14T BUFFER POINTER => R2. STOP,P3 #BUFR1 1 R3 ; RCV BUFFER POINTER => R3. RJ,-(SP) ; SAVE l COPY OF R3. #16.,RO (R3)+ ; CL!:.lR IT ••• RO, 1$ (SP),P3 ; ••• AMO RESf.T POINTER. Rt BYTES($TOP) ; CLEAR BYTE COUNTl:.RS. KXTNF - KXTllCA Native Fir•vare HACPO VOS.00 - TlO PlRALLlL 1/0 PORT Z8036 ....... w 00 58 174630 59 174634 60 174642 61 174646 62 174652 63 64 174656 65 174664 66 174666 67 174670 68 69 174674 70 174676 71 174702 72 174706 73 174710 74 174712 75 174716 76 77 174720 78 174724 79 174726 80 174730 81 174734 82 83 174736 84 174742 85 174746 86 174746 174752 174756 174762 174766 174772 174776 175000 175002 175006 112714 112764 116 400 116400 106427 000200 000224 000032 000034 000000 026527 00140 3 077105 052'1 l 5 17000 2 012603 012702 012101 122223 001402 052715 077105 105764 100 404 105014 105064 000 676 000002 011(122 2$: 000100 JS: 163646 000022 4$: 000200 5$: 000100 6S: 000002 112714 005064 000001 000140 01263"1 012637 012637 012637 012637 012637 011500 001402 052700 000 207 000162 000160 000156 000154 000106 000104 7$: 00:51 Paqe 111-1 HOVR HOVR MOVB l'nVB HTPS #200,(R4) CfolP BEQ SOB BIS '4011 MOY MOV CHP'.l BEQ 111 s SOB S~T "Ml~"••• ••• ANO ENABLE ALL THRE! POPTS. DUMMY READ (FLUSH) ••• ••• anrtt oe·s. LOllFR CPU ••• ••• DATA SHOULD BEGIN TO FLOll. avTES(STOP),n<t8.*BITR>llR. ; 18 BYT~S TRANSFERRED ?? 3$ i BR IF SO. Rl, 2S ; HANG-AROUND FOR A llHILE. #'.11T6,($EF) ii E6 = LOOP Tll'~-our, DATA XFER INCOMPL~TE a2~4,!"'ICC(R4) PADll(R4),RO PBDli(R4 ),RO #PRO ~ (SP)+, ~3 #XFLT10-K3K,R2 #18.,Rl (Pl)+ 1 (P3)+ 5$ IA 117, ( $EF) Rl,4$ ; GET F<CV "O ••• ; ••• ANu XHT"D POINTERS ••• ; ••• AND COMPARE XMTD/RCVO DATA. ii F.1 = RECEIVED DATA INCORRECT TSTll PAMS(R4) 81'1 1$ CLRll Cl.RR llR (R4) MCC(R4 l PTOD2 ; CHECK PORT l DIRECTION. ; BR IF UUTPUT. ; eLSE, CL~AR MASTlR ••• ; ••• CnNTkOL RF.GTST~Rs ••• ; ••• ANO GO "ROUND ONCF. MORE. MOVB CLR fll,(R4) XCVll(R4) ; THEN, RESET TH£ CHIP ••• ; ••• A~O TPANC~IVER CONTROLS. (SP)+,PIOBY+2 (SP)+,PI08V (SP)+ ,P IOlV+2 (SP)+,PIOAV (SP)+,PEVNT+2 (SP)+,PEVNT ($EF),RO 300'17$ #<l0*BIT12>,RO ii RESTORE PIOBV. PIOXIT: 100000 HOV HOV Hnv HOV HOV HOV HOV BF.Q BIS 30007$: RETURN ii RESTORF. PIOAV. ;; RESTORE PEVNT. ; ~RROP BITS => RO<ll:OO> ••• ; ••• ANO SKIP IF NONE. ; F.LSE, ADO TEST NUH => R0<15:12>••• ; ••• ftND RETURN (NZ). ( ( KXTNF - KXTllCA Native Flraware MACPO V05.00 - no PlRALLEL t/O PORT ZA036 ~ w \0 1 2 3 4 5 115010 6 175014 7 175020 B 175022 9 10 175024 11 175030 12 175034 13 175036 14 15 175040 16 175042 17 175044 lB 175046 19 175050 20 175054 21 175056 22 175064 23 24 175066 25 175070 26 175072 27 175076 2B 175104 29 00:51 Page 112 ) PORT INTERRUPT HANOLER(S). ; 012700 105764 100407 000421 000032 000100 AI: 012701) 105764 100401 000413 000034 000120 Bl: 060400 105712 001'404 112210 105265 000410 112760 000404 060400 111023 105265 112760 000002 1$: .EN ll!L MOV TSTB BMI BR LSB #PAOB,RO PlMS(R4) 1$ JS MOV TSTB tJMI BP #PBO!l, RO PllMS(P4) lS 3S ; ADD TSTP R4,'!0 (R2) 2$ (R2)+, (RO) BYTF:S(STOP) 4$ f240,-12(R0) 4$ ; OUTPUT -- POINT TO DATA BUFFEP. ; ANY BYT~S LEFT 77 ; BR IF NOT. ; ELSE, SF.ND NEXT BYTE ••• ; ••• BUMP THE COUNT ••• ; ••• AND Rf.TURN. ; WHEN XMIT DONE, CLEAR "IP"••• ; ••• AND RE;TURN. &F,Q 170002 000240 177766 2$: 3$: 170003 000140 177766 4$: ;- • MOYll INCB BR MOVB BR ADD MOVB INCE MOVB RTI .OSAllL I R4,RO (R0),(R3)+ BYTES+l(STOP) l140,-12(RO) LSI! PORT A -- GET OB INDEX. CHECK DIRECTION. OUTPUT INPUT ; PORT 8 -- DITTO. ; OUTPUT INPUT ; INPUT -- POINT TO DlTl BUFFER. ; STORE THE BYTE ••• ; ••• A~D BUMP THE COUNT. ; COMMON EXIT -- CLEAR "IUS"••• ; ••• AND RETURN. ( ( KXTNF - KXTllCA Native Fir•ware HlCPO V05.00 - Tll OMA CONTROLLER lMZ8016 1 115106 115106 115106 115112 175116 013746 013746 005015 000164 000166 00:51 Page 113 OMA CONTROLLER lMZ8016 • SliTTL - Tll ''********************************************************************** ;;* TEST 11 -- OMA CONTROLLER AMZ8016 ••********************************************************************** I I TSTll: TOMA: DMAY ,- (SP) ;; SlVE OHAV. MOY OMAV+2,-(SP) HOV ($Ef) CLR ;; CLF.lR ERROR FLAG. 2 INPUT: Rt = Q-BUS ADDRESS BITS<21:6> OR ZE~O. ; OUTPUT: RO = ERROR FLAGS OR ZERO. 3 4 5 ; Tll 6 1 8 = = 9 10 11 l.J ~ 0 12 13 14 15 16 11 18 19 20 175120 21 115124 22 115126 23 24 175132 25 175134 26 175136 27 211 175142 29 175146 30 115150 31 175152 32· 175154 33 175156 34 175160 35 175164 36 175170 37 38 39 40 41 175174 42 175200 43 175204 44 175206 45 175212 46 175214 47 175216 48 175220 49 175224 OMA CONTROLLER lMZ8016 EO = ROM IN VECTOR SPACE -- INTERRUPTS NOT TESTED El = Q-eus ADDRESS UNDEFINED -- Q-BUS ACCESS NOT TESTED E2 CHAN INTERRUPT NOT RECEIVED El OMA CHANNEL HUNG (TCIEOP BOTH CLEAR) E4 = DHl ABORTED (EOP = 1 = NXH) ES = OMA DATA ERROR 170002 170004 170006 170010 170012 004737 001402 052715 010102 001002 052715 012700 005001 006302 006101 077003 000301 052701 010165 010265 QAHI= TMPl QALO= TMP2 CLISP= THP3 SETIE= TMP4 STACHN= TMPS 163602 000001 1$: 000002 000006 2$: 3$: 100000 170002 170004 ; SAVERS FOR A TWO,llORD Q-BUS ADDRESS ••• ; ••• THREE VARIABLE (CR1/CH2) COMMANDS ••• CALL BEQ BIS XRAMLO-lf3K 1S llBITO,(SEF) ; VECTOR SPACE USABLE 77 ; S!(}P IF SO. ;; EO = ROM IN VECTOR SPACE -- INTERRUPTS NOT TESTED MOY BNE BIS R1,R2 2$ IBITl, ($EF) Q-ADDR<21:6> DEFINED 7?. SKIP I f SO. . ; El Q-BUS ADDRESS UNDEFINED -- Q-BUS ACCESS NOT TESTED MOY CLR ASL ROL SOB SWAB BIS MOY HOY t6,RO Rl R2 Rl lt0,3$ Rl IBIT15,Rl R1 1 QARl($TOP) R2 1 QALO($TOP) = ; \ > lDDR<21:16> => R1<6:0> ; I 1 REPOSITION TO OMA FORMAT <13:8>••• ; ••• S~T "Q-BUS" 8IT ••• ; ••• AND SlVE Q-BUS HIGH (SEC/TAG) ••• ; ••• AND LOW (OFFSET) ADDRESS. ; NOW PUSH THE 6-LIRK CRAIN SCRIPT OITO TR~ STACK ; FILLING IN THE CORRECTED ADDRESSES as WE GO. ; 012700 012701 014046 021627 001002 060516 000426 021627 001002 162102 000052 TDMU: 3$: 150002 160002 4S: MOY HOV HOV CMP BNE ADD BR CMP llNE ICHAINX+2-K3K,R0 ; CRAIN (TOP) ADDRESS ••• l<CRAINX+2-CHAIN1>/2 1 Rl ; ••• AND SIZE. -(RO),-(SP) ; PUSH A WORD. (SP),f8UFR1 ; LOCAL BUFRl ?? 4$ ; NO. $TOP,(SP) ; YES, ADJUST IT. es (SP) 1 f8UFR2 SS ; LOCAL BUFR2 77 ; NO. ( KXTNF - KXT11CA Native Fir•ware MACRO V05.00 DMA CONTROLLER AMl8016 - Tll 50 175226 51 175230 52 175232 53 175236 54 175240 55 175244 56 175246 57 175252 58 175254 59 175260 60 175264 61 175266 62 175272 63 175274 64 65 66 67 68 69 70 71 060516 000421 021627 001003 016516 000407 021627 001010 016516 062716 014046 016516 005 301 017135 5$: 120000 170004 6$: 130000 170004 OtOOOO 7$: 170002 es: ~ ~ ~ PaQe 113-1 ADO BR Cl'P BNE MOV $TOP 1 (SP) ; YES, ADJUST IT. 8$ (SP),1120000 ; Q-BUS 20K 11 6$ ; NO. QALO($TOP) 1 (SP) ; YES, SUBSTITUTE IT. HR 1$ CMP BNf: MOV ADO MOV MOV DEC SOB (SP),1130000 8$ QALO($TOP),(SP) 114096.,(SP) -(RO),-(SP) QAHICSTOP),(SP) ra Rt, 3$ ; Q-BUS 22K 11 ; 110. ; YES, SUBSTITUTE IT ••• ; ••• ARD BUMP UP 2KW. ; OR EITHER Q-BUS ADDRESS, PUSH ••• ; ••• AND SUBSTITUTE THE HIGH PART ••• ; ••• AND TWEAK THE COUNT ACCORDINGLY. ; LOOP "TIL DONE ••• 1 ••• (Sf) IS THE CRIP"S CHAIN ADDRESS. ; ; RO~, ; ; ; ; ; ; 72 73 74 75 76 11 78 79 80 81 82 83 84 85 175276 86 175302 87 175306 88 175312 89 175316 90 175320 91 175322 92 175326 93 175330 94 175334 95 175336 96 175342 97 175344 98 99 175346 100 175352 101 175360 102 175366 103 175374 104 175402 105 175410 106 175416 00:51 MMR= STATl= STAT2= CHOR= CHUH= CRA2H= CHA1L= CRA2L= TC= EOP= IP= 000070 000056 000054 000054 000046 000044 000042 000040 000001 000002 020000 EXECUTE AND ERROR CHECK 5 OMA CHAINS AS FOLLOWS: LOCAL => LOCAL, 2KW. LOCAL lfO PAGE => LOCAL, lKW. LOCAL => Q-BUS ?OK, 2KV. Q-BUS 20K => Q-BUS 22K, 2KW. Q-BUS 22K => LOCAL, 2KW. 70 56 54 54 46 44 42 40 1 2 20000 I ; MASTER MODE REGISTER. ; CRARNF.L 1 STATUS. 1 CHANNEL 2 STATUS ••• ; ••• AND COMMAND REGISTER (FOR BOTH). ; CHAIN ADDRESS RF.GISTERS HI~H (SEC/TAG) ••• ; ••• AND THE LOV (OFFSET) HALFS. ; TERMINAL COUNT STATUS BIT (BITO). ; END-OF-PROCESS (NXM) STATUS BIT (8IT2). ; INTERPUPT POSTED (DONE) STATUS BIT CBIT13). ; 106427 012700 012701 005060 005020 077102 012701 060501 012702 010100 005061 010021 077205 012704 012737 012737 012765 012765 012765 012764 010664 000200 174400 000056 000054 TDHA2: lS: 150002 004000 2S: 010000 174400 161500 000200 000054 000062 000240 000115 000042 000164 000166 170006 170010 170012 000070 T0l4A3: HTPS MOV MOV CLR CLR SOB MOV AOD HOV HOV CtK HOV SOB WPR4 f$OHA1RO 1146.,Rl CMDR(RO) (RO)+ Rl, 1$ ~BUFRl, Rt STUP,Rl #204B.,R2 Rl,RO 4096. (Rl) R0 1 (Rl)+ R2, 2$ ; RAISE TO CHIP LEVEL. ; BASE ADDRESS. HOV HOV HOV MOV HOY HOV MOY MOY 11$0MA1 R4 ; GF.T BASE POINTER. ; INT SERVICE CRAN l (ANO 2). 121S-K3K1 0IUV llPR4 1 DMAY+2 #40114,CLISPCSTOP) ; SET "CLEAR IOSIIP• ••• #42120,SETIF.(STOP) ; ••• "SF.T IE"••• #240,STACHN(STOP) ; ••• ANO "START CHAIN" COMMANDS FOR CH 1. #ll5,MMR(ll4) ; SP.T HOOE = VI, WAIT, CPINTLV, ENABLE. SP,Clll1L(R4) ; SET CHAIN ADDRESS(ES) ••• ; COMMAND "RESET• ••• ; ••• AND CLEAR ALL REGISTERS. ; GET BOFRl ADDRESS. ; CLEAR BUF R2 ••• ; ••• ARO PUT ADDRESSES IN BUFRl. ( ( KXTNF - KXT11CA Native Fir•ware MACRO Y05.00 DMl CONTROLLER AMZB016 - Tll I-' of:>. N 107 175422 108 175426 109 175432 110 175434 111 175440 112 175442 113 175444 114 175452 115 175460 116 117 175462 118 175466 119 175470 120 175476 121 122 123 124 175500 125 175504 126 175506 127 175512 128 175514 129 175520 130 175522 131 175526 132 175530 133 175534 134 175536 175536 135 175542 136 137 175550 138 175552 139 175554 140 175560 141 175562 142 175566 143 175570 144 175574 145 175576 146 175602 147 175606 14B 175610 149 175612 150 175616 151 175620 152 153 175622 154 175624 155 175626 156 175632 157 175634 158 175640 159 160 175642 161 175650 162 175652 010664 012103 005000 032715 001001 106400 016564 016564 077001 000040 16114 2 052715 024646 026527 001003 000004 lS: 2$: 000001 170010 170012 170012 00:51 MOY HOV CLR BIT 000054 000054 25$: BNE. MTPS MOV MOY SOB BIS CMP CMP BNE 000240 Page 113-2 ; ••• = lST LINK. ; SET WC TABLE ~OINTER IN R3. 1 SET A KEE.P-ALIYE TIMER. ; INTERRUPTS USEABLE 77 ; Slt:IP NEXT IF NOT. 1 YES, LOWER CPU. SF.TIE(STOP),C~DR(R4) ; SET "CIE"••• STACHN(STOP) 1 CMDR(R4) ; ••• ANO START CRAIN CRAN 1(2). 1 TC (OR EOP) INTERRUPT SHOULD ••• RO,. ; ••• HAPPEN BEFORE TRIS TIMES OUT. ;; E2 = CHAN INTERRUPT NOT RECEIVED #BIT2,($El") ; FU::f, IT ••• -(SP),-(SP) STACHN(STOP),#240 ; ••• AND SERVICE CRAN 1 ••• ; ••• OR CHAN 2. 22S SP 1 CHA2L(R4) #i1CTBL-10it:, R3 RO IBITO,(SEF) 25$ RO ; ; PROCESS OMA CRlNNEL INTERRUPTS. ; 016400 000402 016400 022626 032700 001010 032700 001003 052715 000402 000056 21$: 000054 22S: 27$: 052715 016564 000020 170006 000001 000002 000010 STATl (R4 ), RO 27$ STAT2(R'l),RO CSP)+, CSP)+ #TC,RO :.!4$ I #EOP 1 RO 23$ #BIT3,($EF) 24$ BIS MOY llBIT4,($H) i1 E4 = OMA ABORTED (EOP = 1 = NXM) CLISP($TOP) 1 CMDR(R4) 1 INT SERVICE COMPLETE, CLEAR "IUSIIP". MOY BEQ HOV ADO HOV ADD CMP llEQ MOY SUB CHP BEQ tl!S BP SOB (R3)+,RO 6$ fBOFRl,Rl STOP,Rl #BUFR2,R2 STOP,R2 R0,#204B. 4$ IH64000 1 R1 #4096.,R2 (Rl)+, (R2)+ 5$ IB ITS, ( SEF) 6$ R0,4$ ; GET WORD COUMT FROM "WCTBL"••• ; ••• ANO SKIP DATA CHECK INHIBITED. TST BNE BIT BNE CMP BNE (R3) 7$ IB1Tl,($EF) BS (R3) 1 #-1 2$ ; NEXT LINK INVOLVE Q-BUS 77 ; BR IF NOT. ; YES, Q-BUS ACCESS PERMITTED 77 ; NO, QUIT WHILE YOU"RE ARE.AD. ; CHECK FOR END OF TABLE ••• ; ••• AND LOOP •TJL ALL LINltS DONE. BIT BNE A!lD 11,STACRN(STOP) 1 NOW, CHFCK THE CHANNEL SELECT BIT ••• ; ••• AND EXIT If BOTH OONe. 9$ ; ELSE, CHANGE VECTOR ••• #22$-21$,DHAV 23$: 012300 001423 012701 060501 012702 060502 020027 001404 012701 162702 022122 001403 052715 000401 077006 005713 001003 032715 001003 021327 001274 032765 001012 062737 00005'1 24$: JS: 150002 160002 004000 164000 010000 4$: 000040 ss: 6$: 000002 177777 7$: 000001 170012 000006 000164 SS: ; GET CRAW 1 STATUS. OR ; ; GET CRAN 2 STATUS. ; ADJUST STACK. MOY BR MOY CMP BIT llNE BIT BNE BIS BR ; BR IF re' IS SET.' ; BR IF E.OP (WXM) IS SET. ;; E3 = OMA CHANNEL HONG (TCIEOP BOTH CLEAR) 1r ' ASSUME SRC was BUFRl ••• ; ••• ANO OEST BUFR2. ; llC = 2KV 77 ; SKIP IF SO ••• ; ••• ELSE, SRC WAS ODTROM ••• ; ••• AND DST BUFRl. ; COMPARE SRC/DST DATA. ; BR IF Olt". ;; ES = D~A DATA ERROR ; ESCAPE ON lST DATA ERROR. ( ( I KXTIF - KXT11CA Native Fir•vare MACRO V05.00 - Tll OMA CONTROLLER AMZ8016 163 175660 164 175664 165 175670 166 175674 005265 005265 005265 000654 1-J ~ w , 168 175676 169 175702 170 175706 171 175712 172 175714 173 175720 175720 175724 175730 175732 175734 175740 174 175 176 177 178 175742 179 175744 180 175746 181 175750 182 175752 183 175754 184 185 186 187 188 189 190 175756 191 175760 192 175764 193 175770 194 175772 195 175774 196 197 176000 198 176002 199 176006 200 176012 201 176014 202 203 204 205 206 207 176020 208 176022 209 176026 210 176032 211 176034 212 213 176040 005064 062706 032715 001402 042715 000054 000124 000001 012637 012637 011500 001402 052700 000207 000166 000164 Page 113-3 INC 170006 170010 170012 167 00:51 lllC INC BR 9$: CLR ADD BIT BF.Q 000004 110000 BIC lOS:DMAXIT: MflY HOV MOY l!EQ BIS 30008$: RFTORN CLISPCSTOP) SETIECSTOP) STACHNCSTOP) 1$ ; ••• AMO COMMANDS FOR CHAN 2 ••• ; ••• AMO GO "ROUND ONCE MORE. CMDR(R4) ; ALL DONF. RESET CHIP. ICHllNX+2-CHAIN1 SP ; POP CHAIN OFF THE STACK. IBITO,(SEF) DID WE RUN WITH INTERRUPTS ?? 10$ SKIP IF SO. IBIT2,(SEF) NO, DISCARD INTERRUPT ERROR BIT. (SP)+,DMAV+2 (SP)+,DMAV CSEF),RO 30008$ #<ll*BIT12>,RO ; ; RESTORE DMAV. ; ERROR BITS => RO<ll:OO> ••• ; ••• ANO SKIP If NONE. ; ELSE, ADD TEST kUM => RO<l5:12> ••• ; ••• AND RETURN (NZ). WORD COUNT TABLE FOR POST-O~A DATA CHECKS. FINAL CPECK (5.) VERIFIES THE RF.SULTS OF CHAlNS 2, 3, 4, ANO 5. ; llCTBL: 004000 002000 000000 000000 004000 177777 1. 2KV, BUFRl => BUFR2. 2048. 1024. ; ; ; ; 0 0 2048. -1 2. lKV, oDTROM =~ BUFRl. 3. Q-BUS INVOLVED, NO DATA CHECK. 4. Q-BUS INVOLVED, NO OATA CHECK. 5. 2KV, BUFRl => Ql => Q2 => BUFR2. TABLE TERMINATOR. AND TRIS IS THE 6 LINK DMl CHAIN. ; TRIS GETS PUSHED ONTO THE STICK WHERE LOCAL AID Q-BUS ADDRESSES ARE ADJUSTED ACCORDING TO RAM CONFIG AND ENTRY OPTION (R2). ; 001606 000000 000000 004000 000164 000030 001602 000000 000000 002000 000030 150002 160002 CHAINl: 1606 O, BUFRl O, BUP'R2 2048. O"llV 001340 JO, 1340 164000 150002 CRAil2: 1602 o, 164000 O, BUFRl 1024. JO, 1340 001340 ; LOAD ARA, ARB, OPK, VECT, AWD CHAI MODE. ; FROM LOCAL BUFRl ••• ; ••• TO LOCAL BUFR2 ••• ; ••• 2K VOllDS. ; VECTOR. ; SFTREQ, HDMSK, INT TCIEOP, INTLY, WORD-WORD. RE-LOAD ARA, ARB, OPK, AND CHAI NODE ONLY. ; FROM LOCAL ODTROM ••• J ••• TO LOCAL BUFRl ••• ; ••• lK VOROS ••• ; ••• SAME MOOE AND TERMIIATION. ;Previously, CHl113 read the arbiter•s boot ROM using the QBUS. HoMever, the ;Boot ROM of a KDFll-9 does not respond on the oeus. Therefore, CRAIN3 Mas ;re•oved. 001602 000000 100000 004000 000030 001602 150002 120000 001340 CHAIN4: 1602 O, BUFR1 100000, 120000 2048. JO, 1340 CHAINS: 1602 DITTO. BUFRl ••• ';J •••FROMTO LOCAL 0-RUS 20K ••• J ••• 2K WORDS. I DITTO. DTTTO. ( KXTNF - KXTllCA Native Firaware MACRO V05.00 OMA CONTROLLER AMZ8016 - Tll 214 176042 215 176046 216 176052 217 176054 218 219 176060 220 176062 221 176066 222 176072 223 176074 224 176100 I-' .c::. .i:- 100000 100000 004000 000030 001602 100000 000000 004000 000030 000000 120000 130000 001340 130000 160002 001340 00~51 Paqe 113-4 100000, 120000 100000, 1300(J0 2048. 30, 1340 CRAIN6: 1602 100000, 130000 0 1 BUFR2 2(148. 30, 1340 CHUNX: 0 ; FROM Q-BUS 20K ••• ; ••• TO Q-BUS 22K ••• ; ••• 2K WORDS. ; DITTO. ; DITTO. ; FROM Q-BUS 22K ••• ; ••• TO LOCAL BUFR2 ••• ; ••• 2K WORDS. ; DITTO. ; TF.RMINATOR. ( KXT"F - KXTllCA Native Flraware MlCRO vos.oo - T12 Q-BUS INTERRUPT .SBTTL 1 00:51 - T12 Q-BUS INTERRUPT MOV MOY MOY MOV CLR BIACKV,-(SP) BIACKV+2,-(SP) PWRV,-(SP) PVRV+2,-(SP) CSEF) ,, ••********************************************************************** ;;* TEST 12 -- Q-8US INTERRUPT ,, ••********************************************************************** 176102 176102 176102 176106 176112 176116 176122 TST12: TQIR: 013746 013746 013746 013146 005015 000130 000132 000024 000026 2 3 4 5 6 1 B 9 INPUT: Rl OUTPUT: RO ; Tl2 11 13 ; tST OF 2 CONSECUTIVE Q-BUS VF.CTORS. E~RO~ FLlGS OR ZERO. Q-BUS INTERRUPT ~O = Q-BUS VECTOR UNDEFINED -- CAN"T RUN El = BREQ (CSR<l4>) NEYER GOT SEJ E2 ~OH IN VECTOR SPlCE -- RFSPONSE INTERRUPTS NOT TESTED E3 = INT-ON-BIACK NOT MlSKEO AT PR5 E4 = TNT-ON-BIACK NOT RECEIVED E5 BllCK OION"T CLElR BREQ (CSR<14>) ~6 = BRESET TRlP THRO 24 DION"T HAPPEN = 17 18 19 20 176124 21 176126 22 176130 23 176134 24 25 176136 26 176142 27 176150 28 176154 29 176162 30 176164 31 32 176170 33 176114 34 176176 35 176202 36 37 176204 38 176212 39 176220 40 176226 41 176230 42 176232 176232 43 176236 44 176240 45 176246 46 176252 ;; CLEAR ERROR FLAG. = 14 15 16 U1 ;; SAVE PVRV. VERIFY THAT THE QIR CAN INTERRUPT THE ARHITER, lNO THAT THE POST-INTERRUPT PROCESS VORKS lS ADVERTISED. 12 fo-1 ;; SAVE BIACKV. ; *** REQUIRES l RUNNINr. ARBITER CPU *** 10 .to. Paye 114 005701 001003 052715 000516 106427 042737 010137 032737 001002 052715 004737 001403 052715 000473 TST ONE BIS dR 000001 000240 117671 117532 040000 iHS 2$: CALL BEQ BIS BR XRA'ILO-Kllt JS IBIT2,($EF) QUIT ; VECTOR SPACE USl&LE ?? ; PROCEED IF SO. ;; E2 = ROH IN VECTOR SPACE -- RESPONSE INTERRUPTS NOT TESTE 3$: MOY MOY &TS SOB BR #4$-KJK,BIACKV ; SET RESPONSE VECTOR. IPR'i 1 8IACKV+2 IBIT1JIBIT12 1 $CSR ; SET ERABLES. RO,. ; RFSPOWSE SHOULD BE MASIEO AT THIS LEVEL. 5$ BIS BR ADO MTPS SOtl #BITJ, ($EF) 6$ 116$-4$, B UCKV MPRO RO,. 117530 052115 000411 062737 106421 077001 000010 000130 000132 177530 HTPS 81C !o!OV lllT au; 000004 162232 000240 030000 #BITO, ( SEF) QUIT 4$: 000030 000000 000130 ; Q VECTOR DEFINED ?? ; PROCEED IF SO. ;; EO = Q-BUS VECTOR UNDEFINED -- CAN"T RON ; RUSE CPU. ; ENSURE EVERVTffl"G OFF (EXCEPT DPR). ; WRITE l VECTOR IN QIR<9:2>. ; REQUEST SHOULD BE SET. ; SUP IF SO. ;; El BREQ (CSR<14>) REYER GOT SET 000002 012737 012737 052737 077001 000 403 1$ #PR5 •·ceIT6,$CSR R1 1 $QYR #BIT14,SCSR 2$ tB ITl, ($EF) 1$: 177530 163602 Rt SS: = ;; EJ = INT-ON-BIACK NOT MASIED AT PR5 CHlNGE RESPONSE VECTOR. LOVF.k CPU ••• • •• INT SffUULO COME IN. ( KXTNF - KXTllCA Native Firmware MACRO VOS.00 Q-BIJS INTERRUPT - T12 ...... .b °' 47 1762S4 48 176260 49 176262 50 176264 51 176272 S2 176274 53 176300 176302 176304 54 5S 56 57 58 176306 59 176310 60 176316 61 176324 62 176330 63 176336 64 176344 65 176350 66 176352 67 1763S4 6B 176360 176362 176364 69 176366 70 176370 71 176372 72 176400 176404 176410 176414 176420 176422 176424 176430 OS2715 000401 022626 032737 00140S 05271S 077001 000005 077001 00002(1 040000 177S30 6$: 65S: 000040 OO:Sl BIS BR Cl'P BIT BEQ BIS SOB RESET SOB Pi\ge 114-1 IB IT4, CSEF) 65$ CSP)+,(SP)+ llBIT14,SCSR 7$ #BITS, ( SEF> RO,. ;; ~4 = IHT-ON-RIACK NOT RF.CEIVED ; OK, FIX STACK. ; RF.QUEST SffOULO BE CLEAR. ;; ES = BIACK DIDN°T CLF.AR BREQ (CSR<14>) ;; LOCAL RESET. RO,. ; ; NOW ONCE MORE USING THE ALTERNATE VF.CTOR (IN ARBITEP) ; TO CAUSF A "BUS-INIT" AND LOCAL TRAP THRU VF.CTOR 24. ; 012121 012737 012737 106 427 042737 052737 010137 005000 077001 OS2715 077001 000005 07700 l 000401 022626 042737 012637 012637 012637 012637 011500 001402 OS2700 000207 7$: 16237 0 000340 000340 02000(1 002000 177532 000024 000026 177530 177530 000100 177677 000026 000024 000132 000130 177530 8$: QIXIT: CMP MOY HOV HTPS BIC BIS MOY CLR SOB liIS SOB Rt:St:T SOil dR CMP BJC MOY HOY HOV MOY MOY Bf.Q 120000 BIS 30009$: RFTURN (Rt )+ 1 (Rl)+ #BS-K3K,PWHV #PR7,PllRV+2 #PR7 IBIT13,$CSR #AITlO,SCSR 111,SQIR RO 110,. #BlT6J(SEF) ; BUMP UP (+4) TO SECOND VECTOR. ; SET PWk-UP VECTOR. ; SHOULD BE NON-MASKABLE. i CLEAR IACK E~ABLE. ; ARM BRESET TRAP. i POST Q-BUS REQUEST. i ARBITER EXECUT~S A BUS-RESET ••• ; ••• AND ~TRAP T~RU 24 SHOULD OCCUR. ;; r6 = bRESET TRAP THRO 24 DIDH"T HAPPEN RO,. i;.o,. QIXIT (SP)+,(SP)+ rcen6,scsR (SP)+,PWRV+:> ( SP)+,PllRY (SP)+,BUCKY+2 (SP)+,BUCKV CSEF),RO 30009$ #<12*BIT12>,RO ;; LOCAL RESET. ; PWR-UP TRAPPED TO HERE, FIX STACK. ; CLEAR CSR. ;; RESTORF'. PWRV. ;; R~STORE BIACKY. ;; RRPOR BITS => RO<ll:OO> ••• ;; ••• AND SKIP IF HONE. ;; ELSE, ADO TEST NOH => R0<15:12> ••• ;; •••• ND RETURN (NZ). ( KXTNF - KXTllCA Native Fir•vare MACRO YOS.00 - T13 DUAL-PORT RAM AND IPV 00:51 .SBTTL 1 - T13 DUAL-PORT RAH AND IPV MOY MOY MOY MOY MOY MOY CLR DPRY4,-(SP) DPRV4•2 1 -(SP) DPRVH,-(SP) DPRVB+2 1 -(SP) DPRV12 1 -(SP) DPRV12+2,-(SP) ($EF) ,, ••********************************************************************** ;;* TEST 13 -- OUAL-PORT RAM AND IPV ,, ••********************************************************************** 176432 176432 176432 176436 176442 176446 176452 176456 176462 TST13: TDPR: 013746 013746 013746 013746 013146 013746 005015 000120 000122 000124 00012£1 000134 000136 INPUT~ 3 ;; CLF.AR ERROR FLAG. NO~E. T13 9 10 DUAL-PORT PAM AND IPY EO = LOCAL DPR WRITE-READ ERROR El BUS-ERROR ON Q-BUS,DPR REA,D E2 ~ NOR-ZERO DATA RETURNED ON Q-BUS READ El = ROM IN VECTOR SPACE -- Q-~RITE ARD l~TERRUPT NOT TESTED E4 = BUS ERROR ON WRITE TO DPR WORD 0 ES = COMMAND INTERRUPT OIDN"T HAPPEN {OR DOESN"T WORK) ~6 = Q-BUS WRITE AND/OR INTERRUPT WITH OPR DISABLED E7 = Q-PUS WRJTF. DIDN"T TIME-OUT EB = Q-BUS WRITE TIMED-OUT E9 = DPR INTERRUPT 4 NOT RECEIVED ElO = DPR INTERRUPT 8 NOT RECEIVED Ell DPR INTERRUPT 12 NOT RECEIVED = 11 12 13 14 15 16 17 '; lti 19 20 21 22 23 176464 24 176470 25 176474 26 176500 27 176504 28 176506 29 176510 30 176512 31 176516 32 33 34 35 36 37 38 39 40 41 42 43 176520 44 176524 45 176530 ;; SAVE DPRV12. FIRST, DISABLE THE OPR AND VERIFY WRITE/READ FROM THE LOCAL (II) SIDE. 7 8 ..... ;; SAVE DPRV8. OUTPUT: RO = ERROR FLAGS OR ZERO. 4 5 6 ob. ....J ;; SAVE OPRV4. ; 2 ¥ Page 115 = ; 005037 012702 012701 012700 010112 022 201 001402 052715 077006 177530 175000 125252 000020 1$: 000001 CLR MOY HOV HOV MOY CMP BEQ BIS SOB $CSR 1$DPR,R2 #125252,Rl 116.,RO Rl,(R2) (R2)+,R1 2$ ; WRITE ••• ; ••• AND CPECK A WORD. ; SUP If RIGHT. ;J EO = LOCAL DPR ~RITE-READ ERROR ; LOOP "TIL DONE. IBITO,(SEF) R0,1$ 2$: ; ' NOW THE DPR IS FULL OF ALTERNATING 1·s ANO o·s. ; READ ALL WORDS FROM THE Q-BUS SIDE USING THE OMA ENGINE. ; EXPECT ALL ADORESSlS TO RESPOND (NO EOf), BUT DATA = o·s. ; QADR= LAOR= RD= WRT= CNTNU= 170004 170006 000000 000010 000062 ENSURE EVERYTHING OFF. DPR &ASE ADDRESS (LOCAL). USE ALTERNATING 1·s AND o·s. TMP2 T!l!P3 0 WQIO-RQIO CQif1-RQIO ; s AVE o-Bus ••• ; ••• A~D LOCAL ADDRESSES. ; OMA DRIVER READ ••• J ••• lllRITE ••• ; ••• AND CONTINUE (AFTER EOP) ENTRIES. ; 013700 042700 006300 177524 171617 TDPR2: MOY BIC ASL $UIO,RO rc160,110 RO CPU ID MOM (CSRC<7:4>). STRIP <6:4> = NUM*16 ••• ••• TIMES 2 = NUM*32 ••• GF.T ( IXTNF - KXT11CA Natlye Flr•~are MlCRO VOS.00 - T13 DUAL-PORT RAM AND IPV . ...... .i:o. 00 46 176532 47 176536 48 176544 49 176546 50 176552 51 176556 52 176560 53 176564 54 176570 55 176574 56 176600 57 176602 58 176604 59 176606 60 176614 61 176620 62 176624 63 176630 64 176634 65 176636 66 176644 67 176646 68 176652 69 176654 70 176660 71 176664 72 176666 73 176670 74 176674 75 76 77 78 79 BO 176676 81 176702 82 176704 83 176710 84 85 176712 86 176716 87 176722 88 176726 89 176730 90 176732 91 92 176734 93 176740 94 176744 95 176750 96 176754 97 176760 98 176762 99 176766 100 176772 101 102 176716 062700 032737 001402 062700 010065 010500 062700 010065 012700 012701 014046 071102 000403 052765 016500 016501 012702 00476.6 102007 032765 001760 052715 000411 016500 012701 005720 001402 052715 077105 160000 000200 00:51 AOD 177524 015400 170004 BIT 1$: 150002 170006 163602 000101 2$: BEQ ADD llOV MOY ADD MOY HOV MOY HOV SOB Bil 002000 170004 170006 000020 000000 170004 002000 170004 3$: 35$: BIT 000002 170006 000020 BIS HOV MOV HOY CALL eve 4S: 5$: 000004 6$: BEQ BIS BR MOY MOY TST BEQ BIS SOB ( Page 115-1 j$QDPR1,RO ; ••• PLUS LO BASE = GLOBAL ADDRESS. j81T7,$01D i lD >= 8. ?? 1$ ; SHP IF NOT. l<SQDPR2-$QDPR1>,RO i YES, ADJUST TO RICH RlNCE. RO,QlDRCSTOP) ; SlVE IT IN RAM. STOP,RO IBUFRl,RO ; CALCULATE BUFFER ADDRESS ••• RO,LADRCSTOP) ; ••• AND SAVE IT AS WELL. IQIOC+2-13K,R0 ; GET DPIYER lODREss ••• l<QIOC+2-RQI0>/2,Pl ; ••• AND SIZE ••• -(RO),-(SP) ; ••• AND PUSH IT ONTO THE STACK. Rl 1 2S 35$ ; SUP NEXT. t2000 1 QlDR($TOP) ; lLTERNlTE BlSE ADDRESS. QADR(STOP),RO ; SET Q-BOS ADDRESS ••• LlDR($TOP),Rl ; ••• LOCAL lODRESS ••• jl6.,R2 ; ••• AND WORD COUNT. RD(SP) ; READ FROM Q-BUS SIDE Ill DMA. 4$ i BR If OK (NOT "EOP"). 12000,QlDR(STOP) ; NOT THERE, BOTH BASES THIED ?? JS ; NO, CO "ROUND ONCE. 181Tl,($EF) ;; El = BUS-ERROR ON Q-BUS DPR READ T lPVl I GET BUFFEP ADDRESS. LlDRCSTOP),RO #16.,Rl (RO)+ ORSERYED DATA SHOULD BE ZERO. 6$ ; BR If SO. ;; F.2 = NON-ZERO DATA RETURNED ON Q-BUS READ IBIT2, CSEF> Rl,5$ i ; so FAR, so COOD -- NOV WRITE ALL FROM THE Q-eus SIDE. ; lST WRITE SROOLO FORCE A NON-HASKlBLE RESTART TRAP (COMMAND). i ALL OTHERS SHOULD APPEAR NON-EXISTA~T (EOP) •. 004737 001403 052715 000563 163602 ' TlPVl: 000010 1$: XRlHLO-KJll: lS IBIT3,($EF) llR TIPUT MOY MOV MOI CLR CLR SOB ISDPR,RO LlDR($TOP) 1 Rl t16. 1 R2 (RO)+ (Rl)+ R2 1 11$ IDPRV4 1 Rl IIPV4-K3K, (Rl )+ ; SET OPRV4 ••• IPR5,(1Cl)+ llPV8-K3K, (Rl)+ ; ••• DPRV8 ••• IPR5 1 (Rl)+ (Rl)+,(Rl)+ llPV12-K3l,(Rl)+ ; ••• AND DPRV12 VECTORS. IPR5,(Rl)+ RAISE CPU, COMMAND INTERRUPT ••• IPR7 ••• SHOULD BE NON-MASKABLE. Ql0R(STOP) 1 R0 GF.T GLOBAL ADDRESS ••• 012700 016501 012702 005020 005021 077203 175000 170006 000020 012701 012721 012721 012721 012721 022121 012721 012721 106427 000120 163350 000240 163356 000240 163364 000240 000340 MOY MOV MOV MDV MOV CMP HOY HOV HTPS 016500 170004 HOY 11$: VECTOR SPACE USABLE ?? PROCEF.O IF SO. E3 = ROM IN VECTOR SPACE -- Q-VRITE lND INTERRUPT NOT TES ClLL BEQ BIS 1 ; CLEAR DPR ••• ; ••• AND BUFFER. ( lXTNF - KXT11CA Native Fir•varb ~ACRO V05.00 - Tll DUAL-PORT RAM AND IPV ..... ~ \0 103 177002 104 177006 105 177012 106 177016 107 177022 108 177024 109 177030 110 177034 111 177036 112 177042 lll 177042 114 177044 ll5 177050 ll6 177054 117 177060 118 177064 119 177066 120 177070 121 177072 177072 122 177076 123 124 125 126 127 128 177100 129 177106 130 177112 131 177116 132 177122 133 177126 134 177132 135 177134 136 177140 137 177144 138 139 177146 140 177152 141 177154 142 177160 143 177162 144 177166 145 177170 146 147 177174 148 177200 149 177202 150 177206 151 177210 152 177214 153 177220 154 177222 155 177226 156 177230 157 177234 158 177240 016501 012702 012711 004766 10200 2 052715 005737 001402 052715 005004 106427 012703 012702 004766 102002 005704 001402 052715 077312 00:51 ; ••• LOCAL ADDRESS ••• ; ••• AND WORD COUNT. ; SFT lST WORD = "NOP" COMMAND. ; WRITE DPR WORD O••• ; ••• SHOULD NOT HAVE ABORTED. ;; E4 = BUS ERROR ON WRITE TO DPN WORD 0 ; COMMAND SHOULD HAYE BEEN CLEARED. BEQ BIS LADR ($TOP), Rl #1 1 R2 1140,(Rl) WRT(SP) 2$ #BIT4,(SEF) SDPR 3$ llBITS, ($EF) CLR MTPS MOY HOV C'LL R4 #PRO 115.,R3 #l,R2 WRT(SP) ; CLEAR INT RECEIVED FLAG ••• ; ••• AND LOWER CPU. ; SET LOOP FOR 15 MORE WRITES. ; SET WORD COUNT. ; WRITE NEXT FROM Q-BUS SIDE ••• ; ••• SHOULD GET "EOP"••• ;... AND • ; ••• NO INTERRUPT. MOV MOY MOV 170006 000001 000040 000010 OLL eve BIS 000020 175000 2$: 000040 PaQe 115-2 T~T ;; £5 = COMMAND INTERRUPT DIDN"T HAPPFN (OR DOESN"T WORX) 3S: 4$: 000000 000017 000001 000010 ss: ave 6$ TST BEQ 7S !ITS SOB #1' IT6, (SEF) R3,5S R4 6$: 000100 7S: ;; £6 = Q-BUS WRITE AND/OR INTERRUPT WITH DPR DISABLED NOW, ENABLE THE DPR, AND WRITE VOROS 1-15 AGAIN. ';; EXPECT LEVEL 5 AT WORDS 4 BJ 121 INTER~UPTS ~, AND ; AND EOP AT VOROS 11 052737 016500 062700 016501 062701 012703 005004 012702 004766 102406 000170 170004 000002 170006 000002 000002 030327 001410 052715 000 405 030327 001002 052715 001042 030327 001405 020427 001402 052715 030327 001405 020427 001402 052715 030327 001405 000020 177530 'TIPV2: BIS MOY lS: 000001 000010 2$: 000200 001042 JS: BIT 4$: blT SS: BF.Q CMP BEQ BIS BIT BEQ CMP BF:Q ii IS 000004 000010 002000 010000 BIT BEQ BIS BR BNE BIS 000400 001000 000400 ADD MOV ADD HOV CLR MOV CALL BVS 6$: &IT BF:Q #170 1 $CSR QADR($TOP) 1 RO #2 1 RO LADRCSTOP),Rl #2,Rl IBIT1 1 R3 R4 11 1 R2 WRT(SP) 3$ 1 ~ND 9. ; SF.T ALL ENABLES. ; SET Q ADDRESS ••• ; ••• FOR DPR1 ••• ; ••• AND LOCAL A~DRESS. ; ••• DITTO. ; BIT = CURRENT WORD UNDER TEST. ; CLEAR "INT RECvo• FLAG. ; SET VC... . . ; ••• AND WRITE lST WORD. ; BR IF IT TI~ED-OUT. RJ,,BIT11BIT51BIT9 ; DIDN"T TIME-OUT, SROULD IT HAVE?? 4$ ; NO, PROCEED. IBIT7,($EF) ;; E7 = Q-BUS WRITE DIDW·T TIME-OUT 4$ R3,WBIT11BIT51Blt9 J DID TIME-OUT, SHOULD IT HAYE ?? 4$ ; YES, PROCEED. #BITB 1 ($EF) ;; EB = Q-BUS aRITE TIMED-OUT R3 1 l!BIT'1 5$ R-1, 14. ~$ #B 119 1 ( SEF) RJ, wane 6$ R4, we. 6$ #eITlO, ($EF) R3,#6TT12 7$ ; INTFRRUPT 4 EXPECTED ?? ; NO ; YES, RECEIVED 11 ; YES. ;; E9 = DPR INTERRUPT 4 NOT RECEIVED ; INTERRUPT B EXPECTED 11 i NO. ; YFS, RECEIVED 11 ; YES. ;; ElO = DPR INTERRUPT e NOT RECEIVED ; I~TEHRUPT 12 EXPECTED ?1 ; NO ( lXTNF - lXT11CA Native Fir•Mare MACRO V05.00 DUAL-PORT RAM AND lPV - Tll ~ l.11 0 159 177242 160 177246 161 177250 162 177254 163 177256 164 165 177260 166 117264 167 177272 168 177276 169 177302 170 117304 171 177306 177312 177316 177322 177326 177332 177336 177340 177342 177346 172 173 177350 174 117354 175 177356 176 177362 177 177364 178 177370 179 177376 020427 001402 052715 006303 001325 000014 062706 042737 012700 012701 005020 077102 012637 012637 012637 012637 012637 012637 011500 001402 052700 000207 000202 117677 175000 000020 012704 000405 012104· 000402 012704 042737 000002 004000 1$: 177530 00:51 CMP BEQ BIS ASL BNE 130000 000004 000014 000007 177530 #B ITH, ( SEF) 1<3 1$ ; YES, RECEIVED 77 ; YES. ;; F.11 = DPR INTERRUPT 12 NOT RECEIVED ; SHIFT UP TO NEXT WORD (BIT) ••• ; ••• AND LOOP TIL ALL DONF.. 0 HOV MOY HOV MOV MOV MOV HOV BEQ B[S 30010$: RETURN HOV BR IPV8: MOY BR IPYl 2: MOY IPVXIT: RIC #4.,R4 IPYXIT 18.,1<4 IPVXIT 4112.,R4 #7 1 $CSR IPV4: 000010 R4,U2. 1$ t<QIOC+2-RQIO>,SP ; DONE, POP DRIVER O~F THE STACK. rc'l lT6,$CSR ; CLEAR ALL EXCEPT "DPREN". 1$DPR,RO ; GET LOCAL ADDRESS ••• #16.,Rl (RO)+ ; ••• AND FLUSH ANY CRAP. Rl,1$ (SP)+,DPllY12+2 ;; RESTORE DPRY12. (SP)+,DPRY12 (SP)+,DPRY8+2 ;; RESTORE DPRY8. (SP)+ 1 DPRYB (SP)+,DPRY4+2 ;; RESTORE DPRV4. (SP)+,DPRV4 ($Ef ) 1 RO ;; ERP.OR BITS => RO<ll:OO> ••• 30010$ ;; ••• AND SKIP IF NONE. 1<13*BIT12> 1 RO ;; ELSE, ADD T~ST NUM => ROC15:12> ••• ;; ••• AND RETURN (NZ). , l TIPXIT: ADD BlC MOY MOY CLR ts: 508 000136 000134 000126 000124 000122 000120 Page 115-3 l<TI I ; DPRV4 INTERRUPT RECEIVED. ; DITTO DPRV8. ; DITTO DPRV12. ; *** TEMP, ENSURE REQ"S ARE CLEAR. *** ( ( KXTNF - KXTllCA Native Firaware MACRO Y05.00 - T13 DUAL-PORT RAM AND IPY 11 I-' 1.11 I-' 12 13 177400 14 177406 15 177410 16 177416 17 177422 18 177426 19 177432 20 177440 21 177446 22 177452 23 177456 24 177460 25 177462 26 177466 27 177470 28 177474 29 177502 30 177510 31 177512 32 177520 33 177522 34 177530 35 177534 36 177540 37 177544 38 177552 39 177554 40 177556 41 42 177560 43 177562 44 177566 45 177572 46 177574 47 177600 48 49 Page 116 ;*********************************************************************** ; SUBROUTlhE TO ACCESS THE Q-BUS 1/0 PAGE USING TRE OMA ENGINE. ; TRIS CODE IS PUSHED ONTO ANO EXECUTFO IN STAC~ SPACE. 1 2 3 4 5 6 1 8 9 10 00:51 ; • DSABL ; AMA ; R"'.LITIVE PIC • ON CALL, RO = QJO ADDRESS, Rl = LOCAL ADDRESS, R2 = WORD COUNT. ON RETURN, THEY CONTAIN UPDATED CTEPMINAL) VALUES. IF EOP TERMINATION, "V" BIT IS SET. ; DI'= 174400 042767 000403 052767 010067 010167 010 267 012737 012737 005037 012700 060700 000403 012700 060700 010037 012737 012737 000240 032737 001774 012737 013700 013701 013702 032737 001401 000262 000207 001602 177 400 000000 000000 000010 000000 000020 000170 000020 000142 000142 000140 000115 000074 174446 000100 000160 RQIO: WQIO: lllQ lOl: 174470 174454 OMA CllIP BASE. SOMA ; BIC BR BIS MOY MOY MOY HOV #B IT4,C'1+ 2 ilQIOA #BIT4,CM+2 RO,Ql+2 Rl 1 LA+2 R2,WC #115,@#DM+MMR 2$: MOY CLR MOY ADO BR MOY ADO MOY MOY MOY NOP BIT BEQ MOY HOV HOV MOY BIT BF.Q SEY RETURN 000000 000000 QIO: Ql: LA: we: 1602 177400, I} o, 0 0 001340 CM: QIOC: 0 CQIO: 000110 CQIOA: 174442 000240 000102 174454 174454 020000 174456 000054 174412 174402 174462 000002 174454 lS: 174456 10, 1340 #40134,~fOM+CMDR READ -- CLEAR "FLIP• BIT. WRITE -- SET "FLIP" BIT. SET Q-BUS I/0 ADDRESS. SET LOCAL ADDRESS. SET WORD COUNT. MODE = YI, WAIT, CPINTLY, EIUBLE. ; CLEAR INTERRUPT ENABLES. UDM+CHUH #QI0-.-6,RO PC,PO CQIOA• #QIOC-.-6,RO PC,RO RO, HOM+CRUL 1240,@#0M+CMOR #102,@#0M+C .. DR SF.T CHAIN ADDRESS. ; CHAIM-LOAD (OR RELOAD 0) REGISTERS. SET SOFT-REQ (START/CONTINUE OMA) ••• IIP,81DM+STAT1 ; ••• ANO WAIT FOR DONE/ABORT (IP=l). lS #40114 1 @1DM+C~DR @•0~+12,RO @IDM+2 1 Rl @IDM+62,R2 #EOP,@IDM+STATl 2$ ; GF.T (PIC) CHAIN START ADDRESS. Gf.T (PIC) CRAIN CONTINUE (DUMMY). ; OK, CLF.AR IUS AND IP. GET FINAL Q ADOR (ARAL) ••• ••• LOCAL ADDR (ARBL) ••• ••• ANO WORD COUNT (OPK). "EOP" TER .. INATION ?? SlrIP If HOT ••• ••• OTHERWISE, SET "Y" IN PSW. LOAD CARA, CARB, COPK, ANO CR MODE. Q-BUS 1/0 ADDRESS (CARA) LOCAL ADDRESS (CARB) WORD COUNT (COPlr) CHAN MOOE (1360 IF "FLIP• = 1). DUMMY RF.LOAD TU CLEAR "NAC" ANO CONTINUE. .ENABL Al'A ;*********************************************************************•* KXTIF - KXTllCA Native Fir•Yare MACRO V05.00 DUAL-PORT RAM AND IPV - T13 . ' ....... l11 "' 1 2 3 4 5 6 7 177602 8 177604 9 177606 10 177610 11 17'1612 12 17'1614 13 1'17622 14 l '17624 15 1'1'1630 16 1'17632 l'1 1'1'1634 18 1'17640 19 17'1642 20 177644 21 22 23 24 17'1646 25 177650 26 177660 27 177670 28 29 Page 117 '; HI SEGMENT COPY OF ROM/RAM IN VECTOR SPACE ROUTINE. R2<00> = 1 IF LO BYTE NON-WRITABLE. ' R2<01> = 1 IF HI BYTE NON-WRITABLE. ';XRAMLO: CLR RO i 005000 005002 011046 005116 005110 126066 001402 052702 121026 001402 052702 005110 005702 000207 000001 ~ETURN 000001 000002 lS: 000001 2$: ; CLR MOV COM COM CMPB BEQ BIS CMPB Bt;Q BIS COM TST RETURN R2 (RO),-(SP) (SP) (RO) l(RO),l(SP) 1$ llBIT1,R2 (RO),(SP)+ 2$ fBITO,R2 (RO) R2 ; GET TARGET LOCATION ••• ; ••• AND COMPLIMENT IT. ; COMPLIMENT TARGET LOCATION. ; HI BYTE WRITABLE 77 YES ; ; NO ; LO BYTE WRITABLE 77 YES ; ; NO ; RESTORE TARGET LOCATIO•. ; SET CONDITION FOR CALLER. ; HIGH SEGMENT COPY OF 1 THE FLOATING 1/0 DATA TABL~. ; 015 001 376 000000 012 002 375 004 37J XFLTlO: .BYTE .BYTE .BYTE .llORD KXTNF - KITllCA lative Fir•ware MACRO V05.00 - T13 DUAL-PORT RAM AND IPV 1 00:51 000001 15, 12 ; SYNC PAIR. 001, 002, 004, 010, 020, 040, 100, 200 376, 375, 373, 367, 357, 337, ~77, 177 0 ; TF.RMINATOR. .DSABL A"4A 00:51 Page 11B .end ; FLOATING 1. ; FLOATiliG O. ( ICXTllF - ICXTllCl Native Firavare MACRO Y05.00 Syabol table 166656 G 166712 166722 166740 166756 166710 166770 161146 ace ICCUM 173540 G IOOREC 165522 c IOSTKO 177700 G 16SS30 10100 10200 16S530 10220 16S550 10240 165560 165564 l0250 102S3 165S74 16S606 ID2S5 10210 16S614 16S642 10280 10290 16S644 165646 10300 10400 16S6S2 10500 16S666 165674 10600 10700 16S720 A0800 165724 175010 lI 11.eo = 164377 AO.BI = 16S400 IPLPCO 177766 c APLPSO 177710 G lPLROO 177750 c Al'LR10 171152 G IPLR20 117754 G IPLR30 177156 G IPLR40 177760 G IPLRSO 177762 G APLSPO 177764 G IROFC8 000004 G A.SET 162130 14800 162126 000000 G 88F10 177776 G 88F20 BEVIT = 000100 17S024 Bl BUCKV= 000130 BITO = 000001 G 81Tl = 000002 G BIT10 = 002000 G 81!11 : 004000 c 81T12 = 010000 G 8IT13 = 020000 G BIT14 = 040000 G 8IT1S = 100000 C BIT2 = 000004 (; 8ITJ = 000010 G lBIUD 18100 18200 18300 18400 18500 18600 ...... U1 w BIT4 = 000020 G BITS = 000040 G BIT6 = 000100 G 8IT7 = 000200 G BIT8 = 000400 G BIT9 = 001000 G BOOTFO 177774 G BOOTST 172322 8RICENT 164674 G 8SUPV 171170 G 171240 85100 171300 8S200 BS300 171326 8S400 171346 1713S2 8S500 171372 BSS50 BS570 171404 171420 BS600 8UFR1 = 150002 BUl"R2 = 160002 BYTES = 170002 81200 = 000022 82400 = 000032 8300 = 000002 84800 = 000042 8600 = 000012 89600 = OOOOS2 CIBIT = 010000 =\000003 CHA CHUH 176100 CRIINl 17S7S6 CHllll2 176000 CHAIN4 176020 CHAINS 176040 CHUN6 176060 CHUH = 000046 CHUL = 000042 CRl2H = 000044 CR12L = 000040 ::1000004 Cff 8 16S742 CH END CRICCHR 173614 G CHNOFO= 174442 CRNSTO= 174446 165734 CHTIB CHX =1000004 CHlOO . 173652 173670 CH200 Cff2SO 173702 CH300 173704 CR400 173704 161042 CICSUM CLISP = 170006 177574 CM CMDR = 000054 CMREGA= 1744S4 CNDFGB 000020 G ( 00:51 Page 118-1 CNTNU = 000062 CQIO 177462 177470 COIOI 000015 G CR 166277 G CRDS CRLF 166274 G 000006 G CST"ID CTCC = 000040 CTCS = 000024 CTMS = 000070 CTRL = 000000 CTTC = OOOOS4 CTV = 000010 C.CLR 162200 C8255 177526 G OlRFG8 000002 G OlTCOM 166404 G DUOO 166412 Dl200 166412 01370 166426 DHOO 166452 Dl500 166460 DA600 166464 Dl700 166412 DCDFG8 000001 G DC.DAT 161614 DC.LBO 161672 DC. RCI 161SOO DC. XIT 161616 DC.XMT 161406 DECTST 170072 c DEPOS 166474 G DE200 166526 DESO 166S12 173412 c; DIN IT DISPRG l6S4SO DISPST 166346 G DISPWD 166532 G DllOO 1665SO 166554 01200 DM = 174400 DMICDl= 174454 G DMIED 000002 r. DMALD 171032 G DMAMMl= 174470 G OMAV :: 000164 DMIXIT 17S720 DMlOOl= 174442 G DMlOSA= 174446 G DMAOVA= 174532 G DMA1Vl= 174530 G DMllOO 171104 DMl200 171114 DMA300 171142 DMl400 171150 DMASO 171046 DMA500 171150 = DMl600 171160 OPRV12= 000134 OPRV4 = 000120 DPRV8 = 000124 DSlOO 166346 DS200 166346 ENDTlB 1666S5 = 000002 EOP EOP81T= 000002 ERRR = 100000 G ERRf'GB 100000 G ERROR 166264 G ERRTB 172750 EU"llll 165742 G EXMDIS 165470 EXT EST 172570 G EXlO 16S766 EXlOOO 166224 EUOSO 166242 ~X1200 166260 EX1300 166262 16S776 EX20 EXJOO 166020 EX400 166030 ' 166040 EXSOO EX600 166040 EX700 166056 EX750 166072 EX760 166140 EJl'.770 166146 EXBOO 1661S6 EX900 166172 EX950 166222 El!970 166222 164116 G FAR FARSTR 172370 G FAS 171430 c FCHFG8 000010 G FERRO 000017 G fLTO 163700 163670 FLTl 163666 l"LTlO FRERRB= 020000 G l"TLST 172736 G GETIN 173SS2 G GElOO 1735S2 GF,200 173610 GE300 173612 166772 G GO GP300 167176 HZBOO 162124 INDAT.l 166640 INHIB = 170010 173302 G INIT INITST 172320 lNlOO 173352 IN200 173356 1N300 173402 111400 173402 IP = 020000 IPUIT 177370 IPV12 177364 IP14 1773SO IPV8 177356 IRl 163566 ISEllT 163600 ITX 163S44 163630 IXIT = 170002 KAT ICC$00 000022 c ICC$01 000006 G ICC$ED 000020 G ICC$EI 000004 G ICC$GS 000010 G ICC$MAX 000022 G ICC$NOP 000000 G ICC$RD 000014 G ICC$RES 000002 G 000012 G ICC$SS ICC$WO 000016 G ICC.COM 000036 G KC.EON 004000 G ICC.ICC 000040 G KC.IDA 000100 G ICC.IDR 000200 G KC.LE!f 003400 G tC.YEC 171400 G lE$DIA 000014 c KE$1LC 000006 G ICE$1LL 000010 G KE$1LV 000012 G KESMIX 000014 G KE$NDA 000002 G KE$1fDR 000004 c; 000000 G KE$01C KH.CMO 175001 G KR.CSD 177531 G ICR.IOC 177541 c lH.SC2 175005 G KH.SC3 175007 G Kff.STA 17S003 G KL.CMD 17SOOO G KL.CSA 177520 G KL.CS8 177522 G KL.CSC 177S24 G n.cso 177530 G KL.IOC 177S40 G ICL.SC2 175004 G ICL.SC3 175006 G KL.STA 175002 G KMSJDS 000360 G JM$MAP 000016 G KM$STF 000007 G KM$SWS 000360 G ( ( KXTNF - KXTllCA Native Firmware MACRO ¥05.00 Sy•bol table f--' U1 ""' KP$1NI KP$11NC KP$PBS KPSQOO ltP$QTS ltPSSTS KP$VST KR$QRP KP$TllS KS.ALM KS.DA KS.DOG KS.OR KS.EOM KS.ERC ICS.11.:RR KS.OJI KVSPAB KW$PBO KllSPBl Kll$P82 Kll$P83 ICV$P84 U$P85 Kll$PB6 KV$P87 KllSPCO K11$PHO KW$PLD KV$POD ltVSPlD IC11$P2D KV$P3D Kll.CMD KV.CSA ICV.CSB KV.CSC Kll.CSD Kii. DAT KV.DCO Kll.DCO 1t11.Dc1 Kii.DST Kii. IOC KW.SC2 KV.SC3 KV.STA ICX$BlT KX$BDF KX$BHE KX$Bfff' KXSBQI KXSCME 11'.XSCTE KX$DEll ICXSDEO ICXSDMC 000000 G 000007 c 000005 G 000003 G 000002 G 000001 c 000004 G 040000 G 000001 G 003400 G 000200 G 020000 G 000040 G 000100 G 000036 G 100000 G 040000 c 040000 G 000001 G 000002 G 000004 G 000010 G 000020 G 000040 G 000100 G 000200 c 100000 c 001000 G 000400 c 002000 G 004000 G 010000 G 020000 c 175000 G 177520 G 177522 G 177524 G 177530 G 000004 r. 000000 G 175010 G 175020 G 000002 G 177540 G 175004 G 175006 G 175002 c 002000 G 020000 G 000400 G 001000 G 010000 G 100000 G 000200 G 000100 G 000004 G 000002 G KX$011E Kll$0PE KX$0RT KXSEXO KX$FEF' KXSFOl KX$1"02 KX$f'03 KX$f'04 KX$f'05 KX$1"06 KX$f'07 KX$Fl0 KX$f'll KX$f'l 2 11'.X$f'l3 us coo KX$IllC KXSI20 KXSl24 KX$134 KXSLOO KXSLDl KXSL02 KX$L03 KXSMPO ICX$HP1 KX$MP2 ICX$NOP KX$Nlf' KXSNXM KXSODC KX$0DT KX$0HL KX$0MO KX$0RO KX$PRO KXSPVF ICX$QIE KX$QOF' KXSQRF. KX$QRF' KXSRTE KX$R20 KXSR24 KX$R34 KXSSEF ltX$SHC KX$SHl ltX$SOF KX$SXT KXSTIS KXSTRC KX$TTC ICX$T01 KXST02 KXST03 040000 G 000040 G 000200 G 100000 G 000040 G 000001 G 000002 G 000004 G 000010 G 000020 G 000040 G 000100 G 000200 G 000400 G 001000 G 002000 G 000010 G 000004 G 000010 G 000020 G 000040 G 000001 G 000002 G 000004 G 000010 G 000002 G 000004 G 000010 c 000040 G 010000 G 100000 G 000010 G 000001 G 000020 G 000001 G 000002 G 000020 G 001000 G 020000 G 000200 G 002000 G 004000 G 000100 G 000001 G 000002 G 000004 G 000010 G 000020 G 000004 G 000100 G 004000 G 000020 G 000001 G 000010 G 100001 G 100002 G 100004 r, 00: 51 Pa9e 118-2 KX$T04 100010 G KX$T05 100020 G KX$T06 100040 G KX$T07 100100 G KX$T10 100200 c KX$Tll 100400 G KX$Tl2 101000 G KX$T13 102000 r. KX$2Ell 000002 G = 014000 K3K 177566 LA LAOR = 170006 LB TEST 163712 G 163712 LBlOO LEDTSO 000017 G 000012 G !.F 000017 G !.SO 000016 G LSl 000005 G LSlO 000004 G LSll 000003 G LS12 00000~ G LS13 000001 G LS14 000000 G !.Sl5 000015 G LS2 000014 G !.S3 000013 G LS4 000012 G LS5 000011 G LS6 000010 G !.S7 000007 c: !.S8 000006 G LS9 MllNTB= 000004 G HCC = 000002 160304 HE Ml 160312 MF:H2 160320 MEH3 160324 MF.M3A = 000000 llIC = 000070 HlolR MMRFGA= 174470 MODF. = 170004 NACB IT= 004000 NF.CV = 000070 NECXIT 163470 NEC.al 162262 NEC.AS 162242 NEC.DA 162210 NEC.DH 162624 NEC.EX 163640 163522 NEC.I NEC.HO 163144 NEC.SY 162250 NFERRD 000010 G NFFWDO 177772 G 000000 G llNCEO ODTSTG 177702 r. OOTSTK 117746 G OPEllDS 166301 G ORERRB= 040000 G PACS = 000020 PADB = 000032 Pl HS = 000102 PlMS = 000100 PlRLBD 000016 G PAV = 000004 PBCS = 000022 PBDll = 000034 PBHS = 000122 PllMS = 000120 PllREB = 000002 G PBRF' = 000070 G = 000006 PflV PCDB = 000036 PCDD : 000014 165510 PCRLF 173000 G PFRV PEV1'T : 0,0010 4 PIOlV = 000154 PIOAVA: 177004 G PIOBV = 000160 PTOBVA= 177006 G 174404 PIOD 174450 PIODl 174532 PIOD2 174562 PIOD3 PIOICl= 177000 G PIOTVA= 17701Q G PIOXIT 174746 174152 PIT 174222 PITl 000001 G l'RIBD 167010 G PROC PROMPT 166266 G PRTYV = 000114 = 000000 PRO = 000040 PRl PP2 = 000100 = 000140 PIH = 000200 PR4 PR5 = 000240 = 000300 PR6 : 000340 PR7 PUTF.ST 172324 G l'UTSDS 000001 G 172440 PUlOO PU1010 172566 112360 PU20 172372 PU30 PU400 172526 172434 PU50 172534 PUSOO 172536 PIJ61JO 173012 G PWRIJP PVRV = 000024 PVOSO 173026 173050 PVlOO PV200 173112 PVJOO 173124 PV500 173152 PV600 173156 PV700 173252 Ql 177562 QADR = 170004 QAHI = 170002 QALO = 170004 QCOMIN 167460 G 167560 QClOO QC120 167616 QC150 167626 QC200 167640 QC300 167660 QC350 167714 QC380 167734 QC400 167736 QC420 167716 QC440 170002 QC445 170022 QC447 170024 QC450 170042 QC470 170050 QC50 167512 QC500 170052 QC600 170056 QC10 167524 QIO 171560 QIOC 171600 QIRV = 000144 QIRVl = 000150 176372 QUIT QODTM 171432 G QODTHD 000005 G QSRET 171444 G QSlOO 171476 QSlOOO 171710 QSUOO 171726 QS200 171476 QS300 171536 QS400 171560 QS500 171612 QS100 171632 QSBOO 171656 QS900 171702 160634 R•MLO RlMLOA 160636 R80Tl 000000 G 040000 G RBOT2 R80T3 100000 G RBUFll= 177562 G RCSRll= 177560 G RCVACB= 004000 G ' ( ( tXTIF - tXTllCA Native Fir•ware MACRO V05.00 Sy•bol table f--' U'1 U'1 172262 SN200 164626 G 50DTM SODTMO 000004 G 164746 SOlOO SOlOOO 165104 S01300 165142 S01400 165170 S01450 165174 501470 165174 501500 165240 501550 165254 S01552 165304 S01555 165312 501557 165322 S01560 165330 S01565 165356 S01567 165364 S01569 165376 S01570 165402 S01600 165404 501700 165410 S01800 165412 S01850 165412 S01900 165440 164746 S0200 164776 50300 165006 50400 165054 S0700 165060 S0800 165062 S0900 166272 G SPACE SP OFF 000014 G SP RS SU 173706 G 077762 G SPl 137762 G SP2 173724 SP200 157762 G SPl 173752 SP JOO SP400 173756 SRlOO 164474 sR200· 164526 164536 SR300 SR400 164622 164654 G SSRET STACHN= 17 0012 STAT = 177774 STATS = 170006 STATl = 000056 STAT2 = 000054 STSENL= 000010 STSTAB 1703'54 S.SF.T 162150 SORF:CA= 174456 St LllO 000013 G Rr,f BlB= 004000 G RCIDNB= 000200 G RCYIEB= 000100 G = 000000 RO = 177776 ROB REGO IS 166303 G REGFCB 000200 G REINIT 173016 G RESTRT 164000 G RE1000 164314 RE1010 164352 RE1020 164352 RE1040 164352 RE1045 164372 RF,1050 164412 RE1060 164416 RF.1070 164416 Ri;;1072 164442 RE1075 164450 RE1080 164450 164074 RF.200 164104 RE250 RE400 164106 RE450 164120 164142 RE500 RE600 164226 RE700 164260 164270 RF.:800 RE900 164274 RNGf'GB 000002 G RQIO 177400 173004 G RSTI RTOPl 077776 G 137776 G RTOP2 RTOP3 157776 G SAVERG 164452 G SDlOO 172300 SEID 172300 SETIE = 170010 SE TL DJ 167202 c SETLED 167200 G SElOO 167222 SE150 167242 167242 SF.200 SE300 167250 160546 SltTl SLlRI = 000060 SLl XV = 000064 SL2CAA= 175704 G SL2CBA= 175714 G SL2SlA= 175700 G SL2SBA= 175710 G SNDBRlt 172234 SNlOO 172240 • ABS. 177672 000000 000 001 (RV,I,GBL,lBS,OVR) (Rm 1 1,LCL,REL,CON) 00:5t Page 118-3 52ALBD 000014 G 52BLBO 000015 G TC = 000001 161164 TCLll: TCPU 161150 TCXIT 161322 TDC 161344 175106 TOMA 175174 TDlolAl 175276 TDMA2 175346 TDMA3 176432 TDPR TDPR2 176520 172630 TF.100 172642 TE200 TE250 172712 TE300 172726 172740 TF.400 160040 TIOR 176676 TIPYl TIPV2 177100 TIPXIT 177260 TMPl = l7000l TMP2 = 17000 TMP3 = 170006 TMP4 = 170010 TMP5 = 170012 TMP6 = 170014 TMP7 = 170016 TMP8 = 170020 TNEC 161730 TNNCMl 170754 TNNCOM 170746 TllNINX 170762 TNllXIT 170764 TPIO 174040 TQIR 176102 TRAM 160272 TRlPX 167366 c TRAPlO 167314 G TP1P24 167356 G TRAP4 167252 G TPOM 160700 TR1010 167344 167302 TR410 160040 TSTl TSTlO 174040 TSTll 175106 TST12 176102 TST13 176432 TST2 160272 TST3 160700 TST4 161150 TST'; 161164 T5T6 161344 161130 T5T7 171740 TU100 TU1000 172150 TU120 171714 TU125 171776 172012 TU130 TU150 172042 TU200 172060 TU300 172064 TU400 172066 T0500 172102 T0588T 171734 G TU600 172110 172144 TU800 TU900 172144 TO = 160000 c = 160004 G Tl 170506 G TlERk TlERRl 170532 TlERR2 170540 TlO = 160000 G TlOERR 110720 G 1 TlOETB 171012 Tll = 160004 G TllERP 170726 G TllETB 171016 = 160010 G T12 T12FRR 170734 G TUE TB 171022 = 160014 G T13 T13ERR 170742 G Tl3ET8 17102(r T14 = 160020 G = 160024 G T15 = 160030 G T16 T17 = 160034 G T2 = 160010 G T2ERR 170546 G T2ERR1 170562 T3 = 160014 G T3ERR 170576 G T3ERR1 170612 T3ERR2 170626 = 160020 G T4 170642 G T4ERR 170766 T4ETB TS 160024 G 170650 G TSERR T'SETB 170772 = 160030 G T6 170656 G T6ERR T6ET8 170776 = n - 160034 G 171002 171006 170664 G 170676 170704 000011 G 000012 G 173774 G 000003 G 167402 G WHOO 167402 0200 167446 lll300 167452 WC 177572 llCTBL 175742 WQIO 177410 llQIOA 177416 llRT = 000010 X8Rt8 = 000001 G XBUFll= 177566 G lCSRlA= 177564 G lCVR = 000140 IDB = 000002 Xf'I. TlO 177646 XIEB = 000100 c lOFF = 000023 XOFFGB 000040 c ION = 000021 XRAMLO 177602 XRDYB = 000200 G $CSR = 177530 $C5RA = 177520 $CSRB = 177522 $CSRC = 177524 $CSRCO= 177526 $0Ml = 174400 $0PR = 175000 $EF =t000005 $Ef1 = 177776 $EN = 000014 $1PI = 175000 $18254= 175720 SLEDS = 177524 $PIO = 177000 $QDPR1= 160000 $QOPR2= 175400 $QIR = 177532 SSLl = 177560 $SL2 = 175700 $Tll = 000013 STOP =t000005 $UIO = 177524 T71ETB T7BF.TB T7ERR T7ERR1 T7ERR2 UROMOD UROMlO VERS WUTD WUTST
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies