perm filename KLDCP.CRF[KL,SYS]1 blob
sn#641121 filedate 1982-02-16 generic text, type T, neo UTF8
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 1
KLDCP PAL[KL,SYS] Page 1
≥ COMMENT ⊗ VALID 00005 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00002 00002 DECSYSTEM10 KL10 PDP-11 DIAGNOSTIC CONSOLE PROGRAM
≥ C00004 00003 ASSEMBLY PARAMETERS
≥ C00008 00004 KLDCPU UTILITY PROGRAM PARAMETERS
≥ C00009 00005 FUQ:: THIS IS HERE TO AVOID GETTING A "LOCAL TAG BEFORE
≥ C00011 ENDMK
≥ C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 2
KLDCP PAL[KL,SYS] Page 2
≥ ;DECSYSTEM10 KL10 PDP-11 DIAGNOSTIC CONSOLE PROGRAM
≥
≥
≡DECVER≠≥ 000010 DECVER==010
≡MCNVER≠≥ 000000 MCNVER==0
≡SAILVR≠≥ 000007 SAILVR==7 ;STANFORD VERSION NUMBER. (DEFINING SAILVR MAKES STANFORD ASSEMBLY)
≥
≥
≠.TITLE≡≥ .TITLE KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10
≥
≠.LIST≡≥ .LIST MC,MD
≥ ;.DSABL GBL
≥ ;.DSABL REG
≠.ABS≡≥ .ABS
≥ ;.ENABL AMA
≥
≥ ;JOHN R. KIRCHOFF
≥ ;DIGITAL EQUIPMENT CORPORATION
≥ ;MARLBORO, MASS. 01752
≥
≥
≥ ;[ NOTE: If you change SBST11, you should reassemble KLDCPU also! ]
≥ ;Stanford Revision History.
≥ ;
≥ ;1 4/17/76 Convert to PALX
≥ ;2 4/19/76 Install EPTREL switch
≥ ; Fix LE,LT, etc. to use correct extension by default.
≥ ;3 4/26/76 Add clock sub-functions 4,5
≥ ;4 4/29/76 Make clock interrupt. Fix SET MONMOD.
≥ ;5 5/11/76 Change clock subfunctions 4,5 for pdp-10 doubleword time
≥ ;6 5/24/76 Add MIT code for MZ, PCF, DDT command, ST mods,
≥ ; Also JBR's code for keeping DSKDMP BOOT in 11-core
≥ ;7 4/29/80 JEP (Jim Powell) & REG to support ethernet and QM protocol
≥ ; Through 7/80
≥ ;8 1/12/81 Bugtrap and fixes to ethernet stuff. (TVR)
≥ ;9 5/22/81 Ethernet input double buffered
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 3
KLDCP PAL[KL,SYS] Page 3
≥ ;ASSEMBLY PARAMETERS
≥
≡KLDCP≠≥ 000001 KLDCP= 1 ;ASSEMBLE KLDCP
≡DTEASB≠≥ 000001 DTEASB= 1 ;ASSEMBLE DTE20
≡DTEDEF≠≥ 000001 DTEDEF= 1 ;DEFINE DTE OFFSET ADDRESSES
≡DVSASB≠≥ 000001 DVSASB= 1 ;ASSEMBLE DEVICE SERVICE
≡KWASB≠≥ 000001 KWASB= 1 ;ASSEMBLE KW CLOCK
≡DLASB≠≥ 000001 DLASB= 1 ;ASSEMBLE DL11
≥ ;DHASB= 1 ;ASSEMBLE DH11
≥ ;TAASB= 1 ;ASSEMBLE TA CASSETTE
≥ ;RXASB= 1 ;ASSEMBLE RX11/RX01 FLOPPY
≡TCASB≠≥ 000001 TCASB= 1 ;ASSEMBLE TC DECTAPE
≥ ;RPASB= 1 ;ASSEMBLE RP04 DISK PACK
≥ ;LPASB= 1 ;ASSEMBLE LP20 LINE PRINTER
≡EPTREL≠≥ 000001 EPTREL==1 ;ASSEMBLE EXAMINES/DEPOSITS FOR COMMUNICATIONS RELATIVE TO EPT
≥ ;BPTASB==1 ;ASSEMBLE KLDCP TYPE BREAKPOINT STUFF
≡BOOASB≠≥ 000001 BOOASB==1 ;ASSEMBLE DSKDMP BOOT STUFF
≡%%DDT≠≥ 000001 %%DDT==1 ;ASSEMBLE TO ALLOW DDT TO COEXIST WITH KLDCP
≡TELASB≠≥ 000001 TELASB==1 ;ASSEMBLE DIALUP CONNECTION CODE, TURN OFF KLINIK FEATURE
≡CLKASB≠≥ 000001 CLKASB==1 ;ASSEMBLE TCU-100 BATTERY CLOCK CODE
≥ ;UTLASB==1 ;ASSEMBLE LINKAGES TO KLDCPU
≥ ;MONASB==1 ;ASSEMBLE MONITOR TYPE COMMANDS (INCLUDES SOME ACT10 STUFF)
≡%%QMP≠≥ 000001 %%QMP==1 ;Assemble queued message protocol,
≥ ;front-end reloads from WAITS
≥ ;ethernet support
≥ ;;FSCASB==1 ;Assemble statistics for QMP free storage.
≥ ;;PCKASB==1 ;Assemble checksumming of incoming PUPs (QMP11)
≥
≡$NB≠≥ 000010 $NB= 8. ;USE 8 BREAKPOINTS
≥
≥ ;SUBROUTINE CODE BEGINS AT 16K (WORDS)
≥
≡PRGSRT≠≥ 100000 PRGSRT =16.*1024.*2.
≡COREND≠≥ 160000 COREND =28.*1024.*2.
≥
≠.IF≡≡%%DDT≡≥ .IF DF %%DDT
≡PRGSRT≡≡%DDTS≠≥ 077766 %DDTS==PRGSRT-12
≡TOUTBF≠≥ 003000 TOUTBF=3000 ;OVERLAY BUFFER DOWN WHERE DIAGS GO
≥ .IFF
≥ TOUTBF= 70000 ;OVERLAY BUFFER
≥ .ENDC
≥
≥ ;PDP-10 ABSOLUTE CORE LOCATIONS:
≥
≡$STD≠≥ 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
≡$DDT≠≥ 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
≡$STL≠≥ 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
≡$STM≠≥ 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 4
KLDCP PAL[KL,SYS] Page 3.1
≥ ;PDP-10 KL10 EXEC PROCESS TABLE PARAMETERS.
≥ ;IF EPTREL≠0 THEN ALL OF THE FOLLOWING ARE RELATIVE TO EBR IN THE KL10
≥
≡$DTFLG≠≥ 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
≡$DTCLK≠≥ 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
≥ ;;$DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION (10 SOFTWARE ONLY)
≠.LIF≡≡CLKASB≡≥ .LIF DF CLKASB
≡$DTTIM≠≥ 000446 $DTTIME=446 ;DTE20 TIME AND DATE FROM BATTERY BACKUP CLOCK
≡$DTT11≠≥ 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
≡$DTF11≠≥ 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
≡$DTCMD≠≥ 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
≡$DTSEQ≠≥ 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER (10 SOFTWARE ONLY. NOT USED)
≡$DTOPR≠≥ 000453 $DTOPR= 453 ;DTE20 OPERATION IN PROGRESS FLAG (10 SOFTWARE ONLY. NOT USED)
≡$DTCHR≠≥ 000454 $DTCHR= 454 ;DTE20 LAST KEY TYPED ON CTY
≡$DTMTD≠≥ 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
≡$DTMTI≠≥ 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
≡$DTSWR≠≥ 000457 $DTSWR= 457 ;DTE20 PDP-10 SWITCH REGISTER
≡$DTQMP≠≥ 000460 $DTQMP= 460 ;DTE20 11 TELLS 10 THE SIZE OF A TO10 TRANSFER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 5
KLDCP PAL[KL,SYS] Page 4
≥ ;KLDCPU UTILITY PROGRAM PARAMETERS
≥
≥ ;UTILITY IDENTIFICATION
≥
≡PID≠≥ 003004 PID= 3004 ;PROGRAM NAME
≡PDVER≠≥ 003010 PDVER= 3010 ;DEC VERSION
≡PMVER≠≥ 003012 PMVER= 3012 ;MCN VERSION
≥
≥ ;UTILITY SUB-PROGRAM DISPATCH ADDRESSES
≥
≡PTABLE≠≥ 003020 PTABLE= 3020 ;START OF TABLE
≥
≡RXCOPY≠≥ 003020 RXCOPY= 3020 ;RX11/RX01 FLOPPY COPY PROGRAM
≡DTCOPY≠≥ 003022 DTCOPY= 3022 ;TC11 DECTAPE COPY PROGRAM
≡WFILE≠≥ 003024 WFILE= 3024 ;WRITE FILE FROM DTA/RX TO RP04 PROGRAM
≡TAPT≠≥ 003026 TAPT= 3026 ;TRANSFER FILE FROM APT10 TO RP04 PROGRAM
≡DSKDIR≠≥ 003030 DSKDIR= 3030 ;RP04 DISK DIRECTORY
≡REMOTE≠≥ 003032 REMOTE= 3032 ;REMOTE TELETYPE COMMUNICATIONS
≡XMEMSZ≠≥ 001000 XMEMSZ==512. ;#OF K OF PDP-10 MEMORY TO ZERO IN MZ 0,-1 COMMAND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 6
KLDCP PAL[KL,SYS] Page 5
≥ FUQ:: ;THIS IS HERE TO AVOID GETTING A "LOCAL TAG BEFORE
≥ ;FIRST LABEL" ERROR MESSAGE FROM PALX.
≥ ;(THERE ARE MACRO DEFINITIONS WITH LOCAL TAGS IN THEM)
≥
≥ ;INSERT THE REST OF KLDCP
≥
≥ ;Parameters file
≠.INSRT≡≥ .INSRT PRM11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 7
PRM11 PAL[KL,SYS] Page 1
≥ COMMENT ⊗ VALID 00044 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00005 00002 .SBTTL *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 4-AUG-75
≥ C00007 00003 .SBTTL EMT DEFINITIONS
≥ C00010 00004 TELETYPE OUTPUT DEFINITIONS
≥ C00013 00005 MISCELLANEOUS FUNCTIONS
≥ C00016 00006 COMMUNICATION ROUTINES
≥ C00019 00007 DFXCT= EMT!114 DIAGNOSTIC FUNCTION EXECUTE
≥ C00021 00008 .SBTTL MACRO DEFINITIONS
≥ C00023 00009 BASIC MACROS
≥ C00024 00010 .MACRO SL REG,NUM
≥ C00025 00011 STANDARD PROGRAM ASSIGNMENTS
≥ C00027 00012 BIT ASSIGNMENTS
≥ C00028 00013 CHARACTERS USED
≥ C00030 00014 .SBTTL DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ C00033 00015 BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
≥ C00036 00016 BIT ASSIGNMENTS FOR DIAG2 (WRITE)
≥ C00038 00017 BIT ASSIGNMENTS FOR STATUS (WRITE)
≥ C00041 00018 CLOCK CONTROL FUNCTIONS
≥ C00043 00019 CRAM FUNCTIONS
≥ C00045 00020 DATA PATH CONTROL FUNCTIONS
≥ C00046 00021 .SBTTL KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ C00048 00022 MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
≥ C00050 00023 THIS IS A MACRO TO WAIT FOR A DONE FLAG
≥ C00052 00024 .SBTTL *BBD* DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 2-JAN-75
≥ C00055 00025 THE FOLLOWING MACRO (DTEVEC) DYNAMICLY COMPUTES THE INTERRUPT
≥ C00058 00026 BIT ASSIGNMENTS FOR DIAG1 (WRITE)
≥ C00060 00027 BIT ASSIGNMENTS FOR STATUS (WRITE)
≥ C00062 00028 FUNCTION SELECT CODES
≥ C00064 00029 READ0 =110 PI (READ STATUS 0)
≥ C00065 00030 .SBTTL *BBD* KL10 EBOX MACRO DEFINITIONS, 4-MAR-75
≥ C00067 00031 MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
≥ C00069 00032 THIS IS A MACRO TO WAIT FOR A DONE FLAG
≥ C00071 00033 .SBTTL DEVICE SYMBOL DEFINITIONS, 4-JUNE-75
≥ C00074 00034 .SBTTL KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ C00075 00035 .SBTTL DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ C00078 00036 .SBTTL DH11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ C00081 00037 BIT DEFINITIONS FOR "DHLPR"- LINE PARAMETER REGISTER.
≥ C00083 00038 .SBTTL TA11 (CASSETTE) DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ C00085 00039 .SBTTL RX11/RX01 (FLOPPY) REGISTERS AND BIT DEFINITIONS, 22-JULY-75
≥ C00087 00040 .SBTTL TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ C00089 00041 .SBTTL RH11/RP04 REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ C00092 00042 .SBTTL LP20 REGISTER AND BIT DEFINITIONS, 27-JUNE-75
≥ C00095 00043 .SBTTL EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
≥ C00096 00044 DSKDMP BOOTSTRAP PARAMETERS
≥ C00097 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 8
PRM11 PAL[KL,SYS] Page 2 *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 4-AUG-75
≥ .SBTTL *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 4-AUG-75
≥
≥ ;PROGRAM CONTROL SWITCHES
≥
≡ABORT≠≥ 100000 ABORT= 100000 ;ABORT AT PROGRAM PASS COMPLETION
≥
≡RSTART≠≥ 040000 RSTART= 40000 ;RESTART TEST
≡TOTALS≠≥ 020000 TOTALS= 20000 ;PRINT TEST TOTALS
≡NOPNT≠≥ 010000 NOPNT= 10000 ;INHIBIT ALL PRINT OUT (EXCEPT FORCED)
≥
≡PNTLPT≠≥ 004000 PNTLPT= 4000 ;PRINT ON LINE-PRINTER
≡DING≠≥ 002000 DING= 2000 ;RING TTY BELL ON ERROR
≡LOOPER≠≥ 001000 LOOPER= 1000 ;LOOP ON ERROR
≥
≡ERSTOP≠≥ 000400 ERSTOP= 400 ;HALT ON ERROR
≡PALERS≠≥ 000200 PALERS= 200 ;PRINT ALL ERRORS
≡RELIAB≠≥ 000100 RELIAB= 100 ;RELIABILITY RUN MODE
≥
≡TXTINH≠≥ 000040 TXTINH= 40 ;TEXT INHIBIT
≡INHPAG≠≥ 000020 INHPAG= 20 ;INHIBIT PAGING (PDP-10)
≡MODDVC≠≥ 000010 MODDVC= 10 ;MODIFY DEVICE CODE (PDP-10)
≥
≡INHCSH≠≥ 000004 INHCSH= 4 ;INHIBIT CACHE (PDP-10)
≡OPRSEL≠≥ 000002 OPRSEL= 2 ;OPERATOR SELECTION
≡CHAIN≠≥ 000001 CHAIN= 1 ;CHAIN CONTROL SWITCH
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 9
PRM11 PAL[KL,SYS] Page 3 EMT DEFINITIONS
≥ .SBTTL EMT DEFINITIONS
≥ ;OPERATOR DEFINITION - SUBROUTINE CALLS
≥
≠EMT≡≡FATAL≠≥ 104000 FATAL= EMT!0 ;FATAL PROGRAMMING ERROR.
≠EMT≡≡ERRHLT≠≥ 104001 ERRHLT= EMT!1 ;PROGRAM HALT, ONLY IF "ERSTOP" SWITCH SET
≠EMT≡≡PRGHLT≠≥ 104002 PRGHLT= EMT!2 ;PROGRAM HALT, DON'T CHECK SWITCH
≠EMT≡≡RUNLP≠≥ 104003 RUNLP= EMT!3 ;CONSOLE IDLE RUN LOOP
≠EMT≡≡DFLEGA≠≥ 104226 DFLEGAL=EMT!226 ;DIAGNOSTIC FUNCTION LEGALITY CHECK
≥
≥ ;TELETYPE INPUT DEFINITIONS
≥ ; *** CALL SEQUENCE ***
≥ ; TT----
≥ ; RETURN, C BIT SET FOR NO/ERROR RESPONSE
≥
≠EMT≡≡TTILIN≠≥ 104004 TTILIN= EMT!4 ;READ TTY LINE INPUT INTO BUFFER
≠EMT≡≡TTILNW≠≥ 104224 TTILNW= EMT!224 ;READ TTY LINE INPUT, WAIT FOREVER
≠EMT≡≡TTICCL≠≥ 104225 TTICCL= EMT!225 ;PROCESS TTY INPUT FROM INDIRECT CCL BUFFER
≠EMT≡≡TTICHR≠≥ 104005 TTICHR= EMT!5 ;INPUT A CHARACTER FROM BUFFER
≠EMT≡≡TTBACK≠≥ 104144 TTBACK= EMT!144 ;BACKUP INPUT POINTER
≠EMT≡≡TTLOOK≠≥ 104006 TTLOOK= EMT!6 ;LOOK FOR A TTY INPUT
≠EMT≡≡TTIOCT≠≥ 104007 TTIOCT= EMT!7 ;INPUT AN OCTAL NUMBER FROM BUFFER
≠EMT≡≡TTCOCT≠≥ 104010 TTCOCT= EMT!10 ;INPUT & CHECK OCTAL, RTN IF OK
≠EMT≡≡TTOCTE≠≥ 104200 TTOCTE= EMT!200 ;INPUT EVEN OCTAL NUMBER
≠EMT≡≡TTIDEC≠≥ 104011 TTIDEC= EMT!11 ;INPUT A DECIMAL NUMBER FROM BUFFER
≠EMT≡≡TTIYES≠≥ 104012 TTIYES= EMT!12 ;ASK YES-NO, N BIT ON NO, C BIT SET ON ERROR
≠EMT≡≡TTALTM≠≥ 104013 TTALTM= EMT!13 ;ALT-MODE CHECK, C BIT SET IF NON-ALT-MODE
≠EMT≡≡TTI36≠≥ 104014 TTI36= EMT!14 ;READ 36 DIGIT NUMBER FROM BUFFER
≠EMT≡≡TTIBRK≠≥ 104015 TTIBRK= EMT!15 ;GET NUMBER INPUT BREAK CHARACTER
≠EMT≡≡TTISDL≠≥ 104016 TTISDL= EMT!16 ;SPACE DELETE, C BIT SET ON NON-NUMBER
≠EMT≡≡TTISDO≠≥ 104017 TTISDO= EMT!17 ;SPACE DELETE & OCTAL INPUT, RTN IF OK
≠EMT≡≡TTIS36≠≥ 104020 TTIS36= EMT!20 ;SPACE DELETE & 36BIT INPUT, RTN IF OK
≠EMT≡≡TTICRA≠≥ 104021 TTICRA= EMT!21 ;INPUT C-RAM ADDRESS
≠EMT≡≡TTITRM≠≥ 104022 TTITRM= EMT!22 ;CHECK INPUT TERMINATOR, RTN IF OK
≠EMT≡≡TTBTRM≠≥ 104023 TTBTRM= EMT!23 ;BACKUP, THEN "
≠EMT≡≡TTERM≠≥ 104201 TTERM= EMT!201 ;NUMBER TERMINATION CHECK, C BIT SET IF ERROR
≠EMT≡≡TTPINI≠≥ 104217 TTPINI= EMT!217 ;INITIALIZE INPUT & OUTPUT BUFFER POINTERS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 10
PRM11 PAL[KL,SYS] Page 4 EMT DEFINITIONS
≥ ;TELETYPE OUTPUT DEFINITIONS
≥ ; *** CALL SEQUENCE ***
≥ ; MOV ARG,R0 ;IF CALL REQUIRES AN ARGUMENT
≥ ; P-----
≥
≠EMT≡≡PNTAL≠≥ 104024 PNTAL= EMT!24 ;PRINT ASCII LINE, ADDRESS IN R0
≠EMT≡≡$PMSG≠≥ 104025 $PMSG= EMT!25 ;PRINT MESSAGE, TRAILING PARAMETER
≠EMT≡≡$PMSGR≠≥ 104026 $PMSGR= EMT!26 ;PRINT MESSAGE, CONDITIONAL ON "RPTFLG"
≠EMT≡≡PNTCHR≠≥ 104027 PNTCHR= EMT!27 ;PRINT ASCII CHARACTER IN R0
≠EMT≡≡PNTCI≠≥ 104214 PNTCI= EMT!214 ;PRINT CHAR IMMEDIATE, TRAILING CHARS
≠EMT≡≡PNTNBR≠≥ 104030 PNTNBR= EMT!30 ;PRINT NUMBER
≠EMT≡≡PCRLF≠≥ 104031 PCRLF= EMT!31 ;PRINT CR-LF
≠EMT≡≡PSPACE≠≥ 104032 PSPACE= EMT!32 ;PRINT A SPACE
≠EMT≡≡PSLASH≠≥ 104033 PSLASH= EMT!33 ;PRINT A SLASH
≠EMT≡≡PCOMMA≠≥ 104034 PCOMMA= EMT!34 ;PRINT A COMMA
≠EMT≡≡PTAB≠≥ 104227 PTAB= EMT!227 ;PRINT A TAB
≠EMT≡≡PNTOCT≠≥ 104035 PNTOCT= EMT!35 ;PRINT OCTAL NUMBER IN R0
≠EMT≡≡PNTOCS≠≥ 104036 PNTOCS= EMT!36 ;PRINT OCTAL IN R0, SUPPRESS LEADING ZEROS
≠EMT≡≡PNTDEC≠≥ 104037 PNTDEC= EMT!37 ;PRINT DECIMAL NUMBER IN R0
≠EMT≡≡PNT18≠≥ 104040 PNT18= EMT!40 ;PRINT LOWER 18 OF 36 BIT NUMBER
≠EMT≡≡PNT23≠≥ 104041 PNT23= EMT!41 ;PRINT LOWER 23 BITS OF 36 BIT NUMBER
≠EMT≡≡PNT22≠≥ 104041 PNT22= EMT!41 ; " OLD PNT23 "
≠EMT≡≡PNT36≠≥ 104042 PNT36= EMT!42 ;PRINT 36 BIT NUMBER, ADDRESS IN R0
≠EMT≡≡PNT36B≠≥ 104134 PNT36B= EMT!134 ;PRINT 36 BIT NUMBER IN BINARY
≠EMT≡≡PNTADR≠≥ 104137 PNTADR= EMT!137 ;PRINT PDP-10 ADDRESS
≠EMT≡≡PFORCE≠≥ 104043 PFORCE= EMT!43 ;SET FORCED PRINTOUT FLAG
≠EMT≡≡PNORML≠≥ 104044 PNORML= EMT!44 ;CLEAR FORCED PRINTOUT FLAG
≠EMT≡≡PBELL≠≥ 104045 PBELL= EMT!45 ;DING THE TTY BELL
≠EMT≡≡PNTODC≠≥ 104046 PNTODC= EMT!46 ;PRINT SPECIFIED OCTAL DIGITS
≠EMT≡≡PNTODT≠≥ 104047 PNTODT= EMT!47 ;PRINT SPECIFIED DIGITS, TRAILING PARAMETER
≥
≠EMT≡≡PRINTT≠≥ 104151 PRINTT= EMT!151 ;PRINT, TTY OUTPUT
≠EMT≡≡PTTY≠≥ 104152 PTTY= EMT!152 ;PRINT, TTY DRIVER
≠EMT≡≡PLPT≠≥ 104153 PLPT= EMT!153 ;PRINT, LPT DRIVER
≠EMT≡≡PLDBUF≠≥ 104154 PLDBUF= EMT!154 ;PRINT, LOAD BUFFER
≥
≠EMT≡≡PNTBAK≠≥ 104177 PNTBAK= EMT!177 ;PRINT, BACKUP OUTPUT INSERTION POINTER
≥
≠EMT≡≡PNTRST≠≥ 104215 PNTRST= EMT!215 ;PRINT, OUTPUT POINTERS RESET
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 11
PRM11 PAL[KL,SYS] Page 5 EMT DEFINITIONS
≥ ;MISCELLANEOUS FUNCTIONS
≥
≠EMT≡≡REGSAV≠≥ 104050 REGSAV= EMT!50 ;SAVE R0 THRU R5
≠EMT≡≡REGRST≠≥ 104051 REGRST= EMT!51 ;RESTORE R0 THRU R5
≠EMT≡≡SHIFTR≠≥ 104053 SHIFTR= EMT!53 ;SHIFT R0 RIGHT, TRAILING PARAMETER
≠EMT≡≡SHIFTL≠≥ 104054 SHIFTL= EMT!54 ;SHIFT R0 LEFT, TRAILING PARAMETER
≠EMT≡≡PROL36≠≥ 104146 PROL36= EMT!146 ;ROTATE LEFT 36 BITS
≠EMT≡≡SETFLG≠≥ 104055 SETFLG= EMT!55 ;SET -1 TO FLAG, TRAILING PARAMETER
≠EMT≡≡MULTPY≠≥ 104072 MULTPY= EMT!72 ;MULTIPLY
≠EMT≡≡TDELAY≠≥ 104056 TDELAY= EMT!56 ;SMALL DELAY
≠EMT≡≡SWITCH≠≥ 104057 SWITCH= EMT!57 ;READ THE SWITCH REGISTER, RETURNED IN R0
≠EMT≡≡SWTSAM≠≥ 104060 SWTSAM= EMT!60 ;RETURN PRESENT STORED SWITCHES IN R0
≥
≠EMT≡≡EOP≠≥ 104061 EOP= EMT!61 ;END OF PASS ROUTINE, RETURNS IF NOT COMPLETED
≠EMT≡≡ERREOP≠≥ 104062 ERREOP= EMT!62 ;ERROR END OF PASS
≠EMT≡≡EOPSET≠≥ 104063 EOPSET= EMT!63 ;SET END OF PASS PRINTOUT INTERVAL
≥
≥ ;DEVICE ROUTINES
≥
≠EMT≡≡NAMEXT≠≥ 104206 NAMEXT= EMT!206 ;FILE NAME.EXT PROCESS
≠EMT≡≡DTAFIL≠≥ 104207 DTAFILE=EMT!207 ;DECTAPE FILE SELECTION
≠EMT≡≡RPFILE≠≥ 104210 RPFILE= EMT!210 ;RP04 FILE SELECTION
≠EMT≡≡R50UPK≠≥ 104155 R50UPK= EMT!155 ;RAD50 TO ASCII UNPACK
≠EMT≡≡ASCR50≠≥ 104165 ASCR50= EMT!165 ;ASCII TO RAD50 CONVERSION
≠EMT≡≡DTINIT≠≥ 104156 DTINIT= EMT!156 ;DECTAPE INITIALIZATION
≠EMT≡≡RPINIT≠≥ 104157 RPINIT= EMT!157 ;RP04 INITIALIZATION
≠EMT≡≡RPLOAD≠≥ 104166 RPLOAD= EMT!166 ;RP04 LOAD PACK
≠EMT≡≡DVDATA≠≥ 104160 DVDATA= EMT!160 ;DEVICE DATA BLOCK READ
≠EMT≡≡DTRDFL≠≥ 104211 DTRDFL= EMT!211 ;DECTAPE READ FILE
≠EMT≡≡DTWTFL≠≥ 104212 DTWTFL= EMT!212 ;DECTAPE WRITE FILE
≠EMT≡≡DTBASE≠≥ 104213 DTBASE= EMT!213 ;RETURN DECTAPE PARAMETER BASE ADDRESS
≠EMT≡≡DTREAD≠≥ 104161 DTREAD= EMT!161 ;DECTAPE READ
≠EMT≡≡DTWRT≠≥ 104205 DTWRT= EMT!205 ;DECTAPE WRITE
≠EMT≡≡RPFIND≠≥ 104167 RPFIND= EMT!167 ;RP04 FIND FILE
≠EMT≡≡RPLKUP≠≥ 104170 RPLKUP= EMT!170 ;RP04 FILE DIRECTORY LOOKUP
≠EMT≡≡RPRDFL≠≥ 104171 RPRDFL= EMT!171 ;RP04 READ FILE
≠EMT≡≡RPWRFL≠≥ 104172 RPWRFL= EMT!172 ;RP04 WRITE FILE
≠EMT≡≡RPREAD≠≥ 104162 RPREAD= EMT!162 ;RP04 READ
≠EMT≡≡RPWRIT≠≥ 104173 RPWRIT= EMT!173 ;RP04 WRITE
≠EMT≡≡RPADDR≠≥ 104174 RPADDR= EMT!174 ;RP04 ADDRESS CALCULATION
≠EMT≡≡RPBASE≠≥ 104175 RPBASE= EMT!175 ;RETURN RP04 PARAMETER BLOCK BASE ADDRESS
≠EMT≡≡RPERRO≠≥ 104237 RPERROR=EMT!237 ;RP04 ERROR REPORTER
≠EMT≡≡DVFRAM≠≥ 104163 DVFRAM= EMT!163 ;DEVICE DATA FRAME READ
≠EMT≡≡DVWRD≠≥ 104164 DVWRD= EMT!164 ;DEVICE WORD READ
≠EMT≡≡RXFILE≠≥ 104230 RXFILE= EMT!230 ;RX11/RX01 FLOPPY FILE SELECTION
≠EMT≡≡RXINIT≠≥ 104231 RXINIT= EMT!231 ; FLOPPY INITIALIZATION
≠EMT≡≡RXRDFL≠≥ 104232 RXRDFL= EMT!232 ; FLOPPY READ FILE
≠EMT≡≡RXWTFL≠≥ 104233 RXWTFL= EMT!233 ; FLOPPY WRITE FILE
≠EMT≡≡RXBASE≠≥ 104234 RXBASE= EMT!234 ; FLOPPY PARAMETER BLOCK BASE ADDRESS
≠EMT≡≡RXREAD≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 12
PRM11 PAL[KL,SYS] Page 5.1 EMT DEFINITIONS
≥ 104235 RXREAD= EMT!235 ; FLOPPY READ
≠EMT≡≡RXWRT≠≥ 104236 RXWRT= EMT!236 ; FLOPPY WRITE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 13
PRM11 PAL[KL,SYS] Page 6 EMT DEFINITIONS
≥ ;COMMUNICATION ROUTINES
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ COMCMD= EMT!220 ;COMMUNICATIONS COMMAND
≥ COMRTRY=EMT!221 ;COMMUNICATIONS COMMAND RETRY
≥ COMENQ= EMT!222 ;COMMUNICATIONS ENQUIRY
≥ COMEOT= EMT!223 ;COMMUNICATIONS END OF TRANSMISSION
≥ COMLIN= EMT!64 ;COMMUNICATIONS LINE INPUT
≥ COMSND= EMT!65 ;COMMUNICATIONS LINE OUTPUT
≥ COMACK= EMT!66 ;COMMUNICATIONS ACKNOWLEDGE
≥ COMNAK= EMT!67 ;COMMUNICATIONS NEGATIVE ACKNOWLEDGE
≥ COMCLR= EMT!70 ;COMMUNICATIONS CLEAR
≥ COMCTL= EMT!71 ;COMMUNICATIONS CONTROL SEQUENCE
≥ .ENDC
≥
≥ ;KL10 ROUTINES
≥
≠EMT≡≡WCRAM≠≥ 104073 WCRAM= EMT!73 ;WRITE IN TO C-RAM
≠EMT≡≡RCRAM≠≥ 104074 RCRAM= EMT!74 ;READ THE C-RAM
≠EMT≡≡WWADR≠≥ 104075 WWADR= EMT!75 ;WRITE C-RAM ADDRESS
≠EMT≡≡MICNUL≠≥ 104203 MICNUL= EMT!203 ;C-RAM FILL WITH 0'S
≠EMT≡≡MICFIL≠≥ 104204 MICFIL= EMT!204 ;C-RAM FILL WITH 1'S
≥
≠EMT≡≡MRESET≠≥ 104076 MRESET= EMT!76 ;MASTER RESET
≥
≠EMT≡≡TENSW≠≥ 104145 TENSW= EMT!145 ;PDP-10 SWITCHES
≥
≠EMT≡≡TENSP≠≥ 104077 TENSP= EMT!77 ;TURN OFF TEN RUNNING
≥
≠EMT≡≡TENCHR≠≥ 104176 TENCHR= EMT!176 ;PDP-10 LAST TYPED CHARACTER
≥
≠EMT≡≡SM≠≥ 104100 SM= EMT!100 ;START MACHINE
≠EMT≡≡EXCT≠≥ 104101 EXCT= EMT!101 ;EXECUTE PDP10 INSTR, REQUIRES SM
≠EMT≡≡LODAR≠≥ 104102 LODAR= EMT!102 ;SPECIAL AR LOAD FOR EXCT AND MBOX TEST
≠EMT≡≡SETMPH≠≥ 104147 SETMPH= EMT!147 ;SET M-BOX PHASE
≥
≠EMT≡≡ECLOK≠≥ 104135 ECLOK= EMT!135 ;E BOX CLOCK
≠EMT≡≡ESYNC≠≥ 104136 ESYNC= EMT!136 ;E BOX SYNC
≥
≠EMT≡≡EXAM≠≥ 104103 EXAM= EMT!103 ;EXAMINE 10 MEMORY
≠EMT≡≡EXAMT≠≥ 104104 EXAMT= EMT!104 ;EXAMINE 10 MEMORY, TRAILING PARAMETERS
≠EMT≡≡DPOS≠≥ 104105 DPOS= EMT!105 ;DEPOSIT INTO 10 MEMORY
≠EMT≡≡DPOST≠≥ 104106 DPOST= EMT!106 ;DEPOSIT INTO 10 MEMORY, TRAILING PARAMETERS
≠EMT≡≡DPOSVR≠≥ 104107 DPOSVR= EMT!107 ;DEPOSIT AND VERIFY 10 MEMORY
≠EMT≡≡DPOSVT≠≥ 104110 DPOSVT= EMT!110 ;DEPOSIT AND VERIFY 10 MEMORY, TRAILING PARAMETERS
≠EMT≡≡D10MON≠≥ 104111 D10MON= EMT!111 ;DEPOSIT -1 INTO 10 FLAG WORD
≠EMT≡≡D10ZRO≠≥ 104112 D10ZRO= EMT!112 ;PDP-10 MEMORY ZERO
≥
≠EMT≡≡CMPR36≠≥ 104052 CMPR36= EMT!52 ;COMPARE 5 BYTE 36-BIT WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 14
PRM11 PAL[KL,SYS] Page 6.1 EMT DEFINITIONS
≥
≠EMT≡≡DTEBAS≠≥ 104113 DTEBAS= EMT!113 ;RETURN DTE20 BASE ADDRESS
≠EMT≡≡DFXCT≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 15
PRM11 PAL[KL,SYS] Page 7 EMT DEFINITIONS
≥ 104114 DFXCT= EMT!114 ;DIAGNOSTIC FUNCTION EXECUTE
≠EMT≡≡DFXCTT≠≥ 104115 DFXCTT= EMT!115 ;DF EXECUTE, TRAILING PARAMETER
≥
≠EMT≡≡DFRD≠≥ 104116 DFRD= EMT!116 ;DIAGNOSTIC FUNCTION READ
≠EMT≡≡DFRDT≠≥ 104140 DFRDT= EMT!140 ;DF READ, TRAILING PARAMETER
≠EMT≡≡DFRDMV≠≥ 104117 DFRDMV= EMT!117 ;DIAGNOSTIC FUNCTION READ & MOVE
≥
≠EMT≡≡DFWRT≠≥ 104120 DFWRT= EMT!120 ;DIAGNOSTIC FUNCTION WRITE
≠EMT≡≡DFWRTT≠≥ 104141 DFWRTT= EMT!141 ;DF WRITE, TRAILING PARAMETERS
≠EMT≡≡DFWIR≠≥ 104121 DFWIR= EMT!121 ;DIAGNOSTIC FUNCTION WRITE IR
≥
≠EMT≡≡DFSCLK≠≥ 104122 DFSCLK= EMT!122 ;DIAGNOSTIC FUNCTION, SINGLE STEP CLOCK
≥
≠EMT≡≡DFPC≠≥ 104123 DFPC= EMT!123 ;DIAGNOSTIC FUNCTION READ PC
≠EMT≡≡DFVMA≠≥ 104124 DFVMA= EMT!124 ;DIAGNOSTIC FUNCTION READ VMA
≠EMT≡≡DFADB≠≥ 104125 DFADB= EMT!125 ;DIAGNOSTIC FUNCTION READ ADDRESS BREAK
≠EMT≡≡DFVMAH≠≥ 104150 DFVMAH= EMT!150 ;DIAGNOSTIC FUNCTION READ VMA HELD
≥
≠EMT≡≡RDRAM≠≥ 104126 RDRAM= EMT!126 ;READ D-RAM
≠EMT≡≡WDRAM≠≥ 104127 WDRAM= EMT!127 ;WRITE D-RAM
≠EMT≡≡DRAMAD≠≥ 104130 DRAMAD= EMT!130 ;SELECT D-RAM ADDRESS
≥
≠EMT≡≡CLKPRM≠≥ 104202 CLKPRM= EMT!202 ;RETURN ADDRESS OF "CLKDFL" WORD
≥
≠EMT≡≡BURST≠≥ 104131 BURST= EMT!131 ;BURST M-BOX CLOCK
≥
≠EMT≡≡PNTCPU≠≥ 104132 PNTCPU= EMT!132 ;PRINT CPU, C-RAM & REGISTERS
≥
≠EMT≡≡PNTCRM≠≥ 104142 PNTCRM= EMT!142 ;PRINT C-RAM, LOGICAL FIELD FORMAT
≥
≠EMT≡≡PNTDRM≠≥ 104143 PNTDRM= EMT!143 ;PRINT D-RAM, LOGICAL FIELD FORMAT
≥
≠EMT≡≡PRGCMD≠≥ 104133 PRGCMD= EMT!133 ;PROGRAM COMMAND
≥
≠EMT≡≡PRGNPT≠≥ 104216 PRGNPT= EMT!216 ;PROGRAM COMMAND, NO PRINT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 16
PRM11 PAL[KL,SYS] Page 8 MACRO DEFINITIONS
≥ .SBTTL MACRO DEFINITIONS
≥
≠.IIF≡≡$$LITT≡≡$$CLIT≠≥ 144720 .IIF P2, $$CLIT==$$LITT ;LITERAL STORAGE ASSIGNMENT
≠.IELSE≡≥ .IELSE $$CLIT==2000
≥
≠.MACRO≡≤PMSG≠≥ .MACRO PMSG $ARG
≥ $PMSG
≥ $$CLIT
≥ .NLIST SRC
≥ $$CLC=.
≥ .=$$CLIT
≥ .ASCIZ ↔$ARG↔
≥ $$CLIT=.
≥ .=$$CLC
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤PMSGR≠≥ .MACRO PMSGR $ARG
≥ $PMSGR
≥ $$CLIT
≥ .NLIST SRC
≥ $$CLC=.
≥ .=$$CLIT
≥ .ASCIZ ↔$ARG↔
≥ $$CLIT=.
≥ .=$$CLC
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤PNTMSG≠≥ .MACRO PNTMSG $ARG
≥ MOV #$$CLIT,R0
≥ PNTAL
≥ .NLIST SRC
≥ $$CLC=.
≥ .=$$CLIT
≥ .ASCIZ ↔$ARG↔
≥ .EVEN
≥ $$CLIT=.
≥ .=$$CLC
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤EXIT≠≥ .MACRO EXIT
≥ JMP $EXIT
≥ .ENDM
≥
≠.MACRO≡≤EXITSK≠≥ .MACRO EXITSKP
≥ JMP $EXITS
≥ .ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 17
PRM11 PAL[KL,SYS] Page 8.1 MACRO DEFINITIONS
≥
≠.MACRO≡≤EXITER≠≥ .MACRO EXITERR
≥ JMP $EXITE
≥ .ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 18
PRM11 PAL[KL,SYS] Page 9 MACRO DEFINITIONS
≥ ;BASIC MACROS
≥
≠.MACRO≡≤PUSH≠≥ .MACRO PUSH A
≥ .NLIST SRC
≥ .IRP B,<A>
≥ MOV B,-(SP) ;PUSH B ON STACK
≥ .ENDM
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤POP≠≥ .MACRO POP A
≥ .NLIST SRC
≥ .IRP B,<A>
≥ MOV (SP)+,B ;POP STACK INTO B
≥ .ENDM
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤MULT≠≥ .MACRO MULT SOURCE,REG
≥ PUSH SOURCE
≥ PUSH REG
≥ MULTPY
≥ POP REG
≥ .NTYPE X,REG
≥ .IF EQ X&1
≥ .IFT
≥ POP REG+1
≥ .IFF
≥ INC SP
≥ INC SP
≥ .ENDC
≥ .ENDM
≥
≠.MACRO≡≤.LIT≠≥ .MACRO .LIT $LTAG,$LARG
≥ $$CLC=.
≥ .=$$CLIT
≥ .EVEN
≥ $LTAG=.
≥ .IIF B <$LARG>,0
≥ .IIF NB <$LARG>,$LARG
≥ .EVEN
≥ $$CLIT=.
≥ .=$$CLC
≥ .ENDM
≠.MACRO≡≤SL≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 19
PRM11 PAL[KL,SYS] Page 10 MACRO DEFINITIONS
≥ .MACRO SL REG,NUM
≥ .NLIST SRC
≥ .IF GT NUM-7
≥ .IFT
≥ SWAB REG
≥ .REPT NUM-8.
≥ ASL REG
≥ .ENDR
≥ .IFF
≥ .REPT NUM
≥ ASL REG
≥ .ENDR
≥ .ENDC
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤SR≠≥ .MACRO SR REG,NUM
≥ .NLIST SRC
≥ .IF GT NUM-7
≥ .IFT
≥ SWAB REG
≥ .REPT NUM-8
≥ ASR REG
≥ .ENDR
≥ .IFF
≥ .REPT NUM
≥ ASR REG
≥ .ENDR
≥ .ENDC
≥ .LIST SRC
≥ .ENDM
≥
≠.MACRO≡≤EXOR≠≥ .MACRO EXOR REG,DESTIN,SCRTCH
≥ .IF NB SCRTCH
≥ .IFT
≥ MOV REG,SCRTCH
≥ BIC DESTIN,SCRTCH
≥ BIC REG,DESTIN
≥ BIS SCRTCH,DESTIN
≥ .IFF
≥ MOV REG,-(SP)
≥ BIC DESTIN,(SP)
≥ BIC REG,DESTIN
≥ BIS (SP)+,DESTIN
≥ .ENDC
≥ .ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 20
PRM11 PAL[KL,SYS] Page 11 MACRO DEFINITIONS
≥ ;STANDARD PROGRAM ASSIGNMENTS
≥
≠.IIF≡≡STACK≡≥ .IIF NDF STACK, STACK==157776 ;INITIAL STACK POINTER
≠.IIF≡≡CONSOL≡≥ .IIF NDF CONSOL,CONSOL==100000 ;CONSOLE START ADDRESS
≥
≡CBIT≠≥ 000001 CBIT= 1 ;CARRY BIT
≡NBIT≠≥ 000010 NBIT= 10 ;NEGATIVE BIT
≡ZBIT≠≥ 000004 ZBIT= 4 ;ZERO BIT
≡VBIT≠≥ 000002 VBIT= 2 ;OVERFLOW BIT
≡TBIT≠≥ 000020 TBIT= 20 ;TRAP BIT
≥
≥ ;REGISTER DEFINITIONS
≥
≡%0≡≡R0≠≥ 000000 R0= %0 ;GENERAL REGISTERS
≡%1≡≡R1≠≥ 000001 R1= %1
≡%2≡≡R2≠≥ 000002 R2= %2
≡%3≡≡R3≠≥ 000003 R3= %3
≡%4≡≡R4≠≥ 000004 R4= %4
≡%5≡≡R5≠≥ 000005 R5= %5
≡%6≡≡R6≠≥ 000006 R6= %6
≡%6≡≡SP≠≥ 000006 SP= %6 ;STACK POINTER
≡%7≡≡PC≠≥ 000007 PC= %7 ;PROGRAM COUNTER
≥
≥ ;PDP11/40 STANDARD TRAP VECTOR ASSIGNMENTS
≥
≡RESVED≠≥ 000000 RESVED= 0 ;RESERVED
≡ERRVEC≠≥ 000004 ERRVEC= 4 ;TIME OUT, BUS ERROR
≡RESVEC≠≥ 000010 RESVEC= 10 ;RESERVED INSTRUCTION
≡TRTVEC≠≥ 000014 TRTVEC= 14 ;BREAK POINT VECTOR
≡TBITVE≠≥ 000014 TBITVEC=14
≡BPTVEC≠≥ 000014 BPTVEC= 14
≡IOTVEC≠≥ 000020 IOTVEC= 20 ;IOT TRAP VECTOR
≡PWRVEC≠≥ 000024 PWRVEC= 24 ;POWER FAIL TRAP VECTOR
≡EMTVEC≠≥ 000030 EMTVEC= 30 ;EMT TRAP VECTOR
≡TRAPVE≠≥ 000034 TRAPVEC=34 ;"TRAP" TRAP VECTOR
≡TKVEC≠≥ 000060 TKVEC= 60 ;TTY KEYBOARD VECTOR
≡TPVEC≠≥ 000064 TPVEC= 64 ;TTY PRINTER VECTOR
≡TA11≠≥ 000260 TA11= 260 ;CASSETTE TAPE READER
≡TC11≠≥ 000214 TC11= 214 ;DECTAPE VECTOR
≥
≥ ;PDP11/40 STANDARD ADDRESS ASSIGNMENTS
≥
≡PS≠≥ 177776 PS= 177776 ;CPU STATUS
≡STKLMT≠≥ 177774 STKLMT= 177774 ;STACK LIMIT
≡SWR≠≥ 177570 SWR= 177570 ;CONSOLE SWITCH REGISTER
≡TTODBR≠≥ 177566 TTODBR= 177566 ;TTY OUT DBR
≡TTOCSR≠≥ 177564 TTOCSR= 177564 ;TTY OUT CSR
≥
≡TTIDBR≠≥ 177562 TTIDBR= 177562 ;TTY IN DBR
≡TTICSR≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 21
PRM11 PAL[KL,SYS] Page 11.1 MACRO DEFINITIONS
≥ 177560 TTICSR= 177560 ;TTY IN CSR
≥
≡XORCR≠≥ 174200 XORCR= 174200
≡XORSR≠≥ 174202 XORSR= 174202
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 22
PRM11 PAL[KL,SYS] Page 12 MACRO DEFINITIONS
≥ ;BIT ASSIGNMENTS
≥
≡BIT00≠≥ 000001 BIT00= 1
≡BIT00≡≡BIT0≠≥ 000001 BIT0= BIT00
≡BIT01≠≥ 000002 BIT01= 2
≡BIT01≡≡BIT1≠≥ 000002 BIT1= BIT01
≡BIT02≠≥ 000004 BIT02= 4
≡BIT02≡≡BIT2≠≥ 000004 BIT2= BIT02
≡BIT03≠≥ 000010 BIT03= 10
≡BIT03≡≡BIT3≠≥ 000010 BIT3= BIT03
≡BIT04≠≥ 000020 BIT04= 20
≡BIT04≡≡BIT4≠≥ 000020 BIT4= BIT04
≡BIT05≠≥ 000040 BIT05= 40
≡BIT05≡≡BIT5≠≥ 000040 BIT5= BIT05
≥
≡BIT06≠≥ 000100 BIT06= 100
≡BIT06≡≡BIT6≠≥ 000100 BIT6= BIT06
≡BIT07≠≥ 000200 BIT07= 200
≡BIT07≡≡BIT7≠≥ 000200 BIT7= BIT07
≡BIT08≠≥ 000400 BIT08= 400
≡BIT08≡≡BIT8≠≥ 000400 BIT8= BIT08
≥
≡BIT09≠≥ 001000 BIT09= 1000
≡BIT09≡≡BIT9≠≥ 001000 BIT9= BIT09
≡BIT10≠≥ 002000 BIT10= 2000
≡BIT11≠≥ 004000 BIT11= 4000
≥
≡BIT12≠≥ 010000 BIT12= 10000
≡BIT13≠≥ 020000 BIT13= 20000
≡BIT14≠≥ 040000 BIT14= 40000
≥
≡BIT15≠≥ 100000 BIT15= 100000
≥
≥ ;PRIORITY ASSIGNMENTS
≥
≡PR0≠≥ 000000 PR0= 000
≡PR1≠≥ 000040 PR1= 040
≡PR2≠≥ 000100 PR2= 100
≡PR3≠≥ 000140 PR3= 140
≡PR4≠≥ 000200 PR4= 200
≡PR5≠≥ 000240 PR5= 240
≡PR6≠≥ 000300 PR6= 300
≡PR7≠≥ 000340 PR7= 340
≥
≠.IIF≡≡SAILVR≡≡PR3≡≡CPUPR≠≥ 000140 .IIF DF SAILVR, CPUPR==PR3 ;CLOCK AND DL11E INTERRUPTS ARE PERMITTED
≠.IIF≡≡SAILVR≡≥ .IIF NDF SAILVR, CPUPR==PR7
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 23
PRM11 PAL[KL,SYS] Page 13 MACRO DEFINITIONS
≥ ;CHARACTERS USED
≥
≡MSWCHR≠≥ 000030 MSWCHR= 030 ; MONITOR TO "KLDCP" SWITCH CHAR, CONTROL X
≡TEXTER≠≥ 000000 TEXTERM=0 ; TERMINATES TEXT
≡TAB≠≥ 000011 TAB= 11 ; TAB
≡CNTRLI≠≥ 000011 CNTRLI= 11 ; CONTROL-I (TAB)
≡LF≠≥ 000012 LF= 12 ; LINE FEED
≡VT≠≥ 000013 VT= 13 ; VERTICAL TAB
≡FF≠≥ 000014 FF= 14 ; FORM FEED
≡CR≠≥ 000015 CR= 15 ; CARRIAGE RETURN
≡BELL≠≥ 000007 BELL= 7 ; BELL
≡BLANK≠≥ 000040 BLANK= 40 ; BLANK (SPACE)
≡SPACE≠≥ 000040 SPACE= 40 ; SPACE
≡COMMA≠≥ 000054 COMMA= 54 ; COMMA
≡SLASH≠≥ 000057 SLASH= 57 ; SLASH
≡BKSLH≠≥ 000134 BKSLH= 134 ; BACK SLASH
≡BKARW≠≥ 000137 BKARW= 137 ; BACK ARROW
≡XOFF≠≥ 000023 XOFF= 023 ; X-OFF (CONTROL S)
≡XON≠≥ 000021 XON= 021 ; X-ON (CONTROL Q)
≡CNTRLO≠≥ 000017 CNTRLO= 017 ; CONTROL O
≡CNTRLU≠≥ 000025 CNTRLU= 025 ; CONTROL U
≡CNTRLA≠≥ 000001 CNTRLA= 001 ; CONTROL A
≡CNTRLC≠≥ 000003 CNTRLC= 003 ; CONTROL C
≡CNTRLD≠≥ 000004 CNTRLD= 004 ; CONTROL D
≡CNTRLK≠≥ 000013 CNTRLK= 013 ; CONTROL K
≡CNTRLL≠≥ 000014 CNTRLL= 14 ; CONTROL L
≡CNTRLR≠≥ 000022 CNTRLR= 022 ; CONTROL R
≡CNTRLT≠≥ 000024 CNTRLT= 024 ; CONTROL T
≡CNTRLX≠≥ 000030 CNTRLX= 030 ; CONTROL X
≡CNTRLZ≠≥ 000032 CNTRLZ= 032 ; CONTROL Z
≡RUBOUT≠≥ 000177 RUBOUT= 177 ; RUB OUT
≡ALTMOD≠≥ 000033 ALTMOD= 33 ; ALTMODE
≡ETB≠≥ 000027 ETB= 27 ; END OF TRANSMISSION BLOCK (CONTROL W)
≠.IF≡≡SAILVR≡≥ .IF NDF SAILVR
≥ NULL= 026 ; NULL FILLER CHAR
≥ .IFF
≡NULL≠≥ 000000 NULL= 000
≥ .ENDC
≡SYN≠≥ 000001 SYN= 001 ; COMMUNICATIONS SYNC CHAR (CONTROL A)
≥
≥ ;.NLIST
≠.IF≡≡DTEASB≡≥ .IF DF DTEASB
≥ ;.LIST
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 24
PRM11 PAL[KL,SYS] Page 14 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥
≡DTEADR≠≥ 174400 DTEADR= 174400 ;ADDRESS OF (FIRST) DTE20 DEVICE REGISTER BLOCK
≡DTESIZ≠≥ 000040 DTESIZ= 000040 ;SPACING BETWEEN CONSECUTIVE DTE20'S
≡DTEMAX≠≥ 000004 DTEMAX= 4 ;MAXIMUM NUMBER OF DTE20'S ON ONE PDP-11
≡DTESZS≠≥ 000005 DTESZS= 5 ;SHIFT TO CONVERT DTE ADDRESS TO DTE #
≥
≠.IF≡≡DTEDEF≡≥ .IF DF DTEDEF
≥ ;OFFSETS FROM THE BASE OF THE DTE20 DEVICE REGISTER BLOCK
≥ ;TO SPECIFIC 10/11 INTERFACE RAM LOCATIONS AND REGISTERS.
≥
≥ ; THE FIRST 12 REGISTERS ARE NOT INITIALIZED BY "INIT" (BECAUSE THEY ARE IN RAMS)
≥
≡DLYCNT≠≥ 000000 DLYCNT= 00 ;DELAY COUNT (ADDRESS XXXX00)
≡DEXWD3≠≥ 000002 DEXWD3= 02 ;DEPOSIT OR EXAMINE WORD 3 (ADDRESS XXXX02)
≡DEXWD2≠≥ 000004 DEXWD2= 04 ;DEPOSIT OR EXAMINE WORD 2 (ADDRESS XXXX04)
≡DEXWD1≠≥ 000006 DEXWD1= 06 ;DEPOSIT OR EXAMINE WORD 1 (ADDRESS XXXX06)
≡TENAD1≠≥ 000010 TENAD1= 10 ;10 ADDRESS WORD 1 FOR DEX (ADDRESS XXXX10)
≡TENAD2≠≥ 000012 TENAD2= 12 ;10 ADDRESS WORD 2 FOR DEX (ADDRESS XXXX12)
≡TO10BC≠≥ 000014 TO10BC= 14 ;TO10 BYTE COUNT (ADDRESS XXXX14)
≡TO11BC≠≥ 000016 TO11BC= 16 ;TO11 BYTE COUNT (ADDRESS XXXX16)
≡TO10AD≠≥ 000020 TO10AD= 20 ;TO10 PDP11 MEMORY ADDRESS (ADDRESS XXXX20)
≡TO11AD≠≥ 000022 TO11AD= 22 ;TO11 PDP11 MEMORY ADDRESS (ADDRESS XXXX22)
≡TO10DT≠≥ 000024 TO10DT= 24 ;TO10 PDP11 DATA WORD (ADDRESS XXXX24)
≡TO11DT≠≥ 000026 TO11DT= 26 ;TO11 PDP11 DATA WORD (ADDRESS XXXX26)
≥
≥ ; THE LAST 4 REGISTERS ARE INITIALIZED BY "INIT" (BECAUSE THEY ARE IN FLIP-FLOPS)
≥
≡DIAG1≠≥ 000030 DIAG1= 30 ;DIAGNOSTIC WORD 1 (ADDRESS XXXX30)
≡DIAG2≠≥ 000032 DIAG2= 32 ;DIAGNOSTIC WORD 2 (ADDRESS XXXX32)
≡STATUS≠≥ 000034 STATUS= 34 ;10/11 INTERFACE STATUS WORD (ADDRESS XXXX34)
≡DIAG3≠≥ 000036 DIAG3= 36 ;DIAGNOSTIC WORD 3 (ADDRESS XXXX36)
≥ .ENDC
≥
≥ ; THE FOLLOWING ARE THE ADDRESSES OF THE DTE20 INTERRUPT VECTORS
≥
≡DTEIV0≠≥ 000774 DTEIV0= 774 ;INTERRUPT VECTOR FOR DTE20 #0
≡DTEIV1≠≥ 000770 DTEIV1= 770 ;INTERRUPT VECTOR FOR DTE20 #1
≡DTEIV2≠≥ 000764 DTEIV2= 764 ;INTERRUPT VECTOR FOR DTE20 #2
≡DTEIV3≠≥ 000760 DTEIV3= 760 ;INTERRUPT VECTOR FOR DTE20 #3
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 25
PRM11 PAL[KL,SYS] Page 15 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ ;BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
≥
≥ ;BIT ASSIGNMENTS FOR TENAD1
≥
≡BIT15≡≡PHYS≠≥ 100000 PHYS= BIT15 ;EXAMINE/DEP PHYSICAL ADDRESS
≡BIT14≡≡BIT13≡≡USEVIR≠≥ 060000 USEVIR= BIT14!BIT13 ;EX/DP USER VIRTUAL ADDRESS
≡BIT14≡≡XUPT≠≥ 040000 XUPT= BIT14 ;EX/DP VIA USER PROCESS TABLE
≡BIT13≡≡EXVIRT≠≥ 020000 EXVIRT= BIT13 ;EX/DP EXEC VIRTUAL ADDRESS
≡BIT12≡≡DEP≠≥ 010000 DEP= BIT12 ;MODE BIT FOR DEPOSIT (0=EXAMINE)
≡BIT11≡≡PRTOFF≠≥ 004000 PRTOFF= BIT11 ;PROTECT OFF
≡XEPT≠≥ 000000 XEPT= 0 ;EX/DP VIA EXEC PROCESS TABLE
≥
≥ ;BIT ASSIGNMENTS FOR TO11BC
≥
≡BIT15≡≡INT10≠≥ 100000 INT10= BIT15 ;SET DONE AND INTERRUPT BOTH 10 AND 11
≡BIT14≡≡ZSTOP≠≥ 040000 ZSTOP= BIT14 ;STOP ON NULL (ZERO) CHARACTER
≡BIT13≡≡BYTE2≠≥ 020000 BYTE2= BIT13 ;TWO EIGHT BIT BYTES PER WORD
≡BIT13≡≡TO11BM≠≥ 020000 TO11BM= BIT13 ;TO-11 BYTE MODE
≥
≥ ;BIT ASSIGNMENTS FOR DIAG1 (WRITE)
≥
≡BIT15≡≡DS00≠≥ 100000 DS00= BIT15 ;DIAGNOSTIC STATUS
≡BIT14≡≡DS01≠≥ 040000 DS01= BIT14 ; "
≡BIT13≡≡DS02≠≥ 020000 DS02= BIT13 ; "
≡BIT12≡≡DS03≠≥ 010000 DS03= BIT12 ; "
≡BIT11≡≡DS04≠≥ 004000 DS04= BIT11 ; "
≡BIT10≡≡DS05≠≥ 002000 DS05= BIT10 ; "
≡BIT9≡≡DS06≠≥ 001000 DS06= BIT9 ; "
≡BIT7≡≡DFUNC≠≥ 000200 DFUNC= BIT7 ;DOING DIAGNOSTIC FUNCTION (DFRD,DFWRT,DFXCT)
≡BIT4≡≡BIT5≡≡PULSE≠≥ 000060 PULSE= BIT4!BIT5 ;SINGLE PULSE THE 10/11 CLOCK (ALSO SETS
≥ ;10/11 DIAGNOSTIC MODE)
≡BIT0≡≡DCOMST≠≥ 000001 DCOMST= BIT0 ;DIAGNOSTIC COMMAND START
≡BIT0≡≡DCSRT≠≥ 000001 DCSRT= BIT0 ;DIAGNOSTIC COMMAND START (NEW NAME FOR DCOMST)
≡BIT2≡≡DSEND≠≥ 000004 DSEND= BIT2 ;SEND THE EBUS DURING DIAGNOSTIC FUNCTION
≡BIT3≡≡DIKL10≠≥ 000010 DIKL10= BIT3 ;KL10 DIAGNOSTIC MODE
≡BIT5≡≡D1011≠≥ 000040 D1011= BIT5 ;10/11 INTERFACE DIAGNOSTIC MODE
≥
≥ ;BIT ASSIGNMENTS FOR DIAG1 (READ)
≥
≡BIT7≡≡TO10≠≥ 000200 TO10= BIT7 ;INTERFACE MAJOR STATE = TO10 TRANSFER
≡BIT8≡≡DEX≠≥ 000400 DEX= BIT8 ; " " " = DEPOSIT OR EXAMINE
≡BIT6≡≡TO11≠≥ 000100 TO11= BIT6 ; " " " = TO11 TRANSFER
≡BIT4≡≡VEC04≠≥ 000020 VEC04= BIT4 ;VECTOR INTERRUPT ADDRESS BIT 4
≡BIT3≡≡VEC03≠≥ 000010 VEC03= BIT3 ; " " " " 3
≡BIT2≡≡VEC02≠≥ 000004 VEC02= BIT2 ; " " " " 2
≡BIT9≡≡HALTLP≠≥ 001000 HALTLP= BIT9 ;EBOX IS IN HALT LOOP
≡BIT10≡≡KLRUN≠≥ 002000 KLRUN= BIT10 ;RUN FLOP, KL IS EXECUTING INSTRUCTIONS
≡BIT11≡≡ERRSTP≠≥ 004000 ERRSTP= BIT11 ;EBOX CLOCK STOPPED DUE TO ERROR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 26
PRM11 PAL[KL,SYS] Page 16 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ ;BIT ASSIGNMENTS FOR DIAG2 (WRITE)
≥
≡BIT14≡≡EDONES≠≥ 040000 EDONES= BIT14 ;SET EBUS DONE
≡BIT6≡≡DRESET≠≥ 000100 DRESET= BIT6 ;PERFORM DIAGNOSTIC CLEAR
≥
≥ ;BIT ASSIGNMENTS FOR DIAG2 (READ)
≥
≥ ;BIT ASSIGNMENTS FOR DIAG3 (WRITE)
≥
≡BIT5≡≡SCD≠≥ 000040 SCD= BIT5 ;SHIFT CAPTURED DATA (PARITY ERROR DATA)
≡BIT4≡≡CDD≠≥ 000020 CDD= BIT4 ;CLEAR DUPE & DURE ERROR FLAGS
≡BIT3≡≡WEP≠≥ 000010 WEP= BIT3 ;WRITE EVEN (BAD) PARITY
≡BIT1≡≡CNUPE≠≥ 000002 CNUPE= BIT1 ;CLEAR NUPE
≡BIT0≡≡TO10BM≠≥ 000001 TO10BM= BIT0 ;TO-10 TRANSFER BYTES FROM THE 11
≥
≥ ;BIT ASSIGNMENTS FOR DIAG3 (READ)
≥
≡BIT15≡≡RFMAD0≠≥ 100000 RFMAD0= BIT15 ;RFM ADDRESS BIT 0
≡BIT14≡≡RFMAD1≠≥ 040000 RFMAD1= BIT14 ; " " " 1
≡BIT13≡≡RFMAD2≠≥ 020000 RFMAD2= BIT13 ; " " " 2
≡BIT12≡≡RFMAD3≠≥ 010000 RFMAD3= BIT12 ; " " " 3
≥
≥ ;BIT ASSIGNMENTS FOR DIAG3 (READ)
≥
≡BIT15≡≡SWSLFT≠≥ 100000 SWSLFT= BIT15 ;SWAP SELECT LEFT
≡BIT14≡≡CAB08≠≥ 040000 CAB08= BIT14 ;CAPTURED UNIBUS ADDRESS BIT 08
≡BIT4≡≡DUPE≠≥ 000020 DUPE= BIT4 ;DATO UNIBUS PARITY ERROR
≡BIT2≡≡DURE≠≥ 000004 DURE= BIT2 ;DATO UNIBUS RECIEVER ERROR
≡BIT1≡≡NUPE≠≥ 000002 NUPE= BIT1 ;NPR UNIBUS PARITY ERROR
≡BIT13≡≡BIT12≡≡BIT11≡≡BIT10≡≡BIT9≡≡UPECD≠≥ 037000 UPECD= BIT13!BIT12!BIT11!BIT10!BIT9 ;UNIBUS PARITY ERR, CAPTURED DATA
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 27
PRM11 PAL[KL,SYS] Page 17 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ ;BIT ASSIGNMENTS FOR STATUS (WRITE)
≥
≡BIT15≡≡DON10S≠≥ 100000 DON10S= BIT15 ;SET TO10 DONE
≡BIT14≡≡DON10C≠≥ 040000 DON10C= BIT14 ;CLEAR TO10 DONE
≡BIT13≡≡ERR10S≠≥ 020000 ERR10S= BIT13 ;SET TO10 ERROR
≡BIT12≡≡ERR10C≠≥ 010000 ERR10C= BIT12 ;CLEAR TO10 ERROR
≡BIT11≡≡INT11S≠≥ 004000 INT11S= BIT11 ;SET 10 REQ INTERRUPT (INTERRUPTS 11)
≡BIT10≡≡INT11C≠≥ 002000 INT11C= BIT10 ;CLEAR 10 REQ INTERRUPT (REMOVES INTERRUPT TO 11)
≡BIT9≡≡PERCLR≠≥ 001000 PERCLR= BIT9 ;CLEAR -11 MEMORY PARITY ERROR
≡BIT8≡≡INT10S≠≥ 000400 INT10S= BIT8 ;SET REQUEST 10 INTERRUPT (INTERRUPTS 10)
≡BIT7≡≡DON11S≠≥ 000200 DON11S= BIT7 ;SET TO11 DONE
≡BIT6≡≡DON11C≠≥ 000100 DON11C= BIT6 ;CLEAR TO11 DONE
≡BIT5≡≡INTRON≠≥ 000040 INTRON= BIT5 ;ENABLE DTE20 TO INTERRUPT THE 11
≡BIT4≡≡EBUSPC≠≥ 000020 EBUSPC= BIT4 ;CLEAR EBUS PARITY ERROR
≡BIT3≡≡INTROF≠≥ 000010 INTROF= BIT3 ;DISABLE THE DTE20 11-INTERRUPTS
≡BIT2≡≡EBUSPS≠≥ 000004 EBUSPS= BIT2 ;SET EBUS PARITY ERROR
≡BIT1≡≡ERR11S≠≥ 000002 ERR11S= BIT1 ;SET TO11 ERROR
≡BIT0≡≡ERR11C≠≥ 000001 ERR11C= BIT0 ;CLEAR TO11 ERROR
≥
≥ ;BIT ASSIGNMENTS FOR STATUS (READ)
≥
≡BIT15≡≡TO10DN≠≥ 100000 TO10DN= BIT15 ;TO10 DONE
≡BIT13≡≡TO10ER≠≥ 020000 TO10ER= BIT13 ;TO 10 ERROR (NPR TIMEOUT OR BUS ERROR)
≡BIT12≡≡RAMIS0≠≥ 010000 RAMIS0= BIT12 ;DATA OUT OF DTE RAM IS ALL 0S (RFM=0)
≡BIT11≡≡TO11DB≠≥ 004000 TO11DB= BIT11 ;10 REQUESTING 11 INTERRUPT (DOORBELL FROM 10)
≡BIT10≡≡DXWRD1≠≥ 002000 DXWRD1= BIT10 ;DEPOSIT OR EXAMINE WORD ONE
≡BIT9≡≡D11MPE≠≥ 001000 D11MPE= BIT9 ;-11 MEMORY PARITY ERROR
≡BIT8≡≡TO10DB≠≥ 000400 TO10DB= BIT8 ;REQUEST 10 INTERRUPT (DOORBELL FROM 11)
≡BIT7≡≡TO11DN≠≥ 000200 TO11DN= BIT7 ;TO11 DONE
≡BIT6≡≡EBSEL≠≥ 000100 EBSEL= BIT6 ;E BUFFER SELECT
≡BIT5≡≡NULSTP≠≥ 000040 NULSTP= BIT5 ;NULL STOP
≡BIT4≡≡BPARER≠≥ 000020 BPARER= BIT4 ;EBUS PARITY ERROR
≡BIT3≡≡RM≠≥ 000010 RM= BIT3 ;THIS DTE20 IN RESTRICTED MODE
≡BIT2≡≡DEXDON≠≥ 000004 DEXDON= BIT2 ;DEPOSIT OR EXAMINE DONE
≡BIT1≡≡TO11ER≠≥ 000002 TO11ER= BIT1 ;TO 11 ERROR (NPR TIMEOUT OR BUS ERROR)
≡BIT0≡≡INTSON≠≥ 000001 INTSON= BIT0 ;INTERRUPTS ON, DTE20 ENABLED TO INTERRUPT 11
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 28
PRM11 PAL[KL,SYS] Page 18 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ ;CLOCK CONTROL FUNCTIONS
≥
≡STPCLK≠≥ 000000 STPCLK= 000 ; STOP CLOCK
≡STRCLK≠≥ 000001 STRCLK= 001 ; START CLOCK
≡SSCLK≠≥ 000002 SSCLK= 002 ; SINGLE STEP THE MBOX CLOCK
≡SECLK≠≥ 000003 SECLK= 003 ; SINGLE STEP EBOX CLOCK
≡CECLK≠≥ 000004 CECLK= 004 ; CONDITIONAL EBOX CLOCK
≡CLRMR≠≥ 000006 CLRMR= 006 ; CLEAR MR RESET
≡SETMR≠≥ 000007 SETMR= 007 ; SET MR RESET
≡BRCLK≠≥ 000005 BRCLK= 005 ; BURST THE CLOCK
≥
≥ ;CLOCK LOAD FUNCTIONS
≥
≡LDBRR≠≥ 000042 LDBRR= 42 ; LOAD BURST REGISTER RIGHT HALF
≡LDBRL≠≥ 000043 LDBRL= 43 ; LOAD BURST REGISTER LEFT HALF
≡LDSEL≠≥ 000044 LDSEL= 44 ; LOAD SOURCE AND RATE SELECTS
≡LDDIS≠≥ 000045 LDDIS= 45 ; LOAD EBOX CLOCK DISTRIBUTION REGISTER
≡LDCHK1≠≥ 000046 LDCHK1= 46 ; LOAD PARITY CHECK REGISTER (ENABLE BAD PARITY STOP)
≡LDCHK2≠≥ 000047 LDCHK2= 47 ; LOAD EBOX INTERNAL CHECK REGISTER
≥
≥ ;DRAM FUNCTIONS
≥
≡LDRAM1≠≥ 000060 LDRAM1= 60 ; LOAD A & B FIELDS EVEN
≡LDRAM2≠≥ 000061 LDRAM2= 61 ; LOAD A & B FIELDS ODD
≡LDRAM3≠≥ 000062 LDRAM3= 62 ; LOAD COMMON J1-J4
≡LDRJEV≠≥ 000063 LDRJEV= 63 ; LOAD PARITY & J8-J10 EVEN
≡LDRJOD≠≥ 000064 LDRJOD= 64 ; LOAD PARITY & J8-J10 ODD
≡DRAMAB≠≥ 000133 DRAMAB= 133 ; READ D-RAM A & B
≡DRJ710≠≥ 000135 DRJ710= 135 ; READ D-RAM J7-J10
≡DRJ1.4≠≥ 000134 DRJ1.4= 134 ; READ D-RAM J1-J4
≥
≥ ;IR DRAM CONTROL
≥
≡DISIOJ≠≥ 000065 DISIOJ= 65 ; DISABLE 7XX & JRST=254
≡DISACF≠≥ 000066 DISACF= 66 ; DISABLE THE IR AC'C
≡ENIOJA≠≥ 000067 ENIOJA= 67 ; ENABLE 7XX, JRST=254 & IR AC'S
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 29
PRM11 PAL[KL,SYS] Page 19 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ ;CRAM FUNCTIONS
≥
≡LCRAM1≠≥ 000057 LCRAM1= 57 ; LOAD C-RAM DATA
≡LCRAM2≠≥ 000056 LCRAM2= 56
≡LCRAM3≠≥ 000055 LCRAM3= 55
≡LCRAM4≠≥ 000054 LCRAM4= 54
≡LCRAM5≠≥ 000053 LCRAM5= 53
≡LCRDAL≠≥ 000052 LCRDAL= 52 ; LOAD CRAM ADDRESS LEFT (00-04)
≡LCRDAR≠≥ 000051 LCRDAR= 51 ; LOAD CRAM ADDRESS RIGHT (05-10)
≡RCRAM1≠≥ 000147 RCRAM1= 147 ; READ C-RAM DATA
≡RCRAM2≠≥ 000146 RCRAM2= 146
≡RCRAM3≠≥ 000145 RCRAM3= 145
≡RCRAM4≠≥ 000144 RCRAM4= 144
≡RCSPEC≠≥ 000141 RCSPEC= 141 ; READ C-RAM SPEC
≥
≥ ;MISC CONTROL FUNCTIONS
≥
≡IRLOAD≠≥ 000014 IRLOAD= 14 ; LOAD THE IR FROM AD
≡DRLTCH≠≥ 000015 DRLTCH= 15 ; LOAD D-RAM LATCHES
≡CLRRUN≠≥ 000010 CLRRUN= 10 ; CLEAR RUN FLIP-FLOP
≡SETRUN≠≥ 000011 SETRUN= 11 ; SET RUN FLIP-FLOP
≡CONBUT≠≥ 000012 CONBUT= 12 ; THE CONTINUE BUTTON
≡LDAR≠≥ 000077 LDAR= 77 ; LOAD THE AR
≥
≥ ;MBOX CONTROL FUNCTIONS
≥
≡LDMBXA≠≥ 000071 LDMBXA= 71 ; LOAD MEMORY TO CACHE SELECTOR
≡LDCHAN≠≥ 000070 LDCHAN= 70 ; LOAD CHANNEL DIAGNOSTIC CONDITIONS
≥
≥ ;PI CONTROL FUNCTIONS
≥
≡READ0≠≥ 000100 READ0= 100 ; PI (READ STATUS 0)
≡READ1≠≥ 000101 READ1= 101 ; PI (READ STATUS 1)
≡READ2≠≥ 000102 READ2= 102 ; PI (READ STATUS 2)
≡READ3≠≥ 000103 READ3= 103 ; PI (READ STATUS 3)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 30
PRM11 PAL[KL,SYS] Page 20 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥ ;DATA PATH CONTROL FUNCTIONS
≥
≡DPAR≠≥ 000120 DPAR =120 ; AR
≡DPBR≠≥ 000121 DPBR =121 ; BR
≡DPMQ≠≥ 000122 DPMQ =122 ; MQ
≡DPFM≠≥ 000123 DPFM =123 ; FM
≡DPFMA≠≥ 000114 DPFMA =114 ; FM ADR
≡DPBRX≠≥ 000124 DPBRX =124 ; BRX
≡DPARX≠≥ 000125 DPARX =125 ; ARX
≡DPADX≠≥ 000126 DPADX =126 ; ADX
≡DPAD≠≥ 000127 DPAD =127 ; AD
≡DPPC≠≥ 000153 DPPC =153 ; PC
≡DPVMA≠≥ 000157 DPVMA =157 ; VMA
≡DPVMHD≠≥ 000157 DPVMHD =157 ; VMA HELD
≡DPADB≠≥ 000153 DPADB =153 ; ADDRESS BREAK
≡DPERG≠≥ 000167 DPERG =167 ; E-BUS REGISTER
≡DPFE≠≥ 000132 DPFE =132 ; FE 05-09
≡DPFE1≠≥ 000133 DPFE1 =133 ; FE 00-04
≡DPSC≠≥ 000130 DPSC =130 ; SC 05-09
≡DPSC1≠≥ 000131 DPSC1 =131 ; SC 00-04
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 31
PRM11 PAL[KL,SYS] Page 21 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ .SBTTL KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥
≥ ;MACRO TO TURN 36 BIT WORDS INTO 5 UPSIDE DOWN BYTES
≥
≠.MACRO≡≤WD36≠≥ .MACRO WD36 A,B,C
≥ .NLIST SRC
≥ .BYTE <377&C>,<<<C&7400>/400>!<<B&17>*20>>,<<B&7760>/20>
≥ .BYTE <A&377>,<<A&7400>/400>
≥ .LIST SRC
≥ .ENDM
≥
≥ ;PDP10 CPU INSTRUCTION MACRO. TAKES 5 ARGUMENTS AS IN NORMAL
≥ ;10 CODE. 5 FIELDS MUST BE PRESENT (4 FIELD SEPARATORS)
≥ ;BUT THE AD,AC,I, AND XR FIELDS MAY BE LEFT BLANK AND IF SO,
≥ ;WILL ASSEMBLE AS ZERO. THE OP FIELD MUST NOT BE LEFT BLANK.
≥
≠.MACRO≡≤I10≠≥ .MACRO I10 OP,CAC,CI,CAD,CXR
≥ ADH=0
≥ ADL=0
≥ .IF NB CAD
≥ .IRPC AD1,CAD
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≥ .ENDC
≥ .IIF B CAC,AC=0
≥ .IIF NB CAC,AC=CAC
≥ .IIF B CI,I=0
≥ .IIF NB CI,I=CI
≥ .IIF B CXR,XR=0
≥ .IIF NB CXR,XR=CXR
≥ .NLIST SRC
≥ .BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<AC&1*200+<I*100+<XR*4>>+<ADH/2>>
≥ .BYTE <OP&37*10+<AC/2>>,<OP/40>
≥ .LIST SRC
≥ .ENDM I10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 32
PRM11 PAL[KL,SYS] Page 22 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ;MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
≥ ;FOR A 22-BIT ARGUMENT
≥
≠.MACRO≡≤WD22≠≥ .MACRO WD22 AD
≥ ADH=0
≥ ADL=0
≥ .IRPC AD1,AD
≥ .IIF GE <ADL-10000>,ADH=<10*ADH>+<ADL/10000>
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≥ .NLIST SRC
≥ .BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<ADH/2>
≥ .LIST SRC
≥ .ENDM WD22
≥
≥ ;PDP10 I/O INSTRUCTION MACRO. TAKES 5 ARGUMENT AS NOTED ABOVE
≥ ;IN THE DESCRIPTION OF THE I10 MACRO. THE 8 I/O OP CODES ARE
≥ ;DEFINED AS ARE DEVICE CODES APR, PI, PAG, AND CCA.
≥
≠.MACRO≡≤IO10≠≥ .MACRO IO10 OP,DV,CI,AD,CXR
≥ .IIF B CI,I=0
≥ .IIF NB CI,I=CI
≥ .IIF B CXR,XR=0
≥ .IIF NB CXR,XR=CXR
≥ BLKO=2
≥ DATAO=3
≥ BLKI=0
≥ DATAI=1
≥ CONO=4
≥ CONI=5
≥ CONSZ=6
≥ CONSO=7
≥ APR=0
≥ PI=4
≥ PAG=10
≥ CCA=14
≥ ADH=0
≥ ADL=0
≥ .IRPC AD1,AD
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≥ .NLIST SRC
≥ .BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<OP&1*200+<I*100+<XR*4>>+<ADH/2>>
≥ .BYTE <DV&374+<OP/2>>,<DV/400+16>
≥ .LIST SRC
≥ .ENDM IO10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 33
PRM11 PAL[KL,SYS] Page 23 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ;THIS IS A MACRO TO WAIT FOR A DONE FLAG
≥
≠.MACRO≡≤WFZERO≠≥ .MACRO WFZERO BITSEL
≥ MOV #2500.,-(SP) ;SET TIMEOUT CNT
≥ 91$: BIT #BITSEL,@.DIAG1 ;TEST BIT
≥ BEQ 92$ ;LEAVE IF BIT ZERO(OK)
≥ DEC (SP) ;DECREMENT CNT
≥ BNE 91$ ;CONTINUE LOOP
≥ TST RPTFLG ;OTHERWISE TIME OUT
≥ BNE 92$
≥ JSR R1,$DFTIM
≥ 92$: TST (SP)+ ;RESET STACK & CONTINUE
≥ .ENDM
≥
≥
≥ ;THIS MACRO IS A WAIT FOR FLAG MACRO.
≥ ;IT WAITS FOR A TEST BIT TO GO TO ONE
≥ ;FROM A ZERO
≥
≠.MACRO≡≤WFONE≠≥ .MACRO WFONE BITSEL
≥ MOV #2500.,-(SP) ;SET TIMEOUT CNT
≥ 93$: BIT #BITSEL,@.STDTE ;TEST BIT
≥ BNE 94$ ;LEAVE IF NOW A ONE(OK)
≥ DEC (SP) ;DECREMENT CNT
≥ BNE 93$ ;CONTINUE LOOP
≥ TST RPTFLG ;OTHERWISE TIME OUT
≥ BNE 94$
≥ JSR R1,$DFTIM
≥ 94$: TST (SP)+ ;RESET STACK
≥ .ENDM
≥
≥ ;.NLIST
≥ .ENDC ; DTEASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡DTEBBD≡≥ .IF DF DTEBBD
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 34
PRM11 PAL[KL,SYS] Page 24 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ .SBTTL *BBD* DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 2-JAN-75
≥
≥ DTEADR= 164000 ;ADDRESS OF (FIRST) DTE20 DEVICE REGISTER BLOCK
≥ DTESIZ= 000040 ;SPACING BETWEEN CONSECUTIVE DTE20'S
≥ DTEMAX= 4 ;MAXIMUM NUMBER OF DTE20'S ON ONE PDP-11
≥ DTESZS= 5 ;SHIFT TO CONVERT DTE ADDRESS TO DTE #
≥
≥ .IF DF DTEDEF
≥ ;OFFSETS FROM THE BASE OF THE DTE20 DEVICE REGISTER BLOCK
≥ ;TO SPECIFIC 10/11 INTERFACE RAM LOCATIONS AND REGISTERS.
≥
≥ ; THE FIRST 12 REGISTERS ARE NOT INITIALIZED BY "INIT" (BECAUSE THEY ARE IN RAMS)
≥
≥ DLYCNT= 00 ;DELAY COUNT (ADDRESS XXXX00)
≥ DEXWD1= 02 ;DEPOSIT OR EXAMINE WORD 1 (ADDRESS XXXX02)
≥ DEXWD2= 04 ;DEPOSIT OR EXAMINE WORD 2 (ADDRESS XXXX04)
≥ DEXWD3= 06 ;DEPOSIT OR EXAMINE WORD 3 (ADDRESS XXXX06)
≥ TENAD1= 10 ;10 ADDRESS WORD 1 FOR DEX (ADDRESS XXXX10)
≥ TENAD2= 12 ;10 ADDRESS WORD 2 FOR DEX (ADDRESS XXXX12)
≥ TO10BC= 14 ;TO10 BYTE COUNT (ADDRESS XXXX14)
≥ TO11BC= 16 ;TO11 BYTE COUNT (ADDRESS XXXX16)
≥ TO10AD= 20 ;TO10 PDP11 MEMORY ADDRESS (ADDRESS XXXX20)
≥ TO11AD= 22 ;TO11 PDP11 MEMORY ADDRESS (ADDRESS XXXX22)
≥ TO10DT= 24 ;TO10 PDP11 DATA WORD (ADDRESS XXXX24)
≥ TO11DT= 26 ;TO11 PDP11 DATA WORD (ADDRESS XXXX26)
≥
≥ ; THE LAST 4 REGISTERS ARE INITIALIZED BY "INIT" (BECAUSE THEY ARE IN FLIP-FLOPS)
≥
≥ DIAG1= 30 ;DIAGNOSTIC WORD 1 (ADDRESS XXXX30)
≥ DIAG2= 32 ;DIAGNOSTIC WORD 2 (ADDRESS XXXX32)
≥ STATUS= 34 ;10/11 INTERFACE STATUS WORD (ADDRESS XXXX34)
≥ DIAG3= 36 ;DIAGNOSTIC WORD 3 (ADDRESS XXXX36)
≥ .ENDC
≥
≥ ; THE FOLLOWING ARE THE ADDRESSES OF THE DTE20 INTERRUPT VECTORS
≥
≥ DTEIV0= 170 ;INTERRUPT VECTOR FOR DTE20 #0
≥ DTEIV1= 174 ;INTERRUPT VECTOR FOR DTE20 #1
≥ DTEIV2= 270 ;INTERRUPT VECTOR FOR DTE20 #2
≥ DTEIV3= 274 ;INTERRUPT VECTOR FOR DTE20 #3
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 35
PRM11 PAL[KL,SYS] Page 25 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ; THE FOLLOWING MACRO (DTEVEC) DYNAMICLY COMPUTES THE INTERRUPT
≥ ; VECTOR ADDRESS ASSOCIATED WITH A PARTICULAR DTE20.
≥ ; THE FIRST ARGUMENT (DTEDRB) IS A REGISTER OR MEMORY LOCATION
≥ ; WHICH CONTAINS THE BASE ADDRESS OF THE DEVICE REGISTER BLOCK
≥ ; FOR A PARTICULAR DTE20.
≥ ; THE SECOND ARGUMENT (DTEIVB) IS A REGISTER OR MEMORY LOCATION
≥ ; INTO WHICH THIS MACRO WILL STORE THE BASE ADDRESS OF THE INTERRUPT
≥ ; VECTOR ASSOCIATED WITH THE SAME DTE20.
≥
≥ .MACRO DTEVEC DTEDRB,DTEIVB,?LABEL
≥ MOVB DTEDRB,DTEIVB
≥ .NTYPE DTE$T0,DTEIVB
≥ .IF NE DTE$T0&70 ;IS "DTEIVB" A REGISTER?
≥ .IFT
≥ CLRB DTEIVB+1
≥ .ENDC
≥ ADD #DTEIV0,DTEIVB ;THIS MACRO DEPENDS ON THE BIT
≥ BIT #DTESIZ,DTEIVB ;PATTERNS IN THE DEVICE REGISTER
≥ BNE LABEL ;ADDRESSES AND INTERRUPT VECTOR
≥ SUB #DTESIZ+DTEIV0-DTEIV1,DTEIVB ;ADDRESSES.
≥ LABEL:
≥ .ENDM DTEVEC
≥
≥ ;BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
≥
≥ ;BIT ASSIGNMENTS FOR TENAD1
≥
≥ DEP=BIT15 ;MODE BIT FOR DEPOSIT (0=EXAMINE)
≥ F1=BIT7 ;HIGH ORDER BIT OF FAST AC BLOCK
≥ F2=BIT6 ;LOW " " " " " "
≥
≥ ;BIT ASSIGNMENTS FOR TO10BC
≥
≥ INT11=BIT15 ;SET DONE AND INTERRUPT BOTH 10 AND 11
≥
≥ ;BIT ASSIGNMENTS FOR TO11BC
≥
≥ INT10=BIT15 ;SET DONE AND INTERRUPT BOTH 10 AND 11
≥ ZSTOP=BIT14 ;STOP ON NULL (ZERO) CHARACTER
≥
≥ ;BIT ASSIGNMENTS FOR TO10AD AND TO11AD
≥
≥ BYTE2=BIT0 ;TWO EIGHT-BIT BYTES PER WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 36
PRM11 PAL[KL,SYS] Page 26 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ;BIT ASSIGNMENTS FOR DIAG1 (WRITE)
≥
≥ DPULSE=BIT7 ;PULSE THE KL10 CLOCK
≥ PULSE=BIT4!BIT0 ;SINGLE PULSE THE 10/11 CLOCK (ALSO SETS
≥ ;10/11 DIAGNOSTIC MODE)
≥ DBUSEN=BIT3 ;DIAGNOSTIC BUS ENABLE
≥ DCSRT=BIT3 ;DIAGNOSTIC COMMAND START (NEW NAME FOR DBUSEN)
≥ DSEND=BIT2 ;SEND THE EBUS DURING DIAGNOSTIC FUNCTION
≥ DIKL10=BIT1 ;KL10 DIAGNOSTIC MODE
≥ D1011=BIT0 ;10/11 INTERFACE DIAGNOSTIC MODE
≥
≥ ;BIT ASSIGNMENTS FOR DIAG1 (READ)
≥
≥ TO10=BIT7 ;INTERFACE MAJOR STATE = TO10 TRANSFER
≥ DEX=BIT6 ; " " " = DEPOSIT OR EXAMINE
≥ TO11=BIT5 ; " " " = TO11 TRANSFER
≥ VEC04=BIT4 ;VECTOR INTERRUPT ADDRESS BIT 4
≥ VEC03=BIT3 ; " " " " 3
≥ VEC02=BIT2 ; " " " " 2
≥
≥ ;BIT ASSIGNMENTS FOR DIAG2 (WRITE)
≥
≥ EDONES=BIT14 ;SET EBUS DONE
≥ STHOLD=BIT7 ;STAY IN CURRENT MAJOR STATE
≥ CLEAR=BIT6 ;PERFORM DIAGNOSTIC CLEAR
≥
≥ ;BIT ASSIGNMENTS FOR DIAG2 (READ)
≥
≥ ;BIT ASSIGNMENTS FOR DIAG3 (READ)
≥
≥ RAMIS0=BIT7 ;RFM=0 (ALL ZEROES COMING OUT OF RAM)
≥ RFMAD0=BIT1 ;RFM ADDRESS BIT 0
≥ RFMAD1=BIT8 ; " " " 1
≥ RFMAD2=BIT9 ; " " " 2
≥ RFMAD3=BIT10 ; " " " 3
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 37
PRM11 PAL[KL,SYS] Page 27 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ;BIT ASSIGNMENTS FOR STATUS (WRITE)
≥
≥ DON10S=BIT15 ;SET TO10 DONE
≥ DON10C=BIT14 ;CLEAR TO10 DONE
≥ ERR10S=BIT13 ;SET TO10 ERROR
≥ ERR10C=BIT12 ;CLEAR TO10 ERROR
≥ INT11S=BIT11 ;SET 10 REQ INTERRUPT (INTERRUPTS 11)
≥ INT11C=BIT10 ;CLEAR 10 REQ INTERRUPT (REMOVES INTERRUPT TO 11)
≥ PERCLR=BIT9 ;CLEAR -11 MEMORY PARITY ERROR
≥ INT10S=BIT8 ;SET REQUEST 10 INTERRUPT (INTERRUPTS 10)
≥ DON11S=BIT7 ;SET TO11 DONE
≥ DON11C=BIT6 ;CLEAR TO11 DONE
≥ ERR11S=BIT1 ;SET TO11 ERROR
≥ ERR11C=BIT0 ;CLEAR TO11 ERROR
≥
≥ ;BIT ASSIGNMENTS FOR STATUS (READ)
≥
≥ TO10DN=BIT15 ;TO10 DONE
≥ PI10OF=BIT14 ;THIS DTE20 IS NOT TRYING TO INTERRUPT THE -10
≥ TO10ER=BIT13 ;TO 10 ERROR (NPR TIMEOUT OR BUS ERROR)
≥ INTR11=BIT12 ;11 INTERRUPT PENDING
≥ DOOR10=BIT11 ;10 REQUESTING 11 INTERRUPT (DOORBELL FROM 10)
≥ DXWRD1=BIT10 ;DEPOSIT OR EXAMINE WORD ONE
≥ PARERR=BIT9 ;-11 MEMORY PARITY ERROR
≥ DOOR11=BIT8 ;REQUEST 10 INTERRUPT (DOORBELL FROM 11)
≥ TO11DN=BIT7 ;TO11 DONE
≥ EBSEL=BIT6 ;E BUFFER SELECT
≥ NULSTP=BIT5 ;NULL STOP
≥ DEAD10=BIT4 ;KL10 STOPPED
≥ DBUSON=BIT3 ;DIAGNOSTIC BUS ENABLED
≥ DEXDON=BIT2 ;DEPOSIT OR EXAMINE DONE
≥ TO11ER=BIT1 ;TO 11 ERROR (NPR TIMEOUT OR BUS ERROR)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 38
PRM11 PAL[KL,SYS] Page 28 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ; FUNCTION SELECT CODES
≥
≥ STPCLK =010 ; STOP CLOCK
≥ STRCLK =011 ; START CLOCK
≥ SSCLK =014 ; SINGLE STEP THE CLOCK
≥ CLRMR =016 ; CLEAR MR RESET
≥ SETMR =017 ; SET MR RESET
≥ BRCLK =015 ; BURST THE CLOCK
≥ LDCLK =012 ; LOAD CLOCK BURST COUNTER & RATE
≥ CLKCND =101 ; READ CLOCK CONDITION
≥
≥ LDRAM1 =030 ; LOAD D-RAM DATA
≥ LDRAM2 =031
≥ LDRAM3 =032
≥ RDRAMA =131 ; READ D-RAM ADDRESS
≥ RDRAM1 =132 ; READ D-RAM DATA
≥ RDRAM2 =133
≥ DRAMAB =132 ; D-RAM A & B
≥ DRAMJ =133 ; D-RAM J
≥
≥ LCRAM1 =040 ; LOAD C-RAM DATA
≥ LCRAM2 =041
≥ LCRAM3 =042
≥ LCRAM4 =043
≥ LCRAM5 =044
≥ LCRAMA =047 ; LOAD C-RAM ADDRESS
≥ RCRAM1 =140 ; READ C-RAM DATA AND ADDRESS
≥ RCRAM2 =141 ; READ C-RAM DATA
≥ RCRAM3 =142
≥ RCRAM4 =143
≥
≥ RELCTR =000 ; RELINQUISH CONTROL OF THE TRANSLATOR
≥ DIAGRD =001 ; SET TRANSLATOR IN 10 TO 11 DIRECTION
≥ DIAGLD =002 ; SET TRANSLATOR IN 11 TO 10 DIRECTION
≥ IRLOAD =003 ; ENABLE LOADING OF THE AR & IR REGISTERS
≥ DRLTCH =005 ; LOAD D-RAM LATCHES
≥ CLRRUN =007 ; CLEAR RUN FLIP-FLOP
≥ SETRUN =006 ; SET RUN FLIP-FLOP
≥ CONBUT =004 ; THE CONTINUE BUTTON
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 39
PRM11 PAL[KL,SYS] Page 29 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ READ0 =110 ; PI (READ STATUS 0)
≥ READ1 =111 ; PI (READ STATUS 1)
≥ READ2 =112 ; PI (READ STATUS 2)
≥ READ3 =113 ; PI (READ STATUS 3)
≥
≥ DPAR =120 ; AR (DATA PATH)
≥ DPBR =121 ; BR
≥ DPMQ =122 ; MQ
≥ DPFM =123 ; FM
≥ DPBRX =124 ; BRX
≥ DPARX =125 ; ARX
≥ DPADX =126 ; ADX
≥ DPAD =127 ; AD
≥ DPFE =133 ; FE
≥ DPSC =131 ; SC
≥ DPERG =157 ; E-BUS REGISTER
≥
≥ RDPCH =130 ; READ PC 18-26
≥ RDPCL =131 ; READ PC 27-35
≥ RDVMAH =132 ; READ VMA 18-26
≥ RDVMAL =133 ; READ VMA 27-35
≥
≥ MCHLTLP =42 ; U CODE HALT LOOP ADDRESS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 40
PRM11 PAL[KL,SYS] Page 30 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ .SBTTL *BBD* KL10 EBOX MACRO DEFINITIONS, 4-MAR-75
≥
≥ ;MACRO TO TURN 36 BIT WORDS INTO 5 UPSIDE DOWN BYTES
≥
≥ .MACRO WD36 A,B,C
≥ .NLIST SRC
≥ .BYTE <377&C>,<<<C&7400>/400>!<<B&17>*20>>,<<B&7760>/20>
≥ .BYTE <A&377>,<<A&7400>/400>
≥ .LIST SRC
≥ .ENDM
≥
≥ ;PDP10 CPU INSTRUCTION MACRO. TAKES 5 ARGUMENTS AS IN NORMAL
≥ ;10 CODE. 5 FIELDS MUST BE PRESENT (4 FIELD SEPARATORS)
≥ ;BUT THE AD,AC,I, AND XR FIELDS MAY BE LEFT BLANK AND IF SO,
≥ ;WILL ASSEMBLE AS ZERO. THE OP FIELD MUST NOT BE LEFT BLANK.
≥
≥ .MACRO I10 OP,CAC,CI,CAD,CXR
≥ ADH=0
≥ ADL=0
≥ .IF NB CAD
≥ .IRPC AD1,CAD
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≥ .ENDC
≥ .IIF B CAC,AC=0
≥ .IIF NB CAC,AC=CAC
≥ .IIF B CI,I=0
≥ .IIF NB CI,I=CI
≥ .IIF B CXR,XR=0
≥ .IIF NB CXR,XR=CXR
≥ .NLIST SRC
≥ .BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<AC&1*200+<I*100+<XR*4>>+<ADH/2>>
≥ .BYTE <OP&37*10+<AC/2>>,<OP/40>
≥ .LIST SRC
≥ .ENDM I10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 41
PRM11 PAL[KL,SYS] Page 31 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ;MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
≥ ;FOR A 22-BIT ARGUMENT
≥
≥ .MACRO WD22 AD
≥ ADH=0
≥ ADL=0
≥ .IRPC AD1,AD
≥ .IIF GE <ADL-10000>,ADH=<10*ADH>+<ADL/10000>
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≥ .NLIST SRC
≥ .BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<ADH/2>
≥ .LIST SRC
≥ .ENDM WD22
≥
≥ ;PDP10 I/O INSTRUCTION MACRO. TAKES 5 ARGUMENT AS NOTED ABOVE
≥ ;IN THE DESCRIPTION OF THE I10 MACRO. THE 8 I/O OP CODES ARE
≥ ;DEFINED AS ARE DEVICE CODES APR, PI, PAG, AND CCA.
≥
≥ .MACRO IO10 OP,DV,CI,AD,CXR
≥ .IIF B CI,I=0
≥ .IIF NB CI,I=CI
≥ .IIF B CXR,XR=0
≥ .IIF NB CXR,XR=CXR
≥ BLKO=2
≥ DATAO=3
≥ BLKI=0
≥ DATAI=1
≥ CONO=4
≥ CONI=5
≥ CONSZ=6
≥ CONSO=7
≥ APR=0
≥ PI=4
≥ PAG=10
≥ CCA=14
≥ ADH=0
≥ ADL=0
≥ .IRPC AD1,AD
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≥ .NLIST SRC
≥ .BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<OP&1*200+<I*100+<XR*4>>+<ADH/2>>
≥ .BYTE <DV&374+<OP/2>>,<DV/400+16>
≥ .LIST SRC
≥ .ENDM IO10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 42
PRM11 PAL[KL,SYS] Page 32 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ ;THIS IS A MACRO TO WAIT FOR A DONE FLAG
≥
≥ .MACRO WFZERO BITSEL
≥ MOV #2500.,-(SP) ;SET TIMEOUT CNT
≥ 91$: BIT #BITSEL,@.DIAG1 ;TEST BIT
≥ BEQ 92$ ;LEAVE IF BIT ZERO(OK)
≥ DEC (SP) ;DECREMENT CNT
≥ BNE 91$ ;CONTINUE LOOP
≥ TST RPTFLG ;OTHERWISE TIME OUT
≥ BNE 92$
≥ JSR R1,$DFTIM
≥ 92$: TST (SP)+ ;RESET STACK & CONTINUE
≥ .ENDM
≥
≥
≥ ;THIS MACRO IS A WAIT FOR FLAG MACRO.
≥ ;IT WAITS FOR A TEST BIT TO GO TO ONE
≥ ;FROM A ZERO
≥
≥ .MACRO WFONE BITSEL
≥ MOV #2500.,-(SP) ;SET TIMEOUT CNT
≥ 93$: BIT #BITSEL,@.STDTE ;TEST BIT
≥ BNE 94$ ;LEAVE IF NOW A ONE(OK)
≥ DEC (SP) ;DECREMENT CNT
≥ BNE 93$ ;CONTINUE LOOP
≥ TST RPTFLG ;OTHERWISE TIME OUT
≥ BNE 94$
≥ JSR R1,$DFTIM
≥ 94$: TST (SP)+ ;RESET STACK
≥ .ENDM
≥
≥ ;.NLIST
≥ .ENDC ; DTEBBD
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡DVASB≡≥ .IF DF DVASB
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 43
PRM11 PAL[KL,SYS] Page 33 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
≥ .SBTTL DEVICE SYMBOL DEFINITIONS, 4-JUNE-75
≥
≥ ; PRIORITY LEVELS FOR SERVICE ROUTINES.
≥
≥ TPILEV= PR6 ; TERMINAL PRIORITY LEVEL
≥ NXMPIL= PR7 ; "NON-X-MEM" PRIORITY LEVEL
≥ DHRPS= TPILEV ; DH11 RECEIVER PRIORITY
≥ DHTPS= DHRPS ; DH11 TRANSMITTER
≥ DLRPS= DHRPS ; DL11
≥ DLTPS= DLRPS
≥ KWLPS= DHRPS ; KW11 PRIORITY LEVEL
≥ NXMPS= NXMPIL ; "NON-X-MEM" PRIORITY LEVEL
≥
≥ ; BIT DEFINITIONS FOR THE PARAMETER WORD.
≥
≥ PDHDNS= 11 ; DH11 DEVICE NUMBER SHIFT
≥ PDHDNM= 7000 ; DH11 DEVICE NUMBER MASK
≥ PDHLNS= 4 ; DH11 LINE NUMBER SHIFT
≥ PDHLNM= 360 ; DH11 LINE NUMBER MASK
≥ PDHLSS= 0 ; DH11 LINE SPEED SHIFT
≥ PDHLSM= 17 ; DH11 LINE SPEED MASK
≥ PDLFCS= PDHLNS ; DL11 FILLER CLASS SHIFT
≥ PDLFCM= PDHLNS ; DL11 FILLER CLASS MASK
≥
≥ ; OTHER DEVICES.
≥
≥ DP11BA= 174770 ; DP11 DEVICE REGISTERS BASE ADDRESS
≥ DP11RS= 10 ; DP11 DEVICE REGISTER SIZE
≥ DP⊃1VS= 10 ; DP11 INTERRUPT VECTOR SIZE
≥ DM11BA= 170500 ; DM11 DEVICE REGISTER BASE ADDRESS
≥ DM11RS= 10 ; DM11 DEVICE REGISTER SIZE
≥ DM11VS= 4 ; DM11 INTERRUPT VECTOR SIZE
≥ DR11BA= 167770 ; DR11 DEVICE REGISTER BASE ADDRESS
≥ DR11RS= 10 ; DR11 DEVICE REGISTER SIZE
≥ DR11VS= 10 ; DR11 INTERRUPT VECTOR SIZE
≥
≥ ;.NLIST
≥ .ENDC ;DVASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡KWASB≡≥ .IF DF KWASB
≥ ;.LIST
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 44
PRM11 PAL[KL,SYS] Page 34 KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥
≡KWLIV≠≥ 000100 KWLIV= 100 ; VECTOR ADDRESS
≥
≡KWLKS≠≥ 177546 KWLKS= 177546 ; LINE CLOCK STATUS DEVICE ADDRESS
≥
≡KWLKE≠≥ 000100 KWLKE= 100 ; LINE CLOCK INTERRUPT ENABLE BIT
≥
≠.SBTTL≡≥ .SBTTL MM11 DEVICE REGISTERS AND BIT ASSIGNMENTS, 4-JUNE-75
≥
≡MMLPIV≠≥ 000114 MMLPIV= 114 ;VECTOR ADDRESS
≥
≡MMLPBA≠≥ 172100 MMLPBA= 172100 ;1ST MM11-LP DEVICE ADDRESS
≡MMLPEA≠≥ 172136 MMLPEA= 172136 ;LAST MM11-LP DEVICE ADDRESS
≥
≡BIT15≡≡MMERRF≠≥ 100000 MMERRF= BIT15 ;ERROR FLAG
≥
≡MMADDM≠≥ 007740 MMADDM= 7740 ;ADDRESS MASK
≡MMADDS≠≥ 000005 MMADDS= 5 ;ADDRESS SHIFT
≥
≡BIT2≡≡MMWWP≠≥ 000004 MMWWP= BIT2 ;WRITE WRONG PARITY
≡BIT0≡≡MMPIE≠≥ 000001 MMPIE= BIT0 ;PARITY INTERRUPT ENABLE
≥
≥ ;.NLIST
≥ .ENDC ;KWASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡DLASB≡≥ .IF DF DLASB
≥ ;.LIST
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 45
PRM11 PAL[KL,SYS] Page 35 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥
≡DLRIV≠≥ 000060 DLRIV= 60 ; RECEIVER VECTOR ADDRESS
≡DLRIV≡≡DLTIV≠≥ 000064 DLTIV= DLRIV+4 ; TRANSMITTER VECTOR ADDRESS
≡DLBA≠≥ 177560 DLBA= 177560 ; BASE FOR DEVICE ADDRESSES
≡DLRCSR≠≥ 000000 DLRCSR= 0 ; RECEIVER STATUS REGISTER
≡DLRBUF≠≥ 000002 DLRBUF= 2 ; RECEIVER BUFFER REGISTER
≡DLXCSR≠≥ 000004 DLXCSR= 4 ; TRANSMITTER STATUS REGISTER
≡DLXBUF≠≥ 000006 DLXBUF= 6 ; TRANSMITTER BUFFER REGISTER
≥
≥ ; BIT DEFINITIONS FOR "DLRCSR"- RECEIVER CONTROL STATUS REGISTER.
≥
≡BIT15≡≡DLDSC≠≥ 100000 DLDSC= BIT15 ; DATA STATUS CHANGE
≡BIT14≡≡DLRI≠≥ 040000 DLRI= BIT14 ; RING INDICATOR
≡BIT13≡≡DLCTS≠≥ 020000 DLCTS= BIT13 ; CLEAR TO SEND
≡BIT12≡≡DLCD≠≥ 010000 DLCD= BIT12 ; CARRIER DETECT
≡BIT11≡≡DLRA≠≥ 004000 DLRA= BIT11 ; RECEIVER ACTIVE
≡BIT10≡≡DLSRD≠≥ 002000 DLSRD= BIT10 ; SECONDARY RECEIVED DATA
≡BIT7≡≡DLRD≠≥ 000200 DLRD= BIT7 ; RECEIVER DONE
≡BIT6≡≡DLRIE≠≥ 000100 DLRIE= BIT6 ; RECEIVER INTERRUPT ENABLE
≡BIT5≡≡DLDIE≠≥ 000040 DLDIE= BIT5 ; DATA SET INTERRUPT ENABLE
≡BIT3≡≡DLSTD≠≥ 000010 DLSTD= BIT3 ; SECONDARY TRANSMITTED DATA
≡BIT2≡≡DLRTS≠≥ 000004 DLRTS= BIT2 ; REQUEST TO SEND
≡BIT1≡≡DLDTR≠≥ 000002 DLDTR= BIT1 ; DATA TERMINAL READY
≡BIT0≡≡DLRE≠≥ 000001 DLRE= BIT0 ; READER ENABLE
≥
≥ ; BIT DEFINITIONS FOR "DLRBUF"- RECEIVER BUFFER.
≥
≡BIT15≡≡DLERR≠≥ 100000 DLERR= BIT15 ; ERROR
≡BIT14≡≡DLORE≠≥ 040000 DLORE= BIT14 ; OVERRUN ERROR
≡BIT13≡≡DLFE≠≥ 020000 DLFE= BIT13 ; FRAMING ERROR
≡BIT12≡≡DLRDPE≠≥ 010000 DLRDPE= BIT12 ; RECEIVED DATA PARITY ERROR
≡DLRDS≠≥ 000000 DLRDS= 0 ; RECEIVED DATA SHIFT
≡DLRDM≠≥ 000377 DLRDM= 377 ; RECEIVED DATA MASK
≥
≥ ; BIT DEFINITIONS FOR "DLXCSR"- TRANSMITTER CONTROL STATUS REGISTER.
≥
≡BIT7≡≡DLTR≠≥ 000200 DLTR= BIT7 ; TRANSMITTER READY
≡BIT6≡≡DLTIE≠≥ 000100 DLTIE= BIT6 ; TRANSMITTER INTERRUPT ENABLE
≡BIT2≡≡DLMAIN≠≥ 000004 DLMAIN= BIT2 ; MAINTENANCE
≡BIT0≡≡DLBRK≠≥ 000001 DLBRK= BIT0 ; BREAK
≥
≥ ; BIT DEFINITIONS FOR "DLXBUF"- TRANSMITTER BUFFER.
≥
≡DLTDS≠≥ 000000 DLTDS= 0 ; TRANSMITTER DATA SHIFT
≡DLTDM≠≥ 000377 DLTDM= 377 ; TRANSMITTER DATA MASK
≥
≥ ;.NLIST
≥ .ENDC ;DLASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 46
PRM11 PAL[KL,SYS] Page 35.1 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡DHASB≡≥ .IF DF DHASB
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 47
PRM11 PAL[KL,SYS] Page 36 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL DH11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥
≥ DHIVBA= 300 ; INTERRUPT VECTOR BASE ADDRESS
≥ DHRIV= 0 ; RECEIVER VECTOR ADDRESS
≥ DHTIV= DHRIV+4 ; TRANSMITTER VECTOR ADDRESS
≥ DHBA= 160020 ; BASE FOR DEVICE ADDRESSES
≥ DHSCR= 0 ; SYSTEM CONTROL REGISTER
≥ DHNRCR= 2 ; NEXT RECEIVER CHARACTER REGISTER
≥ DHLPR= 4 ; LINE PARAMETER REGISTER
≥ DHCAR= 6 ; CURRENT ADDRESS REGISTER
≥ DHBCR= 10 ; BYTE COUNT REGISTER
≥ DHBAR= 12 ; TRANSMIT BUFFER ACTIVE REGISTER
≥ DHTBR= 14 ; TRANSMIT BREAK REGISTER
≥ DHSSR= 16 ; SILO STATUS REGISTER
≥
≥ ; BIT DEFINITIONS FOR "DHSCR"- STATUS CONTROL REGISTER.
≥
≥ DHTI= BIT15 ; TRANSMITTER INTERRUPT
≥ DHSI= BIT14 ; STORAGE INTERRUPT
≥ DHTNIE= BIT13 ; TRANSMITTER AND NON-X-MEM INTERRUPT ENABLE
≥ DHSIE= BIT12 ; STORAGE INTERRUPT ENABLE
≥ DHMC= BIT11 ; MASTER CLEAR
≥ DHNXM= BIT10 ; NON-X-MEM
≥ DHMAIN= BIT9 ; MAINTENANCE
≥ DHCNXM= BIT8 ; CLEAR NON-X-MEM BIT
≥ DHRI= BIT7 ; RECEIVER INTERRUPT
≥ DHRIE= BIT6 ; RECEIVER INTERRUPT ENABLE
≥ DHMES= 4 ; MEMORY EXTENSION SHIFT
≥ DHMEM= 60 ; MEMORY EXTENSION MASK
≥ DHLSS= 0 ; LINE SELECTION SHIFT
≥ DHLSM= 17 ; LINE SELECTION MASK
≥
≥ ; BIT DEFINITIONS FOR "DHNRCR"- NEXT RECEIVER CHARACTER REGISTER.
≥
≥ DHDP= BIT15 ; DATA PRESENT
≥ DHORE= BIT14 ; OVERRUN ERROR
≥ DHFE= BIT13 ; FRAMING ERROR
≥ DHRDPE= BIT12 ; RECEIVER DATA PARITY ERROR
≥ DHRLNS= 10 ; RECEIVER LINE NUMBER SHIFT
≥ DHRLNM= 7400 ; RECEIVER LINE NUMBER MASK
≥ DHRDS= 0 ; RECEIVER DATA SHIFT
≥ DHRDM= 377 ; RECEIVER DATA MASK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 48
PRM11 PAL[KL,SYS] Page 37 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ ; BIT DEFINITIONS FOR "DHLPR"- LINE PARAMETER REGISTER.
≥
≥ DHAEE= BIT15 ; AUTO-ECHO ENABLE
≥ DHHD= BIT14 ; HALF-DUPLEX
≥ DHTSS= 12 ; TRANSMITTER SPEED SHIFT
≥ DHTSM= 36000 ; TRANSMITTER SPEED MASK
≥ DHRSS= 6 ; RECEIVER SPEED SHIFT
≥ DHRSM= 1700 ; RECEIVER SPEED MASK
≥ DHEP= BIT5 ; EVEN PARITY
≥ DHPE= BIT4 ; PARITY ENABLE
≥ DHTSB= BIT2 ; TWO STOP BITS
≥ DHCLS= 0 ; CHARACTER LENGTH SHIFT
≥ DHCLM= 3 ; CHARACTER LENGTH MASK
≥ DHCL5= 0 ; CHARACTER LENGTH - 5 BITS
≥ DHCL6= 1 ; CHARACTER LENGTH - 6 BITS
≥ DHCL7= 2 ; CHARACTER LENGTH - 7 BITS
≥ DHCL8= 3 ; CHARACTER LENGTH - 8 BITS
≥
≥ ; BIT DEFINITIONS FOR "DHSSR"- SILO STATUS REGISTER.
≥
≥ DHSFLS= 10 ; SILO FILL LEVEL SHIFT
≥ DHSFLM= 37400 ; SILO FILL LEVEL MASK
≥ DHREMS= 6 ; READ EXTENDED MEMORY SHIFT
≥ DHREMM= 300 ; READ EXTENDED MEMORY MASK
≥ DHSALS= 0 ; SILO ALARM LEVEL SHIFT
≥ DHSALM= 77 ; SILO ALARM LEVEL MASK
≥
≥ ;.NLIST
≥ .ENDC ;DHASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡TAASB≡≥ .IF DF TAASB
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 49
PRM11 PAL[KL,SYS] Page 38 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL TA11 (CASSETTE) DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥
≥ TACS= 177500 ;CONTROL AND STATUS REGISTER
≥ TADB= TACS+2 ;DATA BUFFER REGISTER
≥
≥ TAIV= 260 ;INTERRUPT VECTOR
≥
≥ ; BIT ASSIGNMENTS WITHIN THE CONTROL AND STATUS REGISTER
≥
≥ TAGO= 1 ;GO = START OPERATION
≥ TAFUNC= 16 ;"FUNCTION TO BE PERFORMED" FIELD
≥ TAWFG= 0*2 ;"WRITE FILE GAP" FUNCTION
≥ TAWRIT= 1*2 ;"WRITE DATA" FUNCTION
≥ TAREAD= 2*2 ;"READ DATA" FUNCTION
≥ TASRF= 3*2 ;"SPACE REVERSE FILE" FUNCTION
≥ TASRB= 4*2 ;"SPACE REVERSE BLOCK (RECORD)" FUNCTION
≥ TASFF= 5*2 ;"SPACE FORWARD FILE" FUNCTION
≥ TASFB= 6*2 ;"SPACE REVERSE BLOCK (RECORD)" FUNCTION
≥ TAREWD= 7*2 ;"REWIND" FUNCTION
≥ TAILBS= 20 ;INITIATE LAST BYTE SEQUENCE
≥ TAREDY= 40 ;READY
≥ TAINTE= 100 ;INTERRUPT ENABLE
≥ TARQST= 200 ;TRANSFER REQUEST
≥ TAUNIT= 400 ;UNIT SELECTION
≥ TAOFFL= 1000 ;UNIT OFF LINE
≥ TATERR= 2000 ;TIMING ERROR (LOST DATA)
≥ TAFGAP= 4000 ;FILE GAP
≥ TALOCK= 10000 ;WRITE LOCKED
≥ TALEAD= 20000 ;CLEAR LEADER
≥ TABCHK= 40000 ;BLOCK CHECK (BAD CRC AFTER READ)
≥ TAEROR= 100000 ;ERROR (ERROR SUMMARY BIT)
≥
≥ ;.NLIST
≥ .ENDC ;TAASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡RXASB≡≥ .IF DF RXASB
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 50
PRM11 PAL[KL,SYS] Page 39 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL RX11/RX01 (FLOPPY) REGISTERS AND BIT DEFINITIONS, 22-JULY-75
≥
≥ ;RX11 STANDARD DEVICE ADDRESSES
≥
≥ RXCS= 177170 ;COMMAND STATUS REGISTER
≥ RXDB= 177172 ;DATA BUFFER REGISTER
≥ RXSA= 177172 ;SECTOR ADDRESS REGISTER
≥ RXTA= 177172 ;TRACK ADDRESS REGISTER
≥ RXES= 177172 ;ERROR STATUS REGISTER
≥
≥ RXIV= 264 ;INTERRUPT VECTOR ADDRESS
≥
≥ ;RX11 FUNCTION CODES
≥
≥ RXFBUF= 0 ;FILL BUFFER
≥ RXEBUF= 2 ;EMPTY BUFFER
≥ RXWSEC= 4 ;WRITE SECTOR
≥ RXRSEC= 6 ;READ SECTOR
≥ RXRSTAT=12 ;READ STATUS
≥ RXWDDS= 14 ;WRITE DELETED DATA SECTOR
≥ RXRERR= 16 ;READ ERROR REGISTER
≥
≥ ;RX11 COMMAND AND STATUS REGISTER BIT DEFINITIONS
≥
≥ RXGO= 1 ;GO
≥ RXU1= 20 ;RX01 UNIT # 1
≥ RXDONE= 40 ;DONE
≥ RXIE= 100 ;INTERRUPT ENABLE
≥ RXTREQ= 200 ;TRANSFER REQUEST
≥ RXINI= 40000 ;INITIALIZE
≥ RXERROR=100000 ;ERROR
≥
≥ ;RX11 ERROR STATUS REGISTER BIT DEFINITIONS
≥
≥ RXCRCE= 1 ;CRC ERROR
≥ RXPARE= 2 ;PARITY ERROR
≥ RXIDONE=4 ;INITIALIZE DONE
≥ RXDDD= 100 ;DELETED DATA DETECTED
≥ RXDRDY =200 ;DRIVE READY
≥
≥ ;.NLIST
≥ .ENDC ;RXASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡TCASB≡≥ .IF DF TCASB
≥ ;.LIST
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 51
PRM11 PAL[KL,SYS] Page 40 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥
≥ ;DECTAPE PARAMETERS
≥
≡BIT12≡≡TCILO≠≥ 010000 TCILO= BIT12 ;ILLEGAL OPERATION
≡BIT11≡≡TCSELE≠≥ 004000 TCSELE= BIT11 ;SELECTION ERROR
≡BIT6≡≡TCIE≠≥ 000100 TCIE= BIT6 ;INTERRUPT ENABLE
≡BIT0≡≡TCDO≠≥ 000001 TCDO= BIT0 ;DO OPERATION
≡BIT2≡≡TCRDAT≠≥ 000004 TCRDATA=BIT2 ;READ DATA
≡BIT3≡≡BIT2≡≡TCWDAT≠≥ 000014 TCWDATA=BIT3+BIT2 ;WRITE DATA
≡BIT1≡≡TCRNUM≠≥ 000002 TCRNUM= BIT1 ;READ BLOCK NUMBER
≡BIT11≡≡TCREV≠≥ 004000 TCREV= BIT11 ;REVERSE DIRECTION
≡BIT14≡≡TCPAR≠≥ 040000 TCPAR= BIT14 ;PARITY ERROR
≡BIT10≡≡TCBLKM≠≥ 002000 TCBLKM= BIT10 ;BLOCK MISSED
≡BIT9≡≡TCDATM≠≥ 001000 TCDATM= BIT9 ;DATA MISSED
≡BIT13≡≡TCMTE≠≥ 020000 TCMTE= BIT13 ;MARK TRACK ERROR
≡BIT15≡≡TCERR≠≥ 100000 TCERR= BIT15 ;DECTAPE ERROR
≡BIT7≡≡TCRDY≠≥ 000200 TCRDY= BIT7 ;READY
≥
≡TCPAR≡≡TCBLKM≡≡TCDATM≡≡TCMTE≡≡TCSOFT≠≥ 063000 TCSOFT= TCPAR+TCBLKM+TCDATM+TCMTE
≥
≡TCST≠≥ 177340 TCST= 177340 ;STATUS REGISTER
≡TCCM≠≥ 177342 TCCM= 177342 ;COMMAND REGISTER
≡TCCM1≠≥ 177343 TCCM1= 177343 ;COMMAND UPPER BYTE
≡TCWC≠≥ 177344 TCWC= 177344 ;WORD COUNT REGISTER
≡TCBA≠≥ 177346 TCBA= 177346 ;BUS MEMORY ADDRESS
≡TCDT≠≥ 177350 TCDT= 177350 ;DATA REGISTER
≥
≥ ;.NLIST
≥ .ENDC ;TCASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 52
PRM11 PAL[KL,SYS] Page 41 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL RH11/RP04 REGISTER AND BIT DEFINITIONS, 4-JUNE-75
≥
≥ BLKSIZ= 256. ;DISK BLOCK SIZE (IN 16-BIT WORDS)
≥ IFESIZ= 3 ;INDEX FILE ENTRY SIZE (IN 16-BIT WORDS)
≥ FDESIZ= 16. ;FILE DIRECTORY ENTRY SIZE (IN 16-BIT WORDS)
≥
≥ RPCS1= 0 ;OFFSET TO RH11/RP04 CONTROL & STATUS REGISTER 1
≥ RPTRE= BIT14 ;"TRANSFER ERROR" BIT IN RPCS1
≥ RPMCPE= BIT13 ;"MASSBUS CONTROL BUS PARITY ERROR" BIT IN RPCS1
≥ RPDVA= BIT11 ;"DRIVE AVAILABLE" BIT IN RPCS1
≥ RPRDY= BIT7 ;"CONTROLLER READY" BIT IN RPCS1
≥ RPPRST= 21 ;READ-IN PRESET FUNCTION IN RPCS1
≥ RPPACK= 23 ;PACK ACKNOWLEDGE (SET VV) FUNCTION IN RPCS1
≥ RPWTFN= 61 ;WRITE DATA FUNCTION IN RPCS1
≥ RPRDFN= 71 ;READ DATA FUNCTION IN RPCS1
≥
≥ RPWC= 2 ;OFFSET TO RH11/RP04 WORD COUNT REGISTER
≥
≥ RPBA= 4 ;OFFSET TO RH11/RP04 UNIBUS ADDRESS REGISTER
≥
≥ RPDA= 6 ;OFFSET TO RH11/RP04 TRACK & SECTOR ADDRESS REGISTER
≥
≥ RPCS2= 10 ;OFFSET TO RH11/RP04 CONTROL & STATUS REGISTER 2
≥ RPCLR= BIT5 ;"CONTROLLER (AND MASSBUS) CLEAR" BIT IN RPCS2
≥
≥ RPDS= 12 ;OFFSET TO RH11/RP04 DRIVE STATUS REGISTER
≥ RPATA= BIT15 ;"ATTENTION ACTIVE" BIT IN RPDS
≥ RPERR= BIT14 ;"COMPOSITE ERROR" BIT IN RPDS
≥ RPMOL= BIT12 ;"MEDIUM ON-LINE" BIT IN RPDS
≥ RPDPR= BIT8 ;"DRIVE PRESENT" BIT IN RPDS
≥ RPDRY= BIT7 ;"DRIVE READY" BIT IN RPDS
≥ RPVV= BIT6 ;"VOLUME VALID" BIT IN RPDS
≥
≥ RPOF= 32 ;OFFSET TO RH11/RP04 OFFSET REGISTER (CONTAINING FMT22)
≥ RPFMT= BIT12 ;"FMT22" (16-BIT WORDS) BIT IN RPOF
≥ RPECI= BIT11 ;"ERROR CORRECTION CODE INHIBIT" BIT IN RPOF
≥
≥ RPDC= 34 ;OFFSET TO RH11/RP04 DESIRED CYLINDER REGISTER
≥
≥ ;.NLIST
≥ .ENDC ;RPASB
≥ ;.LIST
≥ ;.NLIST
≠.IF≡≡LPASB≡≥ .IF DF LPASB
≥ ;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 53
PRM11 PAL[KL,SYS] Page 42 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥ .SBTTL LP20 REGISTER AND BIT DEFINITIONS, 27-JUNE-75
≥
≥ LP20A= 177440 ;LP20 1ST CONTROLLER ADDRESS
≥ LP20B= 177460 ;LP20 2ND CONTROLLER ADDRESS
≥ LPAVEC= 210 ;LP20A INTERRUPT VECTOR
≥ LPBVEC= 200 ;LP20B INTERRUPT VECTOR
≥
≥ LPCSRA= 0 ;OFFSET TO LP20 PRIMARY STATUS REGISTER
≥ LPERR= BIT15 ;"ERROR" BIT IN LPCSRA
≥ LPPZRO= BIT14 ;"PAGZRO" BIT IN LPCSRA
≥ LPUCHR= BIT13 ;"UNDCHR" BIT IN LPCSRA
≥ LPVRDY= BIT12 ;"UNDCHR" BIT IN LPCSRA
≥ LPONLN= BIT11 ;"ONLINE" BIT IN LPCSRA
≥ LPDELH= BIT10 ;"DELHLD" BIT IN LPCSRA
≥ LPLINI= BIT9 ;"LOINIT" BIT IN LPCSRA
≥ LPRERR= BIT8 ;"RSTERR" BIT IN LPCSRA
≥ LPDONE= BIT7 ;"DONE" BIT IN LPCSRA
≥ LPIENB= BIT6 ;"INTENB" BIT IN LPCSRA
≥ LPBA17= BIT5 ;"BUSA17" BIT IN LPCSRA
≥ LPBA16= BIT4 ;"BUSA16" BIT IN LPCSRA
≥ LPVLOD= BIT3 ;"VFULOD" BIT IN LPCSRA
≥ LPTMOD= BIT2 ;"TSTMOD" BIT IN LPCSRA
≥ LPPENB= BIT1 ;"PARENB" BIT IN LPCSRA
≥ LPGO= BIT0 ;"GO" BIT IN LPCSRA
≥
≥ LPCSRB= 2 ;OFFSET TO LP20 ERROR AND TEST REGISTER
≥ LPTPBT= BIT12 ;"LPTPBT" BIT IN LPCSRB
≥ LPT02= BIT10 ;"TEST02" BIT IN LPCSRB
≥ LPT01= BIT9 ;"TEST01" BIT IN LPCSRB
≥ LPT00= BIT8 ;"TEST00" BIT IN LPCSRB
≥ LPOFFL= BIT7 ;"OFFLIN" BIT IN LPCSRB
≥ LPVERR= BIT6 ;"VFUERR" BIT IN LPCSRB
≥ LPTPAR= BIT5 ;"LPTPAR" BIT IN LPCSRB
≥ LPMPAR= BIT4 ;"MEMPAR" BIT IN LPCSRB
≥ LPRPAR= BIT3 ;"RAMPAR" BIT IN LPCSRB
≥ LPSYNT= BIT2 ;"SYNTIM" BIT IN LPCSRB
≥ LPDEMT= BIT1 ;"DEMTIM" BIT IN LPCSRB
≥ LPGOER= BIT0 ;"GOERR" BIT IN LPCSRB
≥
≥ LPBSAD= 4 ;OFFSET TO LP20 DMA BUS ADDRESS REGISTER
≥
≥ LPBCTR= 6 ;OFFSET TO LP20 DMA BYTE COUNTER REGISTER
≥
≥ LPPCTR= 10 ;OFFSET TO LP20 PAGE COUNTER REGISTER
≥
≥ LPRAMD= 12 ;OFFSET TO LP20 RAM DATA REGISTER
≥
≥ LPCBUF= 14 ;OFFSET TO LP20 CHAR BUFFER REGISTER (BYTE)
≥ LPCCTR= 15 ;OFFSET TO LP20 COLUMN COUNTER REGISTER (BYTE)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 54
PRM11 PAL[KL,SYS] Page 42.1 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
≥
≥ LPCKSM= 16 ;OFFSET TO LP20 CHECKSUM REGISTER (BYTE)
≥ LPPDAT= 17 ;OFFSET TO LP20 PRINTER DATA REGISTER (BYTE)
≥ ;.NLIST
≥ .ENDC ;LPASB
≥ ;.LIST
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 55
PRM11 PAL[KL,SYS] Page 43 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
≥ .SBTTL EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
≥
≡ENOWC≠≥ 160020 ENOWC=160020 ; ETHERNET DEVICE OUTPUT WORD COUNT REG
≡ENOWC≡≡ENOWA≠≥ 160022 ENOWA=ENOWC+2 ; ETHERNET DEVICE OUTPUT WORD ADDR REG
≡ENOWC≡≡ENOCSR≠≥ 160024 ENOCSR=ENOWC+4 ; ETHERNET DEVICE OUTPUT CONTROL STATUS REG
≡ENOWC≡≡ENODLY≠≥ 160026 ENODLY=ENOWC+6 ; ETHERNET DEVICE OUTPUT DELAY REG
≥ ;
≡ENOWC≡≡ENIWC≠≥ 160030 ENIWC=ENOWC+10 ; ETHERNET DEVICE INPUT WORD COUNT REG
≡ENOWC≡≡ENIWA≠≥ 160032 ENIWA=ENOWC+12 ; ETHERNET DEVICE INPUT WORD ADDRESS REG
≡ENOWC≡≡ENICSR≠≥ 160034 ENICSR=ENOWC+14 ; ETHERNET DEVICE INPUT CONTROL STATUS REG
≡ENOWC≡≡ENIADR≠≥ 160036 ENIADR=ENOWC+16 ; ETHERNET DEVICE HARDWARE ADDRESS REGISTER
≥ ;
≡EN0BSZ≠≥ 000454 EN0BSZ=300. ; MAXIMUM SIZE OF ETHERNET INPUT BUFFER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 56
PRM11 PAL[KL,SYS] Page 44 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
≥ ;DSKDMP BOOTSTRAP PARAMETERS
≥
≡BOOTWD≠≥ 000620 BOOTWD==400.
≡BOOTWD≡≡BOOTSZ≠≥ 002260 BOOTSZ==BOOTWD*3 ;NUMBER OF PDP-11 WORDS THAT BOOT OCCUPIES
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 57
KLDCP PAL[KL,SYS] Page 5.1 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
≥
≥ ;Starting vectors & other constant code
≠.INSRT≡≥ .INSRT BEG11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 58
BEG11 PAL[KL,SYS] Page 1 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
≥ COMMENT ⊗ VALID 00002 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00002 00002 .SBTTL *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥ C00005 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 59
BEG11 PAL[KL,SYS] Page 2 *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥ .SBTTL *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥
≡PRGSRT≡≥ 100000 .=PRGSRT
≥ ;STARTING ADDRESS
≥
≠JMP≡≡$SBRIN≡≥ 100000 000137 114570 START: JMP @#$SBRINT ;NORMAL START (near maximum violence)
≠JMP≡≡$$CNTL≡≥ 100004 000137 100602 $CNTLC: JMP @#$$CNTLC ;CTRL/C (a normal, not too violent restart)
≠JMP≡≡$$ILOA≡≥ 100010 000137 114522 $ILOAD: JMP $$ILOAD ;INITIAL LOAD (redo checksum, then $SBRINT)
≠JMP≡≡$$CONS≡≥ 100014 000137 100332 $CONSL: JMP $$CONSL ;RETURN TO CONSOLE (pussycat)
≥
≥ ;DEVICE ADDRESS PARAMETERS
≥
≥ 100020 177560 $TKS: 177560 ;TTY KBD STATUS
≥ 100022 177562 $TKB: 177562 ;TTY KBD BUFFER
≥ 100024 177564 $TPS: 177564 ;TTY PRINTER STATUS
≥ 100026 177566 $TPB: 177566 ;TTY PRINTER BUFFER
≥
≠.IF≡≡LPASB≡≥ .IF DF LPASB
≥ $LPS: 177514 ;LP11 - LINE PRINTER STATUS
≥ $LPB: 177516 ;LP11 - LINE PRINTER BUFFER
≥ .ENDC
≥
≠.IF≡≡TELASB≡≥ .IF DF TELASB
≥ 100030 175610 $FSTKS: 175610 ;FIELD SERVICE KLINIK INPUT STATUS
≥ 100032 175612 $FSTKB: 175612 ;FIELD SERVICE KLINIK INPUT BUFFER
≥ 100034 175614 $FSTPS: 175614 ;FIELD SERVICE KLINIK OUTPUT STATUS
≥ 100036 175616 $FSTPB: 175616 ;FIELD SERVICE KLINIK OUTPUT BUFFER
≥ 100040 000300 $FSTRV: 300 ;FIELD SERVICE TELETYPE RECEIVE VECTOR
≥ 100042 000304 $FSTTV: 304 ;FIELD SERVICE TELETYPE TRANSMIT VECTOR
≥ .ENDC
≥
≠.IF≡≡CLKASB≡≥ .IF DF CLKASB
≥ 100044 160770 $CLKMD: 160770 ;MONTH/DAY
≥ 100046 160772 $CLKHM: 160772 ;HOURS/MINUTES
≥ 100050 160774 $CLKSEC:160774 ;YEAR/SECONDS
≥ 100052 160776 $CLKST: 160776 ;STATUS
≥ 100054 000170 $CLKTV: 170 ;TRAP VECTOR
≥ .ENDC
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ $CMTKS: 175620 ;COMM INPUT STATUS
≥ $CMTKB: 175622 ;COMM INPUT BUFFER
≥ $CMTPS: 175624 ;COMM OUTPUT STATUS
≥ $CMTPB: 175626 ;COMM OUTPUT BUFFER
≥ .ENDC
≥
≠.LIF≡≡RPASB≡≥ .LIF DF RPASB
≥ RPRH11: 176700 ;RH11 CONTROLLER ADDRESS
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 60
BEG11 PAL[KL,SYS] Page 2.1 *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥ ;PDP-10 KL10 PARAMETERS
≥
≥ 100056 777777 TENMO: -1 ;PDP-10 MINUS ONE
≥ 100060 777777 -1
≥ 100062 000017 17
≥
≡$STD≡≡$STD≡≥ 100064 000440 TDIAG: $STD ;DIAGNOSTIC START ADDRESS
≥ 100066 000000 0
≥
≡$DDT≡≡$DDT≡≥ 100070 000441 TDDT: $DDT ;DDT START ADDRESS
≥ 100072 000000 0
≥
≡$STL≡≡$STL≡≥ 100074 000442 TLDR: $STL ;LOADER START ADDRESS
≥ 100076 000000 0
≥
≡$STM≡≡$STM≡≥ 100100 000443 TMON: $STM ;MONITOR START ADDRESS
≥ 100102 000000 0
≥
≥ 100104 060650 EMTIMO: 25000. ;EM/DM TIMEOUT COUNT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 61
KLDCP PAL[KL,SYS] Page 5.2 *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥
≥ ;console code
≠.INSRT≡≥ .INSRT CONS11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 62
CONS11 PAL[KL,SYS] Page 1 *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥ COMMENT ⊗ VALID 00061 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00006 00002 .SBTTL CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥ C00008 00003 $KONSL: TTIBRK GET BREAK CHAR FROM LAST OPERATION
≥ C00010 00004 $$CONSL:CLR RPTFLG Start here from 100014
≥ C00013 00005 3$: MOVB #40,$KDCEN+1 MAKE SINGLE LETTER COMMAND
≥ C00015 00006 .SBTTL CONSOLE DISPATCH TABLE
≥ C00023 00007 DISPATCH TABLE
≥ C00028 00008 .SBTTL DIAGNOSIC CONSOLE UTILITY COMMAND PROCESS
≥ C00030 00009 .SBTTL CONSOLE COMMAND REPEAT CONTROL
≥ C00031 00010 .SBTTL PROGRAM CONSOLE COMMAND PROCESS
≥ C00033 00011 PROGRAM INDIRECT CCL FILE PROCESS
≥ C00035 00012 .SBTTL DIAGNOSTIC FUNCTIONS
≥ C00037 00013 DIAGNOSTIC READ AND PRINT
≥ C00038 00014 .DFDP: DFLEGAL FUNCTION LEGAL ?
≥ C00039 00015 .AR: TTICHR
≥ C00040 00016 .BR: TTICHR
≥ C00042 00017 .PC: TTICHR
≥ C00043 00018 .VM: DFLEGAL FUNCTION LEGAL ?
≥ C00044 00019 PCF COMMAND - PRINT PC FLAGS
≥ C00047 00020 .FE: TTITRM
≥ C00048 00021 PRINT PRIORITY INTERRUPT FUNCTIONS
≥ C00050 00022 PRINT ALL - C-RAM & REGISTERS
≥ C00052 00023 .SBTTL PDP-10 START/STOP FUNCTIONS
≥ C00054 00024 START PDP-10 DDT
≥ C00057 00025 PULSE THE E-BOX CLOCK
≥ C00059 00026 EXECUTE A PDP10 INSTRUCTION.
≥ C00060 00027 PNTCPU PRINT C-RAM & REGISTERS
≥ C00062 00028 SELECT CLOCK SOURCE
≥ C00063 00029 PROCESSOR PARITY DISABLE
≥ C00064 00030 PROCESSOR PARITY ENABLE
≥ C00066 00031 MICRO-CODE SYNC MARK ROUTINES
≥ C00067 00032 MICRO-CODE TIME FIELD CHANGE ROUTINE
≥ C00068 00033 CACHE ENABLE
≥ C00070 00034 AC BLOCK SELECTION
≥ C00073 00035 START PDP10 AT ADDRESS SPECIFIED AS LOWER 18 BITS OF 36-BIT ARGUMENT.
≥ C00077 00036 .SBTTL PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥ C00079 00037 MEMORY ZERO
≥ C00081 00038 .EXM: MOV #.DPXAD,R5
≥ C00083 00039 .SBTTL CONSOLE IDLE RUN LOOP
≥ C00086 00040 MONITOR TELETYPE CHARACTER INPUT -- MTTYIN MTTYI0 MTTYI1 C10DN1 MTTYER MTTYOC MTTYO MTTYP MTTYX MTTYC MTTYCF $MC
≥ MTTYS C10DN2
≥ C00089 00041 .SBTTL PDP-10 RUN TIME SUPPORT TENCMD CMD10T C10DON
≥ C00091 00042 C10DNX, TENCERR
≥ C00093 00043 C10TO, C10TI
≥ C00095 00044 Switch functions. C10SW
≥ C00098 00045 C10PRG C10PT C10P2 C10P1 C10X1 C10P3 C10P4 C10P5 C10KAS KASET
≥ C00100 00046 Clock operations. C10CLK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 63
CONS11 PAL[KL,SYS] Page 1.1 *BEGIN* PROGRAM CONTROL, 4-AUG-75
≥ C00110 00047 PDP-10 SWITCH REGISTER
≥ C00112 00048 .SBTTL PDP-10 PROGRAM COMMAND
≥ C00114 00049 "DIAMON" FILE READ
≥ C00116 00050 .SBTTL PDP-11 CONSOLE FUNCTIONS
≥ C00117 00051 EXAMINE ELEVEN AT ADDRESS GIVEN
≥ C00120 00052 DEPOSIT ELEVEN DATA
≥ C00121 00053 .SBTTL KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ C00123 00054 .IF DF MONASB
≥ C00125 00055 SRT11X: MOV PGOADR,SEADR
≥ C00127 00056 .IF DF MONASB
≥ C00129 00057 ADRERR: PMSG <?ADR>
≥ C00130 00058 .SBTTL LINE PRINTER SELECTION ROUTINE
≥ C00134 00059 .SBTTL CONSOLE TELETYPE FUNCTIONS
≥ C00135 00060 .SBTTL KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
≥ C00137 00061 .SBTTL FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ C00144 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 64
CONS11 PAL[KL,SYS] Page 2 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥ .SBTTL CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥
≠MOV≡≡CPUPR≡≡PS≡≥ 100106 012737 000140 177776 CONSL: MOV #CPUPR,PS ;SET CPU PRIORITY.
≠MOV≡≡STACK≡≡SP≡≥ 100114 012706 157776 MOV #STACK,SP ;RESET STACK
≠MOV≡≡$STUF≡≡R0≡≥ 100120 012700 122754 MOV #$STUF,R0 ;SETUP FOR STACK UNDERFLOW
≠MOV≡≡R0≡≡SP≡≥ 100124 010016 MOV R0,(SP)
≤PUSH≡≥ 1$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≥
≠MOV≡≡SP≡≡$KONSP≡≥ 100130 010637 147736 MOV SP,$KONSP
≥
≠MOV≡≡$KONSP≡≡SP≡≥ 100134 013706 147736 KONSL: MOV $KONSP,SP ;RESET STACK POINTER
≥
≠.IIF≡≡EPTREL≡≠MOV≡≡PHYS≡≡PRTOFF≡≡$TADSP≡≥ 100140 012737 104000 147424 .IIF NE EPTREL, MOV #PHYS!PRTOFF,$TADSP ;DEFAULT ADDR MODE FOR EXDEP
≥
≡TTPINI≡≡TTPINI≡≥ 100146 104217 TTPINI ;INIT TTY POINTERS
≥
≠CLR≡≡DDTFLG≡≥ 100150 005037 147740 CLR DDTFLG
≠CLR≡≡IFILEF≡≥ 100154 005037 147624 CLR IFILEF
≠CLR≡≡HLPPNT≡≥ 100160 005037 150722 CLR HLPPNT
≠CLR≡≡PCMDFL≡≥ 100164 005037 152214 CLR PCMDFLG
≡PFORCE≡≡PFORCE≡≥ 100170 104043 PFORCE ;ALL OUTPUT TO TTY
≥
≠JSR≡≡PC≡≡$CKSUM≡≥ 100172 004737 115174 JSR PC,$CKSUM ;COMPUTE CHECKSUM OF "KLDCP"
≥
≠CMP≡≡R0≡≡$ILDSU≡≥ 100176 020037 157314 CMP R0,$ILDSUM ;DOES IT MATCH AS LOADED ?
≠BEQ≡≥ 100202 001404 BEQ 2$ ;YES, OK !!!!
≥
≠MOV≡≡R0≡≡$ILDSU≡≥ 100204 010037 157314 MOV R0,$ILDSUM ;NO, ONLY REPORT CHANGES
≤PMSG≡≥ PMSG <?"KLDCP" CKSUM\>
≡$PMSG≡≡$PMSG≡≥ 100210 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 100212 144720 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≠TST≡≡JFILEF≡≥ 100214 005737 147620 2$: TST JFILEF
≠BNE≡≡$$CONS≡≥ 100220 001044 BNE $$CONSL
≤PMSG≡≥ PMSG <CMD:\>
≡$PMSG≡≡$PMSG≡≥ 100222 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 100224 144740 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$$CONS≡≥ 100226 000441 BR $$CONSL
≡TTIBRK≡≡TTIBRK≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 65
CONS11 PAL[KL,SYS] Page 3 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥ 100230 104015 $KONSL: TTIBRK ;GET BREAK CHAR FROM LAST OPERATION
≠BCS≡≡$KONS1≡≥ 100232 103454 BCS $KONS1 ;NO DATA
≠CMPB≡≡R0≡≥ 100234 122700 000054 CMPB #',,R0 ;WAS LAST BREAK A COMMA ?
≠BEQ≡≡$RPT≡≥ 100240 001506 BEQ $RPT ;BR IF YES, CONTINUE STRING PROCESS
≠CMPB≡≡R0≡≥ 100242 122700 000040 CMPB #' ,R0 ;WAS LAST BREAK A SPACE ?
≠BEQ≡≡$RPT≡≥ 100246 001503 BEQ $RPT ;YES, CONTINUE STRING PROCESS
≠CMPB≡≡TAB≡≡R0≡≥ 100250 122700 000011 CMPB #TAB,R0 ;WAS LAST BREAK A TAB ?
≠BEQ≡≡$RPT≡≥ 100254 001500 BEQ $RPT ;YES, CONTINUE STRING PROCESS
≠TST≡≡R0≡≥ 100256 005700 TST R0
≠BEQ≡≥ 100260 001411 BEQ 11$ ;NULL, EOL
≠CMP≡≡LF≡≡R0≡≥ 100262 022700 000012 CMP #LF,R0 ;IS IT LF ?
≠BEQ≡≥ 100266 001406 BEQ 11$ ;YES
≠CMP≡≡ALTMOD≡≡R0≡≥ 100270 022700 000033 CMP #ALTMOD,R0
≠BEQ≡≥ 100274 001403 BEQ 11$ ;IS IT ALTMODE ?
≠CMP≡≡CR≡≡R0≡≥ 100276 022700 000015 CMP #CR,R0 ;IS IT A CR ?
≠BNE≡≥ 100302 001011 BNE 2$ ;NO, INVALID TERMINATION
≥
≠TST≡≡RPTFLG≡≥ 100304 005737 147732 11$: TST RPTFLG ;PRESENTLY DOING A REPEAT ?
≠BEQ≡≡$KONS1≡≥ 100310 001425 BEQ $KONS1 ;BR IF NO
≥
≠JSR≡≡PC≡≡$PTTYC≡≥ 100312 004737 116546 JSR PC,$PTTYC ;CHECK OPERATOR INTERRUPT
≥
≠MOV≡≡$INBUF≡≡$INPTC≡≥ 100316 012737 150502 150716 1$: MOV #$INBUF+2,$INPTC ;REPEAT, REDO COMMAND
≠BR≡≡$RPT≡≥ 100324 000454 BR $RPT
≥
≠JMP≡≡$CMDER≡≥ 100326 000137 100574 2$: JMP $CMDER
≠CLR≡≡RPTFLG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 66
CONS11 PAL[KL,SYS] Page 4 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥ 100332 005037 147732 $$CONSL:CLR RPTFLG ;Start here from 100014
≠CLR≡≡DVDIRF≡≥ 100336 005037 151124 CLR DVDIRF ;CLEAR DEVICE DIRECTORY FLAG
≥
≥ ;IN CASE OF START AT 100000+X FROM CONSOLE
≠.IF≡≡TELASB≡≥ .IF DF TELASB
≠BIT≡≡DLRTS≡≡$FSTKS≡≥ 100342 032777 000004 777460 BIT #DLRTS,@$FSTKS
≠BNE≡≥ 100350 001002 BNE 1$ ;RTS STILL SET, ASSUME OK
≠JSR≡≡PC≡≡HANGU1≡≥ 100352 004737 114040 JSR PC,HANGU1 ;RTS OFF, MUST HAVE BEEN RANDOM INIT, SO HANGUP
≥ 1$:
≥ .ENDC ;DF TELASB
≠.LIF≡≡SAILVR≡≥ .LIF DF SAILVR
≠BIS≡≡KWLKS≡≥ 100356 052737 000100 177546 BIS #100,KWLKS ;SET CLOCK INTERRUPT ENABLE
≥
≠TST≡≡PCMDFL≡≥ 100364 005737 152214 $KONS1: TST PCMDFLG ;DOING PROGRAM COMMAND ?
≠BEQ≡≥ 100370 001402 BEQ 1$ ;NO
≠JMP≡≡PCMDE≡≥ 100372 000137 101526 JMP PCMDE ;YES, RETURN TO PROGRAM
≠TST≡≡IFILEF≡≥ 100376 005737 147624 1$: TST IFILEF ;PROCESSING INDIRECT FILE ?
≠BEQ≡≥ 100402 001402 BEQ 2$ ;NO
≠JMP≡≡IFILIN≡≥ 100404 000137 101666 JMP IFILIN ;YES, GET CHARS FROM STORAGE
≠TST≡≡JFILEF≡≥ 100410 005737 147620 2$: TST JFILEF ;DOING DOUBLE INDIRECT ?
≠BPL≡≡$KONS2≡≥ 100414 100002 BPL $KONS2 ;NO
≠JMP≡≡JFILIN≡≥ 100416 000137 101730 JMP JFILIN ;YES, GET CHARS FROM STORAGE
≠MOV≡≡SP≡≡$KONSP≡≥ 100422 010637 147736 $KONS2: MOV SP,$KONSP ;SAVE STACK POINTER
≡PFORCE≡≡PFORCE≡≥ 100426 104043 1$: PFORCE
≡PNTCI≡≡PNTCI≡≥ 100430 104214 PNTCI
≥ 100432 000076 '>
≤PMSG≡≥ PMSG <. ←>
≡$PMSG≡≡$PMSG≡≥ 100434 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 100436 144746 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡RUNLP≡≡RUNLP≡≥ 100440 104003 2$: RUNLP ;RUN LOOP &/OR READ IN A TTY LINE
≠BCC≡≡$RPT≡≥ 100442 103005 BCC $RPT ;RESPONSE, GO PROCESS
≠CMP≡≡$INBUF≡≡$INPTR≡≥ 100444 022737 150500 150720 CMP #$INBUF,$INPTR ;ANYTHING BEEN TYPED ?
≠BNE≡≥ 100452 001365 BNE 1$ ;YES, REPROMPT
≠BR≡≥ 100454 000771 BR 2$
≥
≠CLR≡≡ALLFLG≡≥ 100456 005037 147734 $RPT: CLR ALLFLG ;CLEAR ALL PRINT FLAG
≡TTISDL≡≡TTISDL≡≥ 100462 104016 TTISDL ;READ ONE CHARACTER
≠BCC≡≡$CMDER≡≥ 100464 103043 BCC $CMDER ;...NUMBER, ILLEGAL
≠CMPB≡≡R0≡≥ 100466 122700 000073 1$: CMPB #';,R0
≠BEQ≡≡$$CONS≡≥ 100472 001717 BEQ $$CONSL ;SEMICOLON, LOCAL COPY ONLY
≠CMPB≡≡R0≡≥ 100474 122700 000056 CMPB #'.,R0
≠BEQ≡≡$RPT≡≥ 100500 001766 BEQ $RPT ;DOT, IGNORE
≠MOVB≡≡R0≡≡$KDCEN≡≥ 100502 110037 101140 MOVB R0,$KDCEN ;PLACE IN END OF DECODER
≥
≡TTICHR≡≡TTICHR≡≥ 100506 104005 TTICHR ;READ SECOND CHARACTER
≠BCS≡≡$KONS1≡≥ 100510 103725 BCS $KONS1 ;EVEN 1 CHAR CMDS ARE 2 CHAR MIN.
≠CMPB≡≡R0≡≥ 100512 122700 000012 CMPB #12,R0 ;IF THIS CHAR IS A LINE FEED
≠BEQ≡≡$KONS1≡≥ 100516 001722 BEQ $KONS1 ;..1ST CHAR MUST HAVE BEEN CR, IGNORE
≠CMPB≡≡R0≡≥ 100520 122700 000015 CMPB #15,R0 ;IF THIS CHAR A CR
≠BEQ≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 67
CONS11 PAL[KL,SYS] Page 4.1 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥ 100524 001417 BEQ 3$ ;THIS IS A SINGLE LETTER COMMAND
≠CMPB≡≡R0≡≥ 100526 122700 000033 CMPB #33,R0 ;IF ALTMODE
≠BEQ≡≥ 100532 001414 BEQ 3$ ; DITTO
≠MOVB≡≡R0≡≡$KDCEN≡≥ 100534 110037 101141 MOVB R0,$KDCEN+1 ;PLACE SECOND IN END OF DECODER
≥
≥ ;THE COMMAND PORTION OF THE INPUT STRING IS READY TO BE DECODED
≥
≠MOV≡≡$KDCEN≡≡R0≡≥ 100540 013700 101140 4$: MOV $KDCEN,R0 ;COMMAND TO R0
≠MOV≡≡$KDCRE≡≡R1≡≥ 100544 012701 100674 MOV #$KDCRE,R1 ;ADDRESS OF LIST TO R1
≥
≠CMP≡≡R0≡≡R1≡≥ 100550 020021 2$: CMP R0,(R1)+ ;TEST FOR COMMAND
≠BNE≡≥ 100552 001376 BNE 2$ ;NOT FOUND YET
≠CLR≡≡$KDCEN≡≥ 100554 005037 101140 CLR $KDCEN
≠.LIF≡≡MONASB≡≥ .LIF DF MONASB
≥ CLR ENQFLG
≠JMP≡≡$DISPH≡≡$KDCRE≡≡R1≡≥ 100560 000171 000244 JMP @$DISPH-$KDCRE-2(R1) ;EXIT TO SELECTED SUBROUTINE
≠MOVB≡≡$KDCEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 68
CONS11 PAL[KL,SYS] Page 5 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
≥ 100564 112737 000040 101141 3$: MOVB #40,$KDCEN+1 ;MAKE SINGLE LETTER COMMAND
≠BR≡≥ 100572 000762 BR 4$ ;LETTER & SPACE FOR LOOKUP
≥
≡PNTCI≡≡PNTCI≡≥ 100574 104214 $CMDER: PNTCI
≥ 100576 000077 '?
≠BR≡≡$$$CC≡≥ 100600 000411 BR $$$CC
≥
≠CLR≡≡DIAFLG≡≥ 100602 005037 151120 $$CNTLC:CLR DIAFLG
≠CLRB≡≡TENRUN≡≥ 100606 105037 147670 CLRB TENRUN ;CLEAR PDP-10 RUNNING FLAG
≠TST≡≡PCMDFL≡≥ 100612 005737 152214 TST PCMDFLG ;DOING PROGRAM COMMAND ?
≠BNE≡≡$$$CC≡≥ 100616 001002 BNE $$$CC ;YES
≠CLR≡≡PRGRUN≡≥ 100620 005037 147614 CLR PRGRUN ;CLEAR PROGRAM RUNNING FLAG
≡SETFLG≡≡SETFLG≡≥ 100624 104055 $$$CC: SETFLG
≡$TTLKF≡≡$TTLKF≡≥ 100626 147764 $TTLKF
≠TST≡≡DEVTYP≡≥ 100630 005737 157310 TST DEVTYP ;IN ACT10 MODE ?
≠BPL≡≥ 100634 100000 BPL 1$ ;NO
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST ENQFLG ;DOING APT10 COMMAND ?
≥ BEQ 1$ ;NO
≥ COMCLR ;ACT10, CLEAR COMM, THEN TO CONSL
≥ .ENDC
≤PUSH≡≥ 1$: PUSH $FORCE ;SAVE FORCED PRINTING FLAG
≠.NLIST≡≠.IRP≡≠MOV≡≡$FORCE≡≡SP≡≠.LIST≡≡PFORCE≡≡PFORCE≡≥ 100642 104043 PFORCE
≡PCRLF≡≡PCRLF≡≥ 100644 104031 PCRLF ;FORCE PRINT ERROR
≤POP≡≥ POP $FORCE ;RESTORE
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡$FORCE≡≠.LIST≡≥
≠TST≡≡PCMDFL≡≥ 100652 005737 152214 TST PCMDFLG ;DOING PROGRAM COMMAND ?
≠BEQ≡≥ 100656 001402 BEQ 2$ ;NO
≠JMP≡≡PCMDE1≡≥ 100660 000137 101546 JMP PCMDE1 ;YES, TAKE ERROR RETURN
≥
≠CLR≡≡JFILEF≡≥ 100664 005037 147620 2$: CLR JFILEF ;CLEAR DOUBLE INDIRECT FLAG
≠JMP≡≡KONSL≡≥ 100670 000137 100134 JMP KONSL
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 69
CONS11 PAL[KL,SYS] Page 6 CONSOLE DISPATCH TABLE
≥ .SBTTL CONSOLE DISPATCH TABLE
≥
≠.ASCII≡≥ 100674 122
≥ 100675 040
≥ $KDCRE: .ASCII /R / ;REPEAT OPERATOR
≠.ASCII≡≥ 100676 106
≥ 100677 130
≥ .ASCII /FX/ ;DIAGNOSTIC FUNCTION EXECUTE
≠.ASCII≡≥ 100700 106
≥ 100701 127
≥ .ASCII /FW/ ;DIAGNOSTIC FUNCTION WRITE
≠.ASCII≡≥ 100702 106
≥ 100703 122
≥ .ASCII /FR/ ;DIAGNOSTIC FUNCTION READ
≠.ASCII≡≥ 100704 106
≥ 100705 123
≥ .ASCII /FS/ ;DIAGNOSTIC FUNCTION SYNC
≠.ASCII≡≥ 100706 104
≥ 100707 101
≥ .ASCII /DA/ ;DIAGNOSTIC DEPOSIT INTO AR
≠.ASCII≡≥ 100710 105
≥ 100711 130
≥ .ASCII /EX/ ;PDP-10 INSTRUCTION EXECUTE
≠.ASCII≡≥ 100712 115
≥ 100713 122
≥ .ASCII /MR/ ;MASTER RESET
≥
≥ ;PDP-10 EXAMINE/DEPOSIT FUNCTIONS
≥
≠.ASCII≡≥ 100714 105
≥ 100715 115
≥ .ASCII /EM/ ;EXAMINE 10 AT ADR AND PRINT
≠.ASCII≡≥ 100716 104
≥ 100717 115
≥ .ASCII /DM/ ;DEPOSIT DATA IN 10 ADDRESS
≠.ASCII≡≥ 100720 105
≥ 100721 116
≥ .ASCII /EN/ ;EXAMINE AND PRINT NEXT 10 ADDRESSES
≠.ASCII≡≥ 100722 104
≥ 100723 116
≥ .ASCII /DN/ ;DEPOSIT DATA INTO NEXT 10 ADDRESSES
≠.ASCII≡≥ 100724 115
≥ 100725 132
≥ .ASCII /MZ/ ;MEMORY ZERO
≥
≥ ;START/STOP FUNCTIONS
≥
≠.ASCII≡≥ 100726 123
≥ 100727 120
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 70
CONS11 PAL[KL,SYS] Page 6.1 CONSOLE DISPATCH TABLE
≥ .ASCII /SP/ ;STOP 10, CLEAR RUN FLOP
≠.ASCII≡≥ 100730 122
≥ 100731 116
≥ .ASCII /RN/ ;START 10, SET RUN FLOP
≠.ASCII≡≥ 100732 123
≥ 100733 111
≥ .ASCII /SI/ ;SINGLE INSTRUCTION,PUSH CONTINUE
≠.ASCII≡≥ 100734 120
≥ 100735 114
≥ .ASCII /PL/ ;PULSE CLOCK
≠.ASCII≡≥ 100736 102
≥ 100737 125
≥ .ASCII /BU/ ;BURST CLOCK
≠.ASCII≡≥ 100740 123
≥ 100741 115
≥ .ASCII /SM/ ;START MICRO CODE,SUPPORT EXAMINE/DEPOSIT
≠.ASCII≡≥ 100742 123
≥ 100743 124
≥ .ASCII /ST/ ;START AT 10 ADDRESS
≠.ASCII≡≥ 100744 123
≥ 100745 127
≥ .ASCII /SW/ ;PDP-10 SWITCHES
≠.ASCII≡≥ 100746 101
≥ 100747 103
≥ .ASCII /AC/ ;"AC BLK" SELECTION
≠.ASCII≡≥ 100750 115
≥ 100751 103
≥ .ASCII /MC/ ;PDP-10 MONITOR CONTINUE
≠.LIF≡≡%%EOP≡≥ .LIF DF %%EOP
≥ .ASCII /EP/ ;SET EOP INTERVAL
≥
≥ ;PDP-11 FUNCTIONS
≥
≠.ASCII≡≥ 100752 123
≥ 100753 105
≥ .ASCII /SE/ ;START 11 AT ADR
≠.ASCII≡≥ 100754 105
≥ 100755 105
≥ .ASCII /EE/ ;EXAMINE 11 AT ADR AND PRINT
≠.ASCII≡≥ 100756 104
≥ 100757 105
≥ .ASCII /DE/ ;DEPOSIT DATA IN 11 ADDRESS
≠.ASCII≡≥ 100760 105
≥ 100761 102
≥ .ASCII /EB/ ;EXAMINE 11 BYTE
≠.ASCII≡≥ 100762 104
≥ 100763 102
≥ .ASCII /DB/ ;DEPOSIT 11 BYTE
≠.ASCII≡≥ 100764 132
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 71
CONS11 PAL[KL,SYS] Page 6.2 CONSOLE DISPATCH TABLE
≥ 100765 105
≥ .ASCII /ZE/ ;ZERO ELEVEN
≥
≥ ;RAM FUNCTIONS
≥
≠.ASCII≡≥ 100766 105
≥ 100767 103
≥ .ASCII /EC/ ;EXAMINE C-RAM AT ADDRESS AND PRINT
≠.ASCII≡≥ 100770 104
≥ 100771 103
≥ .ASCII /DC/ ;DEPOSIT DATA INTO C-RAM ADDRESS
≠.ASCII≡≥ 100772 122
≥ 100773 103
≥ .ASCII /RC/ ;READ C-RAM, FR'S 140-141-142-143
≠.ASCII≡≥ 100774 105
≥ 100775 104
≥ .ASCII /ED/ ;EXAMINE D-RAM AT ADDRESS AND PRINT
≠.ASCII≡≥ 100776 104
≥ 100777 104
≥ .ASCII /DD/ ;[START DDT] OR DEPOSIT D-RAM
≠.ASCII≡≥ 101000 115
≥ 101001 115
≥ .ASCII /MM/ ;MICRO-CODE SYNC MARK
≠.ASCII≡≥ 101002 115
≥ 101003 125
≥ .ASCII /MU/ ;MICRO-CODE SYNC UNMARK
≠.ASCII≡≥ 101004 115
≥ 101005 124
≥ .ASCII /MT/ ;MICRO-CODE TIME CHANGE
≥
≥ ;CLOCK OPERATIONS
≥
≠.ASCII≡≥ 101006 103
≥ 101007 123
≥ .ASCII /CS/ ;CLOCK SOURCE
≠.ASCII≡≥ 101010 103
≥ 101011 122
≥ .ASCII /CR/ ;CLOCK RATE
≥
≥ ;PROCESSOR PARITY FUNCTIONS
≥
≠.ASCII≡≥ 101012 120
≥ 101013 104
≥ .ASCII /PD/ ;DISABLE PARITY STOP
≠.ASCII≡≥ 101014 120
≥ 101015 105
≥ .ASCII /PE/ ;ENABLE PARITY STOP
≥
≥ ;INTERNAL E-BOX REGISTER READ FUNCTIONS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 72
CONS11 PAL[KL,SYS] Page 6.3 CONSOLE DISPATCH TABLE
≥
≠.ASCII≡≥ 101016 101
≥ 101017 122
≥ .ASCII /AR/ ;READ & PRINT AR REGISTER
≠.ASCII≡≥ 101020 102
≥ 101021 122
≥ .ASCII /BR/ ;READ & PRINT BR REGISTER
≠.ASCII≡≥ 101022 115
≥ 101023 121
≥ .ASCII /MQ/ ;READ & PRINT MQ REGISTER
≠.ASCII≡≥ 101024 106
≥ 101025 115
≥ .ASCII /FM/ ;READ & PRINT FM REGISTER
≠.ASCII≡≥ 101026 101
≥ 101027 104
≥ .ASCII /AD/ ;READ & PRINT ADDER
≠.ASCII≡≥ 101030 120
≥ 101031 103
≥ .ASCII /PC/ ;READ & PRINT PC
≠.ASCII≡≥ 101032 126
≥ 101033 115
≥ .ASCII /VM/ ;READ & PRINT VMA
≠.ASCII≡≥ 101034 123
≥ 101035 103
≥ .ASCII /SC/ ;READ & PRINT SC REGISTER
≠.ASCII≡≥ 101036 106
≥ 101037 105
≥ .ASCII /FE/ ;READ & PRINT FE REGISTER
≠.ASCII≡≥ 101040 105
≥ 101041 122
≥ .ASCII /ER/ ;READ & PRINT E-BUS REGISTER
≠.ASCII≡≥ 101042 120
≥ 101043 111
≥ .ASCII /PI/ ;READ & PRINT PI SYSTEM
≠.ASCII≡≥ 101044 101
≥ 101045 114
≥ .ASCII /AL/ ;PRINT ALL, C-RAM & REGISTERS
≥
≥ ;CACHE OPERATIONS
≥
≠.ASCII≡≥ 101046 103
≥ 101047 105
≥ .ASCII /CE/ ;CACHE ENABLE
≠.ASCII≡≥ 101050 103
≥ 101051 111
≥ .ASCII /CI/ ;CACHE INVALIDATE
≠.ASCII≡≥ 101052 103
≥ 101053 106
≥ .ASCII /CF/ ;CACHE FLUSH
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 73
CONS11 PAL[KL,SYS] Page 6.4 CONSOLE DISPATCH TABLE
≥
≥ ;REPEAT CONTROL
≥
≠.ASCII≡≥ 101054 122
≥ 101055 120
≥ .ASCII /RP/ ;REPEAT & PRINT OR RP04 SELECT
≠.ASCII≡≥ 101056 124
≥ 101057 104
≥ .ASCII /TD/ ;TIME DELAY
≥
≥ ;CONSOLE (TTY) CONTROL FUNCTION
≥
≠.ASCII≡≥ 101060 124
≥ 101061 120
≥ .ASCII /TP/ ;SET TTY PAGE LENGTH
≠.ASCII≡≥ 101062 124
≥ 101063 127
≥ .ASCII /TW/ ;SET TTY PAGE WIDTH
≠.ASCII≡≥ 101064 124
≥ 101065 106
≥ .ASCII /TF/ ;SET TTY FILL COUNT
≥
≠.LIF≡≡UTLASB≡≥ .LIF DF UTLASB
≥ .ASCII /TT/ ;SWITCH TO REMOTE TELETYPE OPERATION
≥
≠.LIF≡≡LPASB≡≥ .LIF DF LPASB
≥ .ASCII /LP/ ;LINE PRINTER SELECTION
≥
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥ .ASCII /KL/ ;KLINIK SELECTION
≥ .IFF
≠.ASCII≡≥ 101066 110
≥ 101067 125
≥ .ASCII /HU/ ;HANGUP
≥ .ENDC
≥
≥ ;KL10 MONITOR (PROGRAM & ACT10) COMMANDS
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ .ASCII /B / ;BOOT
≥ .ASCII /LI/ ;LOGIN
≥ .ENDC
≠.ASCII≡≥ 101070 110
≥ 101071 040
≥ .ASCII /H / ;HELP
≠.ASCII≡≥ 101072 120
≥ 101073 040
≥ .ASCII /P / ;PROGRAM
≠.ASCII≡≥ 101074 114
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 74
CONS11 PAL[KL,SYS] Page 6.5 CONSOLE DISPATCH TABLE
≥ 101075 124
≥ .ASCII /LT/ ;LOAD TEN
≠.ASCII≡≥ 101076 114
≥ 101077 105
≥ .ASCII /LE/ ;LOAD ELEVEN
≠.ASCII≡≥ 101100 114
≥ 101101 122
≥ .ASCII /LR/ ;LOAD RAM
≠.ASCII≡≥ 101102 114
≥ 101103 102
≥ .ASCII /LB/ ;LOAD ELEVEN BINARY
≥
≠.LIF≡≡BOOASB≡≥ .LIF DF BOOASB
≠.ASCII≡≥ 101104 114
≥ 101105 104
≥ .ASCII /LD/ ;LOAD DSKDMP BOOTSTRAP LOADER
≥
≠.ASCII≡≥ 101106 126
≥ 101107 040
≥ .ASCII /V / ;VERFIY PROGRAM
≠.ASCII≡≥ 101110 103
≥ 101111 040
≥ .ASCII /C / ;COMMENT/CORRECTIVE ACTION
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ .ASCII /S / ;SCRIPT
≥ .ASCII /M / ;MASTER SCRIPT
≥ .ASCII /LO/ ;LOGOUT
≥ .ASCII /GS/ ;GENERATE SCRIPT
≥ .ENDC
≠.ASCII≡≥ 101112 107
≥ 101113 117
≥ .ASCII /GO/ ;GO START PROGRAM
≥ ;;;; .ASCII /CD/ ;PDP-11 CORE DUMP
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ .IF DF UTLASB
≥ .ASCII /TA/ ;ACT10 TO RP04 TRANSFER
≥ .ASCII /WF/ ;DECTAPE TO RP04 WRITE
≥ .ENDC
≥ .ASCII /RE/ ;'RENM' RENAME RP04 FILE
≥ .ENDC
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ .ASCII /T / ;TIME
≥ .ASCII /BT/ ;BOOT TEN
≥ .ASCII /AT/ ;SWITCH TO ACT10 MODE
≥ .ENDC
≥
≠.ASCII≡≥ 101114 104
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 75
CONS11 PAL[KL,SYS] Page 6.6 CONSOLE DISPATCH TABLE
≥ 101115 124
≥ .ASCII /DT/ ;SWITCH TO DECTAPE MODE, SELECT UNIT
≥
≠.LIF≡≡RXASB≡≥ .LIF DF RXASB
≥ .ASCII /RX/ ;SWITCH TO FLOPPY MODE, SELECT UNIT
≥
≠.ASCII≡≥ 101116 104
≥ 101117 111
≥ .ASCII /DI/ ;DIRECTORY, DECTAPE/RP04/FLOPPY
≥
≠.IF≡≡BPTASB≡≥ .IF DF BPTASB
≥ .ASCII /BP/ ;BREAKPOINT TRAP LAYER
≥ .ASCII /BC/ ;BREAKPOINT CONTINUE
≥ .ASCII /RG/ ;TYPE OUT BREAK STUFF
≥ .ASCII /RB/ ;REMOVE BREAKPOINTS
≥ .ENDC
≥
≠.ASCII≡≥ 101120 110
≥ 101121 103
≥ .ASCII /HC/ ;ERROR HALT CONTINUE
≥
≠.ASCII≡≥ 101122 122
≥ 101123 111
≥ .ASCII /RI/ ;REINITIALIZE SYSTEM
≥
≠.ASCII≡≥ 101124 111
≥ 101125 040
≥ .ASCII /I / ;INDIRECT COMMAND FILE PROCESS
≠.ASCII≡≥ 101126 112
≥ 101127 040
≥ .ASCII /J / ;DOUBLE INDIRECT COMMAND FILE
≠.ASCII≡≥ 101130 112
≥ 101131 103
≥ .ASCII /JC/ ;"J" FILE CONTINUE
≥
≠.LIF≡≡BOOASB≡≥ .LIF DF BOOASB
≠.ASCII≡≥ 101132 104
≥ 101133 123
≥ .ASCII /DS/ ;LOAD DSKDMP BOOTSTRAP INTO 10 MEM AND START
≠.ASCII≡≥ 101134 126
≥ 101135 102
≥ .ASCII /VB/ ;COMPLEMENT VERBOSE FLAG
≠.ASCII≡≥ 101136 113
≥ 101137 101
≥ .ASCII /KA/ ;ENABLE KASIM
≥
≥ 101140 000000 $KDCEN: 0 ;ERROR TRAP FOR NONEXISTANT COMMANDS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 76
CONS11 PAL[KL,SYS] Page 7 CONSOLE DISPATCH TABLE
≥ ;DISPATCH TABLE
≥
≡.RPT≡≡.RPT≡≥ 101142 101410 $DISPH: .RPT ;REPEAT OPERATION
≡.DFXCT≡≡.DFXCT≡≥ 101144 102014 .DFXCT ;DIAGNOSTIC FUNCTION EXECUTE
≡.DFWRT≡≡.DFWRT≡≥ 101146 102032 .DFWRT ; " " WRITE
≡.DFRD≡≡.DFRD≡≥ 101150 102112 .DFRD ; " " READ
≡.FS≡≡.FS≡≥ 101152 102070 .FS ; " " SYNC
≡.DA≡≡.DA≡≥ 101154 102610 .DA ; " DEPOSIT INTO AR
≡.XCT≡≡.XCT≡≥ 101156 104432 .XCT ;EXECUTE 10 INSTRUCTION
≡.MRESE≡≡.MRESE≡≥ 101160 102602 .MRESET ;MASTER RESET
≡.EXM≡≡.EXM≡≥ 101162 106622 .EXM ;EXAMINE 10
≡.DP≡≡.DP≡≥ 101164 106276 .DP ;DEPOSIT 10
≡.EXMNX≡≡.EXMNX≡≥ 101166 107004 .EXMNX ;EXAMINE NEXT 10
≡.DPNX≡≡.DPNX≡≥ 101170 106346 .DPNX ;DEPOSIT NEXT 10
≡.MZ≡≡.MZ≡≥ 101172 106450 .MZ ;MEMORY ZERO
≡$SP≡≡$SP≡≥ 101174 103750 $SP ;STOP 10
≡$RN≡≡$RN≡≥ 101176 104000 $RN ;RUN 10
≡$SI≡≡$SI≡≥ 101200 104220 $SI ;SINGLE INSTRUCT 10
≡.PL≡≡.PL≡≥ 101202 104320 .PL ;PULSE 10
≡.BU≡≡.BU≡≥ 101204 104602 .BU ;BURST CLOCK
≡.SM≡≡.SM≡≥ 101206 104364 .SM ;START MACHINE
≡$ST≡≡$ST≡≥ 101210 105776 $ST ;START 10
≡$SW≡≡$SW≡≥ 101212 110300 $SW ;SWITCHES 10
≡.AC≡≡.AC≡≥ 101214 105544 .AC ;"AC BLK" SELECTION
≡$MC≡≡$MC≡≥ 101216 107364 $MC ;MONITOR CONTINUE
≠.LIF≡≡%%EOP≡≥ .LIF DF %%EOP
≥ .EP ;SET EOP INTERVAL
≡.SE≡≡.SE≡≥ 101220 112402 .SE ;START ELEVEN
≡.EE≡≡.EE≡≥ 101222 112450 .EE ;EXAMINE ELEVEN
≡.DE≡≡.DE≡≥ 101224 112652 .DE ;DEPOSIT ELEVEN
≡.EB≡≡.EB≡≥ 101226 112456 .EB ;EXAMINE 11 BYTE
≡.DB≡≡.DB≡≥ 101230 112660 .DB ;DEPOSIT 11 BYTE
≡.ZE≡≡.ZE≡≥ 101232 112632 .ZE ;ZERO ELEVEN
≡$EC≡≡$EC≡≥ 101234 126244 $EC ;EXAMINE C←RAM
≡$DC≡≡$DC≡≥ 101236 127736 $DC ;DEPOSIT C-RAM
≡$RC≡≡$RC≡≥ 101240 126660 $RC ;READ C-RAM
≡$ED≡≡$ED≡≥ 101242 127474 $ED ;EXAMINE D←RAM
≡$DDTX≡≡$DDTX≡≥ 101244 104112 $DDTX ;[START DDT] OR DEPOSIT D←RAM
≡.MM≡≡.MM≡≥ 101246 105240 .MM ;MICRO-CODE MARK
≡.MU≡≡.MU≡≥ 101250 105232 .MU ;MICRO-CODE UNMARK
≡.MT≡≡.MT≡≥ 101252 105312 .MT ;MICRO-CODE TIME CHANGE
≡.CS≡≡.CS≡≥ 101254 104632 .CS ;SELECT CLOCK SOURCE
≡.CR≡≡.CR≡≥ 101256 104742 .CR ;SELECT CLOCK RATE
≡.PD≡≡.PD≡≥ 101260 104774 .PD ;PROCESSOR PARITY DISABLE
≡.PE≡≡.PE≡≥ 101262 105102 .PE ;PROCESSOR PARITY ENABLE
≡.AR≡≡.AR≡≥ 101264 102400 .AR ;READ REGISTERS
≡.BR≡≡.BR≡≥ 101266 102512 .BR
≡.MQ≡≡.MQ≡≥ 101270 102304 .MQ
≡.FM≡≡.FM≡≥ 101272 102320 .FM
≡.AD≡≡.AD≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 77
CONS11 PAL[KL,SYS] Page 7.1 CONSOLE DISPATCH TABLE
≥ 101274 102442 .AD
≡.PC≡≡.PC≡≥ 101276 102626 .PC
≡.VM≡≡.VM≡≥ 101300 102732 .VM
≡.SC≡≡.SC≡≥ 101302 103316 .SC
≡.FE≡≡.FE≡≥ 101304 103302 .FE
≡.ERG≡≡.ERG≡≥ 101306 102554 .ERG
≡.PI≡≡.PI≡≥ 101310 103414 .PI ;READ & PRINT PI SYSTEM
≡.ALL≡≡.ALL≡≥ 101312 103550 .ALL ;PRINT ALL
≡.CE≡≡.CE≡≥ 101314 105400 .CE ;CACHE ENABLE
≡.CI≡≡.CI≡≥ 101316 104374 .CI ;CACHE INVALIDATE
≡.CF≡≡.CF≡≥ 101320 104412 .CF ;CACHE FLUSH
≡.RPTP≡≡.RPTP≡≥ 101322 101422 .RPTP ;REPEAT & PRINT
≡.TD≡≡.TD≡≥ 101324 122600 .TD ;TIME DELAY
≡$TP≡≡$TP≡≥ 101326 113404 $TP ;SET TTY PAGE LENGTH
≡$TW≡≡$TW≡≥ 101330 113412 $TW ;SET TTY PAGE WIDTH
≡$TF≡≡$TF≡≥ 101332 113434 $TF ;SET TTY FILL PARAMETER
≠.LIF≡≡UTLASB≡≥ .LIF DF UTLASB
≥ $TT ;SWITCH TO REMOTE TTY
≥
≠.LIF≡≡LPASB≡≥ .LIF DF LPASB
≥ $LPT ;LINE PRINTER SELECTION
≥
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥ .KLINIK ;KLINIK SELECTION
≥ .IFF
≡$HU≡≡$HU≡≥ 101334 114500 $HU ;HANG UP
≥ .ENDC
≥
≥ ;KL10 MONITOR (PROGRAM & ACT10) COMMANDS
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ $BOOT ;BOOT SYSTEM
≥ $LOGIN ;LOG IN
≥ .ENDC
≡$HELP≡≡$HELP≡≥ 101336 113132 $HELP ;HELP
≡$PROG≡≡$PROG≡≥ 101340 113036 $PROG ;LOAD PROGRAM
≡$LDT≡≡$LDT≡≥ 101342 112766 $LDT ;LOAD TEN
≡$LDE≡≡$LDE≡≥ 101344 112776 $LDE ;LOAD ELEVEN
≡$LDR≡≡$LDR≡≥ 101346 113006 $LDR ;LOAD RAM
≡$LDB≡≡$LDB≡≥ 101350 113016 $LDB ;LOAD ELEVEN BINARY
≥
≠.LIF≡≡BOOASB≡≥ .LIF DF BOOASB
≡$LDD≡≡$LDD≡≥ 101352 113026 $LDD ;LOAD DSKDMP BOOT
≥
≡$VERIF≡≡$VERIF≡≥ 101354 112752 $VERIFY ;VERIFY PROGRAM
≡$COMNT≡≡$COMNT≡≥ 101356 113344 $COMNT ;COMMENT
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ $SCRPT ;SCRIPT REQUEST
≥ $MSCP ;MASTER SCRIPT REQUEST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 78
CONS11 PAL[KL,SYS] Page 7.2 CONSOLE DISPATCH TABLE
≥ $LOGO ;LOG OUT
≥ $GSCP ;GENERATE SCRIPT
≥ .ENDC
≡$GO≡≡$GO≡≥ 101360 113212 $GO ;PROGRAM GO
≥ ;;;; $CD ;PDP-11 CORE DUMP
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ .IF DF UTLASB
≥ $TA ;ACT10 TO RP04 TRANSFER
≥ $WF ;DECTAPE TO RP04 WRITE FILE
≥ .ENDC
≥ $RE ;'RENM' RP04 RENAME FILE
≥ .ENDC
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ $TIME ;TIME
≥ $BOOTT ;BOOT PDP-10
≥ $AT ;SELECT ACT-10 MODE
≥ .ENDC
≡$DT≡≡$DT≡≥ 101362 113150 $DT ;SELECT DECTAPE MODE & UNIT
≥
≠.LIF≡≡RXASB≡≥ .LIF DF RXASB
≥ $RX ;SELECT FLOPPY MODE & UNIT
≥
≡$DI≡≡$DI≡≥ 101364 133726 $DI ;DIRECTORY, DECTAPE/RP04/FLOPPY
≥
≠.IF≡≡BPTASB≡≥ .IF DF BPTASB
≥ .BP ;BREAKPOINT INSERTION
≥ .BC ;BREAKPOINT CONTINUE
≥ .RG ;PRINT SAVED REGISTERS
≥ .RB ;REMOVE BREAKPOINTS
≥ .ENDC
≥
≡.HC≡≡.HC≡≥ 101366 115466 .HC ;HALT CONTINUE
≡.RI≡≡.RI≡≥ 101370 113374 .RI ;REINITIALIZE CONSOLE
≡$IFILE≡≡$IFILE≡≥ 101372 113104 $IFILE ;INDIRECT FILE
≡$JFILE≡≡$JFILE≡≥ 101374 113064 $JFILE ;DOUBLE INDIRECT FILE
≡$JC≡≡$JC≡≥ 101376 113232 $JC ;J FILE CONTINUE
≥
≠.LIF≡≡BOOASB≡≥ .LIF DF BOOASB
≡$DS≡≡$DS≡≥ 101400 135474 $DS ;LOAD AND START DSKDMP BOOTSTRAP PROGRAM
≡$VB≡≡$VB≡≥ 101402 106404 $VB ;COMPLEMENT VERBOSE TYPEOUT
≡$KA≡≡$KA≡≥ 101404 106440 $KA ;ENABLE KASIM
≥
≡$CMDER≡≡$CMDER≡≥ 101406 100574 $CMDER ;NO SUCH COMMAND
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 79
CONS11 PAL[KL,SYS] Page 8 DIAGNOSIC CONSOLE UTILITY COMMAND PROCESS
≥ .SBTTL DIAGNOSIC CONSOLE UTILITY COMMAND PROCESS
≥
≠.IF≡≡UTLASB≡≥ .IF DF UTLASB
≥
≥ ;UTILITY PROGRAM CHECK
≥
≥ $KLUCK: CMP PID,PIDU ;UTILITY PROGRAM IN CORE ?
≥ BNE 1$
≥ CMP PID+2,PIDU+2
≥ BNE 1$
≥ CMP PDVER,#DECVER ;PROPER VERSION ?
≥ BNE 1$
≥ RTS PC ;OK
≥
≥ 1$: PMSG <PLEASE LOAD "KLDCPU.A11" FIRST>
≥ JMP $CNTLC
≥
≥ PIDU: .RAD50 /KLDCPU/
≥
≥ ;TRANSFER FROM APT10 DISPATCH
≥
≥ $TA: JSR PC,$KLUCK ;UTILITY IN CORE ?
≥ JMP @TAPT ;YES
≥
≥ ;WRITE FILE FROM DTA/FLOPPY DISPATCH
≥
≥ $WF: JSR PC,$KLUCK ;UTILITY IN CORE ?
≥ JMP @WFILE ;YES
≥
≥ ;REMOTE TELETYPE COMMUNICATIONS DISPATCH
≥
≥ $TT: JSR PC,$KLUCK ;UTILITY IN CORE ?
≥ JMP @REMOTE ;YES
≥
≥ ;RP04 DISK DIRECTORY DISPATCH
≥
≥ .IF DR RPASB
≥ $RPDIR: JSR PC,$KLUCK ;UTILITY IN CORE ?
≥ JMP @DSKDIR ;YES
≥ .ENDC
≥
≥ .ENDC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 80
CONS11 PAL[KL,SYS] Page 9 CONSOLE COMMAND REPEAT CONTROL
≥ .SBTTL CONSOLE COMMAND REPEAT CONTROL
≥
≡SETFLG≡≡SETFLG≡≥ 101410 104055 .RPT: SETFLG
≡RPTFLG≡≡RPTFLG≡≥ 101412 147732 RPTFLG ;SET REPEAT FLAG
≥
≡PNORML≡≡PNORML≡≥ 101414 104044 .RPTX: PNORML
≠JMP≡≡$RPT≡≥ 101416 000137 100456 JMP $RPT
≥
≡TTISDL≡≡TTISDL≡≥ 101422 104016 .RPTP: TTISDL
≠BCC≡≥ 101424 103005 BCC 1$ ;NUMBER
≡TTBACK≡≡TTBACK≡≥ 101426 104144 TTBACK
≠MOV≡≡RPTFLG≡≥ 101430 012737 177400 147732 MOV #177400,RPTFLG ;SET REPEAT & PRINT
≠BR≡≡.RPTX≡≥ 101436 000766 BR .RPTX
≥
≠JMP≡≡$RP≡≥ 101440 000137 100574 1$: JMP $RP ;MUST BE RP04 SELECTION
≥
≠.IIF≡≡RPASB≡≡$CMDER≡≡$RP≠≥ 100574 .IIF NDF RPASB,$RP==$CMDER
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 81
CONS11 PAL[KL,SYS] Page 10 PROGRAM CONSOLE COMMAND PROCESS
≥ .SBTTL PROGRAM CONSOLE COMMAND PROCESS
≥
≡SETFLG≡≡SETFLG≡≥ 101444 104055 $PRGNPT:SETFLG ;PROGRAM COMMAND, NO PRINT
≡PCMDNF≡≡PCMDNF≡≥ 101446 152212 PCMDNF
≠BR≡≡$PRGXX≡≥ 101450 000402 BR $PRGXX
≠CLR≡≡PCMDNF≡≥ 101452 005037 152212 $PRGCMD:CLR PCMDNF
≡SETFLG≡≡SETFLG≡≥ 101456 104055 $PRGXX: SETFLG
≡PCMDFL≡≡PCMDFL≡≥ 101460 152214 PCMDFLG ;SET PROGRAM COMMAND FLAG
≠TST≡≡R0≡≥ 101462 005700 TST R0
≠BEQ≡≥ 101464 001411 BEQ 2$ ;USE CURRENT INPUT BUFFER, R0=0
≠CMP≡≡R0≡≥ 101466 022700 777777 CMP #-1,R0
≠BNE≡≥ 101472 001004 BNE 3$
≠MOV≡≡$OUTBF≡≡R0≡≥ 101474 012700 150254 MOV #$OUTBF,R0 ;USE OUTPUT BUFFER, R0 = -1
≠MOV≡≡R0≡≡$OUTPT≡≥ 101500 010037 150474 MOV R0,$OUTPT
≠JSR≡≡PC≡≡$PCMDX≡≥ 101504 004737 101606 3$: JSR PC,$PCMDX ;TRANSFER COMMAND TO INPUT BUFFER
≠MOV≡≡$INBUF≡≡$INPTC≡≥ 101510 012737 150500 150716 2$: MOV #$INBUF,$INPTC ;SET PICKUP POINTER
≠MOV≡≡SP≡≡$$SVSP≡≥ 101516 010637 147630 MOV SP,$$SVSP ;SAVE STACK POINTER
≠JMP≡≡$RPT≡≥ 101522 000137 100456 JMP $RPT ;PROCESS COMMAND
≥
≠MOV≡≡$$SVSP≡≡SP≡≥ 101526 013706 147630 PCMDE: MOV $$SVSP,SP ;RESTORE STACK POINTER
≠CLR≡≡PCMDFL≡≥ 101532 005037 152214 CLR PCMDFLG
≠CLR≡≡PCMDNF≡≥ 101536 005037 152212 CLR PCMDNF
≠.LIF≡≡MONASB≡≥ .LIF DF MONASB
≥ CLR ENQFLG
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 101542 000137 124064 JMP $EXIT
≠MOV≡≡$$SVSP≡≡SP≡≥ 101546 013706 147630 PCMDE1: MOV $$SVSP,SP
≠CLR≡≡PCMDFL≡≥ 101552 005037 152214 PCMDE3: CLR PCMDFLG ;ERROR, C-BIT SET RETURN
≠CLR≡≡PCMDNF≡≥ 101556 005037 152212 CLR PCMDNF
≠CLR≡≡HLPPNT≡≥ 101562 005037 150722 CLR HLPPNT
≤EXITER≡≥ EXITERR
≠JMP≡≡$EXITE≡≥ 101566 000137 124036 JMP $EXITE
≠MOV≡≡$$SVSP≡≡SP≡≥ 101572 013706 147630 PCMDE2: MOV $$SVSP,SP
≠BIS≡≡NBIT≡≡SP≡≥ 101576 052766 000010 000014 BIS #NBIT,14(SP) ;CONTROL C DURING TYPEOUT
≠BR≡≡PCMDE3≡≥ 101604 000762 BR PCMDE3 ;NBIT & CBIT SET RETURN
≥
≠MOV≡≡$INBUF≡≡R1≡≥ 101606 012701 150500 $PCMDX: MOV #$INBUF,R1 ;MOVE COMMAND TO INPUT BUFFER
≡$DIASX≠≥ 101612 $DIASX=.
≠MOVB≡≡R0≡≡R1≡≥ 101612 112021 1$: MOVB (R0)+,(R1)+ ;TRANSFER CHARS
≠BNE≡≥ 101614 001376 BNE 1$ ;TILL NULL
≠DEC≡≡R1≡≥ 101616 005301 DEC R1
≠MOVB≡≡CR≡≡R1≡≥ 101620 112721 000015 MOVB #CR,(R1)+
≠MOVB≡≡LF≡≡R1≡≥ 101624 112721 000012 MOVB #LF,(R1)+
≠MOV≡≡R1≡≡$INPTR≡≥ 101630 010137 150720 MOV R1,$INPTR ;SAVE EOL POINTER
≠RTS≡≡PC≡≥ 101634 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 82
CONS11 PAL[KL,SYS] Page 11 PROGRAM CONSOLE COMMAND PROCESS
≥ ;PROGRAM INDIRECT CCL FILE PROCESS
≥
≠MOV≡≡IFINP≡≡R1≡≥ 101636 013701 147622 $TTICCL:MOV IFINP,R1 ;XFER CHARS INTO INPUT BUFFER
≠TSTB≡≡R1≡≥ 101642 105711 TSTB (R1) ;FIRST CHAR A NULL ?
≠BEQ≡≥ 101644 001406 BEQ 1$ ;YES, FINISHED
≠JSR≡≡PC≡≡IJFILX≡≥ 101646 004737 101772 JSR PC,IJFILX
≠MOV≡≡R1≡≡IFINP≡≥ 101652 010137 147622 MOV R1,IFINP ;RESAVE POINTER
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 101656 000137 124064 JMP $EXIT
≤EXITER≡≥ 1$: EXITERR ;FINISHED, C-BIT SET RETURN
≠JMP≡≡$EXITE≡≥ 101662 000137 124036 JMP $EXITE
≥
≥ ;INDIRECT COMMAND FILE PROCESS
≥
≠MOV≡≡IFINP≡≡R1≡≥ 101666 013701 147622 IFILIN: MOV IFINP,R1 ;XFER CHARS INTO INPUT BUFFER
≠TSTB≡≡R1≡≥ 101672 105711 TSTB (R1) ;FIRST CHAR A NULL ?
≠BEQ≡≡IFILX1≡≥ 101674 001413 BEQ IFILX1 ;YES, FINISHED
≠JSR≡≡PC≡≡IJFILX≡≥ 101676 004737 101772 JSR PC,IJFILX
≠MOV≡≡R1≡≡IFINP≡≥ 101702 010137 147622 MOV R1,IFINP ;RESAVE STORAGE POINTER
≠TST≡≡JFILEF≡≥ 101706 005737 147620 TST JFILEF ;DON'T PRINT "I" IF UNDER "J"
≠BNE≡≥ 101712 001002 BNE 3$
≡IFILX≠≥ 101714 IFILX=.
≡$PMSG≡≡$PMSG≡≥ 101714 104025 $PMSG ;PRINT COMMAND LINE
≡$INBUF≡≡$INBUF≡≥ 101716 150500 $INBUF
≠JMP≡≡$RPT≡≥ 101720 000137 100456 3$: JMP $RPT ;GO PROCESS
≥
≠JMP≡≡CONSL≡≥ 101724 000137 100106 IFILX1: JMP CONSL ;FINISHED
≥
≥ ;DOUBLE INDIRECT COMMAND FILE PROCESS
≥
≠TST≡≡PRGRUN≡≥ 101730 005737 147614 JFILIN: TST PRGRUN ;PROGRAM PRESENTLY RUNNING ?
≠BEQ≡≥ 101734 001402 BEQ 3$ ;NO
≠JMP≡≡$KONS2≡≥ 101736 000137 100422 JMP $KONS2 ;YES, WAIT TILL IT'S DONE
≠MOV≡≡JFINP≡≡R1≡≥ 101742 013701 147616 3$: MOV JFINP,R1 ;XFER CHARS INTO INPUT BUFFER
≥
≠TSTB≡≡R1≡≥ 101746 105711 TSTB (R1) ;FIRST CHAR A NULL ?
≠BEQ≡≥ 101750 001405 BEQ 2$ ;YES, FINISHED
≥
≠JSR≡≡PC≡≡IJFILX≡≥ 101752 004737 101772 JSR PC,IJFILX
≠MOV≡≡R1≡≡JFINP≡≥ 101756 010137 147616 MOV R1,JFINP ;RESAVE STORAGE POINTER
≠BR≡≡IFILX≡≥ 101762 000754 BR IFILX
≥
≠CLR≡≡JFILEF≡≥ 101764 005037 147620 2$: CLR JFILEF
≠BR≡≡IFILX1≡≥ 101770 000755 BR IFILX1
≥
≠MOV≡≡$INBUF≡≡R0≡≥ 101772 012700 150500 IJFILX: MOV #$INBUF,R0
≠MOV≡≡R0≡≡$INPTC≡≥ 101776 010037 150716 MOV R0,$INPTC
≥
≠MOVB≡≡R1≡≡R0≡≥ 102002 112120 1$: MOVB (R1)+,(R0)+
≠BNE≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 83
CONS11 PAL[KL,SYS] Page 11.1 PROGRAM CONSOLE COMMAND PROCESS
≥ 102004 001376 BNE 1$
≥
≠MOV≡≡R0≡≡$INPTR≡≥ 102006 010037 150720 MOV R0,$INPTR
≠RTS≡≡PC≡≥ 102012 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 84
CONS11 PAL[KL,SYS] Page 12 DIAGNOSTIC FUNCTIONS
≥ .SBTTL DIAGNOSTIC FUNCTIONS
≥
≥ ;DIAGNOSTIC FUNCTION EXECUTE
≥
≡DFLEGA≡≡DFLEGA≡≥ 102014 104226 .DFXCT: DFLEGAL ;FUNCTION LEGAL ?
≡TTISDO≡≡TTISDO≡≥ 102016 104017 TTISDO ;GET FUNCTION
≠CMP≡≡R0≡≥ 102020 020027 000037 CMP R0,#037 ;FUNCTION VALID ?
≠BGT≡≡$DFERR≡≥ 102024 003026 BGT $DFERR ;FX IS 000 TO 037
≥
≡DFXCT≡≡DFXCT≡≥ 102026 104114 DFXCT ;DF EXECUTE
≠BR≡≡.DFX≡≥ 102030 000415 BR .DFX ;RETURN TO CONSOLE
≥
≥ ;DIAGNOSTIC FUNCTION WRITE
≥
≡DFLEGA≡≡DFLEGA≡≥ 102032 104226 .DFWRT: DFLEGAL ;FUNCTION LEGAL ?
≡TTISDO≡≡TTISDO≡≥ 102034 104017 TTISDO ;GET FUNCTION
≠CMP≡≡R0≡≥ 102036 020027 000040 CMP R0,#040
≠BLT≡≡$DFERR≡≥ 102042 002417 BLT $DFERR
≠CMP≡≡R0≡≥ 102044 020027 000077 CMP R0,#077
≠BGT≡≡$DFERR≡≥ 102050 003014 BGT $DFERR ;FW IS 040 TO 077
≠MOV≡≡R0≡≡R2≡≥ 102052 010002 MOV R0,R2 ;SAVE FUNCTION
≡TTIS36≡≡TTIS36≡≥ 102054 104020 TTIS36 ;GET DATA
≠MOV≡≡R0≡≡R1≡≥ 102056 010001 MOV R0,R1 ;PUT ADR OF 36BITS IN R1
≥
≠MOV≡≡R2≡≡R0≡≥ 102060 010200 MOV R2,R0 ;FUNCTION IN R0
≡DFWRT≡≡DFWRT≡≥ 102062 104120 DFWRT ;DIAGNOSTIC FUNCTION WRITE
≥
≠JMP≡≡$KONSL≡≥ 102064 000137 100230 .DFX: JMP $KONSL
≥
≥ ;DIAGNOSTIC FUNCTION SYNC, GENERATES PULSE AT "A36E1"
≥
≡DFLEGA≡≡DFLEGA≡≥ 102070 104226 .FS: DFLEGAL ;FUNCTION LEGAL ?
≡TTITRM≡≡TTITRM≡≥ 102072 104022 TTITRM
≡DFXCTT≡≡DFXCTT≡≥ 102074 104115 DFXCTT
≥ 102076 000074 74 ;SYNC IS FUNCTION EXECUTE 74
≠BR≡≡.DFX≡≥ 102100 000771 BR .DFX
≥
≤PMSG≡≥ $DFERR: PMSG <?FUNCTION ERR>
≡$PMSG≡≡$PMSG≡≥ 102102 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 102104 144752 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 102106 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 85
CONS11 PAL[KL,SYS] Page 13 DIAGNOSTIC FUNCTIONS
≥ ;DIAGNOSTIC READ AND PRINT
≥
≡DFLEGA≡≡DFLEGA≡≥ 102112 104226 .DFRD: DFLEGAL ;FUNCTION LEGAL ?
≠CLR≡≡R3≡≥ 102114 005003 CLR R3
≡TTISDO≡≡TTISDO≡≥ 102116 104017 TTISDO ;GET FUNCTION
≠MOV≡≡R0≡≡R2≡≥ 102120 010002 MOV R0,R2
≡TTIBRK≡≡TTIBRK≡≥ 102122 104015 TTIBRK
≠BCS≡≡$DFERR≡≥ 102124 103766 BCS $DFERR
≠CMPB≡≡COMMA≡≡R0≡≥ 102126 122700 000054 CMPB #COMMA,R0 ;IF BREAK IS A COMMA, MULTIPLE DFRD
≠BNE≡≥ 102132 001003 BNE 1$
≥
≠INC≡≡R3≡≥ 102134 005203 INC R3
≡TTCOCT≡≡TTCOCT≡≥ 102136 104010 TTCOCT
≠MOV≡≡R0≡≡R4≡≥ 102140 010004 MOV R0,R4 ;SAVE LAST DFRD
≠TSTB≡≡RPTFLG≡≥ 102142 105737 147732 1$: TSTB RPTFLG
≠BNE≡≥ 102146 001003 BNE 2$
≥
≠MOV≡≡R2≡≡R0≡≥ 102150 010200 MOV R2,R0
≡PNTOCS≡≡PNTOCS≡≥ 102152 104036 PNTOCS
≡PSLASH≡≡PSLASH≡≥ 102154 104033 PSLASH
≠MOV≡≡R2≡≡R0≡≥ 102156 010200 2$: MOV R2,R0
≠BEQ≡≥ 102160 001406 BEQ 21$ ;FR 0 USED TO READ E-BUS
≠CMP≡≡R0≡≥ 102162 020027 000100 CMP R0,#100
≠BLT≡≡$DFERR≡≥ 102166 002745 BLT $DFERR
≠CMP≡≡R0≡≥ 102170 020027 000177 CMP R0,#177
≠BGT≡≡$DFERR≡≥ 102174 003342 BGT $DFERR ;FR IS 100 TO 177
≠MOV≡≡.DFRDA≡≡R1≡≥ 102176 012701 147710 21$: MOV #.DFRDA,R1
≡DFRDMV≡≡DFRDMV≡≥ 102202 104117 DFRDMV
≠TSTB≡≡RPTFLG≡≥ 102204 105737 147732 TSTB RPTFLG
≠BNE≡≥ 102210 001002 BNE 3$
≠MOV≡≡R1≡≡R0≡≥ 102212 010100 MOV R1,R0
≡PNT36B≡≡PNT36B≡≥ 102214 104134 PNT36B ;PRINT IN BINARY
≥
≠TST≡≡R3≡≥ 102216 005703 3$: TST R3
≠BEQ≡≥ 102220 001405 BEQ 4$
≥
≡PCRLF≡≡PCRLF≡≥ 102222 104031 PCRLF
≠CMP≡≡R2≡≡R4≡≥ 102224 020204 CMP R2,R4
≠BHIS≡≥ 102226 103002 BHIS 4$
≠INC≡≡R2≡≥ 102230 005202 INC R2
≠BR≡≥ 102232 000743 BR 1$
≥
≠BR≡≡ALLEXT≡≥ 102234 000412 4$: BR ALLEXT
≡DFLEGA≡≡DFLEGA≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 86
CONS11 PAL[KL,SYS] Page 14 DIAGNOSTIC FUNCTIONS
≥ 102236 104226 .DFDP: DFLEGAL ;FUNCTION LEGAL ?
≠MOV≡≡.DFRDA≡≡R1≡≥ 102240 012701 147710 MOV #.DFRDA,R1
≡DFRDMV≡≡DFRDMV≡≥ 102244 104117 DFRDMV ;READ THE E-BUS
≥
≠TSTB≡≡RPTFLG≡≥ 102246 105737 147732 TSTB RPTFLG
≠BNE≡≡.DFX≡≥ 102252 001304 BNE .DFX
≠MOV≡≡.DFRDA≡≡R0≡≥ 102254 012700 147710 .DFDPC: MOV #.DFRDA,R0
≡PNT36≡≡PNT36≡≥ 102260 104042 PNT36 ;PRINT IT OUT
≥
≠TST≡≡ALLFLG≡≥ 102262 005737 147734 ALLEXT: TST ALLFLG ;DOING ALL ?
≠BNE≡≥ 102266 001005 BNE 1$ ;YES
≠TSTB≡≡RPTFLG≡≥ 102270 105737 147732 TSTB RPTFLG ;DOING A REPEAT ?
≠BNE≡≥ 102274 001001 BNE 2$ ;YES
≡ALLEX1≠≥ 102276 ALLEX1=.
≡PCRLF≡≡PCRLF≡≥ 102276 104031 PCRLF
≠BR≡≡.DFX≡≥ 102300 000671 2$: BR .DFX
≠RTS≡≡PC≡≥ 102302 000207 1$: RTS PC ;ALL, CONTINUE
≥
≡TTITRM≡≡TTITRM≡≥ 102304 104022 .MQ: TTITRM
≡$ALLMQ≠≥ 102306 $ALLMQ=.
≤PMSGR≡≥ PMSGR <MQ />
≡$PMSGR≡≡$PMSGR≡≥ 102306 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102310 144770 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPMQ≡≡R0≡≥ 102312 012700 000122 1$: MOV #DPMQ,R0
≠BR≡≡.DFDP≡≥ 102316 000747 BR .DFDP
≥
≡DFLEGA≡≡DFLEGA≡≥ 102320 104226 .FM: DFLEGAL ;FUNCTION LEGAL ?
≡TTITRM≡≡TTITRM≡≥ 102322 104022 TTITRM
≡$ALLFM≠≥ 102324 $ALLFM=.
≠TSTB≡≡RPTFLG≡≥ 102324 105737 147732 TSTB RPTFLG
≠BNE≡≥ 102330 001016 BNE 1$
≡PNTCI≡≡PNTCI≡≥ 102332 104214 PNTCI
≥ 102334 046506 "FM
≡DFRDT≡≡DFRDT≡≥ 102336 104140 DFRDT ;READ FM ADDRESS
≡DPFMA≡≡DPFMA≡≥ 102340 000114 DPFMA
≠MOV≡≡.DAT2≡≡R0≡≥ 102342 017700 054756 MOV @.DAT2,R0
≡SHIFTR≡≡SHIFTR≡≥ 102346 104053 SHIFTR
≥ 102350 000005 5
≠BIC≡≡R0≡≥ 102352 042700 177760 BIC #177760,R0
≡PNTODT≡≡PNTODT≡≥ 102356 104047 PNTODT
≥ 102360 000002 2
≡PNTCI≡≡PNTCI≡≥ 102362 104214 PNTCI
≥ 102364 000057 '/
≠MOV≡≡DPFM≡≡R0≡≥ 102366 012700 000123 1$: MOV #DPFM,R0
≠BR≡≡.DFDP≡≥ 102372 000721 BR .DFDP
≥
≠JMP≡≡$DFERR≡≥ 102374 000137 102102 $DPERR: JMP $DFERR
≡TTICHR≡≡TTICHR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 87
CONS11 PAL[KL,SYS] Page 15 DIAGNOSTIC FUNCTIONS
≥ 102400 104005 .AR: TTICHR
≠BCS≡≡$DPERR≡≥ 102402 103774 BCS $DPERR
≠CMPB≡≡R0≡≥ 102404 122700 000130 CMPB #'X,R0 ;IS COMMAND 3 LETTERS ?
≠BEQ≡≥ 102410 001406 BEQ 1$ ;BR IF 3RD LETTER IS X
≡TTBTRM≡≡TTBTRM≡≥ 102412 104023 TTBTRM
≡$ALLAR≠≥ 102414 $ALLAR=.
≤PMSGR≡≥ PMSGR <AR />
≡$PMSGR≡≡$PMSGR≡≥ 102414 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102416 144775 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPAR≡≡R0≡≥ 102420 012700 000120 2$: MOV #DPAR,R0
≠BR≡≡.DFDP≡≥ 102424 000704 BR .DFDP ;READ AND PRINT AR
≥
≡TTITRM≡≡TTITRM≡≥ 102426 104022 1$: TTITRM
≡$ALARX≠≥ 102430 $ALARX=.
≤PMSGR≡≥ PMSGR <ARX/>
≡$PMSGR≡≡$PMSGR≡≥ 102430 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102432 145002 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPARX≡≡R0≡≥ 102434 012700 000125 3$: MOV #DPARX,R0
≠BR≡≡.DFDP≡≥ 102440 000676 BR .DFDP
≥
≡TTICHR≡≡TTICHR≡≥ 102442 104005 .AD: TTICHR
≠BCS≡≡$DPERR≡≥ 102444 103753 BCS $DPERR
≠CMPB≡≡R0≡≥ 102446 122700 000130 CMPB #'X,R0 ;IS COMMAND 3 LETTERS ?
≠BEQ≡≥ 102452 001411 BEQ 1$ ;BR IF 3RD LETTER IS X
≠CMPB≡≡R0≡≥ 102454 122700 000102 CMPB #'B,R0
≠BEQ≡≡.ADB≡≥ 102460 001552 BEQ .ADB ;ADB, PRINT ADDRESS BREAK
≡TTBTRM≡≡TTBTRM≡≥ 102462 104023 TTBTRM
≡$ALLAD≠≥ 102464 $ALLAD=.
≤PMSGR≡≥ PMSGR <AD />
≡$PMSGR≡≡$PMSGR≡≥ 102464 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102466 145007 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPAD≡≡R0≡≥ 102470 012700 000127 2$: MOV #DPAD,R0
≠BR≡≡.DFDP≡≥ 102474 000660 BR .DFDP ;READ AND PRINT AD
≥
≡TTITRM≡≡TTITRM≡≥ 102476 104022 1$: TTITRM
≡$ALADX≠≥ 102500 $ALADX=.
≤PMSGR≡≥ PMSGR <ADX/>
≡$PMSGR≡≡$PMSGR≡≥ 102500 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102502 145014 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPADX≡≡R0≡≥ 102504 012700 000126 3$: MOV #DPADX,R0
≠BR≡≡.DFDP≡≥ 102510 000652 BR .DFDP ;READ AND PRINT ADX
≡TTICHR≡≡TTICHR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 88
CONS11 PAL[KL,SYS] Page 16 DIAGNOSTIC FUNCTIONS
≥ 102512 104005 .BR: TTICHR
≠BCS≡≡$DPERR≡≥ 102514 103727 BCS $DPERR
≠CMPB≡≡R0≡≥ 102516 122700 000130 CMPB #'X,R0 ;IS COMMAND 3 LETTERS ?
≠BEQ≡≥ 102522 001406 BEQ 1$ ;BR IF 3RD LETTER IS X
≡TTBTRM≡≡TTBTRM≡≥ 102524 104023 TTBTRM
≡$ALLBR≠≥ 102526 $ALLBR=.
≤PMSGR≡≥ PMSGR <BR />
≡$PMSGR≡≡$PMSGR≡≥ 102526 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102530 145021 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPBR≡≡R0≡≥ 102532 012700 000121 2$: MOV #DPBR,R0
≠BR≡≡.DFDP≡≥ 102536 000637 BR .DFDP ;READ AND PRINT BR
≥
≡TTITRM≡≡TTITRM≡≥ 102540 104022 1$: TTITRM
≡$ALBRX≠≥ 102542 $ALBRX=.
≤PMSGR≡≥ PMSGR <BRX/>
≡$PMSGR≡≡$PMSGR≡≥ 102542 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102544 145026 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPBRX≡≡R0≡≥ 102546 012700 000124 3$: MOV #DPBRX,R0
≠BR≡≡.DFDP≡≥ 102552 000631 BR .DFDP ;READ AND PRINT THE BRX
≥
≡TTICHR≡≡TTICHR≡≥ 102554 104005 .ERG: TTICHR
≠BCS≡≡$DPER1≡≥ 102556 103504 BCS $DPER1
≠CMPB≡≡R0≡≥ 102560 122700 000107 CMPB #'G,R0
≠BNE≡≡$DPER1≡≥ 102564 001101 BNE $DPER1
≡TTITRM≡≡TTITRM≡≥ 102566 104022 TTITRM
≥
≤PMSGR≡≥ $ALLEB: PMSGR <ERG/>
≡$PMSGR≡≡$PMSGR≡≥ 102570 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 102572 145033 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPERG≡≡R0≡≥ 102574 012700 000167 MOV #DPERG,R0
≠BR≡≡.DFDP≡≥ 102600 000616 BR .DFDP ;READ & PRINT EBUS REGISTER
≥
≥ ;MASTER RESET
≥
≡TTITRM≡≡TTITRM≡≥ 102602 104022 .MRESET:TTITRM
≡MRESET≡≡MRESET≡≥ 102604 104076 MRESET
≠BR≡≡.DAX≡≥ 102606 000405 BR .DAX
≥
≥ ;DEPOSIT INTO AR
≥
≡DFLEGA≡≡DFLEGA≡≥ 102610 104226 .DA: DFLEGAL ;FUNCTION LEGAL ?
≡TTIS36≡≡TTIS36≡≥ 102612 104020 TTIS36 ;GET 36 BIT AR DATA
≠MOV≡≡R0≡≡R1≡≥ 102614 010001 MOV R0,R1 ;ADR OF 36 BITS TO R1
≠JSR≡≡R5≡≡WIRAR1≡≥ 102616 004537 143624 JSR R5,WIRAR1 ;CALL IR/AR WRITE ROUTINE
≠JMP≡≡$KONSL≡≥ 102622 000137 100230 .DAX: JMP $KONSL
≡TTICHR≡≡TTICHR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 89
CONS11 PAL[KL,SYS] Page 17 DIAGNOSTIC FUNCTIONS
≥ 102626 104005 .PC: TTICHR
≠BCS≡≡$DPER1≡≥ 102630 103457 BCS $DPER1
≠CMPB≡≡R0≡≥ 102632 122700 000106 CMPB #'F,R0
≠BEQ≡≡.PCF≡≥ 102636 001471 BEQ .PCF ;"PCF" COMMAND
≡TTBTRM≡≡TTBTRM≡≥ 102640 104023 TTBTRM
≡$ALLPC≠≥ 102642 $ALLPC=.
≤PMSG≡≥ PMSG <PC />
≡$PMSG≡≡$PMSG≡≥ 102642 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 102644 145040 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠TST≡≡TENRUN≡≥ 102646 005737 147670 TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
≠BEQ≡≥ 102652 001417 BEQ 1$ ;NO, GO AHEAD THEN
≡DFXCTT≡≡DFXCTT≡≥ 102654 104115 DFXCTT
≡CLRRUN≡≡CLRRUN≡≥ 102656 000010 CLRRUN ;CLEAR RUN
≡TDELAY≡≡TDELAY≡≥ 102660 104056 TDELAY ;WAIT FOR HALT LOOP
≡DFXCTT≡≡DFXCTT≡≥ 102662 104115 DFXCTT
≡STPCLK≡≡STPCLK≡≥ 102664 000000 STPCLK ;STOP CLOCK
≥
≡DFPC≡≡DFPC≡≥ 102666 104123 DFPC ;READ PC
≥
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡DFXCTT≡≡DFXCTT≡≥ 102672 104115 DFXCTT
≡STRCLK≡≡STRCLK≡≥ 102674 000001 STRCLK ;START CLOCK
≡DFXCTT≡≡DFXCTT≡≥ 102676 104115 DFXCTT
≡SETRUN≡≡SETRUN≡≥ 102700 000011 SETRUN ;SET RUN
≡DFXCTT≡≡DFXCTT≡≥ 102702 104115 DFXCTT
≡CONBUT≡≡CONBUT≡≥ 102704 000012 CONBUT ;SET CONTINUE
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡PCVMAP≡≥ 102710 000401 BR PCVMAP ;GO PRINT
≥
≡DFPC≡≡DFPC≡≥ 102712 104123 1$: DFPC
≥
≥ PCVMAP:
≡PNTADR≡≡PNTADR≡≥ 102714 104137 PNTADR
≠TST≡≡ALLFLG≡≥ 102716 005737 147734 TST ALLFLG
≠BNE≡≥ 102722 001002 BNE 1$
≠JMP≡≡ALLEX1≡≥ 102724 000137 102276 JMP ALLEX1 ;RETURN TO CONSOLE
≠RTS≡≡PC≡≥ 102730 000207 1$: RTS PC ;ALL, RETURN TO ROUTINE
≡DFLEGA≡≡DFLEGA≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 90
CONS11 PAL[KL,SYS] Page 18 DIAGNOSTIC FUNCTIONS
≥ 102732 104226 .VM: DFLEGAL ;FUNCTION LEGAL ?
≡TTICHR≡≡TTICHR≡≥ 102734 104005 TTICHR
≠BCS≡≡$DPER1≡≥ 102736 103414 BCS $DPER1
≠CMPB≡≡R0≡≥ 102740 122700 000101 CMPB #'A,R0
≠BEQ≡≥ 102744 001404 BEQ 1$
≠CMPB≡≡R0≡≥ 102746 122700 000110 CMPB #'H,R0
≠BEQ≡≡.VMH≡≥ 102752 001410 BEQ .VMH
≠BR≡≡$DPER1≡≥ 102754 000405 BR $DPER1
≡TTITRM≡≡TTITRM≡≥ 102756 104022 1$: TTITRM
≡$ALVMA≠≥ 102760 $ALVMA=.
≤PMSG≡≥ PMSG <VMA/>
≡$PMSG≡≡$PMSG≡≥ 102760 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 102762 145045 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFVMA≡≡DFVMA≡≥ 102764 104124 DFVMA
≠BR≡≡PCVMAP≡≥ 102766 000752 BR PCVMAP
≥
≠JMP≡≡$DFERR≡≥ 102770 000137 102102 $DPER1: JMP $DFERR
≥
≡TTITRM≡≡TTITRM≡≥ 102774 104022 .VMH: TTITRM
≡$ALVMH≠≥ 102776 $ALVMH=.
≤PMSG≡≥ PMSG <VMH/>
≡$PMSG≡≡$PMSG≡≥ 102776 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103000 145052 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFVMAH≡≡DFVMAH≡≥ 103002 104150 DFVMAH
≠BR≡≡PCVMAP≡≥ 103004 000743 BR PCVMAP
≥
≡DFLEGA≡≡DFLEGA≡≥ 103006 104226 .ADB: DFLEGAL ;FUNCTION LEGAL ?
≡TTITRM≡≡TTITRM≡≥ 103010 104022 TTITRM
≤PMSG≡≥ PMSG <ADB/>
≡$PMSG≡≡$PMSG≡≥ 103012 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103014 145057 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFADB≡≡DFADB≡≥ 103016 104125 DFADB
≠BR≡≡PCVMAP≡≥ 103020 000735 BR PCVMAP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 91
CONS11 PAL[KL,SYS] Page 19 DIAGNOSTIC FUNCTIONS
≥ ;PCF COMMAND - PRINT PC FLAGS
≡TTITRM≡≡TTITRM≡≥ 103022 104022 .PCF: TTITRM
≡$ALPCF≠≥ 103024 $ALPCF=.
≠TST≡≡TENRUN≡≥ 103024 005737 147670 TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
≠BEQ≡≥ 103030 001416 BEQ 1$ ;NO, GO AHEAD THEN
≡DFXCTT≡≡DFXCTT≡≥ 103032 104115 DFXCTT
≡CLRRUN≡≡CLRRUN≡≥ 103034 000010 CLRRUN ;CLEAR RUN
≡TDELAY≡≡TDELAY≡≥ 103036 104056 TDELAY ;WAIT FOR HALT LOOP
≡DFXCTT≡≡DFXCTT≡≥ 103040 104115 DFXCTT
≡STPCLK≡≡STPCLK≡≥ 103042 000000 STPCLK ;STOP CLOCK
≠JSR≡≡PC≡≡PCF≡≥ 103044 004737 103106 JSR PC,PCF ;READ AND PRINT PC FLAGS
≡DFXCTT≡≡DFXCTT≡≥ 103050 104115 DFXCTT
≡STRCLK≡≡STRCLK≡≥ 103052 000001 STRCLK ;START CLOCK
≡DFXCTT≡≡DFXCTT≡≥ 103054 104115 DFXCTT
≡SETRUN≡≡SETRUN≡≥ 103056 000011 SETRUN ;SET RUN
≡DFXCTT≡≡DFXCTT≡≥ 103060 104115 DFXCTT
≡CONBUT≡≡CONBUT≡≥ 103062 000012 CONBUT ;SET CONTINUE
≠BR≡≥ 103064 000402 BR 2$
≥
≠JSR≡≡PC≡≡PCF≡≥ 103066 004737 103106 1$: JSR PC,PCF ;READ AND PRINT PC FLAGS
≠TST≡≡ALLFLG≡≥ 103072 005737 147734 2$: TST ALLFLG
≠BNE≡≥ 103076 001002 BNE 3$
≠JMP≡≡ALLEX1≡≥ 103100 000137 102276 JMP ALLEX1 ;PRINT CRLF AND RETURN TO KONSL
≥
≠RTS≡≡PC≡≥ 103104 000207 3$: RTS PC ;ALL, RETURN TO ROUTINE
≥
≤PMSG≡≥ PCF: PMSG <PCF/ >
≡$PMSG≡≡$PMSG≡≥ 103106 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103110 145064 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡PCFTBL≡≡R5≡≥ 103112 012705 103214 MOV #PCFTBL,R5
≠CLR≡≡R4≡≥ 103116 005004 CLR R4 ;R4 ZERO IF THIS IS FIRST FROB TYPED
≠MOVB≡≡R5≡≡R0≡≥ 103120 112500 1$: MOVB (R5)+,R0 ;GET DIAG FUNC FOR NEXT BIT
≠BEQ≡≥ 103122 001433 BEQ 9$ ;BR IF END OF TABLE
≡DFRD≡≡DFRD≡≥ 103124 104116 DFRD ;GET BIT INTO DTE REG
≠MOV≡≡.DAT1≡≡R2≡≥ 103126 017702 054174 MOV @.DAT1,R2 ;BITS 0-3
≠MOV≡≡.DAT2≡≡R1≡≥ 103132 017701 054166 MOV @.DAT2,R1 ;BITS 4-19
≠.REPT≡≥ 000004 .REPT 4
≥ ASL R1
≥ ROL R2
≥ .ENDR ;BITS 0-7 (4.9-4.2) RIGHT ALIGNED IN R2
≠ASL≡≡R1≡≥ 103136 006301 ASL R1
≠ROL≡≡R2≡≥ 103140 006102 ROL R2
≠ASL≡≡R1≡≥ 103142 006301 ASL R1
≠ROL≡≡R2≡≥ 103144 006102 ROL R2
≠ASL≡≡R1≡≥ 103146 006301 ASL R1
≠ROL≡≡R2≡≥ 103150 006102 ROL R2
≠ASL≡≡R1≡≥ 103152 006301 ASL R1
≠ROL≡≡R2≡≥ 103154 006102 ROL R2
≠MOVB≡≡R5≡≡R1≡≥ 103156 112501 MOVB (R5)+,R1 ;GET MASK FOR BIT OF INTEREST
≠BPL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 92
CONS11 PAL[KL,SYS] Page 19.1 DIAGNOSTIC FUNCTIONS
≥ 103160 100002 BPL 2$
≠COM≡≡R2≡≥ 103162 005102 COM R2 ;BIT BACKWARDS IN HARDWARE
≠NEG≡≡R1≡≥ 103164 005401 NEG R1
≠MOV≡≡R5≡≡R0≡≥ 103166 012500 2$: MOV (R5)+,R0 ;GET POINTER TO BIT NAME STRING
≠BIT≡≡R1≡≡R2≡≥ 103170 030102 BIT R1,R2
≠BEQ≡≥ 103172 001406 BEQ 3$
≠TST≡≡R4≡≥ 103174 005704 TST R4 ;IF NOT FIRST, PUT A COMMA, SPACE
≠BEQ≡≥ 103176 001402 BEQ 4$
≡PNTCI≡≡PNTCI≡≥ 103200 104214 PNTCI
≥ 103202 020054 ",
≡PNTAL≡≡PNTAL≡≥ 103204 104024 4$: PNTAL ;BIT IS ON, GIVE NAME
≠INC≡≡R4≡≥ 103206 005204 INC R4
≠BR≡≥ 103210 000743 3$: BR 1$ ;LOOP BACK FOR NEXT BIT
≥
≠RTS≡≡PC≡≥ 103212 000207 9$: RTS PC
≥
≥ ;PC FLAGS TABLE
≥ ;FIRST BYTE IS DIAG FCN, SECOND IS MASK FOR BIT (NEGATIVE => BIT COMPLEMENTED)
≥ ;SECOND WORD -> ASCIZ BIT NAME (Negative means more than 177)
≥
≠.MACRO≡≤PCFTE≠≥ .MACRO PCFTE NAME,DFN,MASK
≥ .LIT $$ZZQ,<.ASCIZ\NAME\>
≥ .BYTE DFN,MASK
≥ .WORD $$ZZQ
≥ .ENDM
≥
≤PCFTE≡≥ PCFTBL: PCFTE OV,131,40
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\OV\>
≡$$CLC≠≥ 103214 $$CLC=.
≡$$CLIT≡≥ 145072 .=$$CLIT
≠.EVEN≡≥ 145072 .EVEN
≡$$ZZQ≠≥ 145072 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\OV\>,0
≠.IIF≡≠.ASCIZ≡≥ 145072 117
≥ 145073 126
≥ 145074 000
≥ .IIF NB <.ASCIZ\OV\>,.ASCIZ\OV\
≠.EVEN≡≥ 145076 .EVEN
≡$$CLIT≠≥ 145076 $$CLIT=.
≡$$CLC≡≥ 103214 .=$$CLC
≠.BYTE≡≥ 103214 131
≥ 103215 040 .BYTE 131,40
≠.WORD≡≡$$ZZQ≡≥ 103216 145072 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE CRY0,131,20
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\CRY0\>
≡$$CLC≠≥ 103220 $$CLC=.
≡$$CLIT≡≥ 145076 .=$$CLIT
≠.EVEN≡≥ 145076 .EVEN
≡$$ZZQ≠≥ 145076 $$ZZQ=.
≠.IIF≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 93
CONS11 PAL[KL,SYS] Page 19.2 DIAGNOSTIC FUNCTIONS
≥ .IIF B <.ASCIZ\CRY0\>,0
≠.IIF≡≠.ASCIZ≡≥ 145076 103
≥ 145077 122
≥ 145100 131
≥ 145101 060
≥ 145102 000
≥ .IIF NB <.ASCIZ\CRY0\>,.ASCIZ\CRY0\
≠.EVEN≡≥ 145104 .EVEN
≡$$CLIT≠≥ 145104 $$CLIT=.
≡$$CLC≡≥ 103220 .=$$CLC
≠.BYTE≡≥ 103220 131
≥ 103221 020 .BYTE 131,20
≠.WORD≡≡$$ZZQ≡≥ 103222 145076 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE CRY1,131,10
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\CRY1\>
≡$$CLC≠≥ 103224 $$CLC=.
≡$$CLIT≡≥ 145104 .=$$CLIT
≠.EVEN≡≥ 145104 .EVEN
≡$$ZZQ≠≥ 145104 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\CRY1\>,0
≠.IIF≡≠.ASCIZ≡≥ 145104 103
≥ 145105 122
≥ 145106 131
≥ 145107 061
≥ 145110 000
≥ .IIF NB <.ASCIZ\CRY1\>,.ASCIZ\CRY1\
≠.EVEN≡≥ 145112 .EVEN
≡$$CLIT≠≥ 145112 $$CLIT=.
≡$$CLC≡≥ 103224 .=$$CLC
≠.BYTE≡≥ 103224 131
≥ 103225 010 .BYTE 131,10
≠.WORD≡≡$$ZZQ≡≥ 103226 145104 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE FOV,132,20
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\FOV\>
≡$$CLC≠≥ 103230 $$CLC=.
≡$$CLIT≡≥ 145112 .=$$CLIT
≠.EVEN≡≥ 145112 .EVEN
≡$$ZZQ≠≥ 145112 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\FOV\>,0
≠.IIF≡≠.ASCIZ≡≥ 145112 106
≥ 145113 117
≥ 145114 126
≥ 145115 000
≥ .IIF NB <.ASCIZ\FOV\>,.ASCIZ\FOV\
≠.EVEN≡≥ 145116 .EVEN
≡$$CLIT≠≥ 145116 $$CLIT=.
≡$$CLC≡≥ 103230 .=$$CLC
≠.BYTE≡≥ 103230 132
≥ 103231 020 .BYTE 132,20
≠.WORD≡≡$$ZZQ≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 94
CONS11 PAL[KL,SYS] Page 19.3 DIAGNOSTIC FUNCTIONS
≥ 103232 145112 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE FPD,130,2
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\FPD\>
≡$$CLC≠≥ 103234 $$CLC=.
≡$$CLIT≡≥ 145116 .=$$CLIT
≠.EVEN≡≥ 145116 .EVEN
≡$$ZZQ≠≥ 145116 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\FPD\>,0
≠.IIF≡≠.ASCIZ≡≥ 145116 106
≥ 145117 120
≥ 145120 104
≥ 145121 000
≥ .IIF NB <.ASCIZ\FPD\>,.ASCIZ\FPD\
≠.EVEN≡≥ 145122 .EVEN
≡$$CLIT≠≥ 145122 $$CLIT=.
≡$$CLC≡≥ 103234 .=$$CLC
≠.BYTE≡≥ 103234 130
≥ 103235 002 .BYTE 130,2
≠.WORD≡≡$$ZZQ≡≥ 103236 145116 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE USER,134,340
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\USER\>
≡$$CLC≠≥ 103240 $$CLC=.
≡$$CLIT≡≥ 145122 .=$$CLIT
≠.EVEN≡≥ 145122 .EVEN
≡$$ZZQ≠≥ 145122 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\USER\>,0
≠.IIF≡≠.ASCIZ≡≥ 145122 125
≥ 145123 123
≥ 145124 105
≥ 145125 122
≥ 145126 000
≥ .IIF NB <.ASCIZ\USER\>,.ASCIZ\USER\
≠.EVEN≡≥ 145130 .EVEN
≡$$CLIT≠≥ 145130 $$CLIT=.
≡$$CLC≡≥ 103240 .=$$CLC
≠.BYTE≡≥ 103240 134
≥ 103241 340 .BYTE 134,340
≠.WORD≡≡$$ZZQ≡≥ 103242 145122 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE IOTUSR,136,4
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\IOTUSR\>
≡$$CLC≠≥ 103244 $$CLC=.
≡$$CLIT≡≥ 145130 .=$$CLIT
≠.EVEN≡≥ 145130 .EVEN
≡$$ZZQ≠≥ 145130 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\IOTUSR\>,0
≠.IIF≡≠.ASCIZ≡≥ 145130 111
≥ 145131 117
≥ 145132 124
≥ 145133 125
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 95
CONS11 PAL[KL,SYS] Page 19.4 DIAGNOSTIC FUNCTIONS
≥ 145134 123
≥ 145135 122
≥ 145136 000
≥ .IIF NB <.ASCIZ\IOTUSR\>,.ASCIZ\IOTUSR\
≠.EVEN≡≥ 145140 .EVEN
≡$$CLIT≠≥ 145140 $$CLIT=.
≡$$CLC≡≥ 103244 .=$$CLC
≠.BYTE≡≥ 103244 136
≥ 103245 004 .BYTE 136,4
≠.WORD≡≡$$ZZQ≡≥ 103246 145130 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE PUBLIC,135,20
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\PUBLIC\>
≡$$CLC≠≥ 103250 $$CLC=.
≡$$CLIT≡≥ 145140 .=$$CLIT
≠.EVEN≡≥ 145140 .EVEN
≡$$ZZQ≠≥ 145140 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\PUBLIC\>,0
≠.IIF≡≠.ASCIZ≡≥ 145140 120
≥ 145141 125
≥ 145142 102
≥ 145143 114
≥ 145144 111
≥ 145145 103
≥ 145146 000
≥ .IIF NB <.ASCIZ\PUBLIC\>,.ASCIZ\PUBLIC\
≠.EVEN≡≥ 145150 .EVEN
≡$$CLIT≠≥ 145150 $$CLIT=.
≡$$CLC≡≥ 103250 .=$$CLC
≠.BYTE≡≥ 103250 135
≥ 103251 020 .BYTE 135,20
≠.WORD≡≡$$ZZQ≡≥ 103252 145140 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE ADB INH,137,40
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\ADB INH\>
≡$$CLC≠≥ 103254 $$CLC=.
≡$$CLIT≡≥ 145150 .=$$CLIT
≠.EVEN≡≥ 145150 .EVEN
≡$$ZZQ≠≥ 145150 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\ADB INH\>,0
≠.IIF≡≠.ASCIZ≡≥ 145150 101
≥ 145151 104
≥ 145152 102
≥ 145153 040
≥ 145154 111
≥ 145155 116
≥ 145156 110
≥ 145157 000
≥ .IIF NB <.ASCIZ\ADB INH\>,.ASCIZ\ADB INH\
≠.EVEN≡≥ 145160 .EVEN
≡$$CLIT≠≥ 145160 $$CLIT=.
≡$$CLC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 96
CONS11 PAL[KL,SYS] Page 19.5 DIAGNOSTIC FUNCTIONS
≥ 103254 .=$$CLC
≠.BYTE≡≥ 103254 137
≥ 103255 040 .BYTE 137,40
≠.WORD≡≡$$ZZQ≡≥ 103256 145150 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE TRP 2,130,40
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\TRP 2\>
≡$$CLC≠≥ 103260 $$CLC=.
≡$$CLIT≡≥ 145160 .=$$CLIT
≠.EVEN≡≥ 145160 .EVEN
≡$$ZZQ≠≥ 145160 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\TRP 2\>,0
≠.IIF≡≠.ASCIZ≡≥ 145160 124
≥ 145161 122
≥ 145162 120
≥ 145163 040
≥ 145164 062
≥ 145165 000
≥ .IIF NB <.ASCIZ\TRP 2\>,.ASCIZ\TRP 2\
≠.EVEN≡≥ 145166 .EVEN
≡$$CLIT≠≥ 145166 $$CLIT=.
≡$$CLC≡≥ 103260 .=$$CLC
≠.BYTE≡≥ 103260 130
≥ 103261 040 .BYTE 130,40
≠.WORD≡≡$$ZZQ≡≥ 103262 145160 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE TRP 1,130,4
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\TRP 1\>
≡$$CLC≠≥ 103264 $$CLC=.
≡$$CLIT≡≥ 145166 .=$$CLIT
≠.EVEN≡≥ 145166 .EVEN
≡$$ZZQ≠≥ 145166 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\TRP 1\>,0
≠.IIF≡≠.ASCIZ≡≥ 145166 124
≥ 145167 122
≥ 145170 120
≥ 145171 040
≥ 145172 061
≥ 145173 000
≥ .IIF NB <.ASCIZ\TRP 1\>,.ASCIZ\TRP 1\
≠.EVEN≡≥ 145174 .EVEN
≡$$CLIT≠≥ 145174 $$CLIT=.
≡$$CLC≡≥ 103264 .=$$CLC
≠.BYTE≡≥ 103264 130
≥ 103265 004 .BYTE 130,4
≠.WORD≡≡$$ZZQ≡≥ 103266 145166 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE FXU,132,10
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\FXU\>
≡$$CLC≠≥ 103270 $$CLC=.
≡$$CLIT≡≥ 145174 .=$$CLIT
≠.EVEN≡≥ 145174 .EVEN
≡$$ZZQ≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 97
CONS11 PAL[KL,SYS] Page 19.6 DIAGNOSTIC FUNCTIONS
≥ 145174 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\FXU\>,0
≠.IIF≡≠.ASCIZ≡≥ 145174 106
≥ 145175 130
≥ 145176 125
≥ 145177 000
≥ .IIF NB <.ASCIZ\FXU\>,.ASCIZ\FXU\
≠.EVEN≡≥ 145200 .EVEN
≡$$CLIT≠≥ 145200 $$CLIT=.
≡$$CLC≡≥ 103270 .=$$CLC
≠.BYTE≡≥ 103270 132
≥ 103271 010 .BYTE 132,10
≠.WORD≡≡$$ZZQ≡≥ 103272 145174 .WORD $$ZZQ
≤PCFTE≡≥ PCFTE DIV,131,2
≤.LIT≡≥ .LIT $$ZZQ,<.ASCIZ\DIV\>
≡$$CLC≠≥ 103274 $$CLC=.
≡$$CLIT≡≥ 145200 .=$$CLIT
≠.EVEN≡≥ 145200 .EVEN
≡$$ZZQ≠≥ 145200 $$ZZQ=.
≠.IIF≡≥ .IIF B <.ASCIZ\DIV\>,0
≠.IIF≡≠.ASCIZ≡≥ 145200 104
≥ 145201 111
≥ 145202 126
≥ 145203 000
≥ .IIF NB <.ASCIZ\DIV\>,.ASCIZ\DIV\
≠.EVEN≡≥ 145204 .EVEN
≡$$CLIT≠≥ 145204 $$CLIT=.
≡$$CLC≡≥ 103274 .=$$CLC
≠.BYTE≡≥ 103274 131
≥ 103275 002 .BYTE 131,2
≠.WORD≡≡$$ZZQ≡≥ 103276 145200 .WORD $$ZZQ
≥ 103300 000000 0
≥
≡TTITRM≡≡TTITRM≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 98
CONS11 PAL[KL,SYS] Page 20 DIAGNOSTIC FUNCTIONS
≥ 103302 104022 .FE: TTITRM
≤PMSGR≡≥ $ALLFE: PMSGR <FE/>
≡$PMSGR≡≡$PMSGR≡≥ 103304 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 103306 145204 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPFE≡≡R4≡≥ 103310 012704 000132 MOV #DPFE,R4
≠BR≡≡FESCP≡≥ 103314 000405 BR FESCP
≥
≡TTITRM≡≡TTITRM≡≥ 103316 104022 .SC: TTITRM
≤PMSGR≡≥ $ALLSC: PMSGR <SC/>
≡$PMSGR≡≡$PMSGR≡≥ 103320 104026 $PMSGR
≡$$CLIT≡≡$$CLIT≡≥ 103322 145210 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DPSC≡≡R4≡≥ 103324 012704 000130 MOV #DPSC,R4
≡DFLEGA≡≡DFLEGA≡≥ 103330 104226 FESCP: DFLEGAL ;FUNCTION LEGAL ?
≠MOV≡≡R4≡≡R0≡≥ 103332 010400 MOV R4,R0
≡DFRD≡≡DFRD≡≥ 103334 104116 DFRD
≥
≠MOV≡≡.DAT2≡≡R3≡≥ 103336 017703 053762 MOV @.DAT2,R3 ;GET LO-ORDER 5 BITS
≠SWAB≡≡R3≡≥ 103342 000303 SWAB R3 ;FROM 7-11 OF DEXWDS
≠BIC≡≡R3≡≥ 103344 042703 177740 BIC #177740,R3
≥
≠MOV≡≡R4≡≡R0≡≥ 103350 010400 MOV R4,R0
≠INC≡≡R0≡≥ 103352 005200 INC R0
≡DFRD≡≡DFRD≡≥ 103354 104116 DFRD
≥
≠MOV≡≡.DAT2≡≡R0≡≥ 103356 017700 053742 MOV @.DAT2,R0 ;GET HI-ORDER 5 BITS
≡SHIFTR≡≡SHIFTR≡≥ 103362 104053 SHIFTR
≥ 103364 000003 3
≠BIC≡≡R0≡≥ 103366 042700 176037 BIC #176037,R0
≠BIS≡≡R3≡≡R0≡≥ 103372 050300 BIS R3,R0 ;COMBINE HI & LO ORDER BITS
≥
≠TSTB≡≡RPTFLG≡≥ 103374 105737 147732 TSTB RPTFLG
≠BNE≡≥ 103400 001003 BNE 1$
≡PNTODT≡≡PNTODT≡≥ 103402 104047 PNTODT
≥ 103404 000004 4
≡PSPACE≡≡PSPACE≡≥ 103406 104032 PSPACE
≠JMP≡≡ALLEXT≡≥ 103410 000137 102262 1$: JMP ALLEXT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 99
CONS11 PAL[KL,SYS] Page 21 DIAGNOSTIC FUNCTIONS
≥ ;PRINT PRIORITY INTERRUPT FUNCTIONS
≥
≡DFLEGA≡≡DFLEGA≡≥ 103414 104226 .PI: DFLEGAL ;FUNCTION LEGAL ?
≡TTITRM≡≡TTITRM≡≥ 103416 104022 TTITRM
≡$ALLPI≠≥ 103420 $ALLPI=.
≠JSR≡≡PC≡≡$ALPIG≡≥ 103420 004737 103452 JSR PC,$ALPIG ;PRINT PI GENS
≠JSR≡≡PC≡≡$ALPIH≡≥ 103424 004737 103504 JSR PC,$ALPIH ;PRINT PI HOLDS
≠JSR≡≡PC≡≡$ALPIO≡≥ 103430 004737 103536 JSR PC,$ALPIO ;PRINT PI ON'S
≠TST≡≡ALLFLG≡≥ 103434 005737 147734 TST ALLFLG
≠BNE≡≥ 103440 001003 BNE 1$
≡PCRLF≡≡PCRLF≡≥ 103442 104031 PCRLF
≠JMP≡≡$KONSL≡≥ 103444 000137 100230 JMP $KONSL
≥
≠RTS≡≡PC≡≥ 103450 000207 1$: RTS PC ;ALL, RETURN TO ROUTINE
≥
≤PMSG≡≥ $ALPIG: PMSG <PI GEN/>
≡$PMSG≡≡$PMSG≡≥ 103452 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103454 145214 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFRDT≡≡DFRDT≡≥ 103456 104140 DFRDT
≡READ1≡≡READ1≡≥ 103460 000101 READ1 ;READ PI GENS
≥ ;FR 101, BITS 11-17
≠MOV≡≡.DAT2≡≡R0≡≥ 103462 017700 053636 $ALPIY: MOV @.DAT2,R0
≡SHIFTR≡≡SHIFTR≡≥ 103466 104053 SHIFTR
≥ 103470 000002 2
≥
≠BIC≡≡R0≡≥ 103472 042700 177600 $ALPIX: BIC #177600,R0 ;DATA IS ONLY 7 BITS
≡PNTODT≡≡PNTODT≡≥ 103476 104047 PNTODT
≥ 103500 000003 3
≠RTS≡≡PC≡≥ 103502 000207 RTS PC
≥
≤PMSG≡≥ $ALPIH: PMSG < PI HOLD/>
≡$PMSG≡≡$PMSG≡≥ 103504 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103506 145224 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFRDT≡≡DFRDT≡≥ 103510 104140 DFRDT
≡READ0≡≡READ0≡≥ 103512 000100 READ0 ;READ PI HOLDS
≠MOV≡≡.DAT2≡≡R0≡≥ 103514 017700 053604 MOV @.DAT2,R0 ;FR 100, BITS 03-09
≠MOV≡≡.DAT1≡≡R1≡≥ 103520 017701 053602 MOV @.DAT1,R1
≠ROR≡≡R1≡≥ 103524 006001 ROR R1
≠ROR≡≡R0≡≥ 103526 006000 ROR R0
≡SHIFTR≡≡SHIFTR≡≥ 103530 104053 SHIFTR
≥ 103532 000011 9.
≠BR≡≡$ALPIX≡≥ 103534 000756 BR $ALPIX
≥
≤PMSG≡≥ $ALPIO: PMSG < PI ON/>
≡$PMSG≡≡$PMSG≡≥ 103536 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103540 145236 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFRDT≡≡DFRDT≡≥ 103542 104140 DFRDT
≡READ0≡≡READ0≡≥ 103544 000100 READ0 ;READ PI ONS
≠BR≡≡$ALPIY≡≥ 103546 000745 BR $ALPIY ;FR 100, BITS 11-17
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 100
CONS11 PAL[KL,SYS] Page 22 DIAGNOSTIC FUNCTIONS
≥ ;PRINT ALL - C-RAM & REGISTERS
≥
≡TTICHR≡≡TTICHR≡≥ 103550 104005 .ALL: TTICHR
≠BCS≡≥ 103552 103410 BCS 1$
≠CMPB≡≡R0≡≥ 103554 122700 000114 CMPB #'L,R0
≠BNE≡≥ 103560 001005 BNE 1$
≡TTITRM≡≡TTITRM≡≥ 103562 104022 TTITRM
≡DFLEGA≡≡DFLEGA≡≥ 103564 104226 DFLEGAL ;FUNCTION LEGAL ?
≡PNTCPU≡≡PNTCPU≡≥ 103566 104132 PNTCPU
≠JMP≡≡$KONSL≡≥ 103570 000137 100230 JMP $KONSL
≠JMP≡≡$DFERR≡≥ 103574 000137 102102 1$: JMP $DFERR ;ERROR
≥
≡SETFLG≡≡SETFLG≡≥ 103600 104055 $PNTCPU:SETFLG
≡ALLFLG≡≡ALLFLG≡≥ 103602 147734 ALLFLG ;SET ALL FLAG
≤PUSH≡≥ PUSH RPTFLG
≠.NLIST≡≠.IRP≡≠MOV≡≡RPTFLG≡≡SP≡≠.LIST≡≠CLR≡≡RPTFLG≡≥ 103610 005037 147732 CLR RPTFLG
≥
≠JSR≡≡PC≡≡$ALLEC≡≥ 103614 004737 126274 JSR PC,$ALLEC ;PRINT C-RAM
≥
≠JSR≡≡PC≡≡$ALLAR≡≥ 103620 004737 102414 JSR PC,$ALLAR ;PRINT AR
≠JSR≡≡PC≡≡$ALLBR≡≥ 103624 004737 102526 JSR PC,$ALLBR ;PRINT BR
≠JSR≡≡PC≡≡$ALLAD≡≥ 103630 004737 102464 JSR PC,$ALLAD ;PRINT ADDER
≠JSR≡≡PC≡≡$ALLSC≡≥ 103634 004737 103320 JSR PC,$ALLSC ;PRINT SC
≠JSR≡≡PC≡≡$ALLPC≡≥ 103640 004737 102642 JSR PC,$ALLPC ;PRINT PC
≡PCRLF≡≡PCRLF≡≥ 103644 104031 PCRLF
≥
≠JSR≡≡PC≡≡$ALARX≡≥ 103646 004737 102430 JSR PC,$ALARX ;PRINT ARX
≠JSR≡≡PC≡≡$ALBRX≡≥ 103652 004737 102542 JSR PC,$ALBRX ;PRINT BRX
≠JSR≡≡PC≡≡$ALADX≡≥ 103656 004737 102500 JSR PC,$ALADX ;PRINT ADX
≠JSR≡≡PC≡≡$ALLFE≡≥ 103662 004737 103304 JSR PC,$ALLFE ;PRINT FE
≠JSR≡≡PC≡≡$ALVMA≡≥ 103666 004737 102760 JSR PC,$ALVMA ;PRINT VMA
≡PCRLF≡≡PCRLF≡≥ 103672 104031 PCRLF
≥
≠JSR≡≡PC≡≡$ALLMQ≡≥ 103674 004737 102306 JSR PC,$ALLMQ ;PRINT MQ
≠JSR≡≡PC≡≡$ALLFM≡≥ 103700 004737 102324 JSR PC,$ALLFM ;PRINT FM
≠JSR≡≡PC≡≡$ALLEB≡≥ 103704 004737 102570 JSR PC,$ALLEB ;PRINT EBUS REGISTER
≠JSR≡≡PC≡≡$ALVMH≡≥ 103710 004737 102776 JSR PC,$ALVMH ;PRINT VMA HELD
≡PCRLF≡≡PCRLF≡≥ 103714 104031 PCRLF
≥
≠JSR≡≡PC≡≡$ALPIG≡≥ 103716 004737 103452 JSR PC,$ALPIG ;PRINT PI GENS
≠JSR≡≡PC≡≡$ALPIH≡≥ 103722 004737 103504 JSR PC,$ALPIH ;PRINT PI HOLDS
≠JSR≡≡PC≡≡$ALPIO≡≥ 103726 004737 103536 JSR PC,$ALPIO ;PRINT PI ON'S
≤POP≡≥ POP RPTFLG
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡RPTFLG≡≠.LIST≡≡PCRLF≡≡PCRLF≡≥ 103736 104031 PCRLF
≠CLR≡≡ALLFLG≡≥ 103740 005037 147734 CLR ALLFLG
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 103744 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 101
CONS11 PAL[KL,SYS] Page 23 PDP-10 START/STOP FUNCTIONS
≥ .SBTTL PDP-10 START/STOP FUNCTIONS
≥
≥ ;THESE REQUIRE STANDARD MICROCODE TO DO ANYTHING WORTHWHILE!
≥
≥ ;STOP PDP-10, CLEAR RUN FLOP
≥
≡TTITRM≡≡TTITRM≡≥ 103750 104022 $SP: TTITRM
≡TENSP≡≡TENSP≡≥ 103752 104077 TENSP ;STOP TEN
≠BCC≡≥ 103754 103002 BCC 1$
≠JMP≡≡.XCTER≡≥ 103756 000137 104566 JMP .XCTER ;DID NOT STOP PROPERLY
≠CLR≡≡PRGRUN≡≥ 103762 005037 147614 1$: CLR PRGRUN
≤PMSG≡≥ PMSG <\KL10 STOPPED >
≡$PMSG≡≡$PMSG≡≥ 103766 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 103770 145246 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡PC≡≡$ALSTA≡≥ 103772 004737 107732 JSR PC,$ALSTA ;PRINT PC,VMA,PI,PCF AND A CRLF
≠BR≡≡$RNX≡≥ 103776 000443 BR $RNX ;HOPE ENOUGH DELAY BUILT IN
≥
≥ ;CONTINUE PDP-10 FROM OLD PC. ASSUME CLOCK MAY BE OFF
≥
≡TTITRM≡≡TTITRM≡≥ 104000 104022 $RN: TTITRM
≥
≠CLR≡≡CLKPE≡≥ 104002 005037 157264 $RNN: CLR CLKPE ;CLEAR CLOCK PARITY ENABLES
≠MOV≡≡R2≡≥ 104006 012702 000020 MOV #20,R2
≠MOV≡≡PEBITS≡≡R1≡≥ 104012 013701 157262 MOV PEBITS,R1 ;GET ENABLE BITS
≠BEQ≡≥ 104016 001410 BEQ 2$ ;NOT ENABLED
≠BIT≡≡R2≡≡R1≡≥ 104020 030201 BIT R2,R1 ;AR/ARX PARITY ENABLED ?
≠BEQ≡≥ 104022 001403 BEQ 1$ ;NO
≠BIS≡≡CLKPE≡≥ 104024 052737 000002 157264 BIS #2,CLKPE ;YES, SET ENABLE BIT
≠BIS≡≡CLKPE≡≥ 104032 052737 000001 157264 1$: BIS #1,CLKPE ;SET CLOCK STOP ENABLE
≥
≡DFWRTT≡≡DFWRTT≡≥ 104040 104141 2$: DFWRTT
≡CLKPE≡≡CLKPE≡≥ 104042 157264 CLKPE
≡LDCHK2≡≡LDCHK2≡≥ 104044 000047 LDCHK2 ;LOAD ENABLE FUNCTION REGISTER
≥
≠BIC≡≡R2≡≡R1≡≥ 104046 040201 3$: BIC R2,R1
≠MOV≡≡R1≡≡CLKPE≡≥ 104050 010137 157264 MOV R1,CLKPE ;SETUP FM,CRAM,DRAM, FS
≡DFWRTT≡≡DFWRTT≡≥ 104054 104141 DFWRTT
≡CLKPE≡≡CLKPE≡≥ 104056 157264 CLKPE
≡LDCHK1≡≡LDCHK1≡≥ 104060 000046 LDCHK1 ;LOAD CONDITION ENABLE REGISTER
≥
≡DFXCTT≡≡DFXCTT≡≥ 104062 104115 DFXCTT ;GET CLOCK RUNNING
≡STRCLK≡≡STRCLK≡≥ 104064 000001 STRCLK
≡DFXCTT≡≡DFXCTT≡≥ 104066 104115 DFXCTT ;SET RUN AND LET 'ER GO
≡SETRUN≡≡SETRUN≡≥ 104070 000011 SETRUN
≡DFXCTT≡≡DFXCTT≡≥ 104072 104115 DFXCTT ;SET CONTINUE BUTTON
≡CONBUT≡≡CONBUT≡≥ 104074 000012 CONBUT
≡SETFLG≡≡SETFLG≡≥ 104076 104055 SETFLG
≡TENRUN≡≡TENRUN≡≥ 104100 147670 TENRUN ;SET TEN RUN FLAG
≡SETFLG≡≡SETFLG≡≥ 104102 104055 SETFLG
≡PRGRUN≡≡PRGRUN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 102
CONS11 PAL[KL,SYS] Page 23.1 PDP-10 START/STOP FUNCTIONS
≥ 104104 147614 PRGRUN ;SET PROGRAM RUNNING FLAG
≠JMP≡≡$KONSL≡≥ 104106 000137 100230 $RNX: JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 103
CONS11 PAL[KL,SYS] Page 24 PDP-10 START/STOP FUNCTIONS
≥ ;START PDP-10 DDT
≥
≡TTISDL≡≡TTISDL≡≥ 104112 104016 $DDTX: TTISDL
≠BCS≡≥ 104114 103402 BCS 1$ ;NON-NUMBER
≠JMP≡≡$DD≡≥ 104116 000137 127046 JMP $DD ;NUMBER, MUST BE FOR D-RAM
≥
≠CMPB≡≡R0≡≥ 104122 122700 000124 1$: CMPB #'T,R0
≠BEQ≡≥ 104126 001402 BEQ 2$ ;"DDT", START PDP-10 AT "DDTSRT"
≠JMP≡≡$DFERR≡≥ 104130 000137 102102 JMP $DFERR
≥
≡TTITRM≡≡TTITRM≡≥ 104134 104022 2$: TTITRM
≡DFLEGA≡≡DFLEGA≡≥ 104136 104226 DFLEGAL ;DON'T DO THIS IF ALREADY RUNNING
≠MOV≡≡TDDT≡≡$$STJR≡≥ 104140 013737 100070 157222 MOV TDDT,$$STJRS ;SETUP JRST INSTRUCTION
≠MOVB≡≡TDDT≡≡$$STJR≡≥ 104146 113737 100072 157224 MOVB TDDT+2,$$STJRS+2
≥ ;CAN'T ENTER DDT WHILE IN USER MODE.
≡DFRDT≡≡DFRDT≡≥ 104154 104140 DFRDT
≥ 104156 000134 134
≠BIT≡≡.DAT1≡≥ 104160 032777 000002 053140 BIT #2,@.DAT1
≠BNE≡≥ 104166 001004 BNE 3$ ;BRANCH IF IN EXEC MODE
≤PMSG≡≥ PMSG <?Can't. KL10 in USER mode.>
≡$PMSG≡≡$PMSG≡≥ 104170 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 104172 145265 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 104174 000137 100004 JMP $CNTLC
≥
≠CLR≡≡TENTTY≡≥ 104200 005037 150022 3$: CLR TENTTY
≠MOV≡≡$$STJR≡≡R0≡≥ 104204 012700 157222 MOV #$$STJRS,R0
≡EXCT≡≡EXCT≡≥ 104210 104101 EXCT ;EXECUTE JRST TO START DDT
≠BCC≡≡$RNN≡≥ 104212 103273 BCC $RNN ;GO SAY -10 IS RUNNING
≠JMP≡≡.XCTER≡≥ 104214 000137 104566 $DDTER: JMP .XCTER ;OR BARF IF MICRO CODE IS HUNG
≥
≥ ;SINGLE INSTRUCT PDP-10. ASSUME CLOCK IS RUNNING AND RUN IS SET
≥
≡TENSP≡≡TENSP≡≥ 104220 104077 $SI: TENSP ;STOP TEN
≠BCS≡≡$DDTER≡≥ 104222 103774 BCS $DDTER ;DID NOT STOP PROPERLY
≠CLR≡≡R5≡≥ 104224 005005 CLR R5
≡TTISDL≡≡TTISDL≡≥ 104226 104016 TTISDL
≠BCS≡≥ 104230 103412 BCS 4$ ;NON-NUMBER
≡TTIDEC≡≡TTIDEC≡≥ 104232 104011 TTIDEC
≠BCS≡≥ 104234 103401 BCS 2$ ;NO ARG, DO ONCE
≠MOV≡≡R0≡≡R5≡≥ 104236 010005 MOV R0,R5
≡DFXCTT≡≡DFXCTT≡≥ 104240 104115 2$: DFXCTT ;PRESS CONTINUE PULSER
≡CONBUT≡≡CONBUT≡≥ 104242 000012 CONBUT
≡TDELAY≡≡TDELAY≡≥ 104244 104056 TDELAY ;SMALL TIME DELAY
≠DEC≡≡R5≡≥ 104246 005305 DEC R5 ;COMPLETED REQUESTED INSTRUCTIONS ?
≠BGT≡≥ 104250 003373 BGT 2$
≠JMP≡≡$KONSL≡≥ 104252 000137 100230 JMP $KONSL ;YES, RETURN TO CONSOLE
≥
≠CMPB≡≡R0≡≥ 104256 122700 000120 4$: CMPB #'P,R0
≠BNE≡≥ 104262 001366 BNE 2$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 104
CONS11 PAL[KL,SYS] Page 24.1 PDP-10 START/STOP FUNCTIONS
≥
≡TTITRM≡≡TTITRM≡≥ 104264 104022 5$: TTITRM ;"SIP",SINGLE INSTRUCT AND PRINT
≡DFXCTT≡≡DFXCTT≡≥ 104266 104115 DFXCTT ;STOP CLOCK
≡STPCLK≡≡STPCLK≡≥ 104270 000000 STPCLK
≠JMP≡≡SIPNT≡≥ 104272 000137 104466 JMP SIPNT ;REST SAME AS LAST OF "EXP"
≥
≥ ;DIAGNOSTIC FUNCTION LEGALITY CHECK
≥
≠TST≡≡TENRUN≡≥ 104276 005737 147670 $DFLEGAL:TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
≠BNE≡≥ 104302 001002 BNE 1$ ;YES, OPERATION ILLEGAL, ABORT
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 104304 000137 124064 JMP $EXIT
≤PMSG≡≥ 1$: PMSG <?KL10 RUNNING, TYPE "SP" FIRST>
≡$PMSG≡≡$PMSG≡≥ 104310 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 104312 145320 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$$$CC≡≥ 104314 000137 100624 JMP $$$CC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 105
CONS11 PAL[KL,SYS] Page 25 PDP-10 START/STOP FUNCTIONS
≥ ;PULSE THE E-BOX CLOCK
≥
≡DFLEGA≡≡DFLEGA≡≥ 104320 104226 .PL: DFLEGAL ;FUNCTION LEGAL ?
≠CLR≡≡TENCLK≡≥ 104322 005037 152216 CLR TENCLK ;TURN OFF CLOCK IF ON
≡TTISDL≡≡TTISDL≡≥ 104326 104016 TTISDL
≠BCS≡≥ 104330 103404 BCS 1$ ;NO ARG, DO ONCE
≡TTIDEC≡≡TTIDEC≡≥ 104332 104011 TTIDEC
≠BCS≡≥ 104334 103402 BCS 1$ ;DO ONCE ANYWAY
≠MOV≡≡R0≡≡R1≡≥ 104336 010001 MOV R0,R1 ;SAVE PULSE COUNT
≠BR≡≥ 104340 000401 BR 2$
≠CLR≡≡R1≡≥ 104342 005001 1$: CLR R1
≡ECLOK≡≡ECLOK≡≥ 104344 104135 2$: ECLOK
≠BCC≡≥ 104346 103002 BCC 3$
≠JSR≡≡R1≡≡$ECTIM≡≥ 104350 004137 141100 JSR R1,$ECTIM
≠DEC≡≡R1≡≥ 104354 005301 3$: DEC R1 ;DONE REQUESTED CLOCKS ?
≠BGT≡≥ 104356 003372 BGT 2$ ;NOT YET
≠JMP≡≡$KONSL≡≥ 104360 000137 100230 .PLX: JMP $KONSL
≥
≥ ;START MICROCODE IDLE.
≥ ;SUPPORT EXAMINE, DEPOSIT, AND EXECUTE OPERATIONS.
≥
≡TTITRM≡≡TTITRM≡≥ 104364 104022 .SM: TTITRM
≡SM≡≡SM≡≥ 104366 104100 SM ;DO THE EMT
≠BCS≡≡.XCTER≡≥ 104370 103476 BCS .XCTER
≠BR≡≡.PLX≡≥ 104372 000772 BR .PLX
≥
≥ ;CACHE INVALIDATE
≥
≠MOV≡≡$$CI≡≡R0≡≥ 104374 012700 104420 .CI: MOV #$$CI,R0
≥
≡TTITRM≡≡TTITRM≡≥ 104400 104022 .CIF: TTITRM
≡DFLEGA≡≡DFLEGA≡≥ 104402 104226 DFLEGAL ;FUNCTION LEGAL ?
≡EXCT≡≡EXCT≡≥ 104404 104101 EXCT
≠BCS≡≡.XCTER≡≥ 104406 103467 BCS .XCTER ;FAILED
≠BR≡≡.PLX≡≥ 104410 000763 BR .PLX ;OK, RETURN TO CONSOLE
≥
≥ ;CACHE FLUSH
≥
≠MOV≡≡$$CF≡≡R0≡≥ 104412 012700 104425 .CF: MOV #$$CF,R0
≠BR≡≡.CIF≡≥ 104416 000770 BR .CIF
≥
≤IO10≡≥ $$CI: IO10 DATAI,CCA,,0 ;INVALIDATE WITHOUT CORE UPDATE
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 106
CONS11 PAL[KL,SYS] Page 25.1 PDP-10 START/STOP FUNCTIONS
≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,0
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡DATAI≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡CCA≡≡DATAI≡≡CCA≡≠.LIST≡≤IO10≡≥ $$CF: IO10 BLKO,CCA,,0 ;SWEEP CACHE, VALIDATING CORE
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,0
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡BLKO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡CCA≡≡BLKO≡≡CCA≡≠.LIST≡≠.EVEN≡≥ 104432 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 107
CONS11 PAL[KL,SYS] Page 26 PDP-10 START/STOP FUNCTIONS
≥ ;EXECUTE A PDP10 INSTRUCTION.
≥
≡TENSP≡≡TENSP≡≥ 104432 104077 .XCT: TENSP ;STOP TEN
≠BCS≡≡.XCTER≡≥ 104434 103454 BCS .XCTER ;DID NOT STOP PROPERLY
≥
≡TTISDL≡≡TTISDL≡≥ 104436 104016 TTISDL
≠BCS≡≥ 104440 103404 BCS 1$ ;NON-NUMBER
≥
≡TTIS36≡≡TTIS36≡≥ 104442 104020 TTIS36
≥
≡EXCT≡≡EXCT≡≥ 104444 104101 EXCT
≠BCS≡≡.XCTER≡≥ 104446 103447 BCS .XCTER
≥
≠BR≡≡.XCT2≡≥ 104450 000433 BR .XCT2
≥
≠CMPB≡≡R0≡≥ 104452 122700 000120 1$: CMPB #'P,R0 ;"EXP" = EXECUTE & PRINT
≠BNE≡≡.XCT1≡≥ 104456 001032 BNE .XCT1
≥
≡TTIS36≡≡TTIS36≡≥ 104460 104020 TTIS36
≥
≡LODAR≡≡LODAR≡≥ 104462 104102 LODAR ;LOAD INTO AR
≠BCS≡≡.XCTER≡≥ 104464 103440 BCS .XCTER
≥
≡SIPNT≠≥ 104466 SIPNT=.
≡PNORML≡≡PNORML≡≥ 104466 104044 PNORML
≡DFXCTT≡≡DFXCTT≡≥ 104470 104115 DFXCTT ;SET CONTINUE BUTTON
≡CONBUT≡≡CONBUT≡≥ 104472 000012 CONBUT
≥
≡ECLOK≡≡ECLOK≡≥ 104474 104135 2$: ECLOK ;CLOCK TO GET STARTED
≠BCC≡≥ 104476 103002 BCC 3$
≠JSR≡≡R1≡≡$ECTIM≡≥ 104500 004137 141100 JSR R1,$ECTIM
≥
≠BIT≡≡HALTLP≡≡.DIAG1≡≥ 104504 032777 001000 052636 3$: BIT #HALTLP,@.DIAG1
≠BNE≡≥ 104512 001370 BNE 2$ ;TILL WE LEAVE HALT LOOP
≡PNTCPU≡≡PNTCPU≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 108
CONS11 PAL[KL,SYS] Page 27 PDP-10 START/STOP FUNCTIONS
≥ 104514 104132 PNTCPU ;PRINT C-RAM & REGISTERS
≥
≡ECLOK≡≡ECLOK≡≥ 104516 104135 4$: ECLOK ;CLOCK
≠BCC≡≥ 104520 103002 BCC 5$
≠JSR≡≡R1≡≡$ECTIM≡≥ 104522 004137 141100 JSR R1,$ECTIM
≥
≡PNTCPU≡≡PNTCPU≡≥ 104526 104132 5$: PNTCPU ;& PRINT TILL BACK TO HALT LOOP
≥
≠BIT≡≡HALTLP≡≡.DIAG1≡≥ 104530 032777 001000 052612 BIT #HALTLP,@.DIAG1
≠BEQ≡≥ 104536 001767 BEQ 4$
≥
≠JMP≡≡$KONSL≡≥ 104540 000137 100230 .XCT2: JMP $KONSL
≥
≠CMPB≡≡R0≡≥ 104544 122700 000124 .XCT1: CMPB #'T,R0 ;"EXT" = EXECUTE & TRACE SETUP
≠BNE≡≡.CNSER≡≥ 104550 001012 BNE .CNSER
≥
≡TTIS36≡≡TTIS36≡≥ 104552 104020 TTIS36
≥
≡LODAR≡≡LODAR≡≥ 104554 104102 LODAR ;LOAD INTO AR
≠BCS≡≡.XCTER≡≥ 104556 103403 BCS .XCTER
≥
≡DFXCTT≡≡DFXCTT≡≥ 104560 104115 DFXCTT ;SET CONTINUE BUTTON
≡CONBUT≡≡CONBUT≡≥ 104562 000012 CONBUT
≥
≠BR≡≡.XCT2≡≥ 104564 000765 BR .XCT2
≥
≤PMSG≡≥ .XCTER: PMSG <?UCODE HUNG>
≡$PMSG≡≡$PMSG≡≥ 104566 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 104570 145357 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 104572 000137 100004 JMP $CNTLC
≥
≠JMP≡≡$DFERR≡≥ 104576 000137 102102 .CNSER: JMP $DFERR
≥
≥ ;BURST THE KL10 CLOCK
≥
≡DFLEGA≡≡DFLEGA≡≥ 104602 104226 .BU: DFLEGAL ;FUNCTION LEGAL ?
≠CLR≡≡TENCLK≡≥ 104604 005037 152216 CLR TENCLK ;TURN OFF CLOCKK IF ON
≡TTISDL≡≡TTISDL≡≥ 104610 104016 TTISDL
≠BCS≡≥ 104612 103404 BCS 2$ ;NO ARG, DO ONCE
≡TTIDEC≡≡TTIDEC≡≥ 104614 104011 TTIDEC
≠BCS≡≥ 104616 103402 BCS 2$ ;DO ONCE ANYWAY
≡BURST≡≡BURST≡≥ 104620 104131 1$: BURST ;PERFORM BURST
≠BR≡≡.XCT2≡≥ 104622 000746 BR .XCT2
≠MOV≡≡R0≡≥ 104624 012700 000001 2$: MOV #1,R0 ;DO ONE BURST
≠BR≡≥ 104630 000773 BR 1$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 109
CONS11 PAL[KL,SYS] Page 28 PDP-10 START/STOP FUNCTIONS
≥ ;SELECT CLOCK SOURCE
≥
≡TTISDL≡≡TTISDL≡≥ 104632 104016 .CS: TTISDL
≠BCC≡≥ 104634 103012 BCC 1$
≠MOV≡≡CLKDFL≡≡R0≡≥ 104636 013700 157246 MOV CLKDFL,R0
≤SR≡≥ SR R0,2
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠.LIST≡≡.CSR≠≥ 104646 .CSR=.
≠BIC≡≡R0≡≥ 104646 042700 177774 BIC #177774,R0
≡PNTNBR≡≡PNTNBR≡≥ 104652 104030 PNTNBR
≡PCRLF≡≡PCRLF≡≥ 104654 104031 PCRLF
≠JMP≡≡$CONSL≡≥ 104656 000137 100014 JMP $CONSL
≥
≡TTISDO≡≡TTISDO≡≥ 104662 104017 1$: TTISDO
≠CMP≡≡R0≡≥ 104664 020027 000002 CMP R0,#2
≠BGT≡≡.CSRER≡≥ 104670 003022 BGT .CSRER
≥
≡SHIFTL≡≡SHIFTL≡≥ 104672 104054 SHIFTL
≥ 104674 000002 2
≠BIC≡≡CLKDFL≡≥ 104676 042737 000014 157246 BIC #14,CLKDFL ;CLEAR OLD SOURCE
≠BIS≡≡R0≡≡CLKDFL≡≥ 104704 050037 157246 .CCMN1: BIS R0,CLKDFL ;SET NEW SOURCE
≡DFLEGA≡≡DFLEGA≡≥ 104710 104226 .CCMN: DFLEGAL ;FUNCTION LEGAL ?
≠TST≡≡TENRUN≡≥ 104712 005737 147670 TST TENRUN
≠BEQ≡≥ 104716 001402 BEQ 1$
≡TENSP≡≡TENSP≡≥ 104720 104077 TENSP ;STOP TEN
≠BCS≡≡.XCTER≡≥ 104722 103721 BCS .XCTER ;DID NOT STOP PROPERLY
≡DFWRTT≡≡DFWRTT≡≥ 104724 104141 1$: DFWRTT ;WRITE TO CLOCK
≡CLKDFL≡≡CLKDFL≡≥ 104726 157246 CLKDFL
≡LDSEL≡≡LDSEL≡≥ 104730 000044 LDSEL
≠JMP≡≡$KONSL≡≥ 104732 000137 100230 JMP $KONSL
≥
≠JMP≡≡$PARA≡≥ 104736 000137 113356 .CSRER: JMP $PARA
≥
≥ ;SELECT CLOCK RATE
≥
≡TTISDL≡≡TTISDL≡≥ 104742 104016 .CR: TTISDL
≠BCC≡≥ 104744 103003 BCC 1$
≠MOV≡≡CLKDFL≡≡R0≡≥ 104746 013700 157246 MOV CLKDFL,R0
≠BR≡≡.CSR≡≥ 104752 000735 BR .CSR
≥
≡TTISDO≡≡TTISDO≡≥ 104754 104017 1$: TTISDO
≠CMP≡≡R0≡≥ 104756 020027 000003 CMP R0,#3
≠BGT≡≡.CSRER≡≥ 104762 003365 BGT .CSRER
≥
≠BIC≡≡CLKDFL≡≥ 104764 042737 000003 157246 BIC #3,CLKDFL ;CLEAR OLD RATE
≠BR≡≡.CCMN1≡≥ 104772 000744 BR .CCMN1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 110
CONS11 PAL[KL,SYS] Page 29 PDP-10 START/STOP FUNCTIONS
≥ ;PROCESSOR PARITY DISABLE
≥
≡TTITRM≡≡TTITRM≡≥ 104774 104022 .PD: TTITRM
≠CLR≡≡PEBITS≡≥ 104776 005037 157262 CLR PEBITS ;CLEAR PARITY ENABLE BITS
≠JMP≡≡$CONSL≡≥ 105002 000137 100014 JMP $CONSL
≥
≥ ;PARITY ENABLED AND CLOCK ERROR STOP MESSAGES
≥
≠.ASCIZ≡≥ 105006 054
≥ 105007 040
≥ 105010 101
≥ 105011 122
≥ 105012 057
≥ 105013 101
≥ 105014 122
≥ 105015 130
≥ 105016 000
≥ $PEAR: .ASCIZ %, AR/ARX%
≠.ASCIZ≡≥ 105017 054
≥ 105020 040
≥ 105021 106
≥ 105022 115
≥ 105023 040
≥ 105024 120
≥ 105025 101
≥ 105026 122
≥ 105027 111
≥ 105030 124
≥ 105031 131
≥ 105032 000
≥ $PEFM: .ASCIZ %, FM PARITY%
≠.ASCIZ≡≥ 105033 054
≥ 105034 040
≥ 105035 103
≥ 105036 122
≥ 105037 101
≥ 105040 115
≥ 105041 040
≥ 105042 120
≥ 105043 101
≥ 105044 122
≥ 105045 111
≥ 105046 124
≥ 105047 131
≥ 105050 000
≥ $PECR: .ASCIZ %, CRAM PARITY%
≠.ASCIZ≡≥ 105051 054
≥ 105052 040
≥ 105053 104
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 111
CONS11 PAL[KL,SYS] Page 29.1 PDP-10 START/STOP FUNCTIONS
≥ 105054 122
≥ 105055 101
≥ 105056 115
≥ 105057 040
≥ 105060 120
≥ 105061 101
≥ 105062 122
≥ 105063 111
≥ 105064 124
≥ 105065 131
≥ 105066 000
≥ $PEDR: .ASCIZ %, DRAM PARITY%
≠.ASCIZ≡≥ 105067 054
≥ 105070 040
≥ 105071 106
≥ 105072 123
≥ 105073 040
≥ 105074 120
≥ 105075 122
≥ 105076 117
≥ 105077 102
≥ 105100 105
≥ 105101 000
≥ $PEFS: .ASCIZ %, FS PROBE%
≠.EVEN≡≥ 105102 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 112
CONS11 PAL[KL,SYS] Page 30 PDP-10 START/STOP FUNCTIONS
≥ ;PROCESSOR PARITY ENABLE
≥
≥ ;PARITY ENABLE BITS ARE CODED AS FOLLOWS:
≥ ; AR/ARX, FM, CRAM, DRAM, FS
≥ ; 0 = PARITY DISABLED
≥ ; 37 WOULD = ALL ENABLED
≥
≡TTISDL≡≡TTISDL≡≥ 105102 104016 .PE: TTISDL
≠BCC≡≥ 105104 103043 BCC 1$
≥
≤PMSG≡≥ 20$: PMSG <ENABLED: >
≡$PMSG≡≡$PMSG≡≥ 105106 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105110 145373 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡PEBITS≡≡R1≡≥ 105112 013701 157262 MOV PEBITS,R1 ;PRINT PARITY ENABLE BITS
≠MOV≡≡R1≡≡R0≡≥ 105116 010100 MOV R1,R0
≡PNTODT≡≡PNTODT≡≥ 105120 104047 PNTODT
≥ 105122 000002 2
≠BIT≡≡R1≡≥ 105124 032701 000020 10$: BIT #20,R1
≠BEQ≡≥ 105130 001402 BEQ 11$
≡$PMSG≡≡$PMSG≡≥ 105132 104025 $PMSG
≡$PEAR≡≡$PEAR≡≥ 105134 105006 $PEAR ;AR/ARX PAGE FAIL
≠BIT≡≡R1≡≥ 105136 032701 000010 11$: BIT #10,R1
≠BEQ≡≥ 105142 001402 BEQ 12$
≡$PMSG≡≡$PMSG≡≥ 105144 104025 $PMSG
≡$PEFM≡≡$PEFM≡≥ 105146 105017 $PEFM ;FM PARITY
≠BIT≡≡R1≡≥ 105150 032701 000004 12$: BIT #4,R1
≠BEQ≡≥ 105154 001402 BEQ 13$
≡$PMSG≡≡$PMSG≡≥ 105156 104025 $PMSG
≡$PECR≡≡$PECR≡≥ 105160 105033 $PECR ;CRAM PARITY
≠BIT≡≡R1≡≥ 105162 032701 000002 13$: BIT #2,R1
≠BEQ≡≥ 105166 001402 BEQ 14$
≡$PMSG≡≡$PMSG≡≥ 105170 104025 $PMSG
≡$PEDR≡≡$PEDR≡≥ 105172 105051 $PEDR ;DRAM PARITY
≠BIT≡≡R1≡≥ 105174 032701 000001 14$: BIT #1,R1
≠BEQ≡≥ 105200 001402 BEQ 15$
≡$PMSG≡≡$PMSG≡≥ 105202 104025 $PMSG
≡$PEFS≡≡$PEFS≡≥ 105204 105067 $PEFS ;FS PROBE
≡PCRLF≡≡PCRLF≡≥ 105206 104031 15$: PCRLF
≠JMP≡≡$CONSL≡≥ 105210 000137 100014 3$: JMP $CONSL
≥
≡TTISDO≡≡TTISDO≡≥ 105214 104017 1$: TTISDO
≠CMP≡≡R0≡≥ 105216 020027 000037 CMP R0,#37
≠BGT≡≡.CSRER≡≥ 105222 003245 BGT .CSRER
≠MOV≡≡R0≡≡PEBITS≡≥ 105224 010037 157262 MOV R0,PEBITS ;SAVE
≠BR≡≥ 105230 000726 BR 20$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 113
CONS11 PAL[KL,SYS] Page 31 PDP-10 START/STOP FUNCTIONS
≥ ;MICRO-CODE SYNC MARK ROUTINES
≥
≠MOV≡≡R5≡≥ 105232 012705 777777 .MU: MOV #-1,R5 ;MICRO UNMARK
≠BR≡≡.MMC≡≥ 105236 000401 BR .MMC
≥
≠CLR≡≡R5≡≥ 105240 005005 .MM: CLR R5 ;MICRO MARK
≥
≡DFLEGA≡≡DFLEGA≡≥ 105242 104226 .MMC: DFLEGAL ;FUNCTION LEGAL ?
≡TTICRA≡≡TTICRA≡≥ 105244 104021 TTICRA ;GET C-RAM ADDRESS
≠MOV≡≡R0≡≡$ECADR≡≥ 105246 010037 147724 MOV R0,$ECADR
≥
≡RCRAM≡≡RCRAM≡≥ 105252 104074 RCRAM ;READ C-RAM
≥
≠TST≡≡R5≡≥ 105254 005705 TST R5
≠BNE≡≥ 105256 001004 BNE 3$
≠BIS≡≡R0≡≥ 105260 052760 000020 000004 BIS #20,4(R0) ;SET MARK BIT
≠BR≡≡.MMX≡≥ 105266 000403 BR .MMX
≠BIC≡≡R0≡≥ 105270 042760 000020 000004 3$: BIC #20,4(R0) ;CLEAR MARK BIT
≥
≠MOV≡≡R0≡≡R1≡≥ 105276 010001 .MMX: MOV R0,R1
≠MOV≡≡$ECADR≡≡R0≡≥ 105300 013700 147724 MOV $ECADR,R0
≡WCRAM≡≡WCRAM≡≥ 105304 104073 WCRAM ;WRITE C-RAM BACK
≠JMP≡≡$KONSL≡≥ 105306 000137 100230 JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 114
CONS11 PAL[KL,SYS] Page 32 PDP-10 START/STOP FUNCTIONS
≥ ;MICRO-CODE TIME FIELD CHANGE ROUTINE
≥
≡DFLEGA≡≡DFLEGA≡≥ 105312 104226 .MT: DFLEGAL ;FUNCTION LEGAL ?
≡TTICRA≡≡TTICRA≡≥ 105314 104021 TTICRA
≠MOV≡≡R0≡≡$ECADR≡≥ 105316 010037 147724 MOV R0,$ECADR
≥
≡TTISDO≡≡TTISDO≡≥ 105322 104017 TTISDO
≠CMP≡≡R0≡≥ 105324 020027 000003 CMP R0,#3 ;TIME FIELD IS 0-3
≠BGT≡≡.CSRER≡≥ 105330 003202 BGT .CSRER
≠MOV≡≡R0≡≡R5≡≥ 105332 010005 MOV R0,R5
≥
≠MOV≡≡$ECADR≡≡R0≡≥ 105334 013700 147724 MOV $ECADR,R0
≡RCRAM≡≡RCRAM≡≥ 105340 104074 RCRAM ;READ C-RAM
≠BIC≡≡R0≡≥ 105342 042710 000012 BIC #12,(R0) ;CLEAR OLD TIME
≠CLR≡≡R4≡≥ 105346 005004 CLR R4
≠BIT≡≡R5≡≥ 105350 032705 000002 BIT #2,R5
≠BEQ≡≥ 105354 001402 BEQ 1$
≠BIS≡≡R4≡≥ 105356 052704 000010 BIS #10,R4
≠BIT≡≡R5≡≥ 105362 032705 000001 1$: BIT #1,R5
≠BEQ≡≥ 105366 001402 BEQ 2$
≠BIS≡≡R4≡≥ 105370 052704 000002 BIS #2,R4
≠BIS≡≡R4≡≡R0≡≥ 105374 050410 2$: BIS R4,(R0) ;SET NEW TIME
≠BR≡≡.MMX≡≥ 105376 000737 BR .MMX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 115
CONS11 PAL[KL,SYS] Page 33 PDP-10 START/STOP FUNCTIONS
≥ ;CACHE ENABLE
≥
≥ ;CACHE ENABLE BITS ARE CODED AS FOLLOWS:
≥ ; 10 = CACHE 0
≥ ; 4 = CACHE 1
≥ ; 2 = CACHE 2
≥ ; 1 = CACHE 3
≥ ; 17 SIGNIFIES ALL CACHES ENABLED
≥
≡TTISDL≡≡TTISDL≡≥ 105400 104016 .CE: TTISDL ;GET ENABLE CODE
≠BCS≡≥ 105402 103411 BCS 20$ ;CR, PRINT ENABLE
≡TTISDO≡≡TTISDO≡≥ 105404 104017 1$: TTISDO
≠CMP≡≡R0≡≥ 105406 020027 000017 CMP R0,#17 ;ENABLE IS 0 TO 17
≠BGT≡≥ 105412 003003 BGT 2$
≠MOV≡≡R0≡≡CLKDFL≡≥ 105414 010037 157252 MOV R0,CLKDFL+4 ;PUT IN CLOCK DEFAULT PARAMETER WORD
≠BR≡≥ 105420 000402 BR 20$
≠JMP≡≡$PARAM≡≥ 105422 000137 113452 2$: JMP $PARAM
≥
≤PMSG≡≥ 20$: PMSG <CACHES ENABLED: >
≡$PMSG≡≡$PMSG≡≥ 105426 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105430 145405 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡CLKDFL≡≡R1≡≥ 105432 013701 157252 MOV CLKDFL+4,R1
≠MOV≡≡R1≡≡R0≡≥ 105436 010100 MOV R1,R0
≡PNTODT≡≡PNTODT≡≥ 105440 104047 PNTODT ;PRINT CODE
≥ 105442 000002 2
≠CLR≡≡R2≡≥ 105444 005002 21$: CLR R2
≠BIT≡≡R1≡≥ 105446 032701 000010 BIT #10,R1 ;CACHE 0 ENABLED ?
≠BEQ≡≥ 105452 001402 BEQ 22$
≠JSR≡≡PC≡≡.CEP≡≥ 105454 004737 105532 JSR PC,.CEP
≥
≠INC≡≡R2≡≥ 105460 005202 22$: INC R2
≠BIT≡≡R1≡≥ 105462 032701 000004 BIT #4,R1 ;CACHE 1 ENABLED ?
≠BEQ≡≥ 105466 001402 BEQ 23$
≠JSR≡≡PC≡≡.CEP≡≥ 105470 004737 105532 JSR PC,.CEP
≥
≠INC≡≡R2≡≥ 105474 005202 23$: INC R2
≠BIT≡≡R1≡≥ 105476 032701 000002 BIT #2,R1 ;CACHE 2 ENABLED ?
≠BEQ≡≥ 105502 001402 BEQ 24$
≠JSR≡≡PC≡≡.CEP≡≥ 105504 004737 105532 JSR PC,.CEP
≥
≠INC≡≡R2≡≥ 105510 005202 24$: INC R2
≠BIT≡≡R1≡≥ 105512 032701 000001 BIT #1,R1 ;CACHE 3 ENABLED ?
≠BEQ≡≥ 105516 001402 BEQ 25$
≠JSR≡≡PC≡≡.CEP≡≥ 105520 004737 105532 JSR PC,.CEP
≥
≡PCRLF≡≡PCRLF≡≥ 105524 104031 25$: PCRLF
≠JMP≡≡$CONSL≡≥ 105526 000137 100014 JMP $CONSL
≥
≤PMSG≡≥ .CEP: PMSG <, CACHE >
≡$PMSG≡≡$PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 116
CONS11 PAL[KL,SYS] Page 33.1 PDP-10 START/STOP FUNCTIONS
≥ 105532 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105534 145426 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R2≡≡R0≡≥ 105536 010200 MOV R2,R0
≡PNTNBR≡≡PNTNBR≡≥ 105540 104030 PNTNBR ;PRINT CACHE ENABLE DIGIT
≠RTS≡≡PC≡≥ 105542 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 117
CONS11 PAL[KL,SYS] Page 34 PDP-10 START/STOP FUNCTIONS
≥ ;AC BLOCK SELECTION
≥ ;SETS UP "PAGDFL" WORD USED BY "DATAO PAG,0"
≥ ;DURING "STD,STM,STL & DDT" START COMMANDS
≥ ;SAME "PAGDFL" WORD USED BY "DATAO PAG,20"
≥ ;DURING AC BLOCK SELECTION COMMAND
≥
≡DFLEGA≡≡DFLEGA≡≥ 105544 104226 .AC: DFLEGAL
≠MOV≡≡PAGDFL≡≡R5≡≥ 105546 012705 157256 MOV #PAGDFL+2,R5
≡TTISDL≡≡TTISDL≡≥ 105552 104016 TTISDL ;ALLOW FOR "ACBLK" OR "AC BLK"
≠BCC≡≥ 105554 103103 BCC 5$ ;NUMBER
≠CMPB≡≡R0≡≥ 105556 122700 000102 CMPB #'B,R0
≠BNE≡≥ 105562 001100 BNE 5$
≡TTICHR≡≡TTICHR≡≥ 105564 104005 TTICHR
≠CMPB≡≡R0≡≥ 105566 122700 000114 CMPB #'L,R0
≠BNE≡≥ 105572 001074 BNE 5$
≡TTICHR≡≡TTICHR≡≥ 105574 104005 TTICHR
≠CMPB≡≡R0≡≥ 105576 122700 000113 CMPB #'K,R0
≠BNE≡≥ 105602 001070 BNE 5$
≥
≡TTISDL≡≡TTISDL≡≥ 105604 104016 TTISDL ;ANY NUMBER ?
≠BCS≡≥ 105606 103424 BCS 4$ ;NO, PRINT PRESENT SELECTION
≥
≡TTISDO≡≡TTISDO≡≥ 105610 104017 TTISDO ;GET SELECTION DIGIT
≠CMP≡≡R0≡≥ 105612 020027 000007 CMP R0,#7 ;MUST BE 0 TO 7
≠BGT≡≥ 105616 003062 BGT 5$
≠BEQ≡≥ 105620 001450 BEQ 3$ ;IF BLK #7, GIVE UCODE WARNING
≥
≤PUSH≡≥ 1$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <PREV AC BLK >
≡$PMSG≡≡$PMSG≡≥ 105624 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105626 145437 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R5≡≡R0≡≥ 105630 011500 MOV (R5),R0
≡SHIFTR≡≡SHIFTR≡≥ 105632 104053 SHIFTR
≥ 105634 000013 11.
≡PNTNBR≡≡PNTNBR≡≥ 105636 104030 PNTNBR
≡PNTCI≡≡PNTCI≡≥ 105640 104214 PNTCI
≥ 105642 020054 ",
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≡SHIFTL≡≡SHIFTL≡≥ 105646 104054 SHIFTL ;PLACE SELECTION DIGIT IN BITS 6-8
≥ 105650 000013 11.
≠BIC≡≡R5≡≥ 105652 042715 034000 BIC #034000,(R5)
≠BIS≡≡R0≡≡R5≡≥ 105656 050015 BIS R0,(R5) ;INSERT IN PAGE DEFAULT WORD
≤PMSG≡≥ 4$: PMSG <SELECTED AC BLK >
≡$PMSG≡≡$PMSG≡≥ 105660 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105662 145454 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R5≡≡R0≡≥ 105664 011500 MOV (R5),R0 ;PRINT PRESENT AC BLOCK SELECTION
≡SHIFTR≡≡SHIFTR≡≥ 105666 104053 SHIFTR
≥ 105670 000013 11.
≡PNTNBR≡≡PNTNBR≡≥ 105672 104030 PNTNBR
≡PCRLF≡≡PCRLF≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 118
CONS11 PAL[KL,SYS] Page 34.1 PDP-10 START/STOP FUNCTIONS
≥ 105674 104031 PCRLF
≡EXAMT≡≡EXAMT≡≥ 105676 104104 EXAMT ;SAVE MEM LOCATION 20
≥ 105700 000020 20
≡$SAV20≡≡$SAV20≡≥ 105702 147566 $SAV20
≠BCS≡≥ 105704 103423 BCS 6$
≡DPOSVT≡≡DPOSVT≡≥ 105706 104110 DPOSVT ;PUT DATAO PAG ARGUMENT IN 20
≥ 105710 000020 20
≡PAGDFL≡≡PAGDFL≡≥ 105712 157254 PAGDFL
≠BCS≡≥ 105714 103417 BCS 6$
≠MOV≡≡DATPAG≡≡R0≡≥ 105716 012700 105770 MOV #DATPAG,R0
≡EXCT≡≡EXCT≡≥ 105722 104101 EXCT ;EXECUTE DATAO PAG
≠BCS≡≥ 105724 103413 BCS 6$
≡DPOSVT≡≡DPOSVT≡≥ 105726 104110 DPOSVT ;RESTORE 20
≥ 105730 000020 20
≡$SAV20≡≡$SAV20≡≥ 105732 147566 $SAV20
≠BCS≡≥ 105734 103407 BCS 6$
≠JMP≡≡$CONSL≡≥ 105736 000137 100014 JMP $CONSL
≥
≤PUSH≡≥ 3$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <UCODE BLK\>
≡$PMSG≡≡$PMSG≡≥ 105744 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105746 145475 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≥ 105752 000723 BR 1$
≥
≤PMSG≡≥ 6$: PMSG <?SELECTION ERR>
≡$PMSG≡≡$PMSG≡≥ 105754 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 105756 145510 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 105760 000137 100004 JMP $CNTLC
≥
≠JMP≡≡$PARAM≡≥ 105764 000137 113452 5$: JMP $PARAM ;ERROR
≥
≤IO10≡≥ DATPAG: IO10 DATAO,PAG,,20 ;SELECT AC BLOCK
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 119
CONS11 PAL[KL,SYS] Page 34.2 PDP-10 START/STOP FUNCTIONS
≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,20
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000002 ADL=10*<ADL&7777>+2
≠.IIF≡≡ADL≡≥ 770002 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000020 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡DATAO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡PAG≡≡DATAO≡≡PAG≡≠.LIST≡≠.EVEN≡≥ 105776 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 120
CONS11 PAL[KL,SYS] Page 35 PDP-10 START/STOP FUNCTIONS
≥ ;START PDP10 AT ADDRESS SPECIFIED AS LOWER 18 BITS OF 36-BIT ARGUMENT.
≥
≡DFLEGA≡≡DFLEGA≡≥ 105776 104226 $ST: DFLEGAL ;PDP-10 MUST BE STOPPED BEFORE YOU CAN START IT
≡TTISDL≡≡TTISDL≡≥ 106000 104016 TTISDL
≠BCS≡≥ 106002 103472 BCS 4$ ;NON-NUMBER
≡TTIS36≡≡TTIS36≡≥ 106004 104020 TTIS36
≡$$ST≠≥ 106006 $$ST=.
≠CLR≡≡R5≡≥ 106006 005005 CLR R5
≠MOV≡≡$$STJR≡≡R1≡≥ 106010 012701 157222 5$: MOV #$$STJRS,R1
≠MOVB≡≡R0≡≡R1≡≥ 106014 112021 MOVB (R0)+,(R1)+
≠MOVB≡≡R0≡≡R1≡≥ 106016 112021 MOVB (R0)+,(R1)+
≠BICB≡≡R1≡≥ 106020 142711 000003 BICB #3,(R1) ;CLEAR BITS 18-19
≠BISB≡≡R0≡≡R1≡≥ 106024 151011 BISB (R0),(R1) ;SET LAST TWO BITS
≥
≠TST≡≡R5≡≥ 106026 005705 3$: TST R5 ;ADDRESS START?
≠BEQ≡≥ 106030 001442 BEQ 11$ ;YES. DO JUST A JRST
≡SM≡≡SM≡≥ 106032 104100 SM ;START MACHINE. RESET MACHINE
≠BCS≡≡$STERR≡≥ 106034 103502 BCS $STERR
≡DPOSVT≡≡DPOSVT≡≥ 106036 104110 DPOSVT ;DEPOSIT "DATAO PAG,0" ARGUMENT
≥ 106040 000000 0 ;IN AC0, SELECTS CURRENT AC USAGE
≡PAGDFL≡≡PAGDFL≡≥ 106042 157254 PAGDFL
≠BCS≡≡$STERR≡≥ 106044 103476 BCS $STERR
≡SETFLG≡≡SETFLG≡≥ 106046 104055 SETFLG ;SET TEN RUN FLAG
≡TENRUN≡≡TENRUN≡≥ 106050 147670 TENRUN
≠.IIF≡≡SAILVR≡≠CLR≡≡SWTDEP≡≥ 106052 005037 147422 .IIF DF SAILVR, CLR SWTDEP ;DISABLE AUTO-DEPOSIT!
≡TENSW≡≡TENSW≡≥ 106056 104145 TENSW ;DEPOSIT PDP-10 SWITCHES
≠BCC≡≥ 106060 103002 BCC 32$
≠JMP≡≡C10SWE≡≥ 106062 000137 110270 JMP C10SWE ;SWITCH ERROR
≠MOV≡≡R1≡≥ 106066 012701 000004 32$: MOV #4.,R1
≠MOV≡≡$STTB1≡≡R0≡≥ 106072 012700 106246 MOV #$STTB1,R0
≤PUSH≡≥ 1$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡EXCT≡≡EXCT≡≥ 106100 104101 EXCT ;EXECUTE A TEN INSTR
≠BCS≡≡$STERR≡≥ 106102 103457 BCS $STERR
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠ADD≡≡R0≡≥ 106106 062700 000005 ADD #5,R0
≠DEC≡≡R1≡≥ 106112 005301 DEC R1
≠BNE≡≥ 106114 001370 BNE 1$ ;DO ANOTHER
≠JSR≡≡PC≡≡$TI36C≡≥ 106116 004737 122044 JSR PC,$TI36C ;ZERO SELECTED AC BLOCK
≠MOV≡≡$DRAM≡≡R1≡≥ 106122 012701 147462 MOV #$DRAM,R1
≠MOV≡≡R0≡≥ 106126 012700 000020 MOV #16.,R0 ;FROM AC0 TO AC17
≡D10ZRO≡≡D10ZRO≡≥ 106132 104112 D10ZRO ;NECESSARY FOR FM PARITY
≠BCS≡≡$STERR≡≥ 106134 103442 BCS $STERR
≠MOV≡≡$$STJR≡≡R0≡≥ 106136 012700 157222 11$: MOV #$$STJRS,R0
≡EXCT≡≡EXCT≡≥ 106142 104101 EXCT ;EXECUTE JRST TO START ADR
≠BCS≡≡$STERR≡≥ 106144 103436 BCS $STERR
≠CLR≡≡TENTTY≡≥ 106146 005037 150022 CLR TENTTY ;TURN OFF "TENCHR" ROUTINE
≠JSR≡≡PC≡≡$CMCLR≡≥ 106152 004737 115156 JSR PC,$CMCLR ;CLEAR COMMON STORAGE
≠MOV≡≡$ENDCT≡≥ 106156 012737 000144 152206 MOV #100.,$ENDCT ;REPORT EOP EVERY 100
≠JMP≡≡$RNN≡≥ 106164 000137 104002 JMP $RNN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 121
CONS11 PAL[KL,SYS] Page 35.1 PDP-10 START/STOP FUNCTIONS
≥
≠CMPB≡≡R0≡≥ 106170 122700 000104 4$: CMPB #'D,R0 ;IF "STD", START 10 DIAGNOSTIC
≠BNE≡≥ 106174 001006 BNE 6$
≠MOV≡≡TDIAG≡≡R0≡≥ 106176 012700 100064 MOV #TDIAG,R0
≡TTITRM≡≡TTITRM≡≥ 106202 104022 7$: TTITRM
≡$$$ST≠≥ 106204 $$$ST=.
≠MOV≡≡R5≡≥ 106204 012705 777777 MOV #-1,R5
≠BR≡≥ 106210 000677 BR 5$
≥
≠CMPB≡≡R0≡≥ 106212 122700 000114 6$: CMPB #'L,R0 ;IF "STL", START PDP-10 LOADER
≠BNE≡≥ 106216 001003 BNE 8$
≠MOV≡≡TLDR≡≡R0≡≥ 106220 012700 100074 MOV #TLDR,R0
≠BR≡≥ 106224 000766 BR 7$
≥
≠CMPB≡≡R0≡≥ 106226 122700 000115 8$: CMPB #'M,R0 ;IF "STM", START PDP-10 MONITOR
≠BNE≡≡.CNERR≡≥ 106232 001017 BNE .CNERR ;IF NONE, ERROR (DON'T START AT THE LAST START ADDR)
≠MOV≡≡TMON≡≡R0≡≥ 106234 012700 100100 MOV #TMON,R0
≠BR≡≥ 106240 000760 BR 7$
≥
≠JMP≡≡.XCTER≡≥ 106242 000137 104566 $STERR: JMP .XCTER
≥
≡HRRI≠≥ 000541 HRRI=541
≡HRLZI≠≥ 000515 HRLZI=515
≡JRST≠≥ 000254 JRST=254
≡DTE≠≥ 000200 DTE=200
≥
≤IO10≡≥ $STTB1: IO10 CONO,APR,,267760 ;RESET APR
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,267760
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 122
CONS11 PAL[KL,SYS] Page 35.2 PDP-10 START/STOP FUNCTIONS
≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000002 ADL=10*<ADL&7777>+2
≠.IIF≡≡ADL≡≥ 770002 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000026 ADL=10*<ADL&7777>+6
≠.IIF≡≡ADL≡≥ 770026 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000267 ADL=10*<ADL&7777>+7
≠.IIF≡≡ADL≡≥ 770267 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 002677 ADL=10*<ADL&7777>+7
≠.IIF≡≡ADL≡≥ 772677 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 026776 ADL=10*<ADL&7777>+6
≠.IIF≡≡ADL≡≡ADL≡≡ADH≠≥ 000002 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 067760 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡CONO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡APR≡≡CONO≡≡APR≡≠.LIST≡≤IO10≡≥ IO10 CONO,PI,,10000 ;PI SYSTEM CLEAR
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,10000
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000001 ADL=10*<ADL&7777>+1
≠.IIF≡≡ADL≡≥ 770001 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000010 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 770010 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000100 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 770100 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 001000 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 771000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 010000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡CONO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡PI≡≡CONO≡≡PI≡≠.LIST≡≤IO10≡≥ IO10 CONO,PAG,,0 ;PAGING SYSTEM CLEAR
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 123
CONS11 PAL[KL,SYS] Page 35.3 PDP-10 START/STOP FUNCTIONS
≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,0
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡CONO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡PAG≡≡CONO≡≡PAG≡≠.LIST≡≤IO10≡≥ IO10 DATAO,PAG,,0 ;USER BASE CLEAR & AC SELECT
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,0
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡DATAO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡PAG≡≡DATAO≡≡PAG≡≠.LIST≡≠.EVEN≡≥ 106272 .EVEN
≠JMP≡≡$PARA≡≥ 106272 000137 113356 .CNERR: JMP $PARA
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 124
CONS11 PAL[KL,SYS] Page 36 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥ .SBTTL PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥
≠MOV≡≡.DPXAD≡≡R5≡≥ 106276 012705 147704 .DP: MOV #.DPXAD,R5
≡TTISDL≡≡TTISDL≡≥ 106302 104016 TTISDL
≠BCS≡≡.DPS≡≥ 106304 103426 BCS .DPS
≡TTIS36≡≡TTIS36≡≥ 106306 104020 TTIS36
≠MOV≡≡R0≡≡R5≡≥ 106310 012025 MOV (R0)+,(R5)+ ;LOW ADDRESS
≠MOV≡≡R0≡≡R5≡≥ 106312 011015 MOV (R0),(R5) ;HIGH ADDRESS
≠TST≡≡R5≡≥ 106314 005745 .DPNX1: TST -(R5)
≥
≡TTIS36≡≡TTIS36≡≥ 106316 104020 .DPCOM: TTIS36 ;GET DATA
≠MOV≡≡R5≡≡R1≡≥ 106320 010501 MOV R5,R1 ;PTR TO ADR
≠JSR≡≡PC≡≡$TENRN≡≥ 106322 004737 106366 JSR PC,$TENRN
≡DPOS≡≡DPOS≡≥ 106326 104105 DPOS ;DO IT
≠BCS≡≡.DPCM1≡≥ 106330 103402 BCS .DPCM1
≠JMP≡≡$KONSL≡≥ 106332 000137 100230 $VBX: JMP $KONSL
≥
≤PMSG≡≥ .DPCM1: PMSG <?DM>
≡$PMSG≡≡$PMSG≡≥ 106336 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 106340 145527 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡R1≡≡$DFTM1≡≥ 106342 004137 141104 JSR R1,$DFTM1
≥
≠MOV≡≡.DPXAD≡≡R5≡≥ 106346 012705 147704 .DPNX: MOV #.DPXAD,R5
≠ADD≡≡R5≡≥ 106352 062725 000001 ADD #1,(R5)+ ;BUMP LOW
≠ADC≡≡R5≡≥ 106356 005515 ADC (R5) ;CARRY TO HIGH
≠BR≡≡.DPNX1≡≥ 106360 000755 BR .DPNX1
≥
≠BVS≡≡.DPCOM≡≥ 106362 102755 .DPS: BVS .DPCOM ;COLON, USE PRESENT ADDRESS
≠BR≡≡.CNERR≡≥ 106364 000742 BR .CNERR
≥
≠BIT≡≡ERRSTP≡≡.DIAG1≡≥ 106366 032777 004000 050754 $TENRN: BIT #ERRSTP,@.DIAG1 ;TEN CLOCK RUNNING ?
≠BEQ≡≥ 106374 001402 BEQ 1$ ;YES, OK
≠JMP≡≡TENCER≡≥ 106376 000137 107566 JMP TENCERR ;NO, REPORT IT
≠RTS≡≡PC≡≥ 106402 000207 1$: RTS PC
≥
≡TTITRM≡≡TTITRM≡≥ 106404 104022 $VB: TTITRM
≠TST≡≡VRBFLG≡≥ 106406 005737 147564 TST VRBFLG
≠BEQ≡≡$VB1≡≥ 106412 001405 BEQ $VB1
≠CLR≡≡VRBFLG≡≥ 106414 005037 147564 CLR VRBFLG
≤PMSG≡≥ PMSG <CONCISE TYPEOUT
≥ >
≡$PMSG≡≡$PMSG≡≥ 106420 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 106422 145533 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$VBX≡≥ 106424 000742 BR $VBX
≥
≡SETFLG≡≡SETFLG≡≥ 106426 104055 $VB1: SETFLG
≡VRBFLG≡≡VRBFLG≡≥ 106430 147564 VRBFLG
≤PMSG≡≥ PMSG <VERBOSE TYPEOUT
≥ >
≡$PMSG≡≡$PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 125
CONS11 PAL[KL,SYS] Page 36.1 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥ 106432 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 106434 145555 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$VBX≡≥ 106436 000735 BR $VBX
≥
≡TTITRM≡≡TTITRM≡≥ 106440 104022 $KA: TTITRM
≠JSR≡≡PC≡≡KASET≡≥ 106442 004737 110540 JSR PC,KASET ;ENABLE KASIM
≠BR≡≡$VBX≡≥ 106446 000731 BR $VBX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 126
CONS11 PAL[KL,SYS] Page 37 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥ ;MEMORY ZERO
≥ ; "MZ ADR,COUNT"
≥
≡DFLEGA≡≡DFLEGA≡≥ 106450 104226 .MZ: DFLEGAL ;FUNCTION LEGAL ?
≡TTIS36≡≡TTIS36≡≥ 106452 104020 TTIS36 ;INPUT PDP-10 START ADDRESS
≠MOV≡≡$DRAM≡≡MMDAT≡≥ 106454 013737 147462 147540 MOV $DRAM,MMDAT ;SAVE IT
≠MOV≡≡$DRAM≡≡MMDAT≡≥ 106462 013737 147464 147542 MOV $DRAM+2,MMDAT+2
≠MOV≡≡MMDAT≡≡R1≡≥ 106470 012701 147540 MOV #MMDAT,R1 ;POINTER FOR D10ZRO
≡TTIS36≡≡TTIS36≡≥ 106474 104020 TTIS36 ;INPUT NUMBER OF PDP-10 WORDS
≠BCS≡≥ 106476 103437 BCS 1$
≠MOV≡≡$DRAM≡≡R2≡≥ 106500 013702 147464 MOV $DRAM+2,R2 ;PICK UP NUMBER OF 64K MOBIES
≠BEQ≡≥ 106504 001425 BEQ 2$
≠BPL≡≥ 106506 100004 BPL 4$
≠MOV≡≡XMEMSZ≡≡R2≡≥ 106510 012702 000010 MOV #XMEMSZ/64.,R2 ;MZ 0,-1. DON'T TRY TO CLEAR
≠CLR≡≡$DRAM≡≥ 106514 005037 147462 CLR $DRAM ; 4096 MILLION WORDS.
≠CLR≡≡R0≡≥ 106520 005000 4$: CLR R0 ;CLEAR ONE SMALL MOBY
≡D10ZRO≡≡D10ZRO≡≥ 106522 104112 D10ZRO
≠BCS≡≥ 106524 103430 BCS 3$
≠JSR≡≡PC≡≡$TIRDY≡≥ 106526 004737 120670 JSR PC,$TIRDY ;ALLOW ↑C IN THIS SLOW LOOP
≠BCS≡≥ 106532 103406 BCS 69$
≠CMPB≡≡$TICHR≡≡CNTRLC≡≥ 106534 123727 147744 000003 CMPB $TICHR,#CNTRLC
≠BNE≡≥ 106542 001002 BNE 69$
≠JMP≡≡$TICC≡≥ 106544 000137 120524 JMP $TICC ;↑C, ABORT
≥
≠INC≡≡MMDAT≡≥ 106550 005237 147542 69$: INC MMDAT+2 ;BUMP ADDRESS
≠DEC≡≡R2≡≥ 106554 005302 DEC R2
≠BGT≡≥ 106556 003360 BGT 4$
≠MOV≡≡$DRAM≡≡R0≡≥ 106560 013700 147462 2$: MOV $DRAM,R0 ;CLEAR FINAL FRACTIONAL MOBY
≠BEQ≡≥ 106564 001402 BEQ 5$ ;EXACT MULTIPLE OF 64K
≡D10ZRO≡≡D10ZRO≡≥ 106566 104112 D10ZRO ;ZERO MEMORY
≠BCS≡≥ 106570 103406 BCS 3$
≥
≠JMP≡≡$KONSL≡≥ 106572 000137 100230 5$: JMP $KONSL
≥
≠MOV≡≡$DRAM≡≥ 106576 012737 000001 147462 1$: MOV #1,$DRAM ;NO COUNT SPECIFIED
≠BR≡≥ 106604 000765 BR 2$ ;SO CLEAR ONE WORD
≥
≤PMSG≡≥ 3$: PMSG <?MZ>
≡$PMSG≡≡$PMSG≡≥ 106606 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 106610 145577 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡R1≡≡$DFTM1≡≥ 106612 004137 141104 JSR R1,$DFTM1
≠JMP≡≡$RUNLP≡≥ 106616 000137 107030 JMP $RUNLP
≠MOV≡≡.DPXAD≡≡R5≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 127
CONS11 PAL[KL,SYS] Page 38 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥ 106622 012705 147704 .EXM: MOV #.DPXAD,R5
≠CLR≡≡R3≡≥ 106626 005003 CLR R3
≡TTISDL≡≡TTISDL≡≥ 106630 104016 TTISDL
≠BCS≡≡.EXMSP≡≥ 106632 103456 BCS .EXMSP ;NON-NUMBER
≡TTIS36≡≡TTIS36≡≥ 106634 104020 TTIS36 ;GET PDP-10 ADDRESS
≠MOV≡≡R0≡≡R5≡≥ 106636 012025 MOV (R0)+,(R5)+ ;SAVE LOW 16 BITS
≠MOV≡≡R0≡≡R5≡≥ 106640 011015 MOV (R0),(R5) ;SAVE HIGH BITS
≠TST≡≡R5≡≥ 106642 005745 TST -(R5)
≡TTIBRK≡≡TTIBRK≡≥ 106644 104015 TTIBRK ;GET BREAK
≠BCS≡≡.CNERR≡≥ 106646 103611 BCS .CNERR
≠CMPB≡≡R0≡≥ 106650 122700 000054 CMPB #',,R0
≠BNE≡≡.EXCOM≡≥ 106654 001004 BNE .EXCOM
≠COM≡≡R3≡≥ 106656 005103 COM R3 ;COMMA, MULTIPLE PRINT
≡PNORML≡≡PNORML≡≥ 106660 104044 PNORML
≡TTIS36≡≡TTIS36≡≥ 106662 104020 TTIS36 ;GET ENDING ADDRESS
≠MOV≡≡R0≡≡R4≡≥ 106664 011004 MOV (R0),R4 ;SAVE LOW 16 BITS
≥
≠MOV≡≡R5≡≡R0≡≥ 106666 010500 .EXCOM: MOV R5,R0
≠JSR≡≡PC≡≡$TENRN≡≥ 106670 004737 106366 JSR PC,$TENRN
≡EXAM≡≡EXAM≡≥ 106674 104103 EXAM
≠BCS≡≥ 106676 103424 BCS 3$
≠TSTB≡≡RPTFLG≡≥ 106700 105737 147732 5$: TSTB RPTFLG
≠BNE≡≥ 106704 001017 BNE 1$
≠MOV≡≡R5≡≡R0≡≥ 106706 010500 MOV R5,R0
≡PNTADR≡≡PNTADR≡≥ 106710 104137 PNTADR
≡PNTBAK≡≡PNTBAK≡≥ 106712 104177 PNTBAK ;BACKUP POINTER TO WIPE OUT SPACE
≡PSLASH≡≡PSLASH≡≥ 106714 104033 PSLASH
≠MOV≡≡$DRAM≡≡R0≡≥ 106716 012700 147462 MOV #$DRAM,R0
≡PNT36≡≡PNT36≡≥ 106722 104042 PNT36
≠TST≡≡R3≡≥ 106724 005703 TST R3 ;DOING MULTIPLE PRINT ?
≠BEQ≡≥ 106726 001405 BEQ 2$
≡PCRLF≡≡PCRLF≡≥ 106730 104031 PCRLF
≠CMP≡≡R5≡≡R4≡≥ 106732 021504 CMP (R5),R4
≠BEQ≡≥ 106734 001402 BEQ 2$
≠INC≡≡R5≡≥ 106736 005215 INC (R5) ;INCREMENT LOW 16 BITS, 64K
≠BR≡≡.EXCOM≡≥ 106740 000752 BR .EXCOM ;DO NEXT ADDRESS
≡PCRLF≡≡PCRLF≡≥ 106742 104031 2$: PCRLF
≠JMP≡≡$KONSL≡≥ 106744 000137 100230 1$: JMP $KONSL
≥
≠BMI≡≥ 106750 100404 3$: BMI 4$
≤PMSG≡≥ PMSG <?EM>
≡$PMSG≡≡$PMSG≡≥ 106752 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 106754 145603 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡R1≡≡$DFTM1≡≥ 106756 004137 141104 JSR R1,$DFTM1
≥
≡$PMSGR≡≡$PMSGR≡≥ 106762 104026 4$: $PMSGR
≡$EBPAR≡≡$EBPAR≡≥ 106764 125116 $EBPAR ;E-BUS PARITY ERROR
≠BR≡≥ 106766 000744 BR 5$
≥
≠BVS≡≡.EXMNX≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 128
CONS11 PAL[KL,SYS] Page 38.1 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
≥ 106770 102405 .EXMSP: BVS .EXMNX ;COLON OR SLASH, EXAMINE NEXT
≠BNE≡≡.EXCOM≡≥ 106772 001335 BNE .EXCOM ;NONE, EXAMINE SAME
≠SUB≡≡R5≡≥ 106774 162725 000001 SUB #1,(R5)+ ;UPARROW, EXAMINE PREVIOUS
≠SBC≡≡R5≡≥ 107000 005615 SBC (R5)
≠BR≡≡.EXMN1≡≥ 107002 000405 BR .EXMN1
≠MOV≡≡.DPXAD≡≡R5≡≥ 107004 012705 147704 .EXMNX: MOV #.DPXAD,R5
≠ADD≡≡R5≡≥ 107010 062725 000001 ADD #1,(R5)+
≠ADC≡≡R5≡≥ 107014 005515 ADC (R5)
≠INC≡≡$INPTC≡≥ 107016 005237 150716 .EXMN1: INC $INPTC
≠CLR≡≡R3≡≥ 107022 005003 CLR R3
≠TST≡≡R5≡≥ 107024 005745 TST -(R5)
≠BR≡≡.EXCOM≡≥ 107026 000717 BR .EXCOM
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 129
CONS11 PAL[KL,SYS] Page 39 CONSOLE IDLE RUN LOOP
≥ .SBTTL CONSOLE IDLE RUN LOOP
≥
≥ ;PROVIDES PDP-10 SUPPORT WHEN "TENRUN" SET
≥ ;AND ADDITIONALY PDP-10 MONITOR SUPPORT IF "MONMODE" SET
≥
≠TSTB≡≡TENRUN≡≥ 107030 105737 147670 $RUNLP: TSTB TENRUN ;PDP-10 RUN TIME SUPPORT ?
≠BNE≡≥ 107034 001002 BNE 1$ ;JUMP IF YES
≠JMP≡≡$TTILI≡≥ 107036 000137 120150 JMP $TTILIN ;NO, CONSOLE COMMAND INPUT
≥
≠CLR≡≡DDTTM2≡≥ 107042 005037 147602 1$: CLR DDTTM2 ;SETUP DDT MODE TIMEOUT
≠BIT≡≡KLRUN≡≡.DIAG1≡≥ 107046 032777 002000 050274 2$: BIT #KLRUN,@.DIAG1 ;IS THE KL10 RUNNING?
≠BNE≡≥ 107054 001002 BNE 3$ ;YES.
≠JMP≡≡TENDEA≡≥ 107056 000137 107710 JMP TENDEAD ;PDP-10 HALTED
≥
≠BIT≡≡ERRSTP≡≡.DIAG1≡≥ 107062 032777 004000 050260 3$: BIT #ERRSTP,@.DIAG1 ;PDP-10 CLOCK ERROR STOP ?
≠BEQ≡≥ 107070 001402 BEQ 31$ ;NO.
≠JMP≡≡TENCER≡≥ 107072 000137 107566 JMP TENCERR ;YES, REPORT.
≥
≠JSR≡≡PC≡≡C10COP≡≥ 107076 004737 110742 31$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≠.LIF≡≡%%QMP≡≥ .LIF DF %%QMP
≠JSR≡≡PC≡≡SND10≡≥ 107102 004737 137216 JSR PC,SND10 ;CHECK FOR QUEUED MESSAGE FOR 10
≥
≠.LIF≡≡%%QMP≡≥ .LIF NDF %%QMP
≥ BIT #TO11DB,@.STDTE ;IS PDP-10 REQUESTING SERVICE?
≥
≠.LIF≡≡%%QMP≡≥ .LIF DF %%QMP
≠TST≡≡T11DBF≡≥ 107106 005737 157136 TST T11DBF ;IS PDP-10 REQUESTING SERVICE?
≥
≠BNE≡≡TENCMD≡≥ 107112 001141 BNE TENCMD ;YES.
≥
≠TST≡≡MONMOD≡≥ 107114 005737 147666 5$: TST MONMODE ;MONITOR SUPPORT MODE ?
≠BEQ≡≥ 107120 001412 BEQ 20$ ;NO
≥
≠JSR≡≡PC≡≡$TIRDY≡≥ 107122 004737 120670 6$: JSR PC,$TIRDY ;TTY INPUT FLAG SET ?
≠BCC≡≡MTTYIN≡≥ 107126 103024 BCC MTTYIN ;YES, SEND CHAR TO 10
≥
≠TST≡≡MTTYOF≡≥ 107130 005737 147664 7$: TST MTTYOF ;TTY OUTPUT IN PROGRESS ?
≠BEQ≡≥ 107134 001744 BEQ 2$ ;NO
≥
≠JSR≡≡PC≡≡$TORDY≡≥ 107136 004737 120776 8$: JSR PC,$TORDY ;TTY OUTPUT COMPLETED ?
≠BCC≡≡MTTYOC≡≥ 107142 103057 BCC MTTYOC ;YES, NOTIFY 10
≠BR≡≥ 107144 000740 BR 2$ ;STAY IN MONITOR LOOP
≥
≠TST≡≡DDTFLG≡≥ 107146 005737 147740 20$: TST DDTFLG ;PDP-10 DDT INPUT MODE ?
≠BEQ≡≥ 107152 001405 BEQ 21$ ;NO
≠DEC≡≡DDTTM2≡≥ 107154 005337 147602 23$: DEC DDTTM2 ;WAITED LONG ENOUGH ?
≠BNE≡≥ 107160 001332 BNE 2$ ;NOT YET
≠CLR≡≡DDTFLG≡≥ 107162 005037 147740 CLR DDTFLG ;YES, REVERT TO CONSOLE MODE
≥
≠JSR≡≡PC≡≡$TIRDY≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 130
CONS11 PAL[KL,SYS] Page 39.1 CONSOLE IDLE RUN LOOP
≥ 107166 004737 120670 21$: JSR PC,$TIRDY ;ANY TTY INPUT YET ?
≠BCS≡≥ 107172 103725 BCS 2$ ;NO, STAY IN RUN LOOP
≠JMP≡≡$TILRN≡≥ 107174 000137 120064 JMP $TILRN ;YES, GO INPUT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 131
CONS11 PAL[KL,SYS] Page 40 CONSOLE IDLE RUN LOOP
≥ ;MONITOR TELETYPE CHARACTER INPUT -- MTTYIN MTTYI0 MTTYI1 C10DN1 MTTYER MTTYOC MTTYO MTTYP MTTYX MTTYC MTTYCF $MC MTTYS C10DN
≥ 2
≥
≠MOVB≡≡$TICHR≡≡R0≡≥ 107200 113700 147744 MTTYIN: MOVB $TICHR,R0 ;GET INPUT CHAR
≠CMPB≡≡R0≡≡MSWCHR≡≥ 107204 120027 000030 CMPB R0,#MSWCHR ;MONITOR TO "KLDCP" SWITCH CHAR ?
≠BNE≡≡MTTYI1≡≥ 107210 001004 BNE MTTYI1 ;JUMP IF NOT.
≤PMSG≡≥ MTTYI0: PMSG <\KLDCP\. ←>
≡$PMSG≡≡$PMSG≡≥ 107212 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 107214 145607 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$TTILI≡≥ 107216 000137 120150 JMP $TTILIN ;READ ONE KLDCP COMMAND, REVERT TO RUN LOOP
≥
≠MOV≡≡R0≡≡TENDAT≡≥ 107222 010037 147446 MTTYI1: MOV R0,TENDAT
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 107226 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 107234 104110 DPOSVT ;SEND CHAR TO TEN
≡$DTF11≡≡$DTF11≡≥ 107236 000450 $DTF11
≡TENDAT≡≡TENDAT≡≥ 107240 147446 TENDAT
≠BCS≡≡MTTYER≡≥ 107242 103415 BCS MTTYER ;FAILED
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 107244 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡D10MON≡≡D10MON≡≥ 107252 104111 D10MON ;SET -1 TO 10 TTY INPUT FLAG
≡$DTMTI≡≡$DTMTI≡≥ 107254 000456 $DTMTI
≠BCS≡≡MTTYER≡≥ 107256 103407 BCS MTTYER
≥
≠TST≡≡KASIM≡≥ 107260 005737 147660 C10DN1: TST KASIM
≠BNE≡≡$RUNLP≡≥ 107264 001261 BNE $RUNLP ;AVOID DINGING 10 IF KASIM
≠MOV≡≡INT10S≡≡.STDTE≡≥ 107266 012777 000400 050060 C10DN2: MOV #INT10S,@.STDTE ;DING TEN
≠BR≡≡$RUNLP≡≥ 107274 000655 BR $RUNLP
≥
≠JMP≡≡C10TIE≡≥ 107276 000137 110100 MTTYER: JMP C10TIE
≥
≥ ;MONITOR TELETYPE OUTPUT COMPLETE
≥
≥ MTTYOC:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 107302 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡D10MON≡≡D10MON≡≥ 107310 104111 D10MON ;SET -1 TO 10 TTY OUTPUT DONE FLAG
≡$DTMTD≡≡$DTMTD≡≥ 107312 000455 $DTMTD
≠BCS≡≡MTTYER≡≥ 107314 103770 BCS MTTYER
≠CLR≡≡MTTYOF≡≥ 107316 005037 147664 CLR MTTYOF ;CLEAR OUTPUT IN PROGRESS
≠BR≡≡C10DN1≡≥ 107322 000756 BR C10DN1
≥
≥ ;MONITOR TELETYPE OUTPUT ROUTINE
≥
≠MOV≡≡R5≡≡R0≡≥ 107324 010500 MTTYO: MOV R5,R0 ;GET OUTPUT CHAR
≠BIC≡≡R0≡≥ 107326 042700 177400 BIC #177400,R0 ;STRIP TO 8 BITS, 10 DOES PARITY
≠MOVB≡≡R0≡≡$TOCHR≡≥ 107332 110037 147742 MOVB R0,$TOCHR ;PRINT CHAR
≠JSR≡≡PC≡≡$TOOUT≡≥ 107336 004737 121040 JSR PC,$TOOUT
≡SETFLG≡≡SETFLG≡≥ 107342 104055 MTTYP: SETFLG
≡MTTYOF≡≡MTTYOF≡≥ 107344 147664 MTTYOF ;SET OUTPUT IN PROGRESS FLAG
≠BR≡≡C10DON≡≥ 107346 000467 MTTYX: BR C10DON ;ALLOW 10 TO CONTINUE
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 132
CONS11 PAL[KL,SYS] Page 40.1 CONSOLE IDLE RUN LOOP
≥ ;MONITOR MODE CONTROL
≥
≡SETFLG≡≡SETFLG≡≥ 107350 104055 MTTYC: SETFLG ;SET MONITOR MODE.
≡MONMOD≡≡MONMOD≡≥ 107352 147666 MONMODE
≠BR≡≡MTTYP≡≥ 107354 000772 BR MTTYP ;SET OUTPUT IN PROGRESS, EVEN IF IT'S NOT.
≥
≠CLR≡≡MONMOD≡≥ 107356 005037 147666 MTTYCF: CLR MONMODE ;CLEAR
≠BR≡≡MTTYX≡≥ 107362 000771 BR MTTYX
≥
≡SETFLG≡≡SETFLG≡≥ 107364 104055 $MC: SETFLG ;CONSOLE MONITOR CONTINUE
≡MONMOD≡≡MONMOD≡≥ 107366 147666 MONMODE
≡SETFLG≡≡SETFLG≡≥ 107370 104055 SETFLG
≡TENRUN≡≡TENRUN≡≥ 107372 147670 TENRUN ;ONLY WAY TO GET BACK FROM CONTROL C
≡SETFLG≡≡SETFLG≡≥ 107374 104055 SETFLG
≡PRGRUN≡≡PRGRUN≡≥ 107376 147614 PRGRUN
≡SETFLG≡≡SETFLG≡≥ 107400 104055 SETFLG
≡MTTYOF≡≡MTTYOF≡≥ 107402 147664 MTTYOF ;SET OUTPUT IN PROGRESS FLAG (even if not true)
≠BR≡≡$$TDX≡≥ 107404 000550 BR $$TDX
≥
≠MOV≡≡MONMOD≡≡R0≡≥ 107406 013700 147666 MTTYS: MOV MONMODE,R0 ;SEND 10 MONITOR TTY STATE
≠JMP≡≡C10TIX≡≥ 107412 000137 110056 JMP C10TIX
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 133
CONS11 PAL[KL,SYS] Page 41 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ .SBTTL PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥
≥ TENCMD:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 107416 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡EXAMT≡≡EXAMT≡≥ 107424 104104 EXAMT ;GET COMMAND CODE
≡$DTCMD≡≡$DTCMD≡≥ 107426 000451 $DTCMD
≡$ECMD≡≡$ECMD≡≥ 107430 147574 $ECMD
≠BCC≡≥ 107432 103004 BCC 1$
≠BPL≡≥ 107434 100002 BPL 2$ ;EXAMINE FAILED
≡$PMSG≡≡$PMSG≡≥ 107436 104025 $PMSG
≡$EBPAR≡≡$EBPAR≡≥ 107440 125116 $EBPAR ;E-BUS PARITY ERROR
≠BR≡≡C10DNX≡≥ 107442 000443 2$: BR C10DNX
≥
≠MOV≡≡$ECMD≡≡R5≡≥ 107444 013705 147574 1$: MOV $ECMD,R5
≠MOV≡≡R5≡≡R1≡≥ 107450 010501 MOV R5,R1
≠SWAB≡≡R1≡≥ 107452 000301 SWAB R1
≠BIC≡≡R1≡≥ 107454 042701 177760 BIC #177760,R1
≤SL≡≥ SL R1,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R1≡≠.LIST≡≠JMP≡≡CMD10T≡≡R1≡≥ 107462 000171 107466 JMP @CMD10T(R1) ;DISPATCH TO ROUTINE
≥
≡C10TO≡≡C10TO≡≥ 107466 107772 CMD10T: C10TO ;TTY OUT
≡C10PRG≡≡C10PRG≡≥ 107470 110406 C10PRG ;PROGRAM CONTROL
≡C10CLK≡≡C10CLK≡≥ 107472 110574 C10CLK ;CLOCK
≡C10SW≡≡C10SW≡≥ 107474 110170 C10SW ;SWITCHES
≡C10TO≡≡C10TO≡≥ 107476 107772 C10TO ;TTY OUT
≡C10TI≡≡C10TI≡≥ 107500 110020 C10TI ;TTY IN
≡C10PNT≡≡C10PNT≡≥ 107502 110146 C10PNT ;PRINT CONTROL
≡C10DDT≡≡C10DDT≡≥ 107504 110344 C10DDT ;DDT INPUT MODE
≡MTTYO≡≡MTTYO≡≥ 107506 107324 MTTYO ;MONITOR TTY OUTPUT
≡MTTYC≡≡MTTYC≡≥ 107510 107350 MTTYC ;MONITOR TTY MODE CONTROL ON
≡MTTYCF≡≡MTTYCF≡≥ 107512 107356 MTTYCF ;MONITOR TTY MODE CONTROL OFF
≡MTTYS≡≡MTTYS≡≥ 107514 107406 MTTYS ;MONITOR TTY STATE
≡QMPCMD≡≡QMPCMD≡≥ 107516 137034 QMPCMD ;14 COMMAND FOR QMP (TO11 ITEM COUNT)
≡C10DNX≡≡C10DNX≡≥ 107520 107552 C10DNX ;15-17 UNUSED NOW
≡C10DNX≡≡C10DNX≡≥ 107522 107552 C10DNX
≡C10DNX≡≡C10DNX≡≥ 107524 107552 C10DNX
≥
≥ C10DON:
≠.IIF≡≡%%QMP≡≥ .IIF NDF %%QMP, MOV #INT11C,@.STDTE ;CLEAR DONG
≠.IIF≡≡%%QMP≡≠CLR≡≡T11DBF≡≥ 107526 005037 157136 .IIF DF %%QMP, CLR T11DBF ;CLEAR SOFTWARE DONG
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 107532 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡D10MON≡≡D10MON≡≥ 107540 104111 D10MON ;SET -1 TO 10 "$DTFLG"
≡$DTFLG≡≡$DTFLG≡≥ 107542 000444 $DTFLG ;DTE20 OPERATION COMPLETE FLAG
≠BCS≡≡C10DNX≡≥ 107544 103402 BCS C10DNX ;next page.
≠JMP≡≡C10DN2≡≥ 107546 000137 107266 JMP C10DN2 ;DONG 10, WAIT FOR NEXT COMMAND
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 134
CONS11 PAL[KL,SYS] Page 42 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ ;C10DNX, TENCERR
≥
≠.IF≡≡%%QMP≡≥ .IF NDF %%QMP
≥ QMPCMD: ;COMMAND UNDEFINED IF NO QMP
≥ .ENDC
≥
≠CLR≡≡TENRUN≡≥ 107552 005037 147670 C10DNX: CLR TENRUN
≤PMSG≡≥ PMSG <?10 CMD>
≡$PMSG≡≡$PMSG≡≥ 107556 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 107560 145622 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡R1≡≡$DFTM1≡≥ 107562 004137 141104 JSR R1,$DFTM1 ;FALLS INTO TENCERR
≠CLR≡≡TENRUN≡≥ 107566 005037 147670 TENCERR:CLR TENRUN
≠CLR≡≡KLCLKR≡≥ 107572 005037 147454 CLR KLCLKR ;CLEAR TEN RUNNING
≡PFORCE≡≡PFORCE≡≥ 107576 104043 PFORCE
≤PMSG≡≥ PMSG <\KL10 CLOCK ERROR STOP>
≡$PMSG≡≡$PMSG≡≥ 107600 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 107602 145632 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≡DFRDT≡≡DFRDT≡≥ 107604 104140 DFRDT
≥ 107606 000106 106
≠BIT≡≡BIT5≡≡.DAT3≡≥ 107610 032777 000040 047504 BIT #BIT5,@.DAT3 ;FIELD SERVICE ?
≠BEQ≡≥ 107616 001402 BEQ 1$
≡$PMSG≡≡$PMSG≡≥ 107620 104025 $PMSG
≡$PEFS≡≡$PEFS≡≥ 107622 105067 $PEFS ;FS PROBE
≥
≡DFRDT≡≡DFRDT≡≥ 107624 104140 1$: DFRDT
≥ 107626 000105 105
≠BIT≡≡BIT5≡≡.DAT3≡≥ 107630 032777 000040 047464 BIT #BIT5,@.DAT3 ;FM PARITY ?
≠BEQ≡≥ 107636 001402 BEQ 2$
≡$PMSG≡≡$PMSG≡≥ 107640 104025 $PMSG
≡$PEFM≡≡$PEFM≡≥ 107642 105017 $PEFM ;FM PARITY
≥
≡DFRDT≡≡DFRDT≡≥ 107644 104140 2$: DFRDT
≥ 107646 000104 104
≠BIT≡≡BIT5≡≡.DAT3≡≥ 107650 032777 000040 047444 BIT #BIT5,@.DAT3 ;CRAM PARITY ?
≠BEQ≡≥ 107656 001402 BEQ 3$
≡$PMSG≡≡$PMSG≡≥ 107660 104025 $PMSG
≡$PECR≡≡$PECR≡≥ 107662 105033 $PECR ;CRAM PARITY
≥
≡DFRDT≡≡DFRDT≡≥ 107664 104140 3$: DFRDT
≥ 107666 000103 103
≠BIT≡≡BIT5≡≡.DAT3≡≥ 107670 032777 000040 047424 BIT #BIT5,@.DAT3 ;DRAM PARITY ?
≠BEQ≡≥ 107676 001402 BEQ 4$
≡$PMSG≡≡$PMSG≡≥ 107700 104025 $PMSG
≡$PEDR≡≡$PEDR≡≥ 107702 105051 $PEDR ;DRAM PARITY
≡PNTCPU≡≡PNTCPU≡≥ 107704 104132 4$: PNTCPU ;PRINT ALL CPU INFORMATION
≠BR≡≡$$TDX≡≥ 107706 000407 BR $$TDX
≥
≠CLR≡≡TENRUN≡≥ 107710 005037 147670 TENDEAD: CLR TENRUN ;CLEAR TEN RUN FLAG
≡PFORCE≡≡PFORCE≡≥ 107714 104043 PFORCE
≤PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 135
CONS11 PAL[KL,SYS] Page 42.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ PMSG <\KL10 HALTED >
≡$PMSG≡≡$PMSG≡≥ 107716 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 107720 145661 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡PC≡≡$ALSTA≡≥ 107722 004737 107732 JSR PC,$ALSTA
≠JMP≡≡$CONSL≡≥ 107726 000137 100014 $$TDX: JMP $CONSL
≥
≡SETFLG≡≡SETFLG≡≥ 107732 104055 $ALSTA: SETFLG ;MAKE COMMAND ROUTINES INTO SUBROUTINES!
≡ALLFLG≡≡ALLFLG≡≥ 107734 147734 ALLFLG
≠JSR≡≡PC≡≡$ALLPC≡≥ 107736 004737 102642 JSR PC,$ALLPC ;PRINT PC
≠JSR≡≡PC≡≡$ALVMA≡≥ 107742 004737 102760 JSR PC,$ALVMA ; AND VMA
≠JSR≡≡PC≡≡$ALLPI≡≥ 107746 004737 103420 JSR PC,$ALLPI ; AND PI
≤PMSG≡≥ PMSG < >
≡$PMSG≡≡$PMSG≡≥ 107752 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 107754 145677 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡PC≡≡$ALPCF≡≥ 107756 004737 103024 JSR PC,$ALPCF ; AND PC FLAGS
≡PCRLF≡≡PCRLF≡≥ 107762 104031 PCRLF ;AND CRLF
≠CLR≡≡ALLFLG≡≥ 107764 005037 147734 CLR ALLFLG
≠RTS≡≡PC≡≥ 107770 000207 RTS PC
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 136
CONS11 PAL[KL,SYS] Page 43 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ ;C10TO, C10TI
≥
≡SETFLG≡≡SETFLG≡≥ 107772 104055 C10TO: SETFLG ;TEN TO ELEVEN FOR TYPEOUT
≡TENTTY≡≡TENTTY≡≥ 107774 150022 TENTTY ;ALLOW "TENCHR" TO OPERATE
≠MOV≡≡$TNBUF≡≡$TNPTC≡≥ 107776 012737 150032 150250 MOV #$TNBUF,$TNPTC ;RESET 10 INPUT POINTERS
≠MOV≡≡$TNBUF≡≡$TNPTR≡≥ 110004 012737 150032 150252 MOV #$TNBUF,$TNPTR
≠MOV≡≡R5≡≡R1≡≥ 110012 010501 MOV R5,R1 ;GET ASCII CHAR
≡PLDBUF≡≡PLDBUF≡≥ 110014 104154 PLDBUF ;PUT IN TTY OUT BUFFER
≠BR≡≡C10DON≡≥ 110016 000643 BR C10DON
≥
≠CLR≡≡DDTFLG≡≥ 110020 005037 147740 C10TI: CLR DDTFLG ;TTY INPUT TO 10
≠CMP≡≡$OUTBF≡≡$OUTPT≡≥ 110024 022737 150254 150474 CMP #$OUTBF,$OUTPT ;ANY OUTPUT WAITING ?
≠BNE≡≡C10TIZ≡≥ 110032 001025 BNE C10TIZ ;YES
≠CMP≡≡$TNPTC≡≡$TNPTR≡≥ 110034 023737 150250 150252 11$: CMP $TNPTC,$TNPTR ;CURRENT BUFFER EMPTY ?
≠BGE≡≡C10TIZ≡≥ 110042 002021 BGE C10TIZ ;YES
≥
≠MOV≡≡$TNPTC≡≡R1≡≥ 110044 013701 150250 MOV $TNPTC,R1 ;GET CHAR POINTER
≠MOVB≡≡R1≡≡R0≡≥ 110050 112100 MOVB (R1)+,R0 ;FETCH CHAR FROM 10 BUFFER
≠MOV≡≡R1≡≡$TNPTC≡≥ 110052 010137 150250 MOV R1,$TNPTC
≥
≠MOV≡≡R0≡≡TENDAT≡≥ 110056 010037 147446 C10TIX: MOV R0,TENDAT ;PUT CHAR IN 28-35 OF TEN WORD
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 110062 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 110070 104110 DPOSVT ;DEPOSIT IN FROM 11 WORD
≡$DTF11≡≡$DTF11≡≥ 110072 000450 $DTF11
≡TENDAT≡≡TENDAT≡≥ 110074 147446 TENDAT
≠BCC≡≡C10DON≡≥ 110076 103213 BCC C10DON
≤PMSG≡≥ C10TIE: PMSG <?10 TTI>
≡$PMSG≡≡$PMSG≡≥ 110100 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 110102 145701 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$$C1≡≥ 110104 000473 BR $$C1
≡TTILIN≡≡TTILIN≡≥ 110106 104004 C10TIZ: TTILIN ;INPUT LINE FOR TEN
≠BCS≡≥ 110110 103414 BCS 5$ ;NO RESPONSE
≠MOV≡≡$TNBUF≡≡R1≡≥ 110112 012701 150032 MOV #$TNBUF,R1
≡TTICHR≡≡TTICHR≡≥ 110116 104005 3$: TTICHR ;GET CHAR FROM INPUT
≠BCS≡≥ 110120 103402 BCS 4$ ;EMPTY
≠MOVB≡≡R0≡≡R1≡≥ 110122 110021 MOVB R0,(R1)+ ;PUT IN TEN BUFFER
≠BR≡≥ 110124 000774 BR 3$
≠MOV≡≡R1≡≡$TNPTR≡≥ 110126 010137 150252 4$: MOV R1,$TNPTR ;UPDATE 10 EOL POINTER
≠MOV≡≡$TNBUF≡≡$TNPTC≡≥ 110132 012737 150032 150250 MOV #$TNBUF,$TNPTC ;SET PICKUP POINTER TO START
≠BR≡≡C10TI≡≥ 110140 000727 BR C10TI ;GO SEND FIRST CHAR TO TEN
≠CLR≡≡R0≡≥ 110142 005000 5$: CLR R0 ;NULL = TIMEOUT
≠BR≡≡C10TIX≡≥ 110144 000744 BR C10TIX
≥
≠MOV≡≡R5≡≡R1≡≥ 110146 010501 C10PNT: MOV R5,R1 ;GET CONTROL BYTE
≠BIC≡≡R1≡≥ 110150 042701 177400 BIC #177400,R1
≠MOV≡≡R1≡≡$FORCE≡≥ 110154 010137 147760 MOV R1,$FORCE ;PUT IN FORCE FLAG
≠CLR≡≡DDTFLG≡≥ 110160 005037 147740 CLR DDTFLG ;CLEAR DDT MODE
≠JMP≡≡C10DON≡≥ 110164 000137 107526 C10X: JMP C10DON
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 137
CONS11 PAL[KL,SYS] Page 44 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ ;Switch functions. C10SW
≥
≠MOV≡≡R5≡≡R1≡≥ 110170 010501 C10SW: MOV R5,R1 ;LOAD SWITCHES INTO FROM 11 WORD
≠BIC≡≡R1≡≥ 110172 042701 177774 BIC #177774,R1 ;2 BIT SUBFUNCTION
≤SL≡≥ SL R1,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R1≡≠.LIST≡≠JMP≡≡C10SWT≡≡R1≡≥ 110200 000171 110204 JMP @C10SWT(R1)
≥
≡C10SW0≡≡C10SW0≡≥ 110204 110226 C10SWT: C10SW0 ;NORMAL SWITCH READ
≡C10SW1≡≡C10SW1≡≥ 110206 110214 C10SW1 ;ENABLE AUTOMATIC DEPOSIT SWITCHES IN 10-MEMORY
≡C10SW2≡≡C10SW2≡≥ 110210 110222 C10SW2 ;DISABLE AUTOMATIC DEPOSIT SWITCHES IN 10-MEMORY
≡C10SW0≡≡C10SW0≡≥ 110212 110226 C10SW0 ;UNDEFINED.
≥
≡SETFLG≡≡SETFLG≡≥ 110214 104055 C10SW1: SETFLG
≡SWTDEP≡≡SWTDEP≡≥ 110216 147422 SWTDEP
≠BR≡≡C10SW0≡≥ 110220 000402 BR C10SW0
≥
≠CLR≡≡SWTDEP≡≥ 110222 005037 147422 C10SW2: CLR SWTDEP ;DON'T AUTO-DEPOSIT
≥ C10SW0:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 110226 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 110234 104110 DPOSVT ;LOAD SWITCHES INTO FROM 11 WORD
≡$DTF11≡≡$DTF11≡≥ 110236 000450 $DTF11
≡SWS10≡≡SWS10≡≥ 110240 157240 SWS10
≠BCS≡≡C10SWE≡≥ 110242 103412 BCS C10SWE ;BRANCH IF LOSING
≥
≠TST≡≡SWTDEP≡≥ 110244 005737 147422 TST SWTDEP ;DID PDP-10 ASK FOR SWITCHES?
≠BEQ≡≡C10X≡≥ 110250 001745 BEQ C10X ;NO. WELL, DON'T STORE UNTIL ASKED. DONE
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 110252 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 110260 104110 DPOSVT ;LOAD SWITCHES INTO $DTSWR
≡$DTSWR≡≡$DTSWR≡≥ 110262 000457 $DTSWR
≡SWS10≡≡SWS10≡≥ 110264 157240 SWS10
≠BCC≡≡C10X≡≥ 110266 103336 BCC C10X ;BRANCH IF WINNING
≥
≤PMSG≡≥ C10SWE: PMSG <?10 SW>
≡$PMSG≡≡$PMSG≡≥ 110270 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 110272 145711 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 110274 000137 100004 $$C1: JMP $CNTLC
≥
≠MOV≡≡SWS10≡≡R5≡≥ 110300 012705 157240 $SW: MOV #SWS10,R5
≡TTISDL≡≡TTISDL≡≥ 110304 104016 TTISDL
≠BCS≡≥ 110306 103407 BCS 1$ ;NON-NUMBER, TYPE PRESENT
≡TTIS36≡≡TTIS36≡≥ 110310 104020 TTIS36
≠MOV≡≡R0≡≡R5≡≥ 110312 012025 MOV (R0)+,(R5)+ ;PUT IN SWITCH WORD
≠MOV≡≡R0≡≡R5≡≥ 110314 011015 MOV (R0),(R5)
≡TENSW≡≡TENSW≡≥ 110316 104145 2$: TENSW ;DO PDP-10 SWITCHES
≠BCS≡≡C10SWE≡≥ 110320 103763 BCS C10SWE ;ERROR
≠JMP≡≡$KONSL≡≥ 110322 000137 100230 3$: JMP $KONSL
≥
≡TENSW≡≡TENSW≡≥ 110326 104145 1$: TENSW ;FIRST READ AND STORE CURRENT SWITCHES
≠BCS≡≡C10SWE≡≥ 110330 103757 BCS C10SWE
≡PFORCE≡≡PFORCE≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 138
CONS11 PAL[KL,SYS] Page 44.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 110332 104043 PFORCE
≠MOV≡≡R5≡≡R0≡≥ 110334 010500 MOV R5,R0 ;PRINT CURRENT SWITCHES
≡PNT36≡≡PNT36≡≥ 110336 104042 PNT36
≡PCRLF≡≡PCRLF≡≥ 110340 104031 PCRLF
≠BR≡≥ 110342 000767 BR 3$
≥
≡SETFLG≡≡SETFLG≡≥ 110344 104055 C10DDT: SETFLG
≡DDTFLG≡≡DDTFLG≡≥ 110346 147740 DDTFLG ;SET FOR DDT MODE INPUT
≡PFORCE≡≡PFORCE≡≥ 110350 104043 PFORCE ;SET FORCED PRINTOUT
≠CMP≡≡$OUTBF≡≡$OUTPT≡≥ 110352 022737 150254 150474 CMP #$OUTBF,$OUTPT ;ANY OUTPUT WAITING ?
≠BEQ≡≥ 110360 001403 BEQ 2$ ;NO
≡SETFLG≡≡SETFLG≡≥ 110362 104055 SETFLG
≡$TTLKF≡≡$TTLKF≡≥ 110364 147764 $TTLKF ;PREVENT INPUT CHECKS
≡PRINTT≡≡PRINTT≡≥ 110366 104151 PRINTT ;YES, PRINT IT
≡TTLOOK≡≡TTLOOK≡≥ 110370 104006 2$: TTLOOK ;GET INPUT CHAR
≠BCS≡≥ 110372 103400 BCS 3$ ;NOTHING THERE, SEND ZERO
≠CMPB≡≡R0≡≡MSWCHR≡≥ 110374 120027 000030 3$: CMPB R0,#MSWCHR ;SWITCH TO KLDCP?
≠BNE≡≡C10TIX≡≥ 110400 001226 BNE C10TIX ;NO.
≠JMP≡≡MTTYI0≡≥ 110402 000137 107212 JMP MTTYI0 ;YES. READ A LINE FOR KLDCP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 139
CONS11 PAL[KL,SYS] Page 45 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ ;C10PRG C10PT C10P2 C10P1 C10X1 C10P3 C10P4 C10P5 C10KAS KASET
≥
≠MOV≡≡R5≡≡R1≡≥ 110406 010501 C10PRG: MOV R5,R1 ;GET CONTROL FIELD
≠BIC≡≡R1≡≥ 110410 042701 177760 BIC #177760,R1
≤SL≡≥ SL R1,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R1≡≠.LIST≡≠JMP≡≡C10PT≡≡R1≡≥ 110416 000171 110422 JMP @C10PT(R1) ;DISPATCH
≥
≡TENDEA≡≡TENDEA≡≥ 110422 107710 C10PT: TENDEAD ;HALT
≡C10P1≡≡C10P1≡≥ 110424 110466 C10P1 ;FATAL
≡C10P2≡≡C10P2≡≥ 110426 110462 C10P2 ;ERROR HALT
≡C10P3≡≡C10P3≡≥ 110430 110476 C10P3 ;END OF PROGRAM
≡C10P4≡≡C10P4≡≥ 110432 110504 C10P4 ;END OF PASS
≡C10P5≡≡C10P5≡≥ 110434 110510 C10P5 ;GIVE PDP-10 CLOCK DEFAULT WORD
≡DIASEL≡≡DIASEL≡≥ 110436 112156 DIASEL ;"DIAMON" FILE SELECTION
≡DIARD≡≡DIARD≡≥ 110440 112242 DIARD ;"DIAMON" FILE READ
≡P10CMD≡≡P10CMD≡≥ 110442 112144 P10CMD ;PDP-10 PROGRAM COMMAND
≡C10KAS≡≡C10KAS≡≥ 110444 110530 C10KAS ;TURN ON KA SIMULATION
≡C10DNX≡≡C10DNX≡≥ 110446 107552 C10DNX
≡C10DNX≡≡C10DNX≡≥ 110450 107552 C10DNX
≡C10DNX≡≡C10DNX≡≥ 110452 107552 C10DNX
≡C10DNX≡≡C10DNX≡≥ 110454 107552 C10DNX
≡C10DNX≡≡C10DNX≡≥ 110456 107552 C10DNX
≡C10DNX≡≡C10DNX≡≥ 110460 107552 C10DNX
≥
≠CLRB≡≡TENRUN≡≥ 110462 105037 147670 C10P2: CLRB TENRUN
≠CLR≡≡TENCLK≡≥ 110466 005037 152216 C10P1: CLR TENCLK
≠JMP≡≡C10DON≡≥ 110472 000137 107526 C10X1: JMP C10DON
≥
≠CLRB≡≡TENRUN≡≥ 110476 105037 147670 C10P3: CLRB TENRUN ;TURN OFF TEN RUNNING
≡ERREOP≡≡ERREOP≡≥ 110502 104062 ERREOP ;END OF PROGRAM
≥
≡EOP≡≡EOP≡≥ 110504 104061 C10P4: EOP
≠BR≡≡C10X≡≥ 110506 000626 BR C10X
≥
≥ C10P5:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 110510 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 110516 104110 DPOSVT
≡$DTF11≡≡$DTF11≡≥ 110520 000450 $DTF11
≡CLKDFL≡≡CLKDFL≡≥ 110522 157246 CLKDFL
≠BCS≡≡C10BCR≡≥ 110524 103453 BCS C10BCR
≠BR≡≡C10CX≡≥ 110526 000442 BR C10CX
≥
≠JSR≡≡PC≡≡KASET≡≥ 110530 004737 110540 C10KAS: JSR PC,KASET ;SET KASIM MODE
≠JMP≡≡C10DON≡≥ 110534 000137 107526 JMP C10DON
≥
≠TST≡≡KASIM≡≥ 110540 005737 147660 KASET: TST KASIM
≠BNE≡≥ 110544 001012 BNE 1$ ;KASIM ALREADY ENABLED
≡SETFLG≡≡SETFLG≡≥ 110546 104055 SETFLG
≡KASIM≡≡KASIM≡≥ 110550 147660 KASIM
≡SETFLG≡≡SETFLG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 140
CONS11 PAL[KL,SYS] Page 45.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 110552 104055 SETFLG
≡SWTDEP≡≡SWTDEP≡≥ 110554 147422 SWTDEP ;ENABLE AUTO SWITCH DEPOSIT
≡SETFLG≡≡SETFLG≡≥ 110556 104055 SETFLG
≡MONMOD≡≡MONMOD≡≥ 110560 147666 MONMODE ;TURN ON MONMODE FOR TTY I/O
≡SETFLG≡≡SETFLG≡≥ 110562 104055 SETFLG
≡MTTYOF≡≡MTTYOF≡≥ 110564 147664 MTTYOF ;SET TTY OUTPUT DONE FLAG
≡SETFLG≡≡SETFLG≡≥ 110566 104055 SETFLG
≡TENCLK≡≡TENCLK≡≥ 110570 152216 TENCLK ;ENABLE CLOCK INTERRUPTS AND SETTING DTCLK
≠RTS≡≡PC≡≥ 110572 000207 1$: RTS PC
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 141
CONS11 PAL[KL,SYS] Page 46 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ ;Clock operations. C10CLK
≥
≠MOV≡≡R5≡≡R1≡≥ 110574 010501 C10CLK: MOV R5,R1
≠.IIF≡≡SAILVR≡≥ 000007 .IIF EQ SAILVR, BIC #177774,R1
≠.IIF≡≡SAILVR≡≠BIC≡≡R1≡≥ 110576 042701 177770 .IIF GT SAILVR, BIC #177770,R1 ;3 BITS FOR SAIL
≤SL≡≥ SL R1,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R1≡≠.LIST≡≠JMP≡≡C10CPT≡≡R1≡≥ 110604 000171 110610 JMP @C10CPT(R1)
≥
≡C10C0≡≡C10C0≡≥ 110610 110630 C10CPT: C10C0 ;DISABLE CLOCK COUNT
≡C10C1≡≡C10C1≡≥ 110612 110660 C10C1 ;RESET CLOCK COUNT. ENABLE CLOCK COUNT
≡C10C2≡≡C10C2≡≥ 110614 110714 C10C2 ;RESET CLOCK. ENABLE CLOCK INT AFTER PERIOD
≡C10C3≡≡C10C3≡≥ 110616 110640 C10C3 ;READ CLOCK COUNT TO 10.
≠.IF≡≡SAILVR≡≥ 000007 .IF GT SAILVR
≡C10C4≡≡C10C4≡≥ 110620 111154 C10C4 ;SET TIME BASE FROM 10. ENABLE KEEPING TIME
≡C10C5≡≡C10C5≡≥ 110622 111342 C10C5 ;GIVE TIME BASE TO 10.
≠.IF≡≡CLKASB≡≥ .IF DF CLKASB
≡C10C6≡≡C10C6≡≥ 110624 111550 C10C6 ;STORE AND ENABLE STORING TIME IN $DTTIME
≡C10CER≡≡C10CER≡≥ 110626 111140 C10CER
≥ .IFF
≥ C10CER ;ERROR
≥ C10CER ;ERROR
≥ .ENDC ;CLKASB
≥ .ENDC ;SAILVR
≥
≠CLR≡≡TENCLK≡≥ 110630 005037 152216 C10C0: CLR TENCLK
≠JMP≡≡C10DON≡≥ 110634 000137 107526 C10CX: JMP C10DON
≥
≥ C10C3:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 110640 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 110646 104110 DPOSVT ;LOAD CLOCK COUNT INTO FROM 11 WORD
≡$DTF11≡≡$DTF11≡≥ 110650 000450 $DTF11
≡CLKCNT≡≡CLKCNT≡≥ 110652 147426 CLKCNT
≠BCS≡≡C10CER≡≥ 110654 103531 C10BCR: BCS C10CER ;ERROR
≠BR≡≡C10CX≡≥ 110656 000766 BR C10CX
≥
≡SETFLG≡≡SETFLG≡≥ 110660 104055 C10C1: SETFLG
≡TENCLK≡≡TENCLK≡≥ 110662 152216 TENCLK
≠.IF≡≡SAILVR≡≥ .IF NDF SAILVR
≥ C10CX1: BIC #200,KWLKS
≥ 1$: TSTB KWLKS ;WAIT FOR CLOCK
≥ BPL 1$ ;THEN CLEAR TO ALLOW FOR
≥ BIC #200,KWLKS ;16MS BEFORE 1ST CLOCK
≥ .IFF
≠CLR≡≡CLKFLG≡≥ 110664 005037 157160 C10CX1: CLR CLKFLG ;SAIL VERSION. WAIT FOR CLOCK FLAG TO CHANGE
≠TST≡≡CLKFLG≡≥ 110670 005737 157160 1$: TST CLKFLG
≠BEQ≡≥ 110674 001775 BEQ 1$ ;LOOP UNTIL INTERRUPT SEEN.
≥ .ENDC
≥
≠MOV≡≡CLKCNT≡≡R0≡≥ 110676 012700 147426 MOV #CLKCNT,R0 ;INIT CLOCK COUNTER
≠CLR≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 142
CONS11 PAL[KL,SYS] Page 46.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 110702 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 110704 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 110706 005010 CLR (R0)
≠JMP≡≡C10DON≡≥ 110710 000137 107526 JMP C10DON
≥
≥
≥ C10C2:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 110714 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡EXAMT≡≡EXAMT≡≥ 110722 104104 EXAMT ;GET WAIT COUNT FROM TO 11 WORD
≡$DTT11≡≡$DTT11≡≥ 110724 000447 $DTT11
≡C10CW≡≡C10CW≡≥ 110726 147434 C10CW
≠BCS≡≡C10CER≡≥ 110730 103503 BCS C10CER
≠MOV≡≡TENCLK≡≥ 110732 012737 177400 152216 MOV #177400,TENCLK
≠BR≡≡C10CX1≡≥ 110740 000751 BR C10CX1
≥
≥ C10COP:
≠.IF≡≡SAILVR≡≥ .IF NDF SAILVR
≥ TSTB KWLKS ;CLOCK FLAG SET ?
≥ BPL 1$ ;NO, RETURN
≥ BIC #200,KWLKS ;CLEAR FLAG
≥ .IFF
≠TST≡≡CLKFLG≡≥ 110742 005737 157160 TST CLKFLG
≠BEQ≡≥ 110746 001473 BEQ 1$
≠CLR≡≡CLKFLG≡≥ 110750 005037 157160 CLR CLKFLG
≥ .ENDC
≥
≠INC≡≡$TTYTI≡≥ 110754 005237 147662 INC $TTYTIM ;COUNT TTY TIMER
≠CMP≡≡SWR≡≡$$SWR≡≥ 110760 023737 177570 157230 CMP SWR,$$SWR ;PDP-11 CONSOLE SWITCHES CHANGED ?
≠BEQ≡≥ 110766 001404 BEQ 3$ ;NO
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡TENSW≡≡TENSW≡≥ 110772 104145 TENSW ;YES, DO PDP-10 SWITCHES
≠BCS≡≡C10CER≡≥ 110774 103461 BCS C10CER ;ERROR
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠TSTB≡≡TENRUN≡≥ 111000 105737 147670 3$: TSTB TENRUN ;IS 10 RUNNING ?
≠BEQ≡≥ 111004 001454 BEQ 1$ ;NO
≠.IF≡≡CLKASB≡≥ .IF DF CLKASB
≠TST≡≡TMSFLG≡≥ 111006 005737 157140 TST TMSFLG
≠BEQ≡≥ 111012 001413 BEQ 4$ ;NOT TIME TO STORE TIME
≠CLR≡≡TMSFLG≡≥ 111014 005037 157140 CLR TMSFLG
≠JSR≡≡PC≡≡RDCLK≡≥ 111020 004737 111600 JSR PC,RDCLK ;READ TIME/DATE INTO TIMTMP
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 111024 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOST≡≡DPOST≡≥ 111032 104106 DPOST ;STORE IN EPT DTTIME
≡$DTTIM≡≡$DTTIM≡≥ 111034 000446 $DTTIME
≡TIMTMP≡≡TIMTMP≡≥ 111036 157152 TIMTMP
≠BCS≡≡C10CER≡≥ 111040 103437 BCS C10CER ;ERROR
≥ .ENDC ;DF CLKAB
≠TST≡≡TENCLK≡≥ 111042 005737 152216 4$: TST TENCLK
≠BEQ≡≥ 111046 001433 BEQ 1$ ;CLOCK NOT ENABLED
≠ADD≡≡CLKCNT≡≥ 111050 062737 000001 147426 ADD #1,CLKCNT ;INCREMENT PDP-10 CLOCK COUNT
≠ADC≡≡CLKCNT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 143
CONS11 PAL[KL,SYS] Page 46.2 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 111056 005537 147430 ADC CLKCNT+2
≠ADC≡≡CLKCNT≡≥ 111062 005537 147432 ADC CLKCNT+4
≠TSTB≡≡TENCLK≡≥ 111066 105737 152216 TSTB TENCLK ;DOING WAIT ?
≠BNE≡≥ 111072 001004 BNE 2$ ;NO
≠CMP≡≡CLKCNT≡≡C10CW≡≥ 111074 023737 147426 147434 CMP CLKCNT,C10CW ;WAITED LONG ENOUGH ?
≠BNE≡≥ 111102 001015 BNE 1$ ;NOT YET
≤PUSH≡≥ 2$: PUSH <R0,R1>
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 111110 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡D10MON≡≡D10MON≡≥ 111116 104111 D10MON ;SET -1 TO 10 "$DTCLK"
≡$DTCLK≡≡$DTCLK≡≥ 111120 000445 $DTCLK
≠BCS≡≡C10CER≡≥ 111122 103406 BCS C10CER
≠MOV≡≡INT10S≡≡.STDTE≡≥ 111124 012777 000400 046222 MOV #INT10S,@.STDTE ;DING TEN
≤POP≡≥ POP <R1,R0>
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTS≡≡PC≡≥ 111136 000207 1$: RTS PC
≥
≠CLR≡≡TENCLK≡≥ 111140 005037 152216 C10CER: CLR TENCLK
≤PMSG≡≥ PMSG <?10 CLKOP>
≡$PMSG≡≡$PMSG≡≥ 111144 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 111146 145720 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 111150 000137 100004 JMP $CNTLC
≥
≥
≠.IFG≡≡SAILVR≡≥ 000007 .IFG SAILVR
≥ C10C4:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 111154 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡EXAMT≡≡EXAMT≡≥ 111162 104104 EXAMT ;GET ADDRESS FROM TO 11 WORD
≡$DTT11≡≡$DTT11≡≥ 111164 000447 $DTT11
≡TIMADR≡≡TIMADR≡≥ 111166 157144 TIMADR
≠BCS≡≡C10CER≡≥ 111170 103763 BCS C10CER ;CAN'T READ ADDRESS
≠MOV≡≡TIMADR≡≡R0≡≥ 111172 012700 157144 MOV #TIMADR,R0
≠BIC≡≡R0≡≥ 111176 042760 177774 000002 BIC #177774,2(R0) ;CLEAR ALL BUT BITS 18-19 (TIMADR+2)
≠MOV≡≡EXVIRT≡≡PRTOFF≡≡$TADSP≡≥ 111204 012737 024000 147424 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
≡EXAM≡≡EXAM≡≥ 111212 104103 EXAM ;EXAMINE 10. RESULT TO $DRAM
≠BCS≡≡C10CER≡≥ 111214 103751 BCS C10CER ;IF EXAMINE FAILED.
≠MOV≡≡$DRAM≡≡R0≡≥ 111216 013700 147462 MOV $DRAM,R0 ;HIGH WORD BITS 20-35
≤SL≡≥ SL R0,3 ;SHIFT THREE PLACES
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R0≡≠ASL≡≡R0≡≠ASL≡≡R0≡≠.LIST≡≠MOV≡≡R0≡≡TIMADR≡≥ 111230 010037 157150 MOV R0,TIMADR+4 ;SAVE HIGH BITS FOR AWHILE
≠MOV≡≡TIMADR≡≡R0≡≥ 111234 012700 157144 MOV #TIMADR,R0
≠ADD≡≡R0≡≥ 111240 062720 000001 ADD #1,(R0)+ ;INCREMENT PDP-10 ADDRESS
≠ADC≡≡R0≡≥ 111244 005510 ADC (R0) ;FOR FETCH OF LOW ORDER WORD
≠BIC≡≡R0≡≥ 111246 042710 177774 BIC #177774,(R0)
≠TST≡≡R0≡≥ 111252 005740 TST -(R0)
≠MOV≡≡EXVIRT≡≡PRTOFF≡≡$TADSP≡≥ 111254 012737 024000 147424 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
≡EXAM≡≡EXAM≡≥ 111262 104103 EXAM
≠BCS≡≡C10CER≡≥ 111264 103725 BCS C10CER
≠MOV≡≡$DRAM≡≡R0≡≥ 111266 012700 147466 MOV #$DRAM+4,R0
≠BIC≡≡R0≡≥ 111272 042710 177770 BIC #177770,(R0) ;CLEAR ALL BUT LOW WORD'S BITS 1-3
≠BIS≡≡TIMADR≡≡R0≡≥ 111276 053710 157150 BIS TIMADR+4,(R0) ;INCLUDE BITS 23-35 OF HIGH WORD
≠MOV≡≡TIMBAS≡≡R1≡≥ 111302 012701 157170 MOV #TIMBAS+4,R1
≤PUSH≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 144
CONS11 PAL[KL,SYS] Page 46.3 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ PUSH PS
≠.NLIST≡≠.IRP≡≠MOV≡≡PS≡≡SP≡≠.LIST≡≠MOV≡≡PR7≡≡PS≡≥ 111312 012737 000340 177776 MOV #PR7,PS ;TURN OFF INTERRUPTS
≠MOV≡≡R0≡≡R1≡≥ 111320 011011 MOV (R0),(R1)
≠MOV≡≡R0≡≡R1≡≥ 111322 014041 MOV -(R0),-(R1)
≠MOV≡≡R0≡≡R1≡≥ 111324 014041 MOV -(R0),-(R1)
≤POP≡≥ POP PS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡PS≡≠.LIST≡≡SETFLG≡≡SETFLG≡≥ 111332 104055 SETFLG
≡KTIMBS≡≡KTIMBS≡≥ 111334 157162 KTIMBS ;KEEP TIME BASE
≠JMP≡≡C10DON≡≥ 111336 000137 107526 C10XXX: JMP C10DON
≥
≥
≠MOV≡≡TIMTMP≡≡R1≡≥ 111342 012701 157152 C10C5: MOV #TIMTMP,R1
≠MOV≡≡TIMBAS≡≡R0≡≥ 111346 012700 157164 MOV #TIMBAS,R0
≤PUSH≡≥ PUSH PS
≠.NLIST≡≠.IRP≡≠MOV≡≡PS≡≡SP≡≠.LIST≡≠MOV≡≡PR7≡≡PS≡≥ 111356 012737 000340 177776 MOV #PR7,PS ;TURN OFF INTERRUPTS
≠MOV≡≡R0≡≡R1≡≥ 111364 012021 MOV (R0)+,(R1)+ ;COPY TIMTMP←TIMBAS
≠MOV≡≡R0≡≡R1≡≥ 111366 012021 MOV (R0)+,(R1)+
≠MOV≡≡R0≡≡R1≡≥ 111370 011011 MOV (R0),(R1)
≤POP≡≥ POP PS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡PS≡≠.LIST≡≠TST≡≡KTIMBS≡≥ 111376 005737 157162 TST KTIMBS ;ARE WE COUNTING TIMEBASE?
≠BNE≡≥ 111402 001003 BNE 1$ ;JUMP IF YES
≠CLR≡≡R1≡≥ 111404 005011 CLR (R1) ;NO. TIMEBASE NOT KEPT OR INVALID
≠CLR≡≡R1≡≥ 111406 005041 CLR -(R1) ;RETURN ZERO.
≠CLR≡≡R1≡≥ 111410 005041 CLR -(R1)
≥ 1$:
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 111412 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡EXAMT≡≡EXAMT≡≥ 111420 104104 EXAMT ;GET DEP ADDRESS FROM TO 11 WORD
≡$DTT11≡≡$DTT11≡≥ 111422 000447 $DTT11
≡TIMADR≡≡TIMADR≡≥ 111424 157144 TIMADR
≠BCS≡≡C10CER≡≥ 111426 103644 BCS C10CER ;CAN'T READ ADDRESS
≠MOV≡≡TIMADR≡≡R1≡≥ 111430 012701 157144 MOV #TIMADR,R1
≠BIC≡≡R1≡≥ 111434 042761 177774 000002 BIC #177774,2(R1) ;CLEAR ALL BUT BITS 18-19 (TIMADR+2)
≠MOV≡≡TIMTMP≡≡R2≡≥ 111442 013702 157156 MOV TIMTMP+4,R2 ;GET HIGH ORDER TIME BASE
≤SR≡≥ SR R2,3 ;SHIFT TO ALIGN BITS 23-35
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R2≡≠ASR≡≡R2≡≠ASR≡≡R2≡≠.LIST≡≠MOV≡≡$DRAM≡≡R0≡≥ 111454 012700 147466 MOV #$DRAM+4,R0
≠CLR≡≡R0≡≥ 111460 005010 CLR (R0)
≠CLR≡≡R0≡≥ 111462 005040 CLR -(R0)
≠MOV≡≡R2≡≡R0≡≥ 111464 010240 MOV R2,-(R0) ;$DRAM+0←BITS 23-35 OF HIGH WORD
≠MOV≡≡EXVIRT≡≡PRTOFF≡≡$TADSP≡≥ 111466 012737 024000 147424 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
≡DPOSVR≡≡DPOSVR≡≥ 111474 104107 DPOSVR ;SEND HIGH WORD
≠BCS≡≡C10CER≡≥ 111476 103620 BCS C10CER
≠MOV≡≡TIMADR≡≡R1≡≥ 111500 012701 157144 MOV #TIMADR,R1 ;INCREMENT ADDRESS TO LOW WORD
≠ADD≡≡R1≡≥ 111504 062721 000001 ADD #1,(R1)+
≠ADC≡≡R1≡≥ 111510 005511 ADC (R1)
≠BIC≡≡R1≡≥ 111512 042711 177774 BIC #177774,(R1)
≠TST≡≡R1≡≥ 111516 005741 TST -(R1)
≠BIC≡≡TIMTMP≡≥ 111520 042737 177770 157156 BIC #177770,TIMTMP+4 ;CLEAR ALL BUT BITS 1-3
≠MOV≡≡TIMTMP≡≡R0≡≥ 111526 012700 157152 MOV #TIMTMP,R0
≠MOV≡≡EXVIRT≡≡PRTOFF≡≡$TADSP≡≥ 111532 012737 024000 147424 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
≡DPOSVR≡≡DPOSVR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 145
CONS11 PAL[KL,SYS] Page 46.4 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 111540 104107 DPOSVR
≠BCC≡≡C10XXX≡≥ 111542 103275 BCC C10XXX
≠JMP≡≡C10CER≡≥ 111544 000137 111140 C10CR1: JMP C10CER
≥
≠.IF≡≡CLKASB≡≥ .IF DF CLKASB
≡SETFLG≡≡SETFLG≡≥ 111550 104055 C10C6: SETFLG ;ENABLE STORING TIME/DATE
≡TIMFLG≡≡TIMFLG≡≥ 111552 157142 TIMFLG
≠JSR≡≡PC≡≡RDCLK≡≥ 111554 004737 111600 JSR PC,RDCLK ;READ CLOCK INTO TIMTMP
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 111560 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 111566 104110 DPOSVT
≡$DTTIM≡≡$DTTIM≡≥ 111570 000446 $DTTIME
≡TIMTMP≡≡TIMTMP≡≥ 111572 157152 TIMTMP
≠BCS≡≡C10CR1≡≥ 111574 103763 BCS C10CR1 ;ERROR
≠BR≡≡C10XXX≡≥ 111576 000657 BR C10XXX
≥
≥ ;FORMAT OF DTTIME PDP10 WORD IS:
≥ ;BYTE (5)DAY (2)0 (5)HOUR (2)0 (6)MINUTE (4)MONTH,YEAR (2)0 (6)SECOND
≥
≤PUSH≡≥ RDCLK: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R2
≠.NLIST≡≠.IRP≡≠MOV≡≡R2≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R3
≠.NLIST≡≠.IRP≡≠MOV≡≡R3≡≡SP≡≠.LIST≡≠TSTB≡≡$CLKST≡≥ 111610 105777 766236 2$: TSTB @$CLKST
≠BPL≡≥ 111614 100375 BPL 2$ ;MAKE SURE CLOCK IS READY
≠MOV≡≡$CLKMD≡≡R0≡≥ 111616 017700 766222 MOV @$CLKMD,R0
≠MOV≡≡$CLKHM≡≡R1≡≥ 111622 017701 766220 MOV @$CLKHM,R1
≠MOV≡≡$CLKSE≡≡R2≡≥ 111626 017702 766216 MOV @$CLKSEC,R2
≠CMP≡≡$CLKMD≡≡R0≡≥ 111632 027700 766206 CMP @$CLKMD,R0
≠BNE≡≥ 111636 001364 BNE 2$
≠CMP≡≡$CLKHM≡≡R1≡≥ 111640 027701 766202 CMP @$CLKHM,R1
≠BNE≡≥ 111644 001361 BNE 2$
≠CMP≡≡$CLKSE≡≡R2≡≥ 111646 027702 766176 CMP @$CLKSEC,R2
≠BNE≡≥ 111652 001356 BNE 2$
≠BIT≡≡R2≡≥ 111654 032702 001400 BIT #1400,R2 ;TEST LOW TWO YEAR BITS
≠BEQ≡≥ 111660 001407 BEQ 3$ ;BRANCH IF A LEAP YEAR
≠CMP≡≡R0≡≥ 111662 020027 001035 CMP R0,#2*400+29. ;IS IT FEB 29?
≠BNE≡≥ 111666 001004 BNE 3$ ;NO
≠MOV≡≡$CLKMD≡≥ 111670 012777 001501 766146 MOV #3*400+1+100,@$CLKMD ;YES, SET TO MAR 1
≠BR≡≥ 111676 000744 BR 2$
≠MOV≡≡R0≡≡R3≡≥ 111700 010003 3$: MOV R0,R3
≤SL≡≥ SL R3,4
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R3≡≠ASL≡≡R3≡≠ASL≡≡R3≡≠ASL≡≡R3≡≠.LIST≡≠BIC≡≡R3≡≥ 111712 042703 007777 BIC #7777,R3 ;LEAVE TOP 4 BITS (MONTH)
≠BIS≡≡R3≡≡R2≡≥ 111716 050302 BIS R3,R2 ;MONTH/YEAR//SECONDS
≠ROR≡≡R0≡≥ 111720 006000 ROR R0
≠BCC≡≥ 111722 103002 BCC 1$
≠BIS≡≡R1≡≥ 111724 052701 100000 BIS #100000,R1 ;LOW BIT OF DAY
≠MOV≡≡TIMTMP≡≡R3≡≥ 111730 012703 157152 1$: MOV #TIMTMP,R3
≠MOV≡≡R2≡≡R3≡≥ 111734 010223 MOV R2,(R3)+
≠MOV≡≡R1≡≡R3≡≥ 111736 010123 MOV R1,(R3)+
≠BIC≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 146
CONS11 PAL[KL,SYS] Page 46.5 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 111740 042700 177760 BIC #177760,R0 ;JUST KEEP LOW 4 BITS
≠MOV≡≡R0≡≡R3≡≥ 111744 010013 MOV R0,(R3)
≤POP≡≥ POP R3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R3≡≠.LIST≡≤POP≡≥ POP R2
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R2≡≠.LIST≡≤POP≡≥ POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTS≡≡PC≡≥ 111756 000207 RTS PC
≥
≠RTI≡≠RTI≡≥ 111760 000002 TCUINT: RTI ;INT FROM SETTING CLOCK
≥
≥ .ENDC ;DF CLKASB
≥
≥ .ENDC ;SAILVR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 147
CONS11 PAL[KL,SYS] Page 47 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ ;PDP-10 SWITCH REGISTER
≥
≠MOV≡≡SWR≡≡$$SWR≡≥ 111762 013737 177570 157230 $TENSW: MOV SWR,$$SWR ;GET PDP-11 SWITCHES
≠MOV≡≡$$SWR≡≡$SWS10≡≥ 111770 013737 157230 157234 MOV $$SWR,$SWS10+2
≥
≠MOV≡≡$SWS10≡≡R1≡≥ 111776 012701 157232 MOV #$SWS10,R1 ;POSITION FOR 0 TO 15 OF
≠MOV≡≡R3≡≥ 112002 012703 000004 MOV #4,R3 ;PDP-10 SWITCH REGISTER
≡PROL36≡≡PROL36≡≥ 112006 104146 PROL36
≥
≠MOV≡≡$SWS10≡≡R4≡≥ 112010 012704 157234 MOV #$SWS10+2,R4 ;Bits 4:15 + xxxx of new stuff
≠MOV≡≡SWS10≡≡R5≡≥ 112014 012705 157242 MOV #SWS10+2,R5 ;old switches.
≥
≠BIC≡≡R4≡≥ 112020 042714 000017 BIC #17,(R4) ;CLEAR 16-19 FROM NEW
≠BIC≡≡R5≡≥ 112024 042715 177760 BIC #177760,(R5) ;CLEAR 4-15 FROM OLD
≥
≠BIS≡≡R4≡≡R5≡≥ 112030 052425 BIS (R4)+,(R5)+ ;INSERT BITS 4-15
≥
≠BIC≡≡R4≡≥ 112032 042714 177760 BIC #177760,(R4) ;CLEAR HI JUNK FROM NEW
≠BIC≡≡R5≡≥ 112036 042715 000017 BIC #17,(R5) ;CLEAR 0-3 FROM OLD
≥
≠BIS≡≡R4≡≡R5≡≥ 112042 051415 BIS (R4),(R5) ;INSERT BITS 0-3
≥
≠TSTB≡≡TENRUN≡≥ 112044 105737 147670 TSTB TENRUN ;PDP-10 RUNNING ?
≠BEQ≡≥ 112050 001412 BEQ 1$ ;NO
≥
≠.IF≡≡SAILVR≡≥ .IF DF SAILVR
≠TST≡≡SWTDEP≡≥ 112052 005737 147422 TST SWTDEP ;DID PDP-10 ASK FOR SWITCHES?
≠BEQ≡≥ 112056 001407 BEQ 1$ ;NO. WELL, DON'T STORE UNTIL ASKED
≥ .ENDC
≥
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 112060 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 112066 104110 DPOSVT ;DEPOSIT PDP-10 SWITCH REGISTER
≡$DTSWR≡≡$DTSWR≡≥ 112070 000457 $DTSWR ;IN DTE20 COMM AREA
≡SWS10≡≡SWS10≡≥ 112072 157240 SWS10
≠BCS≡≥ 112074 103402 BCS 2$ ;ERROR
≡$TCX≠≥ 112076 $TCX=.
≤EXIT≡≥ 1$: EXIT
≠JMP≡≡$EXIT≡≥ 112076 000137 124064 JMP $EXIT
≤EXITER≡≥ 2$: EXITERR ;RETURN
≠JMP≡≡$EXITE≡≥ 112102 000137 124036 JMP $EXITE
≥
≥ ;PDP-10 LAST TYPED CHARACTER ROUTINE
≥
≠TSTB≡≡TENRUN≡≥ 112106 105737 147670 $TENCHR:TSTB TENRUN ;PDP-10 RUNNING ?
≠BEQ≡≡$TCX≡≥ 112112 001771 BEQ $TCX ;NO
≠TST≡≡TENTTY≡≥ 112114 005737 150022 TST TENTTY ;TTY DEPOSIT ALLOWED ?
≠BEQ≡≡$TCX≡≥ 112120 001766 BEQ $TCX ;NO
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 112124 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOST≡≡DPOST≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 148
CONS11 PAL[KL,SYS] Page 47.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
≥ 112132 104106 DPOST ;YES, SEND LAST TYPED CHAR
≡$DTCHR≡≡$DTCHR≡≥ 112134 000454 $DTCHR
≡$TNCHR≡≡$TNCHR≡≥ 112136 150024 $TNCHR
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡$TCX≡≥ 112142 000755 BR $TCX ;DON'T CARE IF FAILED
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 149
CONS11 PAL[KL,SYS] Page 48 PDP-10 PROGRAM COMMAND
≥ .SBTTL PDP-10 PROGRAM COMMAND
≥
≠MOV≡≡R0≡≥ 112144 012700 777777 P10CMD: MOV #-1,R0 ;USE OUTPUT BUFFER
≡PRGCMD≡≡PRGCMD≡≥ 112150 104133 PRGCMD ;& PROGRAM COMMAND
≠BCS≡≡DIANF≡≥ 112152 103430 BCS DIANF ;C-BIT SET, ERROR
≠BR≡≡DIAFND≡≥ 112154 000424 BR DIAFND ;PASSED
≥
≠.SBTTL≡≥ .SBTTL "DIAMON" FILE SELECTION AND READ ROUTINES
≥
≠MOV≡≡$INBUF≡≡R1≡≥ 112156 012701 150500 DIASEL: MOV #$INBUF,R1 ;PUT "P" & "SPACE" FIRST
≠MOV≡≡R1≡≥ 112162 012721 020120 MOV #"P ,(R1)+ ;IN CASE ACT10 LOAD
≠MOV≡≡$OUTBF≡≡R0≡≥ 112166 012700 150254 MOV #$OUTBF,R0 ;TRANSFER "DIAMON" FILE.EXT
≠MOV≡≡R0≡≡$OUTPT≡≥ 112172 010037 150474 MOV R0,$OUTPT ;TO INPUT BUFFER
≠JSR≡≡PC≡≡$DIASX≡≥ 112176 004737 101612 JSR PC,$DIASX
≠MOV≡≡$INBUF≡≡$INPTC≡≥ 112202 012737 150502 150716 MOV #$INBUF+2,$INPTC ;SET PICKUP POINTER
≥
≡NAMEXT≡≡NAMEXT≡≥ 112210 104206 NAMEXT ;SETUP FILE NAME.EXT
≥
≡SETFLG≡≡SETFLG≡≥ 112212 104055 SETFLG
≡LDCNTL≡≡LDCNTL≡≥ 112214 150734 LDCNTL ;SET LOAD CONTROL TO HELP
≡SETFLG≡≡SETFLG≡≥ 112216 104055 SETFLG
≡DIAFLG≡≡DIAFLG≡≥ 112220 151120 DIAFLG ;SET PROCESSING TO "DIAMON" MODE
≥
≠JMP≡≡DEVFIL≡≥ 112222 000137 133350 JMP DEVFIL ;GO LOOKUP & READ FIRST ASCII LINE
≥
≥ ;RETURN HERE WHEN FILE FOUND
≠CLR≡≡R0≡≥ 112226 005000 DIAFND: CLR R0 ;SET FOUND INDICATOR
≠JMP≡≡C10TIX≡≥ 112230 000137 110056 $DIAFX: JMP C10TIX ;USE 10 TTY INPUT ROUTINE
≥
≥ ;RETURN HERE WHEN FILE NOT FOUND
≠MOV≡≡R0≡≥ 112234 012700 777777 DIANF: MOV #-1,R0 ;SET NOT FOUND INDICATOR
≠BR≡≡$DIAFX≡≥ 112240 000773 BR $DIAFX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 150
CONS11 PAL[KL,SYS] Page 49 "DIAMON" FILE SELECTION AND READ ROUTINES
≥ ;"DIAMON" FILE READ
≥
≠JSR≡≡PC≡≡$TI36C≡≥ 112242 004737 122044 DIARD: JSR PC,$TI36C ;CLEAR 36 BIT WORD STORAGE
≥
≠CMP≡≡$INPTC≡≡$INPTR≡≥ 112246 023737 150716 150720 CMP $INPTC,$INPTR ;ANY CURRENT INPUT ?
≠BLE≡≡DIARNL≡≥ 112254 003402 BLE DIARNL ;NO
≠JMP≡≡ACTLD2≡≥ 112256 000137 140312 1$: JMP ACTLD2 ;GO READ NEXT INPUT LINE
≥
≡DIARNL≠≥ 112262 DIARNL=. ;RETURN HERE WITH NEW LINE SETUP
≠MOV≡≡R2≡≥ 112262 012702 000005 2$: MOV #5,R2 ;5 ASCII CHARS PER 36 BIT WORD
≥
≠CMP≡≡$INPTC≡≡$INPTR≡≥ 112266 023737 150716 150720 3$: CMP $INPTC,$INPTR ;EOL ?
≠BGT≡≥ 112274 003014 BGT 4$ ;YES
≠MOVB≡≡$INPTC≡≡R0≡≥ 112276 117700 036414 MOVB @$INPTC,R0 ;GET FILE LINE CHAR
≠INC≡≡$INPTC≡≥ 112302 005237 150716 INC $INPTC
≠MOV≡≡R1≡≥ 112306 012701 000007 MOV #7,R1
≠JSR≡≡PC≡≡SHFT36≡≥ 112312 004737 121766 JSR PC,SHFT36 ;SHIFT 36 BIT WORD LEFT 7
≠BISB≡≡R0≡≡$DRAM≡≥ 112316 150037 147462 BISB R0,$DRAM ;INSERT NEW ASCII BYTE
≠DEC≡≡R2≡≥ 112322 005302 DEC R2 ;DONE 5 CHARS ?
≠BGT≡≥ 112324 003360 BGT 3$ ;NOT YET
≥
≠CLR≡≡R1≡≥ 112326 005001 4$: CLR R1 ;LEFT JUSTIFY FOR PDP-10 ASCII
≠JSR≡≡PC≡≡SHFT36≡≥ 112330 004737 121766 JSR PC,SHFT36
≥
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 112334 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡DPOSVT≡≡DPOSVT≡≥ 112342 104110 DPOSVT ;LOAD INTO FROM 11 WORD
≡$DTF11≡≡$DTF11≡≥ 112344 000450 $DTF11
≡$DRAM≡≡$DRAM≡≥ 112346 147462 $DRAM
≠BCC≡≥ 112350 103012 BCC 6$ ;OK
≥
≤PMSG≡≥ 5$: PMSG <?DIAMON XFER>
≡$PMSG≡≡$PMSG≡≥ 112352 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 112354 145732 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 112356 000137 100004 JMP $CNTLC
≥
≡DIAEOF≠≥ 112362 DIAEOF=. ;DIAMON READ END-OF-FILE
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 112362 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
≡D10MON≡≡D10MON≡≥ 112370 104111 D10MON ;SET FROM 11 WORD -1
≡$DTF11≡≡$DTF11≡≥ 112372 000450 $DTF11
≠BCS≡≥ 112374 103766 BCS 5$ ;ERROR
≥
≠JMP≡≡C10DON≡≥ 112376 000137 107526 6$: JMP C10DON ;TELL 10 TO CONTINUE
≥
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 151
CONS11 PAL[KL,SYS] Page 50 PDP-11 CONSOLE FUNCTIONS
≥ .SBTTL PDP-11 CONSOLE FUNCTIONS
≥
≥ ;START PDP11 AT ADDRESS GIVEN
≥
≡TTISDL≡≡TTISDL≡≥ 112402 104016 .SE: TTISDL
≠BCS≡≥ 112404 103405 BCS 2$ ;NON-NUMBER
≥
≡TTOCTE≡≡TTOCTE≡≥ 112406 104200 1$: TTOCTE ;READ AN OCTAL ADDRESS
≥
≠MOV≡≡R0≡≡SEADR≡≥ 112410 010037 157200 4$: MOV R0,SEADR ;GO TO ADDRESS IN R0
≠JMP≡≡SRT11≡≥ 112414 000137 113250 JMP SRT11
≥
≠CMPB≡≡R0≡≥ 112420 122700 000104 2$: CMPB #'D,R0 ;"D", START DIAGNOSTIC
≠BEQ≡≥ 112424 001406 BEQ 3$
≠CMPB≡≡R0≡≥ 112426 122700 000103 CMPB #'C,R0 ;"C", START CONSOLE
≠BNE≡≡$$CMDE≡≥ 112432 001145 BNE $$CMDE
≠MOV≡≡PRGSRT≡≡R0≡≥ 112434 012700 100000 MOV #PRGSRT,R0
≠BR≡≥ 112440 000763 BR 4$
≠MOV≡≡R0≡≥ 112442 012700 003000 3$: MOV #3000,R0
≠BR≡≥ 112446 000760 BR 4$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 152
CONS11 PAL[KL,SYS] Page 51 PDP-11 CONSOLE FUNCTIONS
≥ ;EXAMINE ELEVEN AT ADDRESS GIVEN
≥
≠MOV≡≡R5≡≥ 112450 012705 000001 .EE: MOV #1,R5
≠BR≡≡.EEB≡≥ 112454 000401 BR .EEB
≥
≠CLR≡≡R5≡≥ 112456 005005 .EB: CLR R5
≥
≠MOV≡≡.EADR≡≡R2≡≥ 112460 012702 147726 .EEB: MOV #.EADR,R2
≠CLR≡≡R3≡≥ 112464 005003 CLR R3
≡TTISDL≡≡TTISDL≡≥ 112466 104016 TTISDL
≠BCS≡≥ 112470 103445 BCS 6$ ;NON-NUMBER
≥
≡TTCOCT≡≡TTCOCT≡≥ 112472 104010 TTCOCT ;READ AN OCTAL ADDRESS
≥
≠MOV≡≡R0≡≡R1≡≥ 112474 010001 MOV R0,R1
≠MOV≡≡R0≡≡R2≡≥ 112476 010012 MOV R0,(R2) ;SAVE ADR FOR DEPOSIT
≥
≡TTIBRK≡≡TTIBRK≡≥ 112500 104015 TTIBRK ;GET BREAK CHAR
≠BCS≡≡$$PARA≡≥ 112502 103517 BCS $$PARA
≠CMPB≡≡COMMA≡≡R0≡≥ 112504 122700 000054 CMPB #COMMA,R0
≠BNE≡≥ 112510 001004 BNE 2$
≠INC≡≡R3≡≥ 112512 005203 INC R3 ;SET MULTIPLE PRINT FLAG
≡PNORML≡≡PNORML≡≥ 112514 104044 PNORML
≡TTCOCT≡≡TTCOCT≡≥ 112516 104010 TTCOCT ;GET LAST ADDRESS
≠MOV≡≡R0≡≡R4≡≥ 112520 010004 MOV R0,R4 ;SAVE END ADR
≥
≠BIC≡≡R5≡≡R1≡≥ 112522 040501 2$: BIC R5,R1 ;IF WORD, MAKE EVEN
≠MOV≡≡R1≡≡R0≡≥ 112524 010100 21$: MOV R1,R0
≠MOV≡≡R1≡≡R2≡≥ 112526 010112 MOV R1,(R2) ;SAVE ADDRESS
≡PNTOCT≡≡PNTOCT≡≥ 112530 104035 PNTOCT ;PRINT ADDRESS
≡PSLASH≡≡PSLASH≡≥ 112532 104033 PSLASH
≥
≠TST≡≡R5≡≥ 112534 005705 1$: TST R5 ;BYTE ?
≠BEQ≡≥ 112536 001403 BEQ 3$ ;YES
≥
≠MOV≡≡R1≡≡R0≡≥ 112540 011100 MOV (R1),R0
≡PNTOCT≡≡PNTOCT≡≥ 112542 104035 PNTOCT ;PRINT CONTENTS OF ADDRESS
≠BR≡≥ 112544 000404 BR 4$
≥
≠MOVB≡≡R1≡≡R0≡≥ 112546 111100 3$: MOVB (R1),R0
≠BIC≡≡R0≡≥ 112550 042700 177400 BIC #177400,R0
≡PNTOCS≡≡PNTOCS≡≥ 112554 104036 PNTOCS ;PRINT BYTE CONTENTS
≠TST≡≡R3≡≥ 112556 005703 4$: TST R3
≠BEQ≡≥ 112560 001406 BEQ 5$
≡PCRLF≡≡PCRLF≡≥ 112562 104031 PCRLF
≠CMP≡≡R1≡≡R4≡≥ 112564 020104 CMP R1,R4
≠BHIS≡≥ 112566 103003 BHIS 5$
≠INC≡≡R1≡≥ 112570 005201 INC R1 ;INCREMENT ADDRESS
≠ADD≡≡R5≡≡R1≡≥ 112572 060501 ADD R5,R1 ;IF WORD, INC BY 2
≠BR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 153
CONS11 PAL[KL,SYS] Page 51.1 PDP-11 CONSOLE FUNCTIONS
≥ 112574 000752 BR 2$
≥
≡PCRLF≡≡PCRLF≡≥ 112576 104031 5$: PCRLF
≠JMP≡≡$KONSL≡≥ 112600 000137 100230 JMP $KONSL
≥
≠BEQ≡≥ 112604 001407 6$: BEQ 7$ ;UPARROW
≠BVC≡≥ 112606 102002 BVC 61$ ;NONE
≠INC≡≡R2≡≥ 112610 005212 INC (R2) ;EXAMINE NEXT 11 ADDRESS
≠ADD≡≡R5≡≡R2≡≥ 112612 060512 ADD R5,(R2)
≠MOV≡≡R2≡≡R1≡≥ 112614 011201 61$: MOV (R2),R1
≠INC≡≡$INPTC≡≥ 112616 005237 150716 INC $INPTC ;ADVANCE PAST TERMINATOR
≠BR≡≥ 112622 000737 BR 2$
≥
≠DEC≡≡R2≡≥ 112624 005312 7$: DEC (R2)
≠SUB≡≡R5≡≡R2≡≥ 112626 160512 SUB R5,(R2)
≠BR≡≥ 112630 000771 BR 61$
≥
≥ ;ZERO ELEVEN
≥
≡TTOCTE≡≡TTOCTE≡≥ 112632 104200 .ZE: TTOCTE ;GET START ADDRESS
≠MOV≡≡R0≡≡R5≡≥ 112634 010005 MOV R0,R5
≥
≡TTCOCT≡≡TTCOCT≡≥ 112636 104010 TTCOCT ;GET END ADDRESS
≥
≠CLR≡≡R5≡≥ 112640 005025 1$: CLR (R5)+ ;ZERO 11
≠CMP≡≡R5≡≡R0≡≥ 112642 020500 CMP R5,R0 ;COMPLETED ?
≠BLOS≡≥ 112644 101775 BLOS 1$ ;NO
≠JMP≡≡$CONSL≡≥ 112646 000137 100014 JMP $CONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 154
CONS11 PAL[KL,SYS] Page 52 PDP-11 CONSOLE FUNCTIONS
≥ ;DEPOSIT ELEVEN DATA
≥
≠MOV≡≡R5≡≥ 112652 012705 000001 .DE: MOV #1,R5 ;DEPOSIT 11 WORD
≠BR≡≡.DEB≡≥ 112656 000401 BR .DEB
≥
≠CLR≡≡R5≡≥ 112660 005005 .DB: CLR R5 ;DEPOSIT 11 BYTE
≥
≠MOV≡≡.EADR≡≡R2≡≥ 112662 012702 147726 .DEB: MOV #.EADR,R2
≡TTISDL≡≡TTISDL≡≥ 112666 104016 TTISDL
≠BCS≡≥ 112670 103421 BCS 5$ ;NON-NUMBER
≥
≡TTCOCT≡≡TTCOCT≡≥ 112672 104010 TTCOCT ;READ OCTAL ADDRESS
≥
≠MOV≡≡R0≡≡R1≡≥ 112674 010001 1$: MOV R0,R1
≠TST≡≡R5≡≥ 112676 005705 TST R5
≠BEQ≡≥ 112700 001402 BEQ 2$
≠BIT≡≡R5≡≡R0≡≥ 112702 030500 BIT R5,R0
≠BNE≡≡$$PARA≡≥ 112704 001016 BNE $$PARA ;WORD, ODD ADDRESSES ILLEGAL
≥
≡TTISDL≡≡TTISDL≡≥ 112706 104016 2$: TTISDL
≠BCS≡≡$$CMDE≡≥ 112710 103416 BCS $$CMDE
≡TTCOCT≡≡TTCOCT≡≥ 112712 104010 TTCOCT ;GET DATA
≥
≠MOV≡≡R1≡≡R2≡≥ 112714 010112 MOV R1,(R2)
≥
≠TST≡≡R5≡≥ 112716 005705 TST R5 ;BYTE ?
≠BEQ≡≥ 112720 001402 BEQ 3$
≥
≠MOV≡≡R0≡≡R1≡≥ 112722 010011 MOV R0,(R1) ;STOW IT
≠BR≡≥ 112724 000401 BR 4$
≥
≠MOVB≡≡R0≡≡R1≡≥ 112726 110011 3$: MOVB R0,(R1) ;STOW 11 BYTE
≠JMP≡≡$KONSL≡≥ 112730 000137 100230 4$: JMP $KONSL
≥
≠BVC≡≡$$CMDE≡≥ 112734 102004 5$: BVC $$CMDE ;IF COLON, USE PREVIOUS EXAMINE ADDRESS
≠MOV≡≡R2≡≡R0≡≥ 112736 011200 MOV (R2),R0
≠BR≡≥ 112740 000755 BR 1$
≥
≠JMP≡≡$PARA≡≥ 112742 000137 113356 $$PARA: JMP $PARA
≠JMP≡≡$CMDE≡≥ 112746 000137 113364 $$CMDE: JMP $CMDE
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 155
CONS11 PAL[KL,SYS] Page 53 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ .SBTTL KL10 MONITOR & ACT10 COMMAND ROUTINES
≥
≡SETFLG≡≡SETFLG≡≥ 112752 104055 $VERIFY:SETFLG
≡VERIFY≡≡VERIFY≡≥ 112754 147730 VERIFY
≡PNORML≡≡PNORML≡≥ 112756 104044 PNORML
≠CLR≡≡LDOVRD≡≥ 112760 005037 150732 CLR LDOVRD ;CLEAR OVERRIDE
≠BR≡≡$PROG1≡≥ 112764 000430 BR $PROG1
≥
≠MOV≡≡LDOVRD≡≥ 112766 012737 000001 150732 $LDT: MOV #1,LDOVRD ;LOAD TEN, OVERRIDE EXT
≠BR≡≡$PROG2≡≥ 112774 000422 BR $PROG2
≠MOV≡≡LDOVRD≡≥ 112776 012737 000002 150732 $LDE: MOV #2,LDOVRD ;LOAD ELEVEN, OVERRIDE EXT
≠BR≡≡$PROG2≡≥ 113004 000416 BR $PROG2
≠MOV≡≡LDOVRD≡≥ 113006 012737 000003 150732 $LDR: MOV #3,LDOVRD ;LOAD RAM, OVERRIDE EXT
≠BR≡≡$PROG2≡≥ 113014 000412 BR $PROG2
≠MOV≡≡LDOVRD≡≥ 113016 012737 000006 150732 $LDB: MOV #6,LDOVRD ;LOAD ELEVEN BIN, OVERRIDE EXT
≠BR≡≡$PROG2≡≥ 113024 000406 BR $PROG2
≠MOV≡≡LDOVRD≡≥ 113026 012737 000007 150732 $LDD: MOV #7,LDOVRD ;LOAD DSKDMP BOOTSTRAP INTO KLDCP,OVERRIDE EXT (D10)
≠BR≡≡$PROG2≡≥ 113034 000402 BR $PROG2
≥
≠CLR≡≡LDOVRD≡≥ 113036 005037 150732 $PROG: CLR LDOVRD ;CLEAR OVERRIDE
≠CLR≡≡VERIFY≡≥ 113042 005037 147730 $PROG2: CLR VERIFY
≠CLR≡≡LDCNTL≡≥ 113046 005037 150734 $PROG1: CLR LDCNTL ;CLEAR LOAD CONTROL FLAG
≠CLR≡≡SRTFLG≡≥ 113052 005037 150726 CLR SRTFLG ;CLEAR SELF START FLAG
≠CLRB≡≡CONSOL≡≥ 113056 105037 077777 CLRB CONSOL-1 ;OVERLAY INUSE INDICATOR
≠BR≡≡$HELP1≡≥ 113062 000430 BR $HELP1 ;GO LOAD PROGRAM
≥
≡SETFLG≡≡SETFLG≡≥ 113064 104055 $JFILE: SETFLG
≡JFILEF≡≡JFILEF≡≥ 113066 147620 JFILEF ;SET DOUBLE INDIRECT FLAG
≠CLR≡≡PRGRUN≡≥ 113070 005037 147614 CLR PRGRUN ;CLEAR PROGRAM RUNNING FLAG
≠MOV≡≡TOUTBF≡≡IFINP≡≥ 113074 012737 010000 147622 MOV #TOUTBF+5000,IFINP ;SETUP STORAGE POINTER
≠BR≡≡$IIX≡≥ 113102 000403 BR $IIX
≥
≠MOV≡≡TOUTBF≡≡IFINP≡≥ 113104 012737 003000 147622 $IFILE: MOV #TOUTBF,IFINP ;SETUP STORAGE POINTER
≠CLR≡≡PCMDFL≡≥ 113112 005037 152214 $IIX: CLR PCMDFLG ;CLEAR PROGRAM COMMAND
≡SETFLG≡≡SETFLG≡≥ 113116 104055 SETFLG
≡IFILEF≡≡IFILEF≡≥ 113120 147624 IFILEF ;SET INDIRECT FILE FLAG
≠CLR≡≡IFINP≡≥ 113122 005077 034474 CLR @IFINP ;CLEAR 1ST BUFFER WORD
≠CLRB≡≡CONSOL≡≥ 113126 105037 077777 CLRB CONSOL-1 ;OVERLAY INUSE INDICATOR
≥
≠CLR≡≡LDOVRD≡≥ 113132 005037 150732 $HELP: CLR LDOVRD ;CLEAR LOAD OVERRIDE FOR H,I,J
≡SETFLG≡≡SETFLG≡≥ 113136 104055 SETFLG
≡LDCNTL≡≡LDCNTL≡≥ 113140 150734 LDCNTL ;SET LOAD CONTROL TO "HELP"
≡PNORML≡≡PNORML≡≥ 113142 104044 PNORML
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP
≥ BPL $HELP1
≥ JMP ACTFIL ;ACT10 HELP
≥ .ENDC
≠JMP≡≡DVLOAD≡≥ 113144 000137 130314 $HELP1: JMP DVLOAD ;RP04/DECTAPE/FLOPPY HELP
≠.IF≡≡MONASB≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 156
CONS11 PAL[KL,SYS] Page 54 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ .IF DF MONASB
≥ $AT: TTITRM
≥ SETFLG
≥ DEVTYP ;SET ACT10 MODE
≥ COMCLR ;CLEAR COMMUNICATIONS
≥ BR $DTX
≥ .ENDC
≥
≠CLR≡≡FLOPPY≡≥ 113150 005037 157306 $DT: CLR FLOPPY
≡TTISDL≡≡TTISDL≡≥ 113154 104016 TTISDL
≠BCS≡≡$DTC≡≥ 113156 103413 BCS $DTC ;LETTER
≡TTISDO≡≡TTISDO≡≥ 113160 104017 TTISDO ;GET UNIT SELECTION DIGIT
≠CMP≡≡R0≡≥ 113162 020027 000007 CMP R0,#7 ;MUST BE 0 TO 7
≠BGT≡≡$CMDE≡≥ 113166 003076 BGT $CMDE
≠SWAB≡≡R0≡≥ 113170 000300 SWAB R0 ;PUT IN PROPER PLACE FOR TC11
≠MOV≡≡R0≡≡DTUNIT≡≥ 113172 010037 157276 MOV R0,DTUNIT ;SAVE IT
≠CLR≡≡DEVTYP≡≥ 113176 005037 157310 $RXX: CLR DEVTYP ;SET DECTAPE MODE
≠JMP≡≡$KONSL≡≥ 113202 000137 100230 $DTX: JMP $KONSL
≥
≠.IF≡≡RXASB≡≥ .IF DF RXASB
≥ $RX: SETFLG
≥ FLOPPY
≥ TTISDL
≥ BCS $DTC ;LETTER
≥ TTISDO ;GET SELECTION DIGIT
≥ CMP R0,#1 ;MUST BE EITHER 0 OR 1
≥ BGT $CMDE
≥ BNE 1$
≥ MOV #RXU1,R0
≥ 1$: MOV R0,RXUNIT ;SAVE FOR RX11/RX01 FLOPPY
≥ BR $RXX
≥ .ENDC ;IF DF RXASB
≥
≥ $DTC:
≠.IF≡≡UTLASB≡≥ .IF DF UTLASB
≥ CMP #"CO,$INBUF+2 ;IS COMMAND 'DTCOPY'/'RXCOPY' ?
≥ BNE 1$
≥ CMP #"PY,$INBUF+4
≥ BNE 1$
≥ JSR PC,$KLUCK ;UTILITY IN CORE ?
≥ TST FLOPPY
≥ BEQ 2$
≥ JMP @RXCOPY ;FLOPPY COPY
≥ 2$: JMP @DTCOPY ;YES
≥ .ENDC
≠JMP≡≡$CMDER≡≥ 113206 000137 100574 1$: JMP $CMDER
≥
≠INC≡≡$INPTC≡≥ 113212 005237 150716 $GO: INC $INPTC
≠MOV≡≡PGOCTL≡≡R0≡≥ 113216 013700 157202 $$GO: MOV PGOCTL,R0 ;GO, START PROGRAM
≠JMP≡≡LDSTRT≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 157
CONS11 PAL[KL,SYS] Page 54.1 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ 113222 000170 113226 JMP @LDSTRT(R0)
≥
≡SRT11X≡≡SRT11X≡≥ 113226 113242 LDSTRT: SRT11X
≡SRT10≡≡SRT10≡≥ 113230 113324 SRT10
≥
≡TTITRM≡≡TTITRM≡≥ 113232 104022 $JC: TTITRM
≡SETFLG≡≡SETFLG≡≥ 113234 104055 SETFLG ;SET J FILE FLAG TO CONTINUE
≡JFILEF≡≡JFILEF≡≥ 113236 147620 JFILEF ;INTERRUPTED J FILE PROCESS
≠BR≡≡$DTX≡≥ 113240 000760 BR $DTX
≠MOV≡≡PGOADR≡≡SEADR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 158
CONS11 PAL[KL,SYS] Page 55 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ 113242 013737 157204 157200 SRT11X: MOV PGOADR,SEADR
≠TST≡≡SEADR≡≥ 113250 005737 157200 SRT11: TST SEADR
≠BEQ≡≥ 113254 001417 BEQ 1$ ;IF ADR 0, START AT 3000
≠BIT≡≡SEADR≡≥ 113256 032737 000001 157200 BIT #1,SEADR
≠BNE≡≡ADRERR≡≥ 113264 001031 BNE ADRERR ;ODD ADDRESSES NOT ALLOWED
≥
≠JSR≡≡PC≡≡$CMCLR≡≥ 113266 004737 115156 2$: JSR PC,$CMCLR ;CLEAR COMMON STORAGE
≥
≠CLR≡≡IFILEF≡≥ 113272 005037 147624 CLR IFILEF ;END INDIRECT PROCESS
≡SETFLG≡≡SETFLG≡≥ 113276 104055 SETFLG
≡PRGRUN≡≡PRGRUN≡≥ 113300 147614 PRGRUN
≠MOV≡≡STACK≡≡R0≡≥ 113302 012700 157774 MOV #STACK-2,R0 ;PASS STACK BASE ADR IN R0
≠MOV≡≡R0≡≡SP≡≥ 113306 010006 MOV R0,SP ;RESET STACK
≠JMP≡≡SEADR≡≥ 113310 000177 043664 JMP @SEADR ;START 11 PROGRAM AT LOAD ADDRESS
≥
≠MOV≡≡SEADR≡≥ 113314 012737 003000 157200 1$: MOV #3000,SEADR
≠BR≡≥ 113322 000761 BR 2$
≥
≠MOV≡≡TGOADR≡≡R0≡≥ 113324 012700 157212 SRT10: MOV #TGOADR+2,R0
≠MOV≡≡PGOADR≡≡R1≡≥ 113330 012701 157206 MOV #PGOADR+2,R1 ;PUT LOAD ADR IN 10 GO ADR
≠MOV≡≡R1≡≡R0≡≥ 113334 011110 MOV (R1),(R0)
≠MOV≡≡R1≡≡R0≡≥ 113336 014140 MOV -(R1),-(R0)
≠JMP≡≡$$$ST≡≥ 113340 000137 106204 JMP $$$ST ;GO TO 10 START ROUTINE
≥
≠.LIF≡≡MONASB≡≥ .LIF NDF MONASB
≠JMP≡≡$CONSL≡≥ 113344 000137 100014 $COMNT: JMP $CONSL
≠.IF≡≡MONASB≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 159
CONS11 PAL[KL,SYS] Page 56 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ .IF DF MONASB
≥
≥ ;ACT10 TIME REQUEST
≥
≥ $TIME: TTBTRM
≥ TST DEVTYP
≥ BPL $TIME1 ;ONLY LEGAL IN ACT10 MODE
≥
≥ COMENQ ;REQUEST APT10 SERVICE
≥
≥ MOV #$INBUF,R0
≥ COMCMD ;SEND COMMAND
≥
≥ $PMSG ;PRINT INPUT LINE
≥ CINBF
≥ COMCLR
≥ $TIME3: JMP $CONSL
≥
≥ $TIME1: JMP NONACT ;NON ACT10
≥
≥ $LOGO:
≥ $LOGIN: TST DEVTYP ;ONLY LEGAL IN ACT10 MODE
≥ BPL $TIME1
≥ TTITRM
≥
≥ COMENQ ;REQUEST SERVICE
≥
≥ MOV #$INBUF,R0
≥ COMCMD ;SEND COMMAND
≥ COMEOT
≥ BR $TIME3
≥
≥ $COMNT: TST DEVTYP ;ACT10 MODE ?
≥ BPL 1$ ;NO, LOCAL ONLY
≥
≥ COMENQ ;REQUEST APT10 SERVICE
≥
≥ MOV #$INBUF,R0
≥ COMCMD ;SEND MESSAGE
≥ COMEOT
≥
≥ 1$: BR $TIME3 ;BACK TO CONSOLE
≥
≥ $BOOT:
≥ $SCRPT:
≥ $MSCP:
≥ $GSCP:
≥ $BOOTT: JMP $CMDER
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 160
CONS11 PAL[KL,SYS] Page 56.1 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ .ENDC ;END .IF DF MONASB
≤PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 161
CONS11 PAL[KL,SYS] Page 57 KL10 MONITOR & ACT10 COMMAND ROUTINES
≥ ADRERR: PMSG <?ADR>
≡$PMSG≡≡$PMSG≡≥ 113350 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 113352 145747 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡COMNER≡≥ 113354 000405 BR COMNER
≥
≤PMSG≡≥ $PARA: PMSG <?PARAM>
≡$PMSG≡≡$PMSG≡≥ 113356 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 113360 145754 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡COMNER≡≥ 113362 000402 BR COMNER
≥
≠JMP≡≡$CMDER≡≥ 113364 000137 100574 $CMDE: JMP $CMDER
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ NONACT: PMSG <?ACT10>
≥ BR COMNER
≥
≥ NORESP: PMSG <?RESPONSE>
≥ .ENDC
≥
≠JMP≡≡$CNTLC≡≥ 113370 000137 100004 COMNER: JMP $CNTLC
≥
≥ ;REINITIALIZE SYSTEM
≥
≠CLR≡≡$ONETM≡≥ 113374 005037 157316 .RI: CLR $ONETM
≠JMP≡≡START≡≥ 113400 000137 100000 JMP START
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 162
CONS11 PAL[KL,SYS] Page 58 LINE PRINTER SELECTION ROUTINE
≥ .SBTTL LINE PRINTER SELECTION ROUTINE
≥
≠.IF≡≡LPASB≡≥ .IF DF LPASB
≥
≥ $LPT: PMSG <LP, Y OR N ? - ←>
≥ TTILIN
≥ TTIYES
≥ BCS $LPT ;JUNK
≥ BMI 10$ ;NO
≥ MOV #NOLP,ERRVEC ;DO WE HAVE A LINE PRINTER CONTROLLER ?
≥ MOV $LPS,R0
≥ TST (R0)
≥ TST R0
≥ BNE 1$ ;LP11
≥ MOV #LP20A,R0
≥ TST (R0)
≥ TST R0
≥ BNE 2$ ;LP20A
≥ MOV #LP20B,R0
≥ TST (R0)
≥ TST R0
≥ BNE 2$ ;LP20B
≥ MOV #$TIMOT,ERRVEC
≥ PMSG <?NO LPT>
≥ JMP $CNTLC
≥ 1$: CLR LPTYPE ;LP11 - TYPE = 0
≥ BR 3$
≥ 2$: MOV R0,LPTYPE ;LP20 - TYPE = CONTROLLER BASE ADDRESS
≥ 3$: MOV #$TIMOT,ERRVEC
≥ SETFLG
≥ LPTFLG
≥ TST LPTYPE
≥ BNE 5$
≥ TST @$LPS ;LP11 - LPT OK ?
≥ BMI 20$ ;NO
≥ 4$: JMP $CONSL
≥
≥ 5$: JSR PC,LP20INI ;INITIALIZE LP20
≥ BCS 20$ ;ERROR
≥ BR 4$
≥ 10$: CLR LPTFLG ;TURN OFF LINE PRINTER
≥ BR 4$
≥ 20$: PMSG <?LP ERR\>
≥ BR $LPT
≥
≥ NOLP: CLR R0 ;NO LP CONTROLLER BUS TRAP
≥ RTI
≥
≥ .SBTTL LP20 INITIALIZATION ROUTINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 163
CONS11 PAL[KL,SYS] Page 58.1 LINE PRINTER SELECTION ROUTINE
≥
≥ LP20INI:MOV LPTYPE,R5 ;SETUP BASE ADDRESS
≥ MOV #LPLINI!LPRERR,(R5) ;CLEAR LP20
≥ MOV #VFUDAT,R0 ;SETUP VFU BUFFER
≥ MOV R0,LPBSAD(R5) ;SETUP BUFFER ADDRESS
≥ MOV #037756,(R0)+ ;VFU LOAD CODE & ALL CHANS
≥ MOV #77,(R0)+
≥ MOV #100,R1 ;SET FOR 64 LINES ON PAGE
≥ 1$: CLR (R0)+
≥ DEC R1
≥ BNE 1$
≥ MOV #167400,(R0) ;VFU STOP LOAD CODE
≥ MOV #-206,LPBCTR(R5) ;206 BYTE XFER
≥ MOV #LPVLOD!LPPENB!LPGO,(R5) ;VFU LOAD & GO
≥ JSR PC,LP20DN ;WAIT FOR DONE
≥ BCS 3$ ;ERROR
≥
≥ CLR LPCBUF(R5) ;CLEAR LP20 RAM
≥ MOV #LPLINI!LPRERR,(R5)
≥ MOV #-1000,R0 ;LOCATION COUNT
≥ MOVB #LPPENB,(R5) ;PARENB & NOT GO
≥ 2$: CLR LPRAMD(R5) ;CLEAR
≥ INC LPCBUF(R5) ;INCREMENT ADDRESS
≥ INC R0 ;COUNT IT
≥ BNE 2$ ;IF NOT DONE, GO BACK
≥ CLC ;COMPLETED, C-BIT CLEAR RETURN
≥ RTS PC
≥
≥ 3$: SEC ;ERROR, C-BIT SET RETURN
≥ RTS PC
≥
≥ .ENDC ;IF DF LPASB
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 164
CONS11 PAL[KL,SYS] Page 59 CONSOLE TELETYPE FUNCTIONS
≥ .SBTTL CONSOLE TELETYPE FUNCTIONS
≥
≠MOV≡≡$TPLIN≡≡R5≡≥ 113404 012705 147776 $TP: MOV #$TPLIN,R5 ;SET TTY PAGE LENGTH
≠BR≡≡$TPW≡≥ 113410 000402 BR $TPW
≥
≠MOV≡≡$PGWID≡≡R5≡≥ 113412 012705 150000 $TW: MOV #$PGWID,R5 ;SET TTY PAGE WIDTH
≥
≡TTISDL≡≡TTISDL≡≥ 113416 104016 $TPW: TTISDL
≠BCS≡≡$PARAM≡≥ 113420 103414 BCS $PARAM
≥
≡TTIDEC≡≡TTIDEC≡≥ 113422 104011 TTIDEC ;SPECIFIED IN DECIMAL
≠BCS≡≡$DECN≡≥ 113424 103412 BCS $DECN ;WASNT A DECIMAL NUMBER
≥
≠MOV≡≡R0≡≡R5≡≥ 113426 010015 MOV R0,(R5) ;SET IT UP
≥
≠JMP≡≡$CONSL≡≥ 113430 000137 100014 $TPWF: JMP $CONSL ;RETURN TO CONSOLE FOR NEXT COMMAND
≥
≥ ;TTY FILL CHARACTER PARAMETER
≥
≡TTISDO≡≡TTISDO≡≥ 113434 104017 $TF: TTISDO
≥
≠CMP≡≡R0≡≥ 113436 020027 000005 CMP R0,#5 ;CHECK FILL PARAMETER UPPER LIMIT
≠BGT≡≡$FILPL≡≥ 113442 003003 BGT $FILPL
≥
≠MOV≡≡R0≡≡$TTYFL≡≥ 113444 010037 147756 MOV R0,$TTYFL ;SET TTY FILL PARAMETER
≥
≠BR≡≡$TPWF≡≥ 113450 000767 BR $TPWF
≥
≥ ;MESSAGES TO OPERATOR
≥
≥ $DECN:
≥ $FILPL:
≥ $OCTN:
≠JMP≡≡$PARA≡≥ 113452 000137 113356 $PARAM: JMP $PARA
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 165
CONS11 PAL[KL,SYS] Page 60 KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
≥ .SBTTL KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
≥
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥
≥ .KLINIK:CMP #"IN,$INBUF+2
≥ BNE 2$
≥ CMP #"IK,$INBUF+4
≥ BNE 2$
≥
≥ TST DL11EFLG ;PRESENTLY ENABLED ?
≥ BEQ 1$ ;NO
≥
≥ KLUNK=.
≥ CLR DL11EFLG ;YES, CLEAR IT
≥ PMSG <KLINIK CLEARED>
≥ JMP $CNTLC
≥
≥ 1$: CLR @$FSTKS ;INITIALIZE
≥ BIS #DLDTR!DLRTS,@$FSTKS ;SET DATA TERMINAL READY
≥ BIT #DLCTS,@$FSTKS ;DO WE HAVE CLEAR TO SEND ?
≥ BEQ FSDISC ;NO
≥ COM DL11EFLG ;ENABLE KLINIK
≥ PMSG <KLINIK ENABLED>
≥ JMP $CNTLC
≥
≥ 2$: JMP $CMDER
≥
≥ ;DL11E DISCONNECT, CLEAR TO SEND NOT SET
≥
≥ FSDISC: CLR DL11EFLG
≥ PMSG <\DL11E NOT CLR TO SEND, >
≥ BR KLUNK
≥
≥ .ENDC ;IF NDF TELASB
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 166
CONS11 PAL[KL,SYS] Page 61 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ .SBTTL FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥
≠.IF≡≡TELASB≡≥ .IF DF TELASB
≥
≡FSRLEN≠≥ 000012 FSRLEN==10. ;10 CHARACTER FSRBUF
≥
≥ ;TRAP HERE WHEN DATASET INTERRUPT OCCURS
≤PUSH≡≥ FSRINT: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡$FSTKS≡≡R0≡≥ 113462 017700 764342 MOV @$FSTKS,R0 ;GET THE STATUS
≠MOV≡≡FSSTAT≡≡R1≡≥ 113466 013701 152260 MOV FSSTATE,R1
≠BEQ≡≡FSINT1≡≥ 113472 001401 BEQ FSINT1 ;FIRST INTERRUPT
≠JMP≡≡R1≡≥ 113474 000111 JMP @R1
≥
≠BIT≡≡DLRI≡≡R0≡≥ 113476 032700 040000 FSINT1: BIT #DLRI,R0 ;TEST FOR RING INDICATION
≠BEQ≡≡FSXIT≡≥ 113502 001411 BEQ FSXIT ;NOPE
≠MOV≡≡FSINT2≡≡FSSTAT≡≥ 113504 012737 113534 152260 MOV #FSINT2,FSSTATE ;SET DISPATCH FOR NEXT INT
≠MOV≡≡R0≡≥ 113512 012700 000074 MOV #60.,R0
≠MOV≡≡HANGU1≡≡R1≡≥ 113516 012701 114040 MOV #HANGU1,R1
≠JSR≡≡PC≡≡FSCLKR≡≥ 113522 004737 114254 JSR PC,FSCLKR ;SET CLOCK REQUEST TO HANG UP IN ONE MINUTE
≤POP≡≥ FSXIT: POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTT≡≠RTT≡≥ 113532 000006 RTT
≥
≠BIT≡≡DLCD≡≡R0≡≥ 113534 032700 010000 FSINT2: BIT #DLCD,R0 ;TEST CARRIER DETECT
≠BEQ≡≡FSXIT≡≥ 113540 001772 BEQ FSXIT ;NOPE
≠BIT≡≡DLCTS≡≡R0≡≥ 113542 032700 020000 BIT #DLCTS,R0 ;TEST CLEAR TO SEND
≠BEQ≡≡FSXIT≡≥ 113546 001767 BEQ FSXIT ;NOPE
≠MOV≡≡FSINT3≡≡FSSTAT≡≥ 113550 012737 113616 152260 MOV #FSINT3,FSSTATE ;OK, HAVE BOTH
≠MOV≡≡FSMSG≡≡R1≡≥ 113556 012701 114424 MOV #FSMSG,R1
≠JSR≡≡PC≡≡FSTYP≡≥ 113562 004737 114200 JSR PC,FSTYP ;TYPE OUT GREETING MESSAGE
≠MOV≡≡FSRBUF≡≡FSRPTR≡≥ 113566 012737 152242 152240 MOV #FSRBUF,FSRPTR
≠MOV≡≡FSINT4≡≡FSSTAT≡≥ 113574 012737 113626 152260 MOV #FSINT4,FSSTATE
≠TST≡≡$FSTKB≡≥ 113602 005777 764224 TST @$FSTKB ;CLEAR INPUT DONE BY REFERENCING BUFFER
≠BIS≡≡DLRIE≡≡$FSTKS≡≥ 113606 052777 000100 764214 BIS #DLRIE,@$FSTKS ;SET READER INTERRUPT ENABLE
≠BR≡≡FSXIT≡≥ 113614 000744 BR FSXIT
≥
≠BIT≡≡DLCTS≡≡R0≡≥ 113616 032700 020000 FSINT3: BIT #DLCTS,R0 ;MAKE SURE WE HAVE CLEAR TO SEND
≠BNE≡≡FSXIT≡≥ 113622 001341 BNE FSXIT
≠BR≡≡HANGUP≡≥ 113624 000502 BR HANGUP
≥
≠BIT≡≡DLCTS≡≡R0≡≥ 113626 032700 020000 FSINT4: BIT #DLCTS,R0
≠BEQ≡≡HANGUP≡≥ 113632 001477 BEQ HANGUP ;HANGUP IF CLEAR TO SEND IS GONE
≠BIT≡≡DLRD≡≡R0≡≥ 113634 032700 000200 BIT #DLRD,R0 ;TEST INPUT DONE
≠BEQ≡≡FSXIT≡≥ 113640 001732 BEQ FSXIT ;SPURIOUS
≠MOV≡≡$FSTKB≡≡R1≡≥ 113642 017701 764164 MOV @$FSTKB,R1 ;GET THE CHARACTER
≠BIC≡≡R1≡≥ 113646 042701 177600 BIC #177600,R1
≠CMP≡≡R1≡≥ 113652 020127 000015 CMP R1,#15
≠BEQ≡≡FSIN4D≡≥ 113656 001426 BEQ FSIN4D
≠CMP≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 167
CONS11 PAL[KL,SYS] Page 61.1 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ 113660 020127 000012 CMP R1,#12
≠BEQ≡≡FSIN4D≡≥ 113664 001423 BEQ FSIN4D
≠CMP≡≡R1≡≥ 113666 020127 000177 CMP R1,#177
≠BEQ≡≡FSIN4R≡≥ 113672 001411 BEQ FSIN4R
≠CMP≡≡FSRPTR≡≡FSRBUF≡≡FSRLEN≡≥ 113674 023727 152240 152254 CMP FSRPTR,#FSRBUF+FSRLEN
≠BHIS≡≡FSXIT≡≥ 113702 103311 BHIS FSXIT ;NO MORE ROOM
≠MOVB≡≡R1≡≡FSRPTR≡≥ 113704 110177 036330 MOVB R1,@FSRPTR ;STORE THE CHARACTER
≠INC≡≡FSRPTR≡≥ 113710 005237 152240 INC FSRPTR
≠BR≡≡FSXIT≡≥ 113714 000704 FSXITA: BR FSXIT
≥
≠CMP≡≡FSRPTR≡≡FSRBUF≡≥ 113716 023727 152240 152242 FSIN4R: CMP FSRPTR,#FSRBUF
≠BEQ≡≡FSXITA≡≥ 113724 001773 BEQ FSXITA
≠DEC≡≡FSRPTR≡≥ 113726 005337 152240 DEC FSRPTR
≠BR≡≡FSXITA≡≥ 113732 000770 BR FSXITA
≥
≠BIC≡≡DLRIE≡≡$FSTKS≡≥ 113734 042777 000100 764066 FSIN4D: BIC #DLRIE,@$FSTKS ;CLEAR RECEIVER INTERRUPT ENB
≠MOV≡≡FSRPTR≡≡R0≡≥ 113742 013700 152240 MOV FSRPTR,R0
≠SUB≡≡FSRBUF≡≡R0≡≥ 113746 162700 152242 SUB #FSRBUF,R0
≠CMP≡≡R0≡≡PWLEN≡≥ 113752 020027 000004 CMP R0,#PWLEN
≠BNE≡≡FSIN4W≡≥ 113756 001021 BNE FSIN4W ;TYPED WRONG AMOUNT
≠MOV≡≡FSRBUF≡≡R0≡≥ 113760 012700 152242 MOV #FSRBUF,R0
≠MOV≡≡PWORD≡≡R1≡≥ 113764 012701 114474 MOV #PWORD,R1
≠CMPB≡≡R0≡≡R1≡≥ 113770 122021 FSIN4E: CMPB (R0)+,(R1)+
≠BNE≡≡FSIN4W≡≥ 113772 001013 BNE FSIN4W ;WRONG
≠CMP≡≡R0≡≡FSRPTR≡≥ 113774 020037 152240 CMP R0,FSRPTR
≠BLO≡≡FSIN4E≡≥ 114000 103773 BLO FSIN4E ;MORE
≠MOV≡≡FSINT5≡≡FSSTAT≡≥ 114002 012737 114120 152260 MOV #FSINT5,FSSTATE
≠CLR≡≡FSCLKA≡≥ 114010 005037 152234 CLR FSCLKA ;FLUSH THE AUTO DESTRUCT CLOCK REQUEST
≠INC≡≡FSFLG≡≥ 114014 005237 152236 INC FSFLG ;WIN
≠BR≡≡FSXITA≡≥ 114020 000735 BR FSXITA
≥
≠MOV≡≡FSLOSM≡≡R1≡≥ 114022 012701 114462 FSIN4W: MOV #FSLOSM,R1
≠JSR≡≡PC≡≡FSTYP≡≥ 114026 004737 114200 JSR PC,FSTYP
≠JSR≡≡PC≡≡HANGU1≡≥ 114032 004737 114040 HANGUP: JSR PC,HANGU1
≠BR≡≡FSXITA≡≥ 114036 000726 BR FSXITA
≥
≠MOV≡≡DLRTS≡≡$FSTKS≡≥ 114040 012777 000004 763762 HANGU1: MOV #DLRTS,@$FSTKS ;HANG UP DATASET (KEEP REQUEST TO SEND AS FLAG)
≠CLR≡≡$FSTPS≡≥ 114046 005077 763762 CLR @$FSTPS ;FLUSH TYPEOUT
≠CLR≡≡FSSTAT≡≥ 114052 005037 152260 CLR FSSTATE
≠CLR≡≡FSFLG≡≥ 114056 005037 152236 CLR FSFLG
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡R0≡≥ 114066 012700 000002 MOV #2,R0
≠MOV≡≡FSHNG1≡≡R1≡≥ 114072 012701 114110 MOV #FSHNG1,R1
≠JSR≡≡PC≡≡FSCLKR≡≥ 114076 004737 114254 JSR PC,FSCLKR ;PLANT FS CLOCK REQUEST FOR 2 SECONDS FROM NOW
≤POP≡≥ POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTS≡≡PC≡≥ 114106 000207 RTS PC
≥
≠MOV≡≡DLDTR≡≡DLRTS≡≡DLDIE≡≡$FSTKS≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 168
CONS11 PAL[KL,SYS] Page 61.2 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ 114110 012777 000046 763712 FSHNG1: MOV #DLDTR!DLRTS!DLDIE,@$FSTKS ;REENABLE DATASET
≠RTS≡≡PC≡≥ 114116 000207 RTS PC
≥
≠BIT≡≡DLCTS≡≡R0≡≥ 114120 032700 020000 FSINT5: BIT #DLCTS,R0
≠BEQ≡≡FSIN5A≡≥ 114124 001406 BEQ FSIN5A
≠BIT≡≡DLCD≡≡R0≡≥ 114126 032700 010000 BIT #DLCD,R0
≠BEQ≡≡FSIN5A≡≥ 114132 001403 BEQ FSIN5A
≠CLR≡≡FSCLKA≡≥ 114134 005037 152234 CLR FSCLKA ;FLUSH DESTRUCT SEQUENCE
≠BR≡≡FSXITA≡≥ 114140 000665 BR FSXITA
≥
≠MOV≡≡R0≡≥ 114142 012700 000017 FSIN5A: MOV #15.,R0 ;START 15 SECOND TIMEOUT IF NO CLEAR TO SEND ...
≠MOV≡≡HANGU1≡≡R1≡≥ 114146 012701 114040 MOV #HANGU1,R1 ; ... OR NO CARRIER DETECT
≠JSR≡≡PC≡≡FSCLKR≡≥ 114152 004737 114254 JSR PC,FSCLKR ;PLANT AUTO DESTRUCT CLOCK REQUEST
≠BR≡≡FSXITA≡≥ 114156 000656 BR FSXITA
≥
≤PUSH≡≥ FSTINT: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠TSTB≡≡$FSTPS≡≥ 114164 105777 763644 TSTB @$FSTPS ;TEST TRANSMITTER READY
≠BEQ≡≡FSXITA≡≥ 114170 001651 BEQ FSXITA ;SPURIOUS INT
≠MOV≡≡FSTPTR≡≡R1≡≥ 114172 013701 152256 MOV FSTPTR,R1
≠BR≡≡FSTYP1≡≥ 114176 000407 BR FSTYP1
≥
≠CLR≡≡$FSTPS≡≥ 114200 005077 763630 FSTYP: CLR @$FSTPS ;CLEAR TRANSMITTER STATUS
≠BIS≡≡DLTIE≡≡$FSTPS≡≥ 114204 052777 000100 763622 BIS #DLTIE,@$FSTPS ;SET TRANSMIT INTERRUPT ENABLE
≤POP≡≥ POP FSTYPR ;SAVE RETURN ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡FSTYPR≡≠.LIST≡≠MOVB≡≡R1≡≡R0≡≥ 114216 112100 FSTYP1: MOVB (R1)+,R0 ;GET NEXT CHARACTER
≠BEQ≡≡FSTYP2≡≥ 114220 001411 BEQ FSTYP2 ;END OF STRING
≠MOV≡≡R0≡≡$FSTPB≡≥ 114222 010077 763610 MOV R0,@$FSTPB ;SEND CHARACTER
≠MOV≡≡R1≡≡FSTPTR≡≥ 114226 010137 152256 MOV R1,FSTPTR ;SAVE POINTER TO TEXT
≠BIT≡≡DLCTS≡≡$FSTKS≡≥ 114232 032777 020000 763570 BIT #DLCTS,@$FSTKS
≠BEQ≡≡HANGUP≡≥ 114240 001674 BEQ HANGUP
≠BR≡≡FSXITA≡≥ 114242 000624 BR FSXITA
≥
≠CLR≡≡$FSTPS≡≥ 114244 005077 763564 FSTYP2: CLR @$FSTPS ;CLEAR XMTR STATUS AGAIN
≠JMP≡≡FSTYPR≡≥ 114250 000177 036000 JMP @FSTYPR ;RETURN TO CALLER
≥
≥ ;CALL WITH # SECONDS IN R0, ADDRESS IN R1
≤PUSH≡≥ FSCLKR: PUSH R2
≠.NLIST≡≠.IRP≡≠MOV≡≡R2≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R3
≠.NLIST≡≠.IRP≡≠MOV≡≡R3≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡R0≡≡R2≡≥ 114262 010002 MOV R0,R2 ;CONVERT R0 TO 60THS
≠CLR≡≡R1≡≥ 114264 005001 CLR R1
≠.REPT≡≥ 000006 .REPT 6
≥ ASL R1
≥ ASL R0
≥ ADC R1
≥ .ENDR ;R1:R0 = 64 * ORIGINAL R0
≠ASL≡≡R1≡≥ 114266 006301 ASL R1
≠ASL≡≡R0≡≥ 114270 006300 ASL R0
≠ADC≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 169
CONS11 PAL[KL,SYS] Page 61.3 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ 114272 005501 ADC R1
≠ASL≡≡R1≡≥ 114274 006301 ASL R1
≠ASL≡≡R0≡≥ 114276 006300 ASL R0
≠ADC≡≡R1≡≥ 114300 005501 ADC R1
≠ASL≡≡R1≡≥ 114302 006301 ASL R1
≠ASL≡≡R0≡≥ 114304 006300 ASL R0
≠ADC≡≡R1≡≥ 114306 005501 ADC R1
≠ASL≡≡R1≡≥ 114310 006301 ASL R1
≠ASL≡≡R0≡≥ 114312 006300 ASL R0
≠ADC≡≡R1≡≥ 114314 005501 ADC R1
≠ASL≡≡R1≡≥ 114316 006301 ASL R1
≠ASL≡≡R0≡≥ 114320 006300 ASL R0
≠ADC≡≡R1≡≥ 114322 005501 ADC R1
≠ASL≡≡R1≡≥ 114324 006301 ASL R1
≠ASL≡≡R0≡≥ 114326 006300 ASL R0
≠ADC≡≡R1≡≥ 114330 005501 ADC R1
≠CLR≡≡R3≡≥ 114332 005003 CLR R3
≠.REPT≡≥ 000002 .REPT 2
≥ ASL R3
≥ ASL R2
≥ ADC R3
≥ .ENDR ;R3:R2 = 4 * ORIGINAL R0
≠ASL≡≡R3≡≥ 114334 006303 ASL R3
≠ASL≡≡R2≡≥ 114336 006302 ASL R2
≠ADC≡≡R3≡≥ 114340 005503 ADC R3
≠ASL≡≡R3≡≥ 114342 006303 ASL R3
≠ASL≡≡R2≡≥ 114344 006302 ASL R2
≠ADC≡≡R3≡≥ 114346 005503 ADC R3
≠SUB≡≡R2≡≡R0≡≥ 114350 160200 SUB R2,R0
≠SBC≡≡R1≡≥ 114352 005601 SBC R1
≠SUB≡≡R3≡≡R1≡≥ 114354 160301 SUB R3,R1 ;R1:R0 GETS 60 * ORIGINAL R0
≠CLR≡≡R2≡≥ 114356 005002 CLR R2
≠ADD≡≡TIM11≡≡R0≡≥ 114360 063700 157172 ADD TIM11,R0
≠ADC≡≡R1≡≥ 114364 005501 ADC R1
≠ADD≡≡TIM11≡≡R1≡≥ 114366 063701 157174 ADD TIM11+2,R1
≠ADC≡≡R2≡≥ 114372 005502 ADC R2
≠ADD≡≡TIM11≡≡R2≡≥ 114374 063702 157176 ADD TIM11+4,R2 ;R2:R1:R0 HAVE NEW TIME
≠MOV≡≡FSRTIM≡≡R3≡≥ 114400 012703 152226 MOV #FSRTIM,R3 ;STORE IN CLOCK REQUEST TIME WORDS
≠MOV≡≡R0≡≡R3≡≥ 114404 010023 MOV R0,(R3)+
≠MOV≡≡R1≡≡R3≡≥ 114406 010123 MOV R1,(R3)+
≠MOV≡≡R2≡≡R3≡≥ 114410 010213 MOV R2,(R3)
≤POP≡≥ POP FSCLKA
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡FSCLKA≡≠.LIST≡≤POP≡≥ POP R3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R3≡≠.LIST≡≤POP≡≥ POP R2
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R2≡≠.LIST≡≠RTS≡≡PC≡≥ 114422 000207 RTS PC
≥
≥
≠.ASCIZ≡≥ 114424 015
≥ 114425 012 FSMSG: .ASCIZ /
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 170
CONS11 PAL[KL,SYS] Page 61.4 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ 114426 127
≥ 114427 101
≥ 114430 111
≥ 114431 124
≥ 114432 123
≥ 114433 040
≥ 114434 103
≥ 114435 157
≥ 114436 156
≥ 114437 163
≥ 114440 157
≥ 114441 154
≥ 114442 145
≥ 114443 056
≥ 114444 040
≥ 114445 040
≥ 114446 120
≥ 114447 141
≥ 114450 163
≥ 114451 163
≥ 114452 167
≥ 114453 157
≥ 114454 162
≥ 114455 144
≥ 114456 040
≥ 114457 075
≥ 114460 040
≥ 114461 000
≥ WAITS Console. Password = /
≥
≠.ASCIZ≡≥ 114462 015
≥ 114463 012 FSLOSM: .ASCIZ /
≥ 114464 127
≥ 114465 162
≥ 114466 157
≥ 114467 156
≥ 114470 147
≥ 114471 015
≥ 114472 012 Wrong
≥ 114473 000
≥ /
≥ PWORD: ;XLISTED OF COURSE
≠.XLIST≡≠.BYTE≡≠.BYTE≡≠.BYTE≡≠.BYTE≡≠.LIST≡≡PWORD≡≡PWLEN≠≥ 000004 PWLEN==.-PWORD
≠.EVEN≡≥ 114500 .EVEN
≥
≥ ;HU command to KLDCP
≡TTITRM≡≡TTITRM≡≥ 114500 104022 $HU: TTITRM
≤PMSG≡≥ PMSG <\BYE\>
≡$PMSG≡≡$PMSG≡≥ 114502 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 171
CONS11 PAL[KL,SYS] Page 61.5 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ 114504 145763 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JSR≡≡PC≡≡HANGU1≡≥ 114506 004737 114040 JSR PC,HANGU1
≠CLR≡≡$TTYFL≡≥ 114512 005037 147756 CLR $TTYFL ;CLEAR PADDING AMOUNT
≠JMP≡≡$CONSL≡≥ 114516 000137 100014 JMP $CONSL
≥
≥ .ENDC ;IF DF TELASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 172
KLDCP PAL[KL,SYS] Page 5.3 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥
≥ ;breakpoints
≠.LIF≡≡BPTASB≡≥ .LIF DF BPTASB
≥ .INSRT BPNT11.PAL
≥
≥ ;subroutines, EMT dispatch, Initialization
≠.INSRT≡≥ .INSRT SUB11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 173
SUB11 PAL[KL,SYS] Page 1 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ COMMENT ⊗ VALID 00047 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00005 00002 .SBTTL BASIC INITIALIZATION ROUTINE, 19-AUG-75
≥ C00012 00003 .SBTTL SET EOP INTERVAL TALLY, ERROR EOP
≥ C00015 00004 .SBTTL ERROR HALT
≥ C00018 00005 .SBTTL PRINT ASCIZ MESSAGE (PNTAL)
≥ C00020 00006 .SBTTL PRINT BUFFER LOAD ROUTINE
≥ C00022 00007 .SBTTL TELETYPE PRINT OUTPUT ROUTINE
≥ C00024 00008 .SBTTL TELETYPE DRIVER
≥ C00028 00009 .SBTTL LINE PRINTER DRIVER
≥ C00032 00010 OPERATOR INTERRUPT TYPEIN CHECKS
≥ C00034 00011 .SBTTL PRINT CRLF
≥ C00036 00012 .SBTTL PRINT LOWER 18 BITS OF 36 BIT NUMBER
≥ C00038 00013 $PRT36: MOV 4(R1),R0 GET THE WORD
≥ C00040 00014 .SBTTL PRINT OCTAL
≥ C00042 00015 .SBTTL CONVERT BINARY TO DECIMAL AND TYPE ROUTINE
≥ C00045 00016 .SBTTL TTY INPUT ROUTINE TTICHR
≥ C00047 00017 .SBTTL TTIYES YES OR NO ROUTINE
≥ C00048 00018 .SBTTL READ SWITCH REGISTER
≥ C00050 00019 .SBTTL INPUT A STRING FROM TTY
≥ C00052 00020 82$: CMPB (R1),#141
≥ C00054 00021 SPECIAL CHAR PROCESS
≥ C00056 00022 SPECIAL CHARACTERS
≥ C00057 00023 .SBTTL CTY & FSTTY DL11 DRIVERS
≥ C00060 00024 .SBTTL READ AN OCTAL NUMBER FROM THE TTY
≥ C00062 00025 .SBTTL READ A DECIMAL NUMBER FROM THE TTY
≥ C00064 00026 .SBTTL READ A 12 DIGIT OCTAL (36 BIT) NUMBER
≥ C00066 00027 3$: MOV R5,$INPTC RESET INPUT POINTER
≥ C00068 00028 8$: TSTB $0FLG
≥ C00070 00029 .SBTTL SIGNED MULTIPLY SUBROUTINE
≥ C00072 00030 .SBTTL BREAK CHARACTER
≥ C00074 00031 .SBTTL TELETYPE INPUT TERMINATION CHECK
≥ C00076 00032 .SBTTL INPUT & CHECK OCTAL NUMBER
≥ C00077 00033 .SBTTL SHIFT R0 RIGHT/LEFT ROUTINES
≥ C00079 00034 .SBTTL SMALL TIME DELAY
≥ C00080 00035 FATAL VECTOR INTERRUPT
≥ C00081 00036 .SBTTL EMT DECODER
≥ C00083 00037 $PNTNBR EMT + 30
≥ C00085 00038 $DPSVT EMT + 110
≥ C00087 00039 $RPLKUP EMT + 170
≥ C00089 00040 .SBTTL POWER DOWN AND UP ROUTINES
≥ C00092 00041 .SBTTL EXIT SUBROUTINE
≥ C00093 00042 .SBTTL PDP10 OPERATIONS
≥ C00100 00043 $D10ADR:MOV #L10ADR,R4
≥ C00103 00044 START MICROCODE
≥ C00104 00045 PDP-10 INSTRUCTION EXECUTE
≥ C00105 00046 PDP-10 CONTROLLED STOP ROUTINE
≥ C00107 00047 .SBTTL CLOCK INITIALIZATION, INTERRUPTS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 174
SUB11 PAL[KL,SYS] Page 1.1 FIELD SERVICE TELETYPE INTERRUPT HANDLER - FSRINT, FSTINT, $HU
≥ C00110 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 175
SUB11 PAL[KL,SYS] Page 2 BASIC INITIALIZATION ROUTINE, 19-AUG-75
≥ .SBTTL BASIC INITIALIZATION ROUTINE, 19-AUG-75
≥
≥ ;*THIS SUBROUTINE PERFORMS THE MOST ELEMENTARY SET UP FOR THE CPU
≥ ;*THIS ROUTINE MUST BE EXECUTED BY ALL OF THE POSSIBLE START
≥ ;*OPTIONS PRIOR TO ANY OTHER SUBROUTINE
≥
≠MOV≡≡STACK≡≡SP≡≥ 114522 012706 157776 $$ILOAD:MOV #STACK,SP ;START HERE FIRST TIME
≠MOV≡≡.DELAY≡≡$ILDCL≡≡R1≡≥ 114526 012701 002435 MOV #<<.DELAY-$ILDCLR>/2>,R1
≠MOV≡≡$ILDCL≡≡R0≡≥ 114532 012700 152226 MOV #$ILDCLR,R0
≠CLR≡≡R0≡≥ 114536 005020 1$: CLR (R0)+ ;CLEAR SPECIAL CONTROL WORDS
≠DEC≡≡R1≡≥ 114540 005301 DEC R1
≠BGT≡≥ 114542 003375 BGT 1$
≠MOV≡≡CLKDFL≡≥ 114544 012737 000017 157252 MOV #17,CLKDFL+4 ;INITIAL DEFAULT, ALL 4 CACHES
≠MOV≡≡PEBITS≡≥ 114552 012737 000036 157262 MOV #36,PEBITS ;INITIAL DEFAULT, AR/ARX, FM, CRAM, DRAM
≥ ;AND NOT FS PROBE, PARITY STOP ENABLES
≠JSR≡≡PC≡≡$CKSUM≡≥ 114560 004737 115174 JSR PC,$CKSUM ;CHECKSUM "KLDCP"
≠MOV≡≡R0≡≡$ILDSU≡≥ 114564 010037 157314 MOV R0,$ILDSUM ;SAVE
≥
≠MOV≡≡CPUPR≡≡PS≡≥ 114570 012737 000140 177776 $SBRINT:MOV #CPUPR,PS ;SET CPU PRIORITY ;NORMAL START (100000)
≠MOV≡≡STACK≡≡SP≡≥ 114576 012706 157776 MOV #STACK,SP ;SET THE STACK POINTER
≥
≠.IF≡≡%%DDT≡≥ .IF DF %%DDT
≥ ; MOV #CPUPR,%DDTS ;CPU PRIORITY FOR DDT
≠MOV≡≡SP≡≥ 114602 013746 000014 MOV @#14,-(SP) ;PUSH 14 AND 16
≠MOV≡≡SP≡≥ 114606 013746 000016 MOV @#16,-(SP) ;TO ALLOW DDT BREAKPOINT TRAPS
≥ .ENDC
≥
≠.IF≡≡%%QMP≡≥ .IF DF %%QMP
≠MOV≡≡R1≡≥ 114612 013701 000776 MOV 776,R1 ;Save location 776
≥ .ENDC
≥
≠CLR≡≡R0≡≥ 114616 005000 CLR R0 ;SET ENTIRE VECTOR AREA TO:
≠MOV≡≡$FATLE≡≡R0≡≥ 114620 012720 122702 1$: MOV #$FATLE,(R0)+ ; ;ADDRESS OF ERROR HANDLER
≠MOV≡≡PR7≡≡R0≡≥ 114624 012720 000340 MOV #PR7,(R0)+ ; ;PR7
≠CMP≡≡R0≡≥ 114630 020027 001000 CMP R0,#1000
≠BLT≡≥ 114634 002771 BLT 1$
≥
≠.IF≡≡%%QMP≡≥ .IF DF %%QMP
≠CMP≡≡R1≡≡PC≡≥ 114636 020127 CMP R1,(PC)+ ;did 776 contain JMP (R0)?
≠JMP≡≡R0≡≥ 114640 000110 JMP (R0) ;if so, we were started by WAITS
≠BNE≡≥ 114642 001003 BNE 99$ ;and must go into monitor mode.
≠BIS≡≥ 114644 052737 100000 000776 BIS #100000,776 ;set sign bit in 776.
≥ 99$:
≥ .ENDC
≥
≠MOV≡≡$TIMOT≡≡ERRVEC≡≥ 114652 012737 122712 000004 MOV #$TIMOT,@#ERRVEC ;TIME OUT BUS ERROR VECTOR
≠MOV≡≡$RESVD≡≡RESVEC≡≥ 114660 012737 122722 000010 MOV #$RESVD,@#RESVEC ;RESERVED INSTRUCTION VECTOR
≠MOV≡≡$PWRDN≡≡PWRVEC≡≥ 114666 012737 123616 000024 MOV #$PWRDN,@#PWRVEC ;POWER FAIL VECTOR
≥
≠.LIF≡≡BPTASB≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 176
SUB11 PAL[KL,SYS] Page 2.1 BASIC INITIALIZATION ROUTINE, 19-AUG-75
≥ .LIF DF BPTASB
≥ MOV #$BRKPT,@#IOTVEC ;IOT VECTOR
≥
≠MOV≡≡$EMTRP≡≡EMTVEC≡≥ 114674 012737 123024 000030 MOV #$EMTRP,@#EMTVEC ;EMT VECTOR
≥
≠.IF≡≡%%DDT≡≥ .IF DF %%DDT
≠MOV≡≡SP≡≥ 114702 012637 000016 MOV (SP)+,@#16 ;FOR DDT, POP BREAKPOINT TRAP
≠MOV≡≡SP≡≥ 114706 012637 000014 MOV (SP)+,@#14
≥ .IFF
≥ MOV #.BCCT,@#BPTVEC ;SET BP VECTOR
≥ .ENDC
≥
≠.IF≡≡SAILVR≡≥ .IF DF SAILVR
≠JSR≡≡PC≡≡CLKSTA≡≥ 114712 004737 125746 JSR PC,CLKSTA ;CLOCK START (AFTER CLOBBERING INTERRUPTS)
≠MOV≡≡CPUPR≡≡EMTVEC≡≥ 114716 012737 000140 000032 MOV #CPUPR,@#EMTVEC+2 ;SO EMTS DON'T AFFECT PROCESSOR PRIORITY
≥ .ENDC
≥
≠.IF≡≡TELASB≡≥ .IF DF TELASB
≠MOV≡≡DLRTS≡≡$FSTKS≡≥ 114724 012777 000004 763076 MOV #DLRTS,@$FSTKS ;INITIALIZE
≠MOV≡≡FSRINT≡≡$FSTRV≡≥ 114732 012777 113456 763100 MOV #FSRINT,@$FSTRV ;SETUP FS KL11E RECEIVE TRAP VECTOR
≠MOV≡≡FSTINT≡≡$FSTTV≡≥ 114740 012777 114160 763074 MOV #FSTINT,@$FSTTV ;SETUP FS KL11E TRANSMIT TRAP VECTOR
≠MOV≡≡R0≡≥ 114746 012700 116100 MOV #40000.,R0 ;40000*2.36USEC = 94.4 MS
≠SOB≡≡R0≡≥ 114752 077001 SOB R0,. ;WAIT FOR DATA SET TO HANG UP
≠BIS≡≡DLRTS≡≡DLDTR≡≡DLDIE≡≡$FSTKS≡≥ 114754 052777 000046 763046 BIS #DLRTS!DLDTR!DLDIE,@$FSTKS ;SET DATA TERM READY AND DATA SET INT ENB
≥ ;LEAVE REQUEST TO SEND UP ALTHOUGH WE DON'T USE IT
≥ .ENDC ;IF DF TELASB
≥
≠.IF≡≡CLKASB≡≥ .IF DF CLKASB
≠MOV≡≡TCUINT≡≡$CLKTV≡≥ 114762 012777 111760 763064 MOV #TCUINT,@$CLKTV ;SET UP TCU-100 TRAP VECTOR
≥ .ENDC ;IF DF CLKASB
≥
≠MOV≡≡BUFCLR≡≡R0≡≥ 114770 012700 147422 11$: MOV #BUFCLR,R0 ;CLEAR BUFFER STORAGE BETWEEN:
≠CLR≡≡R0≡≥ 114774 005020 21$: CLR (R0)+ ;BUFCLR: AND .DELAY !
≠CMP≡≡R0≡≡$ILDCL≡≥ 114776 020027 152226 CMP R0,#$ILDCLR
≠BNE≡≥ 115002 001374 BNE 21$
≠MOV≡≡SP≡≡$KONSP≡≥ 115004 010637 147736 MOV SP,$KONSP
≥
≠CLR≡≡CONSOL≡≥ 115010 005037 077776 CLR CONSOL-2
≥
≡TTPINI≡≡TTPINI≡≥ 115014 104217 TTPINI ;RESET TTY POINTERS
≥
≠MOV≡≡$PGWID≡≥ 115016 012737 000204 150000 MOV #132.,$PGWID ;SET PAGE WIDTH PARAMETER (LA36!)
≠MOV≡≡$TTYFL≡≥ 115024 012737 000000 147756 MOV #0,$TTYFL ;SET FILL PARAMETER TO (LA36!)
≡PFORCE≡≡PFORCE≡≥ 115032 104043 PFORCE ;MUST TYPE STARTUP
≠MOV≡≡NOPAR≡≡ERRVEC≡≥ 115034 012737 115154 000004 MOV #NOPAR,ERRVEC ;SET BUS TIMEOUT IN CASE NO PARITY
≠MOV≡≡MEMPE≡≡MMLPIV≡≥ 115042 012737 124100 000114 MOV #MEMPE,MMLPIV ;SETUP PARITY VECTOR
≠MOV≡≡MMPIE≡≡MMLPBA≡≥ 115050 012737 000001 172100 MOV #MMPIE,MMLPBA ;ENABLE PARITY ERRORS
≠MOV≡≡$TIMOT≡≡ERRVEC≡≥ 115056 012737 122712 000004 MOV #$TIMOT,ERRVEC ;RESTORE BUS TIMEOUT
≥
≠TST≡≡$ONETM≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 177
SUB11 PAL[KL,SYS] Page 2.2 BASIC INITIALIZATION ROUTINE, 19-AUG-75
≥ 115064 005737 157316 TST $ONETM
≠BNE≡≥ 115070 001010 BNE 3$
≥
≠.LIF≡≡BPTASB≡≥ .LIF DF BPTASB
≥ JSR PC,.CB ;CLEAR BP'S
≥
≠.IF≡≡SAILVR≡≥ .IF DF SAILVR
≤PMSG≡≥ PMSG <\Stanford KLDCP - QMP/EN\>
≡$PMSG≡≡$PMSG≡≥ 115072 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 115074 145771 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡SWS10≡≡R0≡≥ 115076 012700 157240 MOV #SWS10,R0 ;setup initial switches to 3,,600000
≠CLR≡≡R0≡≥ 115102 005020 CLR (R0)+ ;bits 20:35
≠BIS≡≡R0≡≥ 115104 052720 000017 BIS #17,(R0)+ ;bits 04:19
≠CLR≡≡R0≡≥ 115110 005010 CLR (R0) ;bits 0:3
≥ .IFF
≥ PMSG <\DECSYSTEM10 DIAGNOSTIC CONSOLE\VERSION >
≥ MOV #MCNVER,R0
≥ PNTOCS
≥ PNTCI
≥ '.
≥ MOV #DECVER,R0
≥ PNTOCS
≥ ;.IF DF SAILVR
≥ ; PMSG <, Stanford version >
≥ ; MOV #SAILVR,R0
≥ ; PNTOCS
≥ ;.ENDC
≥ PMSG <\11 SWR = >
≥ MOV SWR,R0
≥ PNTOCT ;PRINT CONSOLE SWITCHES
≥ PCRLF
≥ .ENDC
≥
≠JSR≡≡PC≡≡DTEINI≡≥ 115112 004737 140620 3$: JSR PC,DTEINI ;DTE20 INITIALIZATION
≥
≠.IF≡≡SAILVR≡≥ .IF NDF SAILVR
≥ TST DEVTYP ;USING RP04 ?
≥ BLE 4$ ;NO
≥ RPLOAD ;YES, INIT & LOAD PACK
≥ BCC 4$
≥ RPERROR ;FAILED
≥ .ENDC
≥
≥ 4$:
≠.IF≡≡%%QMP≡≥ .IF DF %%QMP
≠TST≡≥ 115116 005737 000776 TST 776 ;were we loaded and started by the 10?
≠BGE≡≥ 115122 002010 BGE 44$ ;branch if not
≡SETFLG≡≡SETFLG≡≥ 115124 104055 SETFLG
≡MONMOD≡≡MONMOD≡≥ 115126 147666 MONMODE
≡SETFLG≡≡SETFLG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 178
SUB11 PAL[KL,SYS] Page 2.3 BASIC INITIALIZATION ROUTINE, 19-AUG-75
≥ 115130 104055 SETFLG
≡TENRUN≡≡TENRUN≡≥ 115132 147670 TENRUN
≡SETFLG≡≡SETFLG≡≥ 115134 104055 SETFLG
≡PRGRUN≡≡PRGRUN≡≥ 115136 147614 PRGRUN
≡SETFLG≡≡SETFLG≡≥ 115140 104055 SETFLG
≡MTTYOF≡≡MTTYOF≡≥ 115142 147664 MTTYOF
≥ .ENDC
≥
≥ 44$:
≠.LIF≡≡%%QMP≡≥ .LIF DF %%QMP
≠JSR≡≡PC≡≡QMPINI≡≥ 115144 004737 137542 JSR PC,QMPINI ;initialize QMP
≥
≠JMP≡≡CONSL≡≥ 115150 000137 100106 JMP CONSL ;NOW TO CONSOLE
≥
≠RTI≡≠RTI≡≥ 115154 000002 NOPAR: RTI ;NO PARITY REGISTER
≥
≠MOV≡≡$CMTAG≡≡R0≡≥ 115156 012700 152172 $CMCLR: MOV #$CMTAG,R0 ;CLEAR COMMON STORAGE
≠CLR≡≡R0≡≥ 115162 005020 1$: CLR (R0)+
≠CMP≡≡R0≡≡MONCTL≡≥ 115164 020027 152222 CMP R0,#MONCTL
≠BLT≡≥ 115170 002774 BLT 1$
≠RTS≡≡PC≡≥ 115172 000207 RTS PC
≥
≠CLR≡≡$KDCEN≡≥ 115174 005037 101140 $CKSUM: CLR $KDCEN ;CLEAR ONLY CHANGEABLE LOCATION
≠MOV≡≡START≡≡R1≡≥ 115200 012701 100000 MOV #START,R1
≠CLR≡≡R0≡≥ 115204 005000 CLR R0
≠ADD≡≡R1≡≡R0≡≥ 115206 062100 2$: ADD (R1)+,R0 ;CHECKSUM "KLDCP"
≠CMP≡≡R1≡≡$$FF≡≥ 115210 020137 144716 CMP R1,$$FF
≠BLOS≡≥ 115214 101774 BLOS 2$
≠RTS≡≡PC≡≥ 115216 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 179
SUB11 PAL[KL,SYS] Page 3 SET EOP INTERVAL TALLY, ERROR EOP
≥ .SBTTL SET EOP INTERVAL TALLY, ERROR EOP
≠.IF≡≡%%EOP≡≥ .IF NDF %%EOP
≥
≥ $EOPSET:
≥ $EOP:
≡FATAL≡≡FATAL≡≥ 115220 104000 $ERREOP:FATAL
≥ .ENDC
≥
≠.IF≡≡%%EOP≡≥ .IF DF %%EOP
≥ $EOPSET:MOV R0,$ENDCT ;SET EOP INTERVAL TALLY
≥ EXIT
≥
≥ ;CONSOLE SET EOP INTERVAL
≥
≥ .EP: TTISDL
≥ BCS 1$
≥ TTIDEC ;SPECIFIED AS DECIMAL INTERVAL
≥ BCS 1$
≥ MOV R0,$ENDCT
≥ CLR $EOPCT
≥ JMP $KONSL
≥ 1$: JMP $PARAM
≥
≥ .SBTTL END OF PASS ROUTINE
≥
≥ $EOP: MOV #$PASS,R5
≥ INC (R5) ;INCREMENT THE PASS NUMBER
≥ CMP (R5),#30001. ;LIMIT MAX COUNT TO 30000
≥ BLT 4$
≥ CLR (R5)
≥ INC (R5)
≥ MOV $ENDCT,$EOPCT ;RESET REPORT INTERVAL
≥
≥ 4$: MOV (R5),SWR ;DISPLAY PASS COUNT
≥ SWITCH ;READ THE SWITCH REGISTER
≥
≥ BIT R0,#ABORT ;ABORT AFTER CURRENT PASS?
≥ BNE 1$ ;YES
≥
≥ DEC $EOPCT ;DECREMENT EOP
≥ BGT 3$
≥ BR 2$
≥
≥ 1$: MOV #1,$ITERA ;SET ITERATION SO WE WILL EXIT
≥ 2$: PMSG <END PASS >
≥
≥ MOV (R5),R0 ;PASS COUNT TO R0
≥ PNTDEC
≥ PCRLF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 180
SUB11 PAL[KL,SYS] Page 3.1 SET EOP INTERVAL TALLY, ERROR EOP
≥
≥ MOV $ENDCT,$EOPCT ;RESTORE COUNTER
≥
≥ 3$: DEC $ITERA ;DECREMENT ITERATION COUNT
≥ BEQ $ERREOP
≥ CLR $ITERA
≥ EXIT
≥
≥ $ERREOP:TST MONCTL ;STAND ALONE ?
≥ BNE $EROP ;NO, *WHAT TO DO ??*
≥ CLR TENRUN ;TURN OFF TEN SUPPORT
≥ CLR PRGRUN ;YES, ALLOW "J" AGAIN
≥
≥ $EROP: JMP CONSL ;MONITOR, TO NEXT SCRIPT ENTRY
≥
≥ .ENDC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 181
SUB11 PAL[KL,SYS] Page 4 ERROR HALT
≥ .SBTTL ERROR HALT
≥
≤PUSH≡≥ $PRGHLT:PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <\PRG>
≡$PMSG≡≡$PMSG≡≥ 115224 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 115226 146023 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$PH2≡≥ 115230 000412 BR $PH2
≥
≤PUSH≡≥ $ERRHLT:PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡SWITCH≡≡SWITCH≡≥ 115234 104057 SWITCH
≠BIT≡≡R0≡≡ERSTOP≡≥ 115236 030027 000400 BIT R0,#ERSTOP ;STOP ON ERROR ?
≠BNE≡≥ 115242 001003 BNE 1$ ;YES
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT ;NO, KEEP GOING
≠JMP≡≡$EXIT≡≥ 115246 000137 124064 JMP $EXIT
≥
≤PMSG≡≥ 1$: PMSG <\ERROR>
≡$PMSG≡≡$PMSG≡≥ 115252 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 115254 146030 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≡SETFLG≡≡SETFLG≡≥ 115256 104055 $PH2: SETFLG
≡.HCFLG≡≡.HCFLG≡≥ 115260 147610 .HCFLG ;ALLOW HALT CONTINUE
≥
≠MOV≡≡SP≡≡$R0SAV≡≥ 115262 012637 147636 $PH1: MOV (SP)+,$R0SAV ;SETUP SO "RG" CAN PRINT
≠MOV≡≡$R5SAV≡≡R0≡≥ 115266 012700 147652 MOV #$R5SAV+2,R0
≠MOV≡≡SP≡≡R0≡≥ 115272 012640 MOV (SP)+,-(R0) ;R5 to $R5SAV
≠MOV≡≡SP≡≡R0≡≥ 115274 012640 MOV (SP)+,-(R0) ;R4 to $R4SAV
≠MOV≡≡SP≡≡R0≡≥ 115276 012640 MOV (SP)+,-(R0) ;R3 to $R3SAV
≠MOV≡≡SP≡≡R0≡≥ 115300 012640 MOV (SP)+,-(R0) ;R2 to $R2SAV
≠MOV≡≡SP≡≡R0≡≥ 115302 012640 MOV (SP)+,-(R0) ;R1 to $R1SAV
≠MOV≡≡SP≡≡.HCADR≡≥ 115304 012637 147606 MOV (SP)+,.HCADR ;halt/continue address (if needed)
≠MOV≡≡SP≡≡$PSSAV≡≥ 115310 012637 147654 MOV (SP)+,$PSSAV ;halt/continue PS.
≠MOV≡≡SP≡≡$SPSAV≡≥ 115314 010637 147652 MOV SP,$SPSAV ;save dead SP
≤PMSG≡≥ PMSG < HALT AT >
≡$PMSG≡≡$PMSG≡≥ 115320 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 115322 146037 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡.HCADR≡≡R0≡≥ 115324 013700 147606 MOV .HCADR,R0 ;GET ADDRESS
≠SUB≡≡R0≡≥ 115330 162700 000002 SUB #2,R0 ;COMPUTE ACTUAL ADDRESS
≡PNTOCT≡≡PNTOCT≡≥ 115334 104035 PNTOCT ;PRINT ERROR HALT ADDRESS
≡PCRLF≡≡PCRLF≡≥ 115336 104031 PCRLF
≡PFORCE≡≡PFORCE≡≥ 115340 104043 PFORCE
≠CLR≡≡R2≡≥ 115342 005002 CLR R2 ;REGISTER NUMBER
≠MOV≡≡$R0SAV≡≡R1≡≥ 115344 012701 147636 MOV #$R0SAV,R1 ;REG SAVE TABLE POINTER
≡PNTCI≡≡PNTCI≡≥ 115350 104214 1$: PNTCI
≥ 115352 000122 'R
≠MOV≡≡R2≡≡R0≡≥ 115354 010200 MOV R2,R0 ;register number
≡PNTNBR≡≡PNTNBR≡≥ 115356 104030 PNTNBR ;PRINT REGISTER NUMBER
≡PSLASH≡≡PSLASH≡≥ 115360 104033 4$: PSLASH
≠MOV≡≡R1≡≡R0≡≥ 115362 012100 2$: MOV (R1)+,R0
≡PNTOCT≡≡PNTOCT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 182
SUB11 PAL[KL,SYS] Page 4.1 ERROR HALT
≥ 115364 104035 PNTOCT ;PRINT CONTENTS
≡PCRLF≡≡PCRLF≡≥ 115366 104031 PCRLF
≠INC≡≡R2≡≥ 115370 005202 INC R2
≠CMP≡≡R2≡≥ 115372 020227 000006 CMP R2,#6
≠BLT≡≥ 115376 002764 BLT 1$ ;loop for zero to 5
≠BGT≡≥ 115400 003003 BGT 3$ ;exit for 7
≡PNTCI≡≡PNTCI≡≥ 115402 104214 PNTCI
≥ 115404 050123 "SP
≠BR≡≥ 115406 000764 BR 4$ ;print R6 as SP
≥
≠CLR≡≡R2≡≥ 115410 005002 3$: CLR R2 ;Count of stack frames
≠MOV≡≡$SPSAV≡≡R1≡≥ 115412 013701 147652 MOV $SPSAV,R1 ;Stack top address
≠MOV≡≡R1≡≡R0≡≥ 115416 010100 91$: MOV R1,R0
≡PNTOCT≡≡PNTOCT≡≥ 115420 104035 PNTOCT
≡PSLASH≡≡PSLASH≡≥ 115422 104033 PSLASH
≠MOV≡≡R1≡≡R0≡≥ 115424 012100 MOV (R1)+,R0
≡PNTOCT≡≡PNTOCT≡≥ 115426 104035 PNTOCT ;PRINT CONTENTS
≡PCRLF≡≡PCRLF≡≥ 115430 104031 PCRLF
≠CMP≡≡R1≡≡COREND≡≥ 115432 020127 160000 CMP R1,#COREND
≠BGE≡≥ 115436 002004 BGE 92$
≠INC≡≡R2≡≥ 115440 005202 INC R2
≠CMP≡≡R2≡≥ 115442 020227 000006 CMP R2,#6
≠BLT≡≥ 115446 002763 BLT 91$ ;loop to display several stack items
≠TST≡≡.HCFLG≡≥ 115450 005737 147610 92$: TST .HCFLG ;is this a continuable halt?
≠BEQ≡≥ 115454 001402 BEQ 93$ ;BR if not
≠JMP≡≡$CONSL≡≥ 115456 000137 100014 JMP $CONSL ;RETURN TO MONITOR
≥
≥ 93$:
≠.LIF≡≡%%DDT≡≥ .LIF DF %%DDT
≠JMP≡≥ 115462 000137 056000 JMP 56000
≥
≠.LIF≡≡%%DDT≡≥ .LIF NDF %%DDT
≥ JMP $SBRINT ;major crash. nearly major reload
≥
≠TST≡≡.HCFLG≡≥ 115466 005737 147610 .HC: TST .HCFLG
≠BNE≡≥ 115472 001002 BNE 1$
≠JMP≡≡$CMDER≡≥ 115474 000137 100574 JMP $CMDER ;HC NOT ALLOWED
≠CLR≡≡.HCFLG≡≥ 115500 005037 147610 1$: CLR .HCFLG
≥
≠.LIF≡≡BPTASB≡≥ .LIF DF BPTASB
≥ JSR PC,.BCHC
≥
≠MOV≡≡$SPSAV≡≡R6≡≥ 115504 013706 147652 MOV $SPSAV,R6
≠MOV≡≡$PSSAV≡≡PS≡≥ 115510 013737 147654 177776 MOV $PSSAV,PS
≠JMP≡≡.HCADR≡≥ 115516 000177 032064 JMP @.HCADR
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 183
SUB11 PAL[KL,SYS] Page 5 PRINT ASCIZ MESSAGE (PNTAL)
≥ .SBTTL PRINT ASCIZ MESSAGE (PNTAL)
≥
≠BICB≡≡R0≡≥ 115522 142710 000200 $PNTAL: BICB #200,(R0) ;CLEAR JUNK
≠TSTB≡≡R0≡≥ 115526 105710 TSTB (R0) ;REACHED EOL YET?
≠BEQ≡≥ 115530 001430 BEQ 3$ ;YES
≠TST≡≡HLPPNT≡≥ 115532 005737 150722 TST HLPPNT ;PRINTING A HELP FILE
≠BNE≡≥ 115536 001006 BNE 4$ ;YES
≠CMPB≡≡R0≡≡BKARW≡≥ 115540 121027 000137 CMPB (R0),#BKARW ;BACKARROW (-)?
≠BEQ≡≥ 115544 001416 BEQ 2$ ;YES
≠CMPB≡≡R0≡≡BKSLH≡≥ 115546 121027 000134 CMPB (R0),#BKSLH ;BACKSLASH (\)?
≠BEQ≡≥ 115552 001403 BEQ 1$
≠MOVB≡≡R0≡≡R1≡≥ 115554 112001 4$: MOVB (R0)+,R1 ;PUT CHAR IN R1
≡PLDBUF≡≡PLDBUF≡≥ 115556 104154 PLDBUF ;LOAD INTO OUTPUT BUFFER
≠BR≡≡$PNTAL≡≥ 115560 000760 BR $PNTAL ;DO TILL E-O-L
≥
≠MOV≡≡CR≡≡R1≡≥ 115562 012701 000015 1$: MOV #CR,R1 ;BACKSLASH
≡PLDBUF≡≡PLDBUF≡≥ 115566 104154 PLDBUF ;OUTPUT CR & LF
≠MOV≡≡LF≡≡R1≡≥ 115570 012701 000012 MOV #LF,R1
≡PLDBUF≡≡PLDBUF≡≥ 115574 104154 PLDBUF
≠INC≡≡R0≡≥ 115576 005200 11$: INC R0
≠BR≡≡$PNTAL≡≥ 115600 000750 BR $PNTAL
≥
≠CLR≡≡CTRLOF≡≥ 115602 005037 147770 2$: CLR CTRLOF ;CLEAR CONTROL O FLAG
≡PRINTT≡≡PRINTT≡≥ 115606 104151 PRINTT ;BACKARROW, PRINT BUFFER
≠BR≡≥ 115610 000772 BR 11$
≥
≠BR≡≡$$PNTX≡≥ 115612 000406 3$: BR $$PNTX
≥
≠.SBTTL≡≥ .SBTTL PRINT ASCII NUMBER (PNTNBR)
≥
≠BIC≡≡R0≡≥ 115614 042700 177770 $PNTNBR:BIC #177770,R0
≠BIS≡≡R0≡≥ 115620 052700 000060 BIS #'0,R0
≥
≠.SBTTL≡≥ .SBTTL PRINT ASCII CHARACTER (PNTCHR)
≥
≠MOVB≡≡R0≡≡R1≡≥ 115624 110001 $PNTCHR:MOVB R0,R1
≡PLDBUF≡≡PLDBUF≡≥ 115626 104154 PLDBUF
≤EXIT≡≥ $$PNTX: EXIT
≠JMP≡≡$EXIT≡≥ 115630 000137 124064 JMP $EXIT
≥
≠MOV≡≡SPACE≡≡R0≡≥ 115634 012700 000040 $PSPACE: MOV #SPACE,R0
≠BR≡≡$PNTCH≡≥ 115640 000771 BR $PNTCHR
≥
≠MOV≡≡SLASH≡≡R0≡≥ 115642 012700 000057 $PSLASH: MOV #SLASH,R0
≠BR≡≡$PNTCH≡≥ 115646 000766 BR $PNTCHR
≥
≠MOV≡≡COMMA≡≡R0≡≥ 115650 012700 000054 $PCOMMA: MOV #COMMA,R0
≠BR≡≡$PNTCH≡≥ 115654 000763 BR $PNTCHR
≥
≠MOV≡≡TAB≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 184
SUB11 PAL[KL,SYS] Page 5.1 PRINT ASCII CHARACTER (PNTCHR)
≥ 115656 012700 000011 $PTAB: MOV #TAB,R0
≠BR≡≡$PNTCH≡≥ 115662 000760 BR $PNTCHR
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 185
SUB11 PAL[KL,SYS] Page 6 PRINT BUFFER LOAD ROUTINE
≥ .SBTTL PRINT BUFFER LOAD ROUTINE
≥
≤PUSH≡≥ $PLDBUF:PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡$OUTPT≡≡R0≡≥ 115666 013700 150474 MOV $OUTPT,R0
≠BIC≡≡R1≡≥ 115672 042701 177600 BIC #177600,R1 ;STRIP TO 7 BITS
≠MOVB≡≡R1≡≡R0≡≥ 115676 110120 MOVB R1,(R0)+ ;PUT CHAR IN BUFFER
≠CLRB≡≡R0≡≥ 115700 105010 CLRB (R0) ;INSERT TRAILING NULL
≠MOV≡≡R0≡≡$OUTPT≡≥ 115702 010037 150474 MOV R0,$OUTPT
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠CMP≡≡$OUTPT≡≡$OUTBF≡≥ 115710 023727 150474 150470 CMP $OUTPT,#$OUTBF+140.;EXCEEDED BUFFER CAPACITY
≠BGE≡≥ 115716 002012 BGE 2$
≥
≠CMPB≡≡LF≡≡R1≡≥ 115720 122701 000012 1$: CMPB #LF,R1 ;WAS CHAR LINE FEED
≠BEQ≡≥ 115724 001407 BEQ 2$ ;YES
≠CMPB≡≡BELL≡≡R1≡≥ 115726 122701 000007 CMPB #BELL,R1 ;WAS CHAR BELL ?
≠BEQ≡≥ 115732 001404 BEQ 2$ ;YES
≠CMPB≡≡NULL≡≡R1≡≥ 115734 122701 000000 CMPB #NULL,R1 ;WAS CHAR NULL ?
≠BEQ≡≥ 115740 001401 BEQ 2$ ;YES
≠BR≡≡$$PNTX≡≥ 115742 000732 3$: BR $$PNTX ;NO, RETURN
≥
≠TST≡≡PCMDNF≡≥ 115744 005737 152212 2$: TST PCMDNF ;DOING NO PRINT PROGRAM COMMAND
≠BNE≡≥ 115750 001374 BNE 3$
≥
≠.LIF≡≡LPTASB≡≥ .LIF DF LPTASB
≥ PLPT ;LINE PRINTER
≥
≡PRINTT≡≡PRINTT≡≥ 115752 104151 PRINTT ;PRINT BUFFER
≠CLR≡≡$TTLKF≡≥ 115754 005037 147764 CLR $TTLKF ;CLEAR TTLOOK FLAG
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡PNTRST≡≡PNTRST≡≥ 115762 104215 PNTRST ;RESET OUTPUT POINTERS
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≥ 115766 000765 BR 3$
≥
≥ ;PRINT, BACKUP OUTPUT INSERTION POINTER
≥
≠CMP≡≡$OUTPT≡≡$OUTBF≡≥ 115770 023727 150474 150254 $PNTBAK:CMP $OUTPT,#$OUTBF ;ALL THE WAY BACK ?
≠BLE≡≥ 115776 003402 BLE 1$ ;YES
≠DEC≡≡$OUTPT≡≥ 116000 005337 150474 DEC $OUTPT ;NO, BACKUP ONE BYTE
≠BR≡≡$$PNTX≡≥ 116004 000711 1$: BR $$PNTX
≥
≥ ;TELETYPE POINTER INITIALIZATION
≥
≠MOV≡≡$INBUF≡≡$INPTC≡≥ 116006 012737 150500 150716 $TTPINI:MOV #$INBUF,$INPTC
≠MOV≡≡$INBUF≡≡$INPTR≡≥ 116014 012737 150500 150720 MOV #$INBUF,$INPTR
≥
≠MOV≡≡$OUTBF≡≡R0≡≥ 116022 012700 150254 $PNTRST:MOV #$OUTBF,R0
≠MOV≡≡R0≡≡$OUTPT≡≥ 116026 010037 150474 MOV R0,$OUTPT
≠MOV≡≡R0≡≡$OUTPP≡≥ 116032 010037 150472 MOV R0,$OUTPP
≠BR≡≡$$PNTX≡≥ 116036 000674 BR $$PNTX
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 186
SUB11 PAL[KL,SYS] Page 7 TELETYPE PRINT OUTPUT ROUTINE
≥ .SBTTL TELETYPE PRINT OUTPUT ROUTINE
≥
≤PUSH≡≥ $PRINT: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠TST≡≡$FORCE≡≥ 116042 005737 147760 TST $FORCE ;FORCED PRINT OUT
≠BNE≡≥ 116046 001014 BNE 19$ ;YES BYPASS SWITCH TEST
≥
≠TSTB≡≡LPTFLG≡≥ 116050 105737 157304 TSTB LPTFLG ;PRINT ON LPT ?
≠BNE≡≥ 116054 001004 BNE 99$ ;BR IF YES
≥
≡SWITCH≡≡SWITCH≡≥ 116056 104057 SWITCH
≠BIT≡≡R0≡≡NOPNT≡≥ 116060 030027 010000 BIT R0,#NOPNT ;PRINTOUT INHIBITED
≠BEQ≡≥ 116064 001407 BEQ 1$
≥
≠MOV≡≡$OUTPT≡≡$OUTPP≡≥ 116066 013737 150474 150472 99$: MOV $OUTPT,$OUTPP ;DONE, SET PRINTED TO POSITION
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡$$PNTX≡≥ 116076 000654 BR $$PNTX ;RETURN
≥
≠CLR≡≡CTRLOF≡≥ 116100 005037 147770 19$: CLR CTRLOF ;CLEAR CONTROL O FLAG
≠MOV≡≡$OUTPP≡≡R1≡≥ 116104 013701 150472 1$: MOV $OUTPP,R1
≥
≠CMPB≡≡CR≡≡R1≡≥ 116110 122711 000015 11$: CMPB #CR,(R1) ;IS CHAR CR?
≠BEQ≡≥ 116114 001412 BEQ 2$ ;BR IF YES
≠CMP≡≡$PRNTH≡≡$PGWID≡≥ 116116 023737 150002 150000 CMP $PRNTH,$PGWID ;NO,ARE WE AT RIGHT MARGIN
≠BLT≡≥ 116124 002410 BLT 3$ ;BR IF NO
≠MOVB≡≡CR≡≡R0≡≥ 116126 112700 000015 MOVB #CR,R0 ;YES, FREE CR/LF
≡PTTY≡≡PTTY≡≥ 116132 104152 PTTY
≠MOVB≡≡LF≡≡R0≡≥ 116134 112700 000012 MOVB #LF,R0
≡PTTY≡≡PTTY≡≥ 116140 104152 PTTY
≥
≠INC≡≡$TPLIT≡≥ 116142 005237 147774 2$: INC $TPLIT ;COUNT LINE
≥
≠MOVB≡≡R1≡≡R0≡≥ 116146 111100 3$: MOVB (R1),R0 ;GET CHARACTER
≠BEQ≡≥ 116150 001746 BEQ 99$ ;IF NULL, DONE
≡PTTY≡≡PTTY≡≥ 116152 104152 PTTY ;PRINT CHAR
≠TSTB≡≡R1≡≥ 116154 105721 TSTB (R1)+ ;LOOP TILL E-O-L
≠BNE≡≥ 116156 001354 BNE 11$
≠JSR≡≡PC≡≡C10COP≡≥ 116160 004737 110742 4$: JSR PC,C10COP
≠JSR≡≡PC≡≡$TORDY≡≥ 116164 004737 120776 JSR PC,$TORDY ;THEN WAIT FOR TTY TO BE READY
≠BCS≡≥ 116170 103773 BCS 4$
≠BR≡≥ 116172 000735 BR 99$
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 187
SUB11 PAL[KL,SYS] Page 8 TELETYPE DRIVER
≥ .SBTTL TELETYPE DRIVER
≥
≠CLR≡≡R2≡≥ 116174 005002 $PTTY: CLR R2
≠CLR≡≡R3≡≥ 116176 005003 CLR R3
≠JSR≡≡PC≡≡$PTTYC≡≥ 116200 004737 116546 1$: JSR PC,$PTTYC ;DO OPERATOR CHECKS
≠TST≡≡R3≡≥ 116204 005703 TST R3 ;R3 = 0 IF NOTHING
≠BEQ≡≥ 116206 001410 BEQ 4$
≠CMPB≡≡XON≡≡R3≡≥ 116210 122703 000021 2$: CMPB #XON,R3
≠BEQ≡≥ 116214 001407 BEQ 6$ ;XON,PRINT
≠CMPB≡≡XOFF≡≡R3≡≥ 116216 122703 000023 CMPB #XOFF,R3
≠BNE≡≥ 116222 001002 BNE 4$
≠MOV≡≡R2≡≥ 116224 012702 777777 3$: MOV #-1,R2 ;XOFF,STOP PRINT
≠TST≡≡R2≡≥ 116230 005702 4$: TST R2
≠BNE≡≥ 116232 001362 BNE 1$ ;IF XOFF, WAIT FOR XON
≠TST≡≡CTRLOF≡≥ 116234 005737 147770 6$: TST CTRLOF ;CONTROL O'D ?
≠BNE≡≥ 116240 001015 BNE 7$ ;YES
≠CMPB≡≡CR≡≡R0≡≥ 116242 122700 000015 CMPB #CR,R0 ;CR
≠BNE≡≥ 116246 001012 BNE 7$
≠TST≡≡$TPLIN≡≥ 116250 005737 147776 TST $TPLIN ;YES, IN PAGE MODE
≠BEQ≡≥ 116254 001407 BEQ 7$ ;NO
≠CMP≡≡$TPLIT≡≡$TPLIN≡≥ 116256 023737 147774 147776 CMP $TPLIT,$TPLIN ;FILLED THIS PAGE
≠BLT≡≥ 116264 002403 BLT 7$
≠CLR≡≡$TPLIT≡≥ 116266 005037 147774 CLR $TPLIT ;YES,CLEAR COUNTER,XOFF
≠BR≡≥ 116272 000754 BR 3$
≥
≠CLR≡≡R2≡≥ 116274 005002 7$: CLR R2
≠CMPB≡≡CNTRLI≡≡R0≡≥ 116276 122700 000011 CMPB #CNTRLI,R0 ;IS CHAR A TAB?
≠BNE≡≥ 116302 001005 BNE 10$
≠JSR≡≡PC≡≡$PTTY1≡≥ 116304 004737 116516 8$: JSR PC,$PTTY1 ;COMPUTE SPACES COUNT
≠INC≡≡R2≡≥ 116310 005202 9$: INC R2 ;COMPLETED "TAB"?
≠MOVB≡≡BLANK≡≡R0≡≥ 116312 112700 000040 MOVB #BLANK,R0
≥
≠JSR≡≡PC≡≡C10COP≡≥ 116316 004737 110742 10$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≠TST≡≡CTRLOF≡≥ 116322 005737 147770 TST CTRLOF
≠BNE≡≥ 116326 001011 BNE 11$
≠JSR≡≡PC≡≡$TORDY≡≥ 116330 004737 120776 JSR PC,$TORDY ;WAIT TILL TTY IS READY
≠BCS≡≥ 116334 103770 BCS 10$
≠MOVB≡≡R0≡≡$TOCHR≡≥ 116336 110037 147742 MOVB R0,$TOCHR ;PRINT CHAR
≠JSR≡≡PC≡≡$TOOUT≡≥ 116342 004737 121040 JSR PC,$TOOUT
≠JSR≡≡PC≡≡$PTTY2≡≥ 116346 004737 116532 19$: JSR PC,$PTTY2 ;WILL CHAR MOVE PRINT HEAD ?
≥
≠TST≡≡R2≡≥ 116352 005702 11$: TST R2 ;DOING SPACES?
≠BNE≡≥ 116354 001355 BNE 9$ ;BR IF YES
≠TST≡≡CTRLOF≡≥ 116356 005737 147770 TST CTRLOF
≠BNE≡≥ 116362 001053 BNE 15$
≠MOV≡≡$DTBL0≡≡R2≡≥ 116364 012702 144636 MOV #$DTBL0,R2 ;FILLER PROCESS
≠TSTB≡≡R2≡≥ 116370 105712 12$: TSTB (R2)
≠BEQ≡≥ 116372 001447 BEQ 15$ ;BR IF CHAR DOESN'T REQUIRE FILLS
≠CMPB≡≡R2≡≡R0≡≥ 116374 122200 CMPB (R2)+,R0
≠BNE≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 188
SUB11 PAL[KL,SYS] Page 8.1 TELETYPE DRIVER
≥ 116376 001374 BNE 12$
≠DEC≡≡R2≡≥ 116400 005302 DEC R2 ;FOUND
≠SUB≡≡$DTBL0≡≡R2≡≥ 116402 162702 144636 SUB #$DTBL0,R2
≠ASL≡≡R2≡≥ 116406 006302 ASL R2
≠MOV≡≡$DTBL1≡≡R2≡≡R2≡≥ 116410 016202 144642 MOV $DTBL1(R2),R2 ;ADDRESS TO R2
≠ADD≡≡$TTYFL≡≡R2≡≥ 116414 063702 147756 ADD $TTYFL,R2 ;ADD FILL PARAMETER
≠MOVB≡≡R2≡≡R2≡≥ 116420 111202 MOVB (R2),R2 ;R2 = NUMBER OF FILLS
≠CMPB≡≡R0≡≡CR≡≥ 116422 120027 000015 CMPB R0,#CR ;CR?
≠BNE≡≥ 116426 001014 BNE 13$ ;NO
≠CMP≡≡$PRNTH≡≥ 116430 023727 150002 000017 CMP $PRNTH,#15. ;MORE THEN 15 CHARS ON LINE ?
≠BGT≡≥ 116436 003001 BGT 16$
≤SR≡≥ SR R2,1 ;NO, 1/4 TH OF FILLERS THEN
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R2≡≠.LIST≡≠CMP≡≡$PRNTH≡≥ 116442 023727 150002 000050 16$: CMP $PRNTH,#40. ;MORE THAN 40 CHARS ON LINE ?
≠BGT≡≥ 116450 003001 BGT 17$
≤SR≡≥ SR R2,1 ;NO, 1/2 OF FILLERS THEN
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R2≡≠.LIST≡≠CLR≡≡$PRNTH≡≥ 116454 005037 150002 17$: CLR $PRNTH ;SET PRINT HEAD TO LEFT MARGIN
≥
≠DEC≡≡R2≡≥ 116460 005302 13$: DEC R2 ;COMPLETED FILLERS?
≠BLT≡≥ 116462 002413 BLT 15$
≠JSR≡≡PC≡≡C10COP≡≥ 116464 004737 110742 14$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≠JSR≡≡PC≡≡$TORDY≡≥ 116470 004737 120776 JSR PC,$TORDY
≠BCS≡≥ 116474 103773 BCS 14$
≠MOVB≡≡NULL≡≡$TOCHR≡≥ 116476 112737 000000 147742 MOVB #NULL,$TOCHR ;SEND FILLER
≠JSR≡≡PC≡≡$TOOUT≡≥ 116504 004737 121040 JSR PC,$TOOUT
≠BR≡≥ 116510 000763 BR 13$
≤EXIT≡≥ 15$: EXIT ;RETURN
≠JMP≡≡$EXIT≡≥ 116512 000137 124064 JMP $EXIT
≥
≠MOV≡≡$PRNTH≡≡R2≡≥ 116516 013702 150002 $PTTY1: MOV $PRNTH,R2 ;HEAD POSITION
≠SUB≡≡R2≡≥ 116522 162702 000010 1$: SUB #8.,R2 ;DIVIDED BY 8
≠BGE≡≥ 116526 002375 BGE 1$ ;REMAINDER IS SPACES COUNT
≠RTS≡≡PC≡≥ 116530 000207 RTS PC
≥
≠CMPB≡≡R0≡≡BLANK≡≥ 116532 120027 000040 $PTTY2: CMPB R0,#BLANK ;WILL CHAR MOVE PRINT HEAD?
≠BLT≡≥ 116536 002402 BLT 1$ ;BR IF NO
≠INC≡≡$PRNTH≡≥ 116540 005237 150002 INC $PRNTH ;YES
≠RTS≡≡PC≡≥ 116544 000207 1$: RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 189
SUB11 PAL[KL,SYS] Page 9 LINE PRINTER DRIVER
≥ .SBTTL LINE PRINTER DRIVER
≥
≠.IF≡≡LPASB≡≥ .IF DF LPASB
≥
≥ $PLPT: PUSH R0
≥ TST LPTFLG ;PRINT ON LPT ?
≥ BPL 99$ ;NO
≥ TSTB LPTFLG
≥ BEQ 99$
≥ TST $FORCE ;FORCED PRINT ?
≥ BNE 1$ ;YES, BYPASS SWITCH TEST
≥ SWITCH
≥ BIT R0,#NOPNT ;PRINTOUT INHIBITED ?
≥ BEQ 1$ ;NO
≥ 99$: POP R0
≥ EXIT ;RETURN
≥
≥ 1$: TST LPTYPE ;LP20 OR LP11 ?
≥ BNE 50$ ;LP20
≥ TST @$LPS ;IS LPT OK ?
≥ BMI 4$ ;BR IF ERROR
≥ MOV #$OUTBF,R1
≥ 2$: MOVB (R1)+,R0 ;GET CHAR
≥ BEQ 99$ ;NULL, DONE
≥ 3$: CLR R2
≥ CMPB #CNTRLI,R0 ;TAB ?
≥ BNE 41$
≥ JSR PC,$PTTY1 ;YES, COMPUTE SPACES COUNT
≥ 42$: INC R2
≥ MOV #BLANK,R0
≥ 41$: JSR PC,$PTTYC ;DO OPERATOR CHECKS
≥ 32$: TST @$LPS ;LPT OK ?
≥ BMI 4$ ;NO
≥ JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≥ TSTB @$LPS ;LPT READY ?
≥ BPL 41$ ;NO
≥ MOVB R0,@$LPB ;PRINT CHARACTER
≥ JSR PC,$PTTY2 ;WILL CHAR MOVE PRINT HEAD ?
≥ 45$: TST R2 ;COMPLETED "TAB" ?
≥ BNE 42$
≥ 43$: CMPB R0,#CR
≥ BNE 44$
≥ CLR $PRNTH ;IF CR, RESET HEAD POSITION
≥ 44$: BR 2$
≥
≥ 4$: MOV #$LPTOF,R1 ;"LPT OFF LINE"
≥ 5$: MOVB (R1),R0
≥ PTTY
≥ TSTB (R1)+
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 190
SUB11 PAL[KL,SYS] Page 9.1 LINE PRINTER DRIVER
≥ BEQ 6$
≥ BR 5$
≥ 6$: CLRB LPTFLG ;PRINT ON TTY TILL RESELECTED
≥ BR 99$
≥
≥ 50$: MOV LPTYPE,R5 ;LP20 DRIVER ROUTINE
≥ MOV #LPLINI!LPRERR,(R5) ;CLEAR LP20
≥ DEC LPPCTR(R5) ;CLEAR PAGE COUNTER
≥ MOV #$OUTBF,R0 ;GET BUFFER ADDRESS
≥ MOV R0,LPBSAD(R5) ;SETUP LP20 BUFFER ADDRESS
≥ SUB $OUTPT,R0 ;COMPUTE BYTE COUNT
≥ MOV R0,LPBCTR(R5) ;SETUP LP20 BYTE COUNT
≥ MOV #LPPENB!LPGO,(R5) ;START XFER
≥ JSR PC,LP20DN ;WAIT FOR DONE
≥ BCS 4$ ;ERROR
≥ BR 99$ ;DONE
≥
≥ LP20DN: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≥ BIT #LPERR!LPPZRO!LPUCHR!LPDONE,(R5)
≥ BEQ LP20DN ;WAIT FOR DONE OR ERROR
≥
≥ TSTB (R5) ;DONE ?
≥ BPL 1$ ;NO, ERROR
≥ CLC
≥ RTS PC ;DONE, C-BIT CLEAR RETURN
≥
≥ 1$: SEC
≥ RTS PC ;ERROR, C-BIT SET RETURN
≥
≥ $LPTOF: .ASCIZ /LPT OFF
≥ /
≥ .EVEN
≥
≥ .ENDC ;.IF DF LPASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 191
SUB11 PAL[KL,SYS] Page 10 LINE PRINTER DRIVER
≥ ;OPERATOR INTERRUPT TYPEIN CHECKS
≥
≠CLR≡≡R3≡≥ 116546 005003 $PTTYC: CLR R3
≠TST≡≡$TTLKF≡≥ 116550 005737 147764 TST $TTLKF ;INPUT CHECKS INHIBITED ?
≠BNE≡≥ 116554 001066 BNE 5$ ;YES
≠JSR≡≡PC≡≡$TIRDY≡≥ 116556 004737 120670 JSR PC,$TIRDY ;ANY OPERATOR ACTION ?
≠BCS≡≥ 116562 103463 BCS 5$ ;NO
≠MOVB≡≡$TICHR≡≡R3≡≥ 116564 113703 147744 MOVB $TICHR,R3
≠BICB≡≡R3≡≥ 116570 142703 000200 BICB #200,R3
≠MOV≡≡R3≡≡$TNCHR≡≥ 116574 010337 150024 MOV R3,$TNCHR
≡TENCHR≡≡TENCHR≡≥ 116600 104176 TENCHR ;SEND CHAR TO TEN
≠CMPB≡≡CNTRLC≡≡R3≡≥ 116602 122703 000003 CMPB #CNTRLC,R3 ;CONTROL C ?
≠BNE≡≥ 116606 001010 BNE 3$
≡TTPINI≡≡TTPINI≡≥ 116610 104217 TTPINI ;FLUSH REST OF OUTPUT
≠TST≡≡PCMDFL≡≥ 116612 005737 152214 TST PCMDFLG ;DOING PROGRAM COMMAND ?
≠BNE≡≥ 116616 001002 BNE 2$ ;YES
≠JMP≡≡$TICC≡≥ 116620 000137 120524 JMP $TICC ;CONTROL C, RETURN TO CONSOLE
≥
≠JMP≡≡PCMDE2≡≥ 116624 000137 101572 2$: JMP PCMDE2 ;PROGRAM COMMAND, RETURN TO CALLER
≥
≠CMPB≡≡CNTRLO≡≡R3≡≥ 116630 122703 000017 3$: CMPB #CNTRLO,R3
≠BNE≡≥ 116634 001021 BNE 1$
≠COM≡≡CTRLOF≡≥ 116636 005137 147770 COM CTRLOF ;CONTROL O, STOP OUTPUT
≠MOV≡≡$PTCO≡≡R3≡≥ 116642 012703 116734 MOV #$PTCO,R3
≠JSR≡≡PC≡≡C10COP≡≥ 116646 004737 110742 10$: JSR PC,C10COP
≠JSR≡≡PC≡≡$TORDY≡≥ 116652 004737 120776 JSR PC,$TORDY
≠BCS≡≥ 116656 103773 BCS 10$
≠MOVB≡≡R3≡≡$TOCHR≡≥ 116660 112337 147742 MOVB (R3)+,$TOCHR
≠BNE≡≥ 116664 001002 BNE 90$
≠CLR≡≡R3≡≥ 116666 005003 CLR R3
≠BR≡≥ 116670 000420 BR 5$
≠JSR≡≡PC≡≡$TOOUT≡≥ 116672 004737 121040 90$: JSR PC,$TOOUT
≠BR≡≥ 116676 000763 BR 10$
≠CMPB≡≡CNTRLL≡≡R3≡≥ 116700 122703 000014 1$: CMPB #CNTRLL,R3 ;CONTROL L, CHANGE LPT SELECTION
≠BNE≡≥ 116704 001005 BNE 4$
≠TST≡≡LPTFLG≡≥ 116706 005737 157304 TST LPTFLG
≠BPL≡≥ 116712 100002 BPL 4$
≠COMB≡≡LPTFLG≡≥ 116714 105137 157304 COMB LPTFLG ;ONLY IF SELECTED
≠CMPB≡≡CNTRLX≡≡R3≡≥ 116720 122703 000030 4$: CMPB #CNTRLX,R3 ;CONTROL X, CONSOLE COMMAND
≠BNE≡≥ 116724 001002 BNE 5$
≠JMP≡≡$TICX≡≥ 116726 000137 120570 JMP $TICX ;DO "TTILIN" & GO TO "$RPT"
≠RTS≡≡PC≡≥ 116732 000207 5$: RTS PC
≥
≠.ASCIZ≡≥ 116734 136
≥ 116735 117
≥ 116736 015
≥ 116737 012 $PTCO: .ASCIZ /↑O
≥ 116740 000
≥ /
≠.EVEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 192
SUB11 PAL[KL,SYS] Page 10.1 LINE PRINTER DRIVER
≥ 116742 .EVEN
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 193
SUB11 PAL[KL,SYS] Page 11 PRINT CRLF
≥ .SBTTL PRINT CRLF
≥
≤PMSG≡≥ $PCRLF: PMSG <\>
≡$PMSG≡≡$PMSG≡≥ 116742 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 116744 146051 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$$PEX≡≥ 116746 000524 BR $$PEX
≥
≠.SBTTL≡≥ .SBTTL RING TTY BELL
≥
≠MOVB≡≡BELL≡≡R0≡≥ 116750 112700 000007 $PBELL: MOVB #BELL,R0
≡PTTY≡≡PTTY≡≥ 116754 104152 PTTY ;DING THE BELL DIRECTLY
≠BR≡≡$$PEX≡≥ 116756 000520 BR $$PEX
≥
≠.SBTTL≡≥ .SBTTL PRINT SPECIFIED OCTAL DIGITS
≥
≠MOV≡≡$EMADR≡≡R1≡≥ 116760 017701 030650 $PODT: MOV @$EMADR,R1 ;TRAILING PARAMETER
≠ADD≡≡SP≡≥ 116764 062766 000002 000012 ADD #2,12(SP)
≥
≠MOV≡≡R1≡≡R2≡≥ 116772 010102 $PNTODC:MOV R1,R2 ;SETUP DIGIT COUNT
≠BGT≡≥ 116774 003001 BGT 1$
≡FATAL≡≡FATAL≡≥ 116776 104000 FATAL
≠CMP≡≡R1≡≥ 117000 020127 000006 1$: CMP R1,#6
≠BLE≡≥ 117004 003401 BLE 2$
≡FATAL≡≡FATAL≡≥ 117006 104000 FATAL
≠MOV≡≡$TTSAV≡≡R1≡≥ 117010 012701 150006 2$: MOV #$TTSAV+2,R1
≠CLR≡≡R1≡≥ 117014 005011 CLR (R1) ;SETUP OCTAL NUMBER
≠MOV≡≡R0≡≡R1≡≥ 117016 010041 MOV R0,-(R1)
≠JSR≡≡PC≡≡$PODMV≡≥ 117020 004737 117326 JSR PC,$PODMV ;SETUP PARAMETERS
≠CLR≡≡$0FLG≡≥ 117024 005037 147754 CLR $0FLG ;NO SPACE FOLLOWING NUMBER
≠MOVB≡≡$PODCD≡≡R2≡≡R3≡≥ 117030 116203 117037 MOVB $PODCD-1(R2),R3 ;GET PRESET SHIFT COUNT
≡PROL36≡≡PROL36≡≥ 117034 104146 PROL36 ;PRESET NUMBER
≠BR≡≡$P23X≡≥ 117036 000453 BR $P23X ;GO PRINT NUMBER
≥
≠.BYTE≡≥ 117040 041
≥ 117041 036
≥ 117042 033
≥ 117043 030
≥ 117044 025
≥ 117045 022 $PODCD: .BYTE 33.,30.,27.,24.,21.,18.
≥
≠.SBTTL≡≥ .SBTTL PRINT PDP-10 ADDRESS
≥
≥ ;PRINTS 23 BIT FORMAT IF ANY OF 13-17 ADDRESS BITS ARE SET.
≥ ;OTHERWISE PRINTS 18 BIT FORMAT.
≥
≠JSR≡≡PC≡≡$$P23≡≥ 117046 004737 117072 $PADR: JSR PC,$$P23
≠BIT≡≡R1≡≥ 117052 032761 000174 000004 BIT #174,4(R1) ;ANY OF 13-17 SET ?
≠BNE≡≡$P23Y≡≥ 117060 001025 BNE $P23Y ;YES
≠MOV≡≡R3≡≥ 117062 012703 000006 MOV #6,R3
≡PROL36≡≡PROL36≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 194
SUB11 PAL[KL,SYS] Page 11.1 PRINT PDP-10 ADDRESS
≥ 117066 104146 PROL36 ;NO, DUMP HI-ORDER BITS
≠BR≡≡$P18X≡≥ 117070 000434 BR $P18X ;PRINT 18 BITS
≥
≠JSR≡≡PC≡≡$P36MV≡≥ 117072 004737 117306 $$P23: JSR PC,$P36MV
≠MOV≡≡R3≡≥ 117076 012703 000014 MOV #12.,R3
≡PROL36≡≡PROL36≡≥ 117102 104146 PROL36 ;POSITION 23 BITS
≠BIC≡≡R1≡≥ 117104 042761 177600 000004 BIC #177600,4(R1) ;CLEAR UPPER JUNK BITS
≠RTS≡≡PC≡≥ 117112 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 195
SUB11 PAL[KL,SYS] Page 12 PRINT LOWER 18 BITS OF 36 BIT NUMBER
≥ .SBTTL PRINT LOWER 18 BITS OF 36 BIT NUMBER
≥
≠JSR≡≡PC≡≡$P36MV≡≥ 117114 004737 117306 $PNT18: JSR PC,$P36MV
≥
≠MOV≡≡R3≡≥ 117120 012703 000022 MOV #18.,R3
≡PROL36≡≡PROL36≡≥ 117124 104146 PROL36 ;SHIFT LOWER 18 BITS TO UPPER
≠BR≡≡$P18X≡≥ 117126 000415 BR $P18X
≥
≠.SBTTL≡≥ .SBTTL PRINT LOWER 23 BITS OF 36 BIT NUMBER
≥
≠JSR≡≡PC≡≡$$P23≡≥ 117130 004737 117072 $PNT23: JSR PC,$$P23
≥
≠MOV≡≡R2≡≥ 117134 012702 000002 $P23Y: MOV #2,R2
≠INC≡≡R4≡≥ 117140 005204 INC R4
≠BR≡≡$P23X≡≥ 117142 000411 BR $P23X
≥
≠.SBTTL≡≥ .SBTTL PRINT 36 BIT NUMBER IN BINARY
≥
≠JSR≡≡PC≡≡$P36MV≡≥ 117144 004737 117306 $P36B: JSR PC,$P36MV
≠COM≡≡R5≡≥ 117150 005105 COM R5
≠BR≡≡$P36BX≡≥ 117152 000402 BR $P36BX
≥
≠.SBTTL≡≥ .SBTTL PRINT 36 BIT NUMBER
≥
≠JSR≡≡PC≡≡$P36MV≡≥ 117154 004737 117306 $PNT36: JSR PC,$P36MV
≠INC≡≡R4≡≥ 117160 005204 $P36BX: INC R4
≡$P18X≠≥ 117162 $P18X=.
≥
≠MOV≡≡R2≡≥ 117162 012702 000006 2$: MOV #6,R2
≡$P23X≠≥ 117166 $P23X=.
≠MOV≡≡R3≡≥ 117166 012703 000003 1$: MOV #3,R3
≥
≡PROL36≡≡PROL36≡≥ 117172 104146 PROL36 ;ROTATE 3
≠JSR≡≡PC≡≡$PRT36≡≥ 117174 004737 117224 JSR PC,$PRT36 ;PRINT OCTAL
≥
≠DEC≡≡R2≡≥ 117200 005302 DEC R2 ;FINISHED HALF WORD YET ?
≠BNE≡≥ 117202 001371 BNE 1$
≥
≠TST≡≡$0FLG≡≥ 117204 005737 147754 TST $0FLG
≠BEQ≡≥ 117210 001401 BEQ 3$
≡PSPACE≡≡PSPACE≡≥ 117212 104032 PSPACE
≥
≠DEC≡≡R4≡≥ 117214 005304 3$: DEC R4 ;FINISHED FULL WORD YET ?
≠BPL≡≥ 117216 100361 BPL 2$
≥
≤EXIT≡≥ $$PEX: EXIT
≠JMP≡≡$EXIT≡≥ 117220 000137 124064 JMP $EXIT
≠MOV≡≡R1≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 196
SUB11 PAL[KL,SYS] Page 13 PRINT 36 BIT NUMBER
≥ 117224 016100 000004 $PRT36: MOV 4(R1),R0 ;GET THE WORD
≠SWAB≡≡R0≡≥ 117230 000300 SWAB R0
≠TST≡≡R5≡≥ 117232 005705 TST R5
≠BNE≡≥ 117234 001002 BNE 1$
≡PNTNBR≡≡PNTNBR≡≥ 117236 104030 PNTNBR ;PRINT OCTAL
≠RTS≡≡PC≡≥ 117240 000207 RTS PC
≥
≤PUSH≡≥ 1$: PUSH R4
≠.NLIST≡≠.IRP≡≠MOV≡≡R4≡≡SP≡≠.LIST≡≠MOV≡≡R0≡≡R4≡≥ 117244 010004 MOV R0,R4
≠MOV≡≡R3≡≥ 117246 012703 177776 MOV #177776,R3
≤SR≡≥ SR R0,2
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠.LIST≡≠BIC≡≡R3≡≡R0≡≥ 117256 040300 BIC R3,R0
≡PNTNBR≡≡PNTNBR≡≥ 117260 104030 PNTNBR ;PRINT HI-BIT OF OCTAL
≠MOV≡≡R4≡≡R0≡≥ 117262 010400 MOV R4,R0
≤SR≡≥ SR R0,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R0≡≠.LIST≡≠BIC≡≡R3≡≡R0≡≥ 117266 040300 BIC R3,R0
≡PNTNBR≡≡PNTNBR≡≥ 117270 104030 PNTNBR ;PRINT MIDDLE-BIT OF OCTAL
≠MOV≡≡R4≡≡R0≡≥ 117272 010400 MOV R4,R0
≠BIC≡≡R3≡≡R0≡≥ 117274 040300 BIC R3,R0
≡PNTNBR≡≡PNTNBR≡≥ 117276 104030 PNTNBR ;PRINT LO-BIT OF OCTAL
≡PSPACE≡≡PSPACE≡≥ 117300 104032 PSPACE
≤POP≡≥ POP R4
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R4≡≠.LIST≡≠RTS≡≡PC≡≥ 117304 000207 RTS PC
≥
≠MOV≡≡R3≡≥ 117306 012703 000006 $P36MV: MOV #6,R3 ;MOVE 6 BYTES
≠MOV≡≡$TTSAV≡≡R2≡≥ 117312 012702 150004 MOV #$TTSAV,R2 ;TO SETUP DATA
≠MOV≡≡R2≡≡R1≡≥ 117316 010201 MOV R2,R1
≠MOVB≡≡R0≡≡R2≡≥ 117320 112022 1$: MOVB (R0)+,(R2)+
≠DEC≡≡R3≡≥ 117322 005303 DEC R3
≠BNE≡≥ 117324 001375 BNE 1$
≠CLR≡≡R5≡≥ 117326 005005 $PODMV: CLR R5
≠CLR≡≡R4≡≥ 117330 005004 CLR R4
≠MOV≡≡R3≡≥ 117332 012703 000004 MOV #4,R3
≠MOV≡≡R3≡≡$0FLG≡≥ 117336 010337 147754 MOV R3,$0FLG ;SET SPACE FLAG
≡PROL36≡≡PROL36≡≥ 117342 104146 PROL36 ;PRESET NUMBER
≠RTS≡≡PC≡≥ 117344 000207 RTS PC
≥
≠ROL≡≡R1≡≥ 117346 006111 $PROL36:ROL (R1)
≠ROL≡≡R1≡≥ 117350 006161 000002 ROL 2(R1)
≠ROL≡≡R1≡≥ 117354 006161 000004 ROL 4(R1)
≠DEC≡≡R3≡≥ 117360 005303 DEC R3
≠BNE≡≡$PROL3≡≥ 117362 001371 BNE $PROL36
≠BR≡≡$$PEX≡≥ 117364 000715 BR $$PEX
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 197
SUB11 PAL[KL,SYS] Page 14 PRINT OCTAL
≥ .SBTTL PRINT OCTAL
≥
≠MOV≡≡R4≡≥ 117366 012704 777777 $PNTOCT:MOV #-1,R4 ;PRINT OCTAL
≠BR≡≡$PNTO≡≥ 117372 000401 BR $PNTO
≥
≠.SBTTL≡≥ .SBTTL PRINT OCTAL ZERO SUPRRESS
≥
≠CLR≡≡R4≡≥ 117374 005004 $PNTOSC:CLR R4 ;PRINT OCTAL ZERO SUPPRESS
≠MOV≡≡R1≡≥ 117376 012701 000006 $PNTO: MOV #6,R1 ;SET FOR 6 DIGITS
≠MOV≡≡R0≡≡R2≡≥ 117402 010002 MOV R0,R2 ;SAVE INPUT NUMBERS
≠CLR≡≡R5≡≥ 117404 005005 CLR R5 ;CLEAR THE ZERO FILL FLAG
≠TST≡≡R4≡≥ 117406 005704 TST R4 ;ZERO SUPPRESS ?
≠BNE≡≥ 117410 001004 BNE 10$ ;NO
≠TST≡≡R0≡≥ 117412 005700 TST R0 ;TEST FOR A ZERO INPUT NUMBER
≠BNE≡≥ 117414 001003 BNE 1$
≠CLR≡≡R1≡≥ 117416 005001 CLR R1 ;INPUT = 0 PRINT AND EXIT
≠BR≡≥ 117420 000417 BR 5$
≥
≠INC≡≡R5≡≥ 117422 005205 10$: INC R5
≠CLR≡≡R0≡≥ 117424 005000 1$: CLR R0
≠ROL≡≡R2≡≥ 117426 006102 ROL R2 ;MSD TO C BIT
≠BR≡≥ 117430 000404 BR 3$
≥
≠ROL≡≡R2≡≥ 117432 006102 2$: ROL R2
≠ROL≡≡R2≡≥ 117434 006102 ROL R2
≠ROL≡≡R2≡≥ 117436 006102 ROL R2
≠MOV≡≡R2≡≡R0≡≥ 117440 010200 MOV R2,R0
≠ROL≡≡R0≡≥ 117442 006100 3$: ROL R0
≥
≠BIC≡≡R0≡≥ 117444 042700 177770 BIC #177770,R0 ;GET RID OF JUNK
≠BEQ≡≥ 117450 001401 BEQ 4$
≠INC≡≡R5≡≥ 117452 005205 INC R5 ;SET ZERO FILL FLAG
≥
≠TST≡≡R5≡≥ 117454 005705 4$: TST R5 ;SUPPRESS ?
≠BEQ≡≥ 117456 001401 BEQ 6$
≡PNTNBR≡≡PNTNBR≡≥ 117460 104030 5$: PNTNBR ;PRINT DIGIT
≠DEC≡≡R1≡≥ 117462 005301 6$: DEC R1
≠BGT≡≥ 117464 003362 BGT 2$
≥
≠TST≡≡R4≡≥ 117466 005704 TST R4
≠BEQ≡≥ 117470 001401 BEQ 7$
≡PSPACE≡≡PSPACE≡≥ 117472 104032 PSPACE ;SPACE UNLESS OCTAL SUPPRESS
≠BR≡≡$$PEX1≡≥ 117474 000450 7$: BR $$PEX1
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 198
SUB11 PAL[KL,SYS] Page 15 CONVERT BINARY TO DECIMAL AND TYPE ROUTINE
≥ .SBTTL CONVERT BINARY TO DECIMAL AND TYPE ROUTINE
≥
≠MOV≡≡R1≡≥ 117476 012701 000005 $PNTDEC:MOV #5,R1 ;SET FOR 5 DIGIT
≠MOV≡≡R0≡≡R2≡≥ 117502 010002 MOV R0,R2 ;SAVE INPUT NUMBER
≠CLR≡≡R5≡≥ 117504 005005 CLR R5 ;CLEAR ZERO FILL FLAG
≠TST≡≡R0≡≥ 117506 005700 TST R0 ;TEST SIGN OF INPUT NUMBER
≠BPL≡≥ 117510 100007 BPL 1$ ;POSITIVE GO TYPE IT
≠MOVB≡≡R0≡≥ 117512 112700 000055 MOVB #'-,R0 ;PRINT A MINUS SIGN
≡PNTCHR≡≡PNTCHR≡≥ 117516 104027 PNTCHR ;SEND TO BUFFER
≠NEG≡≡R2≡≥ 117520 005402 NEG R2 ;NEGATE THE NUMBER
≠MOV≡≡R2≡≡R0≡≥ 117522 010200 MOV R2,R0 ;GET NUMBER AGAIN
≠BIC≡≡R0≡≥ 117524 042700 100000 BIC #100000,R0 ;CLEAR SIGN BIT
≠TST≡≡R0≡≥ 117530 005700 1$: TST R0 ;TEST FOR A ZERO INPUT NUMBER
≠BNE≡≥ 117532 001002 BNE 2$ ;NON ZERO
≡PNTNBR≡≡PNTNBR≡≥ 117534 104030 PNTNBR ;PRINT A SINGLE ZERO AND EXIT
≠BR≡≥ 117536 000425 BR 9$ ;EXIT
≠CLR≡≡R3≡≥ 117540 005003 2$: CLR R3 ;ZERO THE CONSTANTS INDEX
≠CLR≡≡R0≡≥ 117542 005000 3$: CLR R0 ;CLEAR THE BCD NUMBER
≠SUB≡≡$DTBL≡≡R3≡≡R2≡≥ 117544 166302 144672 4$: SUB $DTBL(R3),R2 ;FORM THIS BCD DIGIT
≠BLT≡≥ 117550 002402 BLT 5$ ;BR IF DONE
≠INC≡≡R0≡≥ 117552 005200 INC R0 ;INCREASE THE BCD DIGIT BY 1
≠BR≡≥ 117554 000773 BR 4$
≠ADD≡≡$DTBL≡≡R3≡≡R2≡≥ 117556 066302 144672 5$: ADD $DTBL(R3),R2 ;ADD BACK THE CONSTANT
≠TST≡≡R0≡≥ 117562 005700 TST R0 ;TEST IF DIGIT IS A ZERO
≠BEQ≡≥ 117564 001402 BEQ 6$ ;YES
≠INC≡≡R5≡≥ 117566 005205 INC R5 ;NO SET ZERO FILL FLAG
≠BR≡≥ 117570 000402 BR 7$
≥
≠TST≡≡R5≡≥ 117572 005705 6$: TST R5 ;IS ZERO FILL FLAG SET
≠BEQ≡≥ 117574 001403 BEQ 8$ ;YES EXIT
≠BIS≡≡R0≡≥ 117576 052700 000060 7$: BIS #'0,R0 ;MAKE THE BCD DIGIT ASCII
≡PNTCHR≡≡PNTCHR≡≥ 117602 104027 PNTCHR
≠TST≡≡R3≡≥ 117604 005723 8$: TST (R3)+ ;JUST INCREMENTING
≠DEC≡≡R1≡≥ 117606 005301 DEC R1 ;DONE YET
≠BGT≡≥ 117610 003354 BGT 3$ ;GO DO THE NEXT DIGIT
≡PNTCI≡≡PNTCI≡≥ 117612 104214 9$: PNTCI
≥ 117614 000056 '. ;PRINT DECIMAL POINT
≤EXIT≡≥ $$PEX1: EXIT ;RETURN TO USER
≠JMP≡≡$EXIT≡≥ 117616 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 199
SUB11 PAL[KL,SYS] Page 16 TTY INPUT ROUTINE TTICHR
≥ .SBTTL TTY INPUT ROUTINE TTICHR
≥
≠CLR≡≡R0≡≥ 117622 005000 $TTICHR:CLR R0
≠CMP≡≡$INPTC≡≡$INPTR≡≥ 117624 023737 150716 150720 CMP $INPTC,$INPTR ;ARE WE AT END ON CURRENT BUFFER
≠BGT≡≡$TTIX2≡≥ 117632 003007 BGT $TTIX2 ;YES EXIT
≠MOVB≡≡$INPTC≡≡R0≡≥ 117634 117700 031056 MOVB @$INPTC,R0 ;FETCH CHARACTER FROM BUFFER
≠INC≡≡$INPTC≡≥ 117640 005237 150716 INC $INPTC
≥
≠BIC≡≡R0≡≥ 117644 042700 177600 $TTIX1: BIC #177600,R0
≠BR≡≡$$PSX2≡≥ 117650 000431 BR $$PSX2 ;OK RETURN
≠BR≡≡$$PEX2≡≥ 117652 000426 $TTIX2: BR $$PEX2 ;ERROR RETURN
≥
≠.SBTTL≡≥ .SBTTL TTY LOOK
≥
≥ ;*TELETYPE KEYBOARD CHECK ROUTINE
≥ ;*CHECKS FOR ANY KEY STRUCK,RETURNS IMMEDIATELY
≥ ;*RETURNS WITH C-BIT SET IF NO TYPEIN
≥
≠INC≡≡$TTLKF≡≥ 117654 005237 147764 $TTLOOK:INC $TTLKF ;SET INHIBIT INPUT CHECKS
≠CLR≡≡R0≡≥ 117660 005000 CLR R0
≠JSR≡≡PC≡≡$TIRDY≡≥ 117662 004737 120670 JSR PC,$TIRDY ;ANYTHING BEEN TYPED
≠BCS≡≡$TTIX2≡≥ 117666 103771 BCS $TTIX2 ;NO, C-BIT RETURN
≠MOVB≡≡$TICHR≡≡R0≡≥ 117670 113700 147744 MOVB $TICHR,R0 ;YES, PUT IT IN R0
≠CLR≡≡$TTLKF≡≥ 117674 005037 147764 CLR $TTLKF ;CLEAR INHIBIT INPUT CHECKS
≠BR≡≡$TTIX1≡≥ 117700 000761 BR $TTIX1 ;RETURN
≥
≠.SBTTL≡≥ .SBTTL TTY ALT-MODE CHECK ROUTINE
≥
≥ ;*CHECK FOR ALT-MODE IF NOTHING TYPED OR NOT ALTMODE C-BIT SET
≥ ;*IF ALT-MODE WAS TYPED THEN C-BIT CLEAR
≥
≡TTLOOK≡≡TTLOOK≡≥ 117702 104006 $TTALTM:TTLOOK ;ANYTHING TYPED
≠BCS≡≥ 117704 103411 BCS 2$ ;NO
≥
≠CMPB≡≡R0≡≥ 117706 120027 000175 CMPB R0,#175
≠BEQ≡≥ 117712 001412 BEQ 3$
≠CMPB≡≡R0≡≥ 117714 120027 000176 CMPB R0,#176
≠BEQ≡≥ 117720 001407 BEQ 3$
≠CMPB≡≡R0≡≡ALTMOD≡≥ 117722 120027 000033 CMPB R0,#ALTMOD
≠BEQ≡≥ 117726 001402 BEQ 1$
≥
≡$$PEX2≠≥ 117730 $$PEX2=.
≤EXITER≡≥ 2$: EXITERR ;EXIT
≠JMP≡≡$EXITE≡≥ 117730 000137 124036 JMP $EXITE
≡$$PSX2≠≥ 117734 $$PSX2=.
≤EXIT≡≥ 1$: EXIT ;OK RETURN
≠JMP≡≡$EXIT≡≥ 117734 000137 124064 JMP $EXIT
≥
≠MOVB≡≡ALTMOD≡≡R0≡≥ 117740 112700 000033 3$: MOVB #ALTMOD,R0
≠BR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 200
SUB11 PAL[KL,SYS] Page 16.1 TTY ALT-MODE CHECK ROUTINE
≥ 117744 000773 BR 1$
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 201
SUB11 PAL[KL,SYS] Page 17 TTIYES YES OR NO ROUTINE
≥ .SBTTL TTIYES YES OR NO ROUTINE
≥
≥ ; NO BITS SET IF YES
≥ ; N-BIT SET IF NO
≥ ; C-BIT SET IF NEITHER
≥
≡TTICHR≡≡TTICHR≡≥ 117746 104005 $TTIYES:TTICHR ;GET INPUT CHARACTER
≠BCS≡≡$$PEX2≡≥ 117750 103767 BCS $$PEX2 ;NO CHAR AVAILABLE
≠CMPB≡≡R0≡≥ 117752 122700 000131 CMPB #'Y,R0 ;WAS THE CHAR A "Y" ?
≠BEQ≡≡$$PSX2≡≥ 117756 001766 BEQ $$PSX2 ;BR IF YES
≠CMPB≡≡R0≡≥ 117760 122700 000116 CMPB #'N,R0 ;WAS THE CHAR AN "N" ?
≠BNE≡≡$$PEX2≡≥ 117764 001361 BNE $$PEX2 ;BR IF NO, NEITHER
≠BIS≡≡NBIT≡≡SP≡≥ 117766 052766 000010 000014 BIS #NBIT,14(SP) ;"NO", SET N-BIT
≠BR≡≡$$PSX2≡≥ 117774 000757 BR $$PSX2
≥
≠.SBTTL≡≥ .SBTTL PRINT A SELECTED NUMBER OF SPACES
≥
≠DEC≡≡R1≡≥ 117776 005301 $PNTSPC:DEC R1
≠BLT≡≥ 120000 002402 BLT 1$
≥
≡PSPACE≡≡PSPACE≡≥ 120002 104032 PSPACE ;PRINT SPACE
≠BR≡≡$PNTSP≡≥ 120004 000774 BR $PNTSPC
≥
≠RTS≡≡PC≡≥ 120006 000207 1$: RTS PC
≥
≠.SBTTL≡≥ .SBTTL BACKUP TTY INPUT BUFFER POINTER
≥
≠CMP≡≡$INPTC≡≡$INBUF≡≥ 120010 023727 150716 150500 $TTBACK:CMP $INPTC,#$INBUF
≠BLE≡≡$$PEX2≡≥ 120016 003744 BLE $$PEX2 ;CAN'T, C-BIT SET RETURN
≠DEC≡≡$INPTC≡≥ 120020 005337 150716 DEC $INPTC ;BACKUP POINTER
≠BR≡≡$$PSX2≡≥ 120024 000743 BR $$PSX2
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 202
SUB11 PAL[KL,SYS] Page 18 READ SWITCH REGISTER
≥ .SBTTL READ SWITCH REGISTER
≥
≠MOV≡≡SWR≡≡R0≡≥ 120026 013700 177570 $SWITCH:MOV SWR,R0 ;PUT SWR INTO R0
≥
≠MOV≡≡R0≡≡$SWTCH≡≥ 120032 010037 147632 1$: MOV R0,$SWTCH ;SAVE A COPY FOR FUTURE REFERENCE
≠BR≡≡$$PEX3≡≥ 120036 000410 BR $$PEX3 ;RETURN TO USER
≥
≠.SBTTL≡≥ .SBTTL RETURN WITH COPY OF SWITCHES
≥
≠MOV≡≡$SWTCH≡≡R0≡≥ 120040 013700 147632 $SWTSAM:MOV $SWTCH,R0 ;COPY OF SWITCHES TO RO
≠BR≡≡$$PEX3≡≥ 120044 000405 BR $$PEX3
≥
≠.SBTTL≡≥ .SBTTL SET FORCE PRINT FLAG
≥
≡SETFLG≡≡SETFLG≡≥ 120046 104055 $PFORCE:SETFLG
≡$FORCE≡≡$FORCE≡≥ 120050 147760 $FORCE ;177777 TO FORCE FLAG
≠BR≡≡$$PEX3≡≥ 120052 000402 BR $$PEX3 ;RETURN
≥
≥
≠.SBTTL≡≥ .SBTTL CLEAR FORCE PRINT FLAG
≥
≠CLR≡≡$FORCE≡≥ 120054 005037 147760 $PNORML:CLR $FORCE ;0 TO FORCE FLAG
≤EXIT≡≥ $$PEX3: EXIT ;RETURN
≠JMP≡≡$EXIT≡≥ 120060 000137 124064 JMP $EXIT
≥
≥ ;TTILIN ENTRY POINT FROM RUNLP
≥
≠CLR≡≡TILNWF≡≥ 120064 005037 147762 $TILRN: CLR TILNWF ;CLEAR TTY WAIT FLAG
≠JSR≡≡PC≡≡$TILN3≡≥ 120070 004737 120106 JSR PC,$TILN3 ;INIT TTILIN ROUTINE
≤PUSH≡≥ PUSH $FORCE
≠.NLIST≡≠.IRP≡≠MOV≡≡$FORCE≡≡SP≡≠.LIST≡≠MOV≡≡$INBUF≡≡R1≡≥ 120100 012701 150500 MOV #$INBUF,R1
≠BR≡≡$TILN2≡≥ 120104 000446 BR $TILN2 ;GO INPUT, 1ST CHAR ALREADY AVAILABLE
≥
≠CLR≡≡CTRLOF≡≥ 120106 005037 147770 $TILN3: CLR CTRLOF ;CLEAR CONTROL O FLAG
≠CMP≡≡$OUTBF≡≡$OUTPT≡≥ 120112 022737 150254 150474 CMP #$OUTBF,$OUTPT ;ANY OUTPUT WAITING ?
≠BEQ≡≥ 120120 001401 BEQ 1$ ;NO
≡PRINTT≡≡PRINTT≡≥ 120122 104151 PRINTT ;YES, PRINT IT
≠CLR≡≡$TPLIT≡≥ 120124 005037 147774 1$: CLR $TPLIT ;CLEAR LINES ON PAGE
≠CLR≡≡$0FLG≡≥ 120130 005037 147754 CLR $0FLG ;CLEAR RUBOUT FLAG
≠CLR≡≡$TTYTI≡≥ 120134 005037 147662 CLR $TTYTIM ;CLEAR TTY TIMEOUT
≠RTS≡≡PC≡≥ 120140 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 203
SUB11 PAL[KL,SYS] Page 19 INPUT A STRING FROM TTY
≥ .SBTTL INPUT A STRING FROM TTY
≥
≡SETFLG≡≡SETFLG≡≥ 120142 104055 $TTILNW:SETFLG ;SET TTY WAIT FLAG
≡TILNWF≡≡TILNWF≡≥ 120144 147762 TILNWF
≠BR≡≡$TILNX≡≥ 120146 000402 BR $TILNX
≥
≠CLR≡≡TILNWF≡≥ 120150 005037 147762 $TTILIN:CLR TILNWF ;CLEAR TTY WAIT FLAG
≥
≠JSR≡≡PC≡≡$TILN3≡≥ 120154 004737 120106 $TILNX: JSR PC,$TILN3 ;INIT ROUTINE
≤PUSH≡≥ PUSH $FORCE
≠.NLIST≡≠.IRP≡≠MOV≡≡$FORCE≡≡SP≡≠.LIST≡≡PFORCE≡≡PFORCE≡≥ 120164 104043 PFORCE
≠MOV≡≡$INBUF≡≡R1≡≥ 120166 012701 150500 95$: MOV #$INBUF,R1
≡$TILN1≠≥ 120172 $TILN1=.
≠JSR≡≡PC≡≡C10COP≡≥ 120172 004737 110742 2$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≠TST≡≡TILNWF≡≥ 120176 005737 147762 TST TILNWF ;WAIT FOREVER ?
≠BNE≡≥ 120202 001004 BNE 21$ ;YES, NO TIMEOUT
≠CMP≡≡$TTYTI≡≥ 120204 023727 147662 025060 CMP $TTYTIM,#<3*60.*60.>;TTY TIMED OUT ?
≠BGT≡≥ 120212 003062 BGT 99$ ;YES, C-BIT SET EXIT
≥
≠JSR≡≡PC≡≡$TIRDY≡≥ 120214 004737 120670 21$: JSR PC,$TIRDY ;TTY IN FLAG SET
≠BCS≡≥ 120220 103764 BCS 2$
≡$TILN2≠≥ 120222 $TILN2=.
≠CLR≡≡$TTYTI≡≥ 120222 005037 147662 CLR $TTYTIM
≠MOVB≡≡$TICHR≡≡R1≡≥ 120226 113711 147744 MOVB $TICHR,(R1) ;MOVE CHARACTER TO BUFFER
≠BICB≡≡R1≡≥ 120232 142711 000200 BICB #200,(R1)
≠MOVB≡≡R1≡≡$TNCHR≡≥ 120236 111137 150024 MOVB (R1),$TNCHR ;SAVE CHAR FOR TEN
≠BEQ≡≥ 120242 001753 BEQ 2$ ;NULL, IGNORE
≡TENCHR≡≡TENCHR≡≥ 120244 104176 TENCHR ;SEND TEN THE CHAR
≥
≠CLR≡≡R5≡≥ 120246 005005 CLR R5 ;DO SPECIAL CHAR PROCESS
≠CMPB≡≡R1≡≡TILINC≡≡R5≡≥ 120250 121165 120612 80$: CMPB (R1),TILINC(R5)
≠BEQ≡≥ 120254 001405 BEQ 81$ ;FOUND
≠INC≡≡R5≡≥ 120256 005205 INC R5
≠TSTB≡≡TILINC≡≡R5≡≥ 120260 105765 120612 TSTB TILINC(R5)
≠BEQ≡≥ 120264 001404 BEQ 82$ ;IF 0, END OF LIST
≠BR≡≥ 120266 000770 BR 80$
≥
≤SL≡≥ 81$: SL R5,1 ;DISPATCH
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R5≡≠.LIST≡≠JMP≡≡TILINA≡≡R5≡≥ 120272 000175 120632 JMP @TILINA(R5)
≠CMPB≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 204
SUB11 PAL[KL,SYS] Page 20 INPUT A STRING FROM TTY
≥ 120276 121127 000141 82$: CMPB (R1),#141
≠BLT≡≥ 120302 002405 BLT 83$
≠CMPB≡≡R1≡≥ 120304 121127 000172 CMPB (R1),#172
≠BGT≡≥ 120310 003002 BGT 83$
≠BICB≡≡R1≡≥ 120312 142711 000040 BICB #40,(R1) ;CONVERT LOWER TO UPPER CASE
≥
≤PUSH≡≥ 83$: PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOVB≡≡R1≡≡R1≡≥ 120320 111101 MOVB (R1),R1 ;PUT CHAR IN R1
≡PLDBUF≡≡PLDBUF≡≥ 120322 104154 PLDBUF ;INSERT FOR LPT
≠INC≡≡$OUTPP≡≥ 120324 005237 150472 INC $OUTPP ;MOVE PRINTED-TO-POSITION
≤POP≡≥ POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≥
≠TST≡≡$0FLG≡≥ 120332 005737 147754 10$: TST $0FLG ;RUBOUT KEY SET?
≠BEQ≡≥ 120336 001405 BEQ 11$ ;BR IF NO
≥
≠MOVB≡≡BKSLH≡≡R0≡≥ 120340 112700 000134 MOVB #BKSLH,R0 ;TYPE A BACK SLASH
≡PTTY≡≡PTTY≡≥ 120344 104152 PTTY
≠CLR≡≡$0FLG≡≥ 120346 005037 147754 CLR $0FLG ;CLEAR RUBOUT FLAG
≥
≠MOVB≡≡R1≡≡R0≡≥ 120352 112100 11$: MOVB (R1)+,R0 ;CHAR TO R0
≡PTTY≡≡PTTY≡≥ 120354 104152 PTTY ;PRINT IT
≠BR≡≥ 120356 000705 BR 2$ ;BACK FOR MORE
≥
≠MOV≡≡R1≡≡$INPTR≡≥ 120360 010137 150720 99$: MOV R1,$INPTR ;SAVE INPUT POINTER
≤POP≡≥ POP $FORCE
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡$FORCE≡≠.LIST≡≤EXITER≡≥ EXITERR ;TIMED OUT, C-BIT SET RETURN
≠JMP≡≡$EXITE≡≥ 120370 000137 124036 JMP $EXITE
≥
≠TST≡≡$0FLG≡≥ 120374 005737 147754 $TIRUB: TST $0FLG ;MULTIPLE RUBOUTS ?
≠BNE≡≥ 120400 001005 BNE 1$ ;YES
≠INC≡≡$0FLG≡≥ 120402 005237 147754 INC $0FLG ;SET RUBOUT FLAG
≠MOVB≡≡BKSLH≡≡R0≡≥ 120406 112700 000134 MOVB #BKSLH,R0 ;TYPE A BACKSLASH
≡PTTY≡≡PTTY≡≥ 120412 104152 PTTY
≥
≠DEC≡≡R1≡≥ 120414 005301 1$: DEC R1 ;BACKUP BY ONE
≠CMP≡≡R1≡≡$INBUF≡≥ 120416 020127 150477 CMP R1,#$INBUF-1 ;INPUT BUFFER EMPTY ?
≠BNE≡≥ 120422 001004 BNE 2$ ;NO
≥
≡PCRLF≡≡PCRLF≡≥ 120424 104031 PCRLF ;EMPTY, PRINT CR/LF
≤POP≡≥ POP $FORCE
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡$FORCE≡≠.LIST≡≠BR≡≡$TILNX≡≥ 120432 000650 BR $TILNX ;AWAIT NEW LINE
≥
≠MOVB≡≡R1≡≡R0≡≥ 120434 111100 2$: MOVB (R1),R0 ;PRINT RUBBED OUT CHAR
≡PTTY≡≡PTTY≡≥ 120436 104152 PTTY
≠BR≡≡$TILN1≡≥ 120440 000654 BR $TILN1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 205
SUB11 PAL[KL,SYS] Page 21 INPUT A STRING FROM TTY
≥ ;SPECIAL CHAR PROCESS
≥
≤PMSG≡≥ $TICU: PMSG <↑U\> ;CONTROL U, DUMP LINE
≡$PMSG≡≡$PMSG≡≥ 120442 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 120444 146053 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤POP≡≥ POP $FORCE
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡$FORCE≡≠.LIST≡≠BR≡≡$TILNX≡≥ 120452 000640 BR $TILNX
≥
≠INC≡≡R1≡≥ 120454 005201 $TICR: INC R1 ;CARRIAGE RETURN
≠MOVB≡≡LF≡≡R1≡≥ 120456 112711 000012 MOVB #LF,(R1) ;INSERT LF ALSO
≥
≡PCRLF≡≡PCRLF≡≥ 120462 104031 $TIBELL:PCRLF ;PRINT CR/LF
≥
≠MOV≡≡R1≡≡$INPTR≡≥ 120464 010137 150720 $TIEXT: MOV R1,$INPTR ;UPDATE INPUT POINTER
≠MOV≡≡$INBUF≡≡$INPTC≡≥ 120470 012737 150500 150716 MOV #$INBUF,$INPTC ;INIT CHAR POINTER
≤POP≡≥ POP $FORCE
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡$FORCE≡≠.LIST≡≤EXIT≡≥ EXIT ;RETURN
≠JMP≡≡$EXIT≡≥ 120502 000137 124064 JMP $EXIT
≥
≠MOVB≡≡ALTMOD≡≡R1≡≥ 120506 112711 000033 $TIALT: MOVB #ALTMOD,(R1) ;ALTMODE
≤PMSG≡≥ PMSG <$\> ;PRINT DOLLAR SIGN CR/LF
≡$PMSG≡≡$PMSG≡≥ 120512 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 120514 146057 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$TIEXT≡≥ 120516 000762 BR $TIEXT
≥
≡PCRLF≡≡PCRLF≡≥ 120520 104031 $TIBKS: PCRLF ;BACKSLASH, DO LOCAL CR/LF
≠BR≡≡$TILN1≡≥ 120522 000623 BR $TILN1
≥
≥
≡PNTCI≡≡PNTCI≡≥ 120524 104214 $TICC: PNTCI ;CONTROL C, ABORT
≥ 120526 041536 "↑C
≠JMP≡≡$CNTLC≡≥ 120530 000137 100004 JMP $CNTLC
≥
≠TST≡≡LPTFLG≡≥ 120534 005737 157304 $TICL: TST LPTFLG ;CONTROL L, LPT SELECTION
≠BPL≡≡$TILN1≡≥ 120540 100214 BPL $TILN1
≠COMB≡≡LPTFLG≡≥ 120542 105137 157304 COMB LPTFLG
≠BR≡≡$TILN1≡≥ 120546 000611 BR $TILN1
≥
≠MOVB≡≡R1≡≡R0≡≥ 120550 111100 $TILF: MOVB (R1),R0 ;LINE FEED
≡PTTY≡≡PTTY≡≥ 120552 104152 PTTY
≠BR≡≡$TIEXT≡≥ 120554 000743 BR $TIEXT
≥
≠CLR≡≡CTRLOF≡≥ 120556 005037 147770 $TICO: CLR CTRLOF ;CLEAR CONTROL O FLAG
≡PNTCI≡≡PNTCI≡≥ 120562 104214 PNTCI
≥ 120564 047536 "↑O
≠BR≡≡$TIBEL≡≥ 120566 000735 BR $TIBELL ;CR/LF & TERMINATE
≥
≡TTPINI≡≡TTPINI≡≥ 120570 104217 $TICX: TTPINI
≡PNTCI≡≡PNTCI≡≥ 120572 104214 PNTCI
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 206
SUB11 PAL[KL,SYS] Page 21.1 INPUT A STRING FROM TTY
≥ 120574 054136 "↑X
≡TTILIN≡≡TTILIN≡≥ 120576 104004 TTILIN ;GET COMMAND LINE
≠BCS≡≡$TICC≡≥ 120600 103751 BCS $TICC ;TIMED OUT
≠MOV≡≡$KONSP≡≡SP≡≥ 120602 013706 147736 MOV $KONSP,SP ;RESTORE STACK POINTER
≠JMP≡≡$RPT≡≥ 120606 000137 100456 JMP $RPT ;GO PROCESS COMMAND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 207
SUB11 PAL[KL,SYS] Page 22 INPUT A STRING FROM TTY
≥ ;SPECIAL CHARACTERS
≥
≠.BYTE≡≡CR≡≥ 120612 015
≡LF≡≥ 120613 012 TILINC: .BYTE CR,LF
≠.BYTE≡≡BELL≡≥ 120614 007
≡ALTMOD≡≥ 120615 033 .BYTE BELL,ALTMOD
≠.BYTE≡≥ 120616 175
≥ 120617 176 .BYTE 175,176
≠.BYTE≡≡CNTRLL≡≥ 120620 014
≡CNTRLU≡≥ 120621 025 .BYTE CNTRLL,CNTRLU
≠.BYTE≡≡CNTRLC≡≥ 120622 003
≡BKSLH≡≥ 120623 134 .BYTE CNTRLC,BKSLH
≠.BYTE≡≡RUBOUT≡≥ 120624 177
≡CNTRLO≡≥ 120625 017 .BYTE RUBOUT,CNTRLO
≠.BYTE≡≡XON≡≥ 120626 021
≡XOFF≡≥ 120627 023 .BYTE XON,XOFF
≠.BYTE≡≡CNTRLX≡≥ 120630 030
≥ 120631 000 .BYTE CNTRLX,0
≥
≥ ;SPECIAL CHAR DISPATCH TABLE
≥
≡$TICR≡≡$TICR≡≥ 120632 120454 TILINA: $TICR
≡$TILF≡≡$TILF≡≥ 120634 120550 $TILF
≡$TIBEL≡≡$TIBEL≡≥ 120636 120462 $TIBELL
≡$TIALT≡≡$TIALT≡≥ 120640 120506 $TIALT
≡$TIALT≡≡$TIALT≡≥ 120642 120506 $TIALT
≡$TIALT≡≡$TIALT≡≥ 120644 120506 $TIALT
≡$TICL≡≡$TICL≡≥ 120646 120534 $TICL
≡$TICU≡≡$TICU≡≥ 120650 120442 $TICU
≡$TICC≡≡$TICC≡≥ 120652 120524 $TICC
≡$TIBKS≡≡$TIBKS≡≥ 120654 120520 $TIBKS
≡$TIRUB≡≡$TIRUB≡≥ 120656 120374 $TIRUB
≡$TICO≡≡$TICO≡≥ 120660 120556 $TICO
≡$TIBEL≡≡$TIBEL≡≥ 120662 120462 $TIBELL
≡$TIBEL≡≡$TIBEL≡≥ 120664 120462 $TIBELL
≡$TICX≡≡$TICX≡≥ 120666 120570 $TICX
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 208
SUB11 PAL[KL,SYS] Page 23 CTY & FSTTY DL11 DRIVERS
≥ .SBTTL CTY & FSTTY DL11 DRIVERS
≥
≠TSTB≡≡$TKS≡≥ 120670 105777 757124 $TIRDY: TSTB @$TKS ;ANY CTY INPUT ?
≠BPL≡≥ 120674 100020 BPL 2$ ;NO
≠BIT≡≡$TKB≡≥ 120676 032777 020000 757116 BIT #20000,@$TKB ;YES. BREAK?
≠BNE≡≥ 120704 001010 BNE 5$ ;BRANCH IF YES
≠MOVB≡≡$TKB≡≡$TICHR≡≥ 120706 117737 757110 147744 MOVB @$TKB,$TICHR ;GET CHAR
≠BICB≡≡$TICHR≡≥ 120714 142737 000200 147744 1$: BICB #200,$TICHR ;CLEAR PARITY BIT
≠CLC≡≠CLC≡≥ 120722 000241 CLC ;C-BIT CLEAR RETURN
≠RTS≡≡PC≡≥ 120724 000207 RTS PC
≥
≠MOVB≡≡MSWCHR≡≡$TICHR≡≥ 120726 112737 000030 147744 5$: MOVB #MSWCHR,$TICHR ;BREAK SEEN.
≠BR≡≥ 120734 000767 BR 1$
≥
≥ 2$:
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥ TST DL11EFLG ;DOING DL11E ?
≥ BEQ 3$ ;NO
≥ BIT #DLCTS,@$FSTKS ;YES, STILL HAVE CLEAR TO SEND ?
≥ BEQ 4$ ;NO
≥ .IFF
≠TST≡≡FSFLG≡≥ 120736 005737 152236 TST FSFLG ;DOING DL11E?
≠BEQ≡≥ 120742 001413 BEQ 3$ ;NO
≠BIT≡≡DLCTS≡≡$FSTKS≡≥ 120744 032777 020000 757056 BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND?
≠BEQ≡≥ 120752 001407 BEQ 3$ ;NO
≥ .ENDC
≠TSTB≡≡$FSTKS≡≥ 120754 105777 757050 TSTB @$FSTKS ;ANY FSTTY INPUT ?
≠BPL≡≥ 120760 100004 BPL 3$ ;NO
≠MOVB≡≡$FSTKB≡≡$TICHR≡≥ 120762 117737 757044 147744 MOVB @$FSTKB,$TICHR ;YES, GET CHAR
≠BR≡≥ 120770 000751 BR 1$ ;C-BIT CLEAR RETURN
≥
≠SEC≡≠SEC≡≥ 120772 000261 3$: SEC ;NO INPUT, C-BIT SET RETURN
≠RTS≡≡PC≡≥ 120774 000207 RTS PC
≥
≠.LIF≡≡TELASB≡≥ .LIF NDF TELASB
≥ 4$: JMP FSDISC ;DL11E DISCONNECT
≥
≠TSTB≡≡$TPS≡≥ 120776 105777 757022 $TORDY: TSTB @$TPS ;IS CTY READY ?
≠BPL≡≥ 121002 100014 BPL 2$ ;NO
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥ TST DL11EFLG ;DOING DL11E ?
≥ BEQ 1$ ;NO
≥ BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND ?
≥ BEQ 3$ ;NO
≥ .IFF
≠TST≡≡FSFLG≡≥ 121004 005737 152236 TST FSFLG
≠BEQ≡≥ 121010 001407 BEQ 1$
≠BIT≡≡DLCTS≡≡$FSTKS≡≥ 121012 032777 020000 757010 BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND?
≠BEQ≡≥ 121020 001403 BEQ 1$ ;NO
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 209
SUB11 PAL[KL,SYS] Page 23.1 CTY & FSTTY DL11 DRIVERS
≥ .ENDC
≠TSTB≡≡$FSTPS≡≥ 121022 105777 757006 TSTB @$FSTPS ;IS FSTTY READY ?
≠BPL≡≥ 121026 100002 BPL 2$ ;NO
≥
≠CLC≡≠CLC≡≥ 121030 000241 1$: CLC ;ALL READY, C-BIT CLEAR RETURN
≠RTS≡≡PC≡≥ 121032 000207 RTS PC
≥
≠SEC≡≠SEC≡≥ 121034 000261 2$: SEC ;NOT READY
≠RTS≡≡PC≡≥ 121036 000207 RTS PC
≥
≠.LIF≡≡TELASB≡≥ .LIF NDF TELASB
≥ 3$: JMP FSDISC ;DL11E DISCONNECT
≥
≠MOVB≡≡$TOCHR≡≡$TPB≡≥ 121040 113777 147742 756760 $TOOUT: MOVB $TOCHR,@$TPB ;PRINT ON CTY
≥
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥ TST DL11EFLG
≥ BEQ 1$
≥ .IFF
≠TST≡≡FSFLG≡≥ 121046 005737 152236 TST FSFLG
≠BEQ≡≥ 121052 001407 BEQ 1$
≠BIT≡≡DLCTS≡≡$FSTKS≡≥ 121054 032777 020000 756746 BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND
≠BEQ≡≥ 121062 001403 BEQ 1$
≥ .ENDC
≠MOVB≡≡$TOCHR≡≡$FSTPB≡≥ 121064 113777 147742 756744 MOVB $TOCHR,@$FSTPB ;PRINT ON FSTTY
≠RTS≡≡PC≡≥ 121072 000207 1$: RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 210
SUB11 PAL[KL,SYS] Page 24 READ AN OCTAL NUMBER FROM THE TTY
≥ .SBTTL READ AN OCTAL NUMBER FROM THE TTY
≥
≥ ;REGISTER USAGE
≥ ;R0 = TTY CHARACTER 7 BIT FROM $INBUF
≥ ;R2 = WORK REGISTER
≥ ;R3 = CLEARED/SET = NO OCTAL CHARS/AT LEAST 1 OCTAL CHAR
≥
≠CLR≡≡R2≡≥ 121074 005002 $TTIOCT:CLR R2 ;CLEAR WORK REGISTER
≠JSR≡≡PC≡≡$TMINU≡≥ 121076 004737 121170 JSR PC,$TMINUS ;CHECK FOR PLUS & MINUS
≡TTICHR≡≡TTICHR≡≥ 121102 104005 1$: TTICHR ;PICKUP THIS CHARACTER
≠BCS≡≥ 121104 103416 BCS 2$
≥
≠CMPB≡≡R0≡≥ 121106 120027 000060 CMPB R0,#60 ;MAKE SURE THIS CHARACTER
≠BLT≡≥ 121112 002413 BLT 2$ ;IS AN OCTAL DIGIT
≠CMPB≡≡R0≡≥ 121114 120027 000067 CMPB R0,#67
≠BGT≡≥ 121120 003010 BGT 2$
≥
≠INC≡≡R3≡≥ 121122 005203 INC R3 ;TO SHOW I GOT ONE CHARACTER
≥
≠ASL≡≡R2≡≥ 121124 006302 ASL R2
≠ASL≡≡R2≡≥ 121126 006302 ASL R2
≠ASL≡≡R2≡≥ 121130 006302 ASL R2
≥
≠BIC≡≡R0≡≥ 121132 042700 177770 BIC #177770,R0
≠ADD≡≡R0≡≡R2≡≥ 121136 060002 ADD R0,R2
≠BR≡≥ 121140 000760 BR 1$
≥
≠CLR≡≡R0≡≥ 121142 005000 2$: CLR R0 ;SET UP FOR EXIT
≥
≠TST≡≡R3≡≥ 121144 005703 TST R3 ;DID WE GET ANY DATA
≠BEQ≡≡$$PEX7≡≥ 121146 001406 BEQ $$PEX7 ;NO, ERROR RETURN
≥
≠MOV≡≡R2≡≡R0≡≥ 121150 010200 MOV R2,R0
≠TST≡≡R4≡≥ 121152 005704 TST R4 ;NEGATE FLAG SET ?
≠BEQ≡≡$$PEX6≡≥ 121154 001401 BEQ $$PEX6 ;NO
≠NEG≡≡R0≡≥ 121156 005400 NEG R0 ;YES, MAKE NUMBER NEGATIVE
≠JMP≡≡$TTERM≡≥ 121160 000137 122340 $$PEX6: JMP $TTERM ;VERIFY TERMINATION & EXIT
≤EXITER≡≥ $$PEX7: EXITERR ;ERROR RETURN
≠JMP≡≡$EXITE≡≥ 121164 000137 124036 JMP $EXITE
≥
≠CLR≡≡R3≡≥ 121170 005003 $TMINUS:CLR R3 ;CLEAR CHAR COUNTER
≠CLR≡≡R4≡≥ 121172 005004 CLR R4 ;CLEAR NEGATE FLAG
≠MOV≡≡$INPTC≡≡R5≡≥ 121174 013705 150716 MOV $INPTC,R5 ;SAVE INPUT POINTER
≡TTICHR≡≡TTICHR≡≥ 121200 104005 TTICHR ;GET 1ST CHAR
≠BCS≡≥ 121202 103412 BCS 82$ ;NONE AVAILABLE
≠CMPB≡≡R0≡≥ 121204 122700 000053 CMPB #'+,R0
≠BEQ≡≥ 121210 001404 BEQ 80$
≠CMPB≡≡R0≡≥ 121212 122700 000055 CMPB #'-,R0 ;NEGATE ?
≠BNE≡≥ 121216 001002 BNE 81$ ;BR IF NO
≠INC≡≡R4≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 211
SUB11 PAL[KL,SYS] Page 24.1 READ AN OCTAL NUMBER FROM THE TTY
≥ 121220 005204 INC R4 ;YES, SET NEGATE FLAG
≠INC≡≡R5≡≥ 121222 005205 80$: INC R5 ;YES, ADVANCE PAST -
≠MOV≡≡R5≡≡$INPTC≡≥ 121224 010537 150716 81$: MOV R5,$INPTC
≠RTS≡≡PC≡≥ 121230 000207 82$: RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 212
SUB11 PAL[KL,SYS] Page 25 READ A DECIMAL NUMBER FROM THE TTY
≥ .SBTTL READ A DECIMAL NUMBER FROM THE TTY
≥
≠MOV≡≡$TTSAV≡≡R2≡≥ 121232 012702 150004 $TTIDEC:MOV #$TTSAV,R2 ;RESERVE STORAGE
≠JSR≡≡PC≡≡$TMINU≡≥ 121236 004737 121170 JSR PC,$TMINUS ;CHECK FOR PLUS & MINUS
≡TTICHR≡≡TTICHR≡≥ 121242 104005 1$: TTICHR ;READ IN A CHARACTER
≠BCS≡≥ 121244 103413 BCS 2$
≠CMPB≡≡R0≡≥ 121246 120027 000060 CMPB R0,#60 ;MAKE SURE THIS CHARACTER
≠BLT≡≥ 121252 002410 BLT 2$ ;IS A DIGIT BETWEEN 0 & 9
≠CMPB≡≡R0≡≥ 121254 120027 000071 CMPB R0,#71
≠BGT≡≥ 121260 003005 BGT 2$
≠INC≡≡R3≡≥ 121262 005203 INC R3 ;SO I KNOW I GOT A DIGIT
≠BIC≡≡R0≡≥ 121264 042700 177760 BIC #177760,R0 ;DON'T LET NUMBER GET TO BIG
≠MOVB≡≡R0≡≡R2≡≥ 121270 110022 MOVB R0,(R2)+
≠BR≡≥ 121272 000763 BR 1$
≠CLR≡≡R0≡≥ 121274 005000 2$: CLR R0 ;CLEAR OUTPUT
≠TST≡≡R3≡≥ 121276 005703 TST R3 ;DID WE GET ANY THING
≠BEQ≡≥ 121300 001420 BEQ 6$ ;NO
≥
≥ ;NOW WE CONVERT IT
≥
≠CLR≡≡R1≡≥ 121302 005001 CLR R1 ;CLEAR TABLE INDEX
≠CMP≡≡R2≡≡$TTSAV≡≥ 121304 020227 150004 3$: CMP R2,#$TTSAV
≠BLT≡≥ 121310 002410 BLT 5$ ;YES NORMAL EXIT
≠MOVB≡≡R2≡≡R5≡≥ 121312 114205 MOVB -(R2),R5 ;PUT IN R5
≠DEC≡≡R5≡≥ 121314 005305 4$: DEC R5 ;DONE YET
≠BLT≡≥ 121316 002403 BLT 7$
≠ADD≡≡$TBLL≡≡R1≡≡R0≡≥ 121320 066100 144704 ADD $TBLL(R1),R0 ;TALLY IT UP
≠BR≡≥ 121324 000773 BR 4$
≠TST≡≡R1≡≥ 121326 005721 7$: TST (R1)+ ;UPDATE TABLE TALLY
≠BR≡≥ 121330 000765 BR 3$
≠TST≡≡R4≡≥ 121332 005704 5$: TST R4 ;NEGATE NUMBER ?
≠BEQ≡≥ 121334 001401 BEQ 9$
≠NEG≡≡R0≡≥ 121336 005400 NEG R0 ;YES
≠BR≡≡$$PEX6≡≥ 121340 000707 9$: BR $$PEX6 ;RETURN
≠BR≡≡$$PEX7≡≥ 121342 000710 6$: BR $$PEX7 ;ERROR RETURN
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 213
SUB11 PAL[KL,SYS] Page 26 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
≥ .SBTTL READ A 12 DIGIT OCTAL (36 BIT) NUMBER
≥
≥ ;$0FLG, 0=NO DATA; 0,-1=ONE DATA WORD; -1,-1= TWO PART DATA
≥ ;DATA IS TRUNCATED TO 6 OCTALS IN EITHER HALF OF 2 PART DATA
≥ ;DATA IS TRUNCATED TO 12 OCTALS IN 1 PART DATA
≥ ;DURING CONVERSION
≥ ;1 PART DATA; $0FLG =0
≥ ;2 PART DATA; $0FLG=-1,0 DURING HI6; 0,-1 DURING LO6
≥
≠JSR≡≡PC≡≡$TI36C≡≥ 121344 004737 122044 $TTI36: JSR PC,$TI36C
≠CLR≡≡$SVH≡≥ 121350 005037 147750 CLR $SVH
≠CLR≡≡$SVM≡≥ 121354 005037 147746 CLR $SVM
≠CLR≡≡$0FLG≡≥ 121360 005037 147754 CLR $0FLG
≠CLR≡≡$NEG≡≥ 121364 005037 147752 CLR $NEG
≠JSR≡≡PC≡≡$TMINU≡≥ 121370 004737 121170 JSR PC,$TMINUS
≠TST≡≡R4≡≥ 121374 005704 TST R4
≠BEQ≡≥ 121376 001402 BEQ 1$
≠INCB≡≡$NEG≡≥ 121400 105237 147753 INCB $NEG+1 ;SET NEGATE FLAG
≥
≡TTICHR≡≡TTICHR≡≥ 121404 104005 1$: TTICHR ;READ A CHAR
≠BCS≡≥ 121406 103424 99$: BCS 98$ ;BUFFER EMPTY
≥
≠CMPB≡≡R0≡≥ 121410 120027 000060 CMPB R0,#60 ;MAKE SURE ITS OCTAL
≠BLT≡≥ 121414 002407 BLT 2$
≠CMPB≡≡R0≡≥ 121416 120027 000067 CMPB R0,#67
≠BGT≡≥ 121422 003004 BGT 2$
≥
≠MOVB≡≡$0FLG≡≥ 121424 112737 777777 147754 MOVB #-1,$0FLG ;WE GOT AT LEAST 1 DIGIT
≠BR≡≥ 121432 000764 BR 1$
≥
≠TSTB≡≡$0FLG≡≥ 121434 105737 147754 2$: TSTB $0FLG
≠BEQ≡≥ 121440 001546 BEQ 69$
≠CMPB≡≡R0≡≡BLANK≡≥ 121442 120027 000040 CMPB R0,#BLANK ;WAS IT A SPACE ?
≠BNE≡≥ 121446 001021 BNE 3$ ;NOPE
≠MOVB≡≡$0FLG≡≥ 121450 112737 777777 147755 MOVB #-1,$0FLG+1 ;SET 2 WORD FLAG
≡TTICHR≡≡TTICHR≡≥ 121456 104005 TTICHR ;GET 1ST CHAR OF 2ND PART
≠BCS≡≥ 121460 103421 98$: BCS 97$
≠CMPB≡≡R0≡≥ 121462 122700 000053 CMPB #'+,R0
≠BEQ≡≥ 121466 001410 BEQ 71$
≠CMPB≡≡R0≡≥ 121470 122700 000055 CMPB #'-,R0 ;IS IT MINUS ?
≠BEQ≡≥ 121474 001403 BEQ 21$ ;YES
≠DEC≡≡$INPTC≡≥ 121476 005337 150716 DEC $INPTC ;NO, BACKUP INPUT POINTER
≠BR≡≥ 121502 000740 BR 1$
≠INCB≡≡$NEG≡≥ 121504 105237 147752 21$: INCB $NEG ;SET 2ND PART NEGATE FLAG
≠BR≡≥ 121510 000735 71$: BR 1$ ;PROCESS 2ND HALF WORD
≠MOV≡≡R5≡≡$INPTC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 214
SUB11 PAL[KL,SYS] Page 27 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
≥ 121512 010537 150716 3$: MOV R5,$INPTC ;RESET INPUT POINTER
≠CLRB≡≡$0FLG≡≥ 121516 105037 147754 CLRB $0FLG
≥
≡TTICHR≡≡TTICHR≡≥ 121522 104005 4$: TTICHR
≠BCS≡≥ 121524 103444 97$: BCS 96$
≠CMPB≡≡R0≡≥ 121526 120027 000060 CMPB R0,#60
≠BLT≡≥ 121532 002414 BLT 5$
≠CMPB≡≡R0≡≥ 121534 120027 000067 CMPB R0,#67
≠BGT≡≥ 121540 003011 BGT 5$
≥
≠BICB≡≡R0≡≥ 121542 142700 000370 BICB #370,R0
≠MOV≡≡R1≡≥ 121546 012701 000003 MOV #3,R1
≥
≠JSR≡≡PC≡≡SHFT36≡≥ 121552 004737 121766 6$: JSR PC,SHFT36 ;SHIFT 36 BIT WORD LEFT 3
≥
≠BISB≡≡R0≡≡$DRAM≡≥ 121556 150037 147462 BISB R0,$DRAM ;INSERT NEW CHAR
≠BR≡≥ 121562 000757 BR 4$
≥
≠TSTB≡≡$0FLG≡≥ 121564 105737 147755 5$: TSTB $0FLG+1 ;DOING 2 PART NUMBER ?
≠BEQ≡≥ 121570 001434 BEQ 8$ ;BR IF NO
≥
≠TSTB≡≡$NEG≡≥ 121572 105737 147753 51$: TSTB $NEG+1 ;NEGATE UPPER PART ?
≠BEQ≡≥ 121576 001402 BEQ 52$ ;NO
≥
≠JSR≡≡PC≡≡NEG36≡≥ 121600 004737 122010 JSR PC,NEG36 ;NEGATE 36 BIT WORD
≥
≠MOV≡≡R1≡≥ 121604 012701 000022 52$: MOV #18.,R1 ;YES, MOVE NUMBER TO UPPER 18 BITS
≥
≠JSR≡≡PC≡≡SHFT36≡≥ 121610 004737 121766 7$: JSR PC,SHFT36 ;SHIFT 36 BIT WORD LEFT 18
≥
≠MOV≡≡R5≡≡$SVH≡≥ 121614 014537 147750 MOV -(R5),$SVH ;SAVE UPPER BITS
≠MOV≡≡R5≡≡$SVM≡≥ 121620 014537 147746 MOV -(R5),$SVM ;SAVE MIDDLE BITS
≠JSR≡≡PC≡≡$TI36C≡≥ 121624 004737 122044 JSR PC,$TI36C
≥
≠SWAB≡≡$0FLG≡≥ 121630 000337 147754 SWAB $0FLG ;MAKE $0FLG 0,-1
≡TTICHR≡≡TTICHR≡≥ 121634 104005 TTICHR ;GET 1ST CHAR OF 2ND PART
≠BCS≡≥ 121636 103450 96$: BCS 9$
≠CMPB≡≡R0≡≥ 121640 122700 000053 CMPB #'+,R0
≠BEQ≡≥ 121644 001726 BEQ 4$
≠CMPB≡≡R0≡≥ 121646 122700 000055 CMPB #'-,R0 ;IS IT MINUS ?
≠BEQ≡≥ 121652 001723 BEQ 4$ ;YES
≠DEC≡≡$INPTC≡≥ 121654 005337 150716 DEC $INPTC ;NO, BACKUP INPUT POINTER
≠BR≡≥ 121660 000720 BR 4$
≠TSTB≡≡$0FLG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 215
SUB11 PAL[KL,SYS] Page 28 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
≥ 121662 105737 147754 8$: TSTB $0FLG
≠BEQ≡≥ 121666 001417 BEQ 10$ ;BR IF 1 PART
≠TSTB≡≡$NEG≡≥ 121670 105737 147752 TSTB $NEG ;NEGATE LOWER PART ?
≠BEQ≡≥ 121674 001402 BEQ 81$ ;NO
≥
≠JSR≡≡PC≡≡NEG36≡≥ 121676 004737 122010 JSR PC,NEG36 ;NEGATE 36 BIT WORD
≥
≠MOV≡≡$DRAM≡≡R1≡≥ 121702 012701 147464 81$: MOV #$DRAM+2,R1
≠BIC≡≡R1≡≥ 121706 042711 177774 BIC #177774,(R1)
≠BIS≡≡$SVM≡≡R1≡≥ 121712 053721 147746 BIS $SVM,(R1)+
≠CLR≡≡R1≡≥ 121716 005011 CLR (R1) ;CLEAR BITS 0-17
≠BIS≡≡$SVH≡≡R1≡≥ 121720 053711 147750 BIS $SVH,(R1) ;REINSERT UPPER BITS
≠BR≡≥ 121724 000405 BR 12$
≥
≠TSTB≡≡$NEG≡≥ 121726 105737 147753 10$: TSTB $NEG+1 ;MAKE NUMBER NEGATIVE ?
≠BEQ≡≥ 121732 001402 BEQ 12$ ;BR IF NO
≠JSR≡≡PC≡≡NEG36≡≥ 121734 004737 122010 JSR PC,NEG36 ;NEGATE 36 BIT WORD
≥
≠BIC≡≡$DRAM≡≥ 121740 042737 177760 147466 12$: BIC #177760,$DRAM+4 ;STRIP OVERFLOW
≠MOV≡≡$DRAM≡≡R0≡≥ 121746 012700 147462 MOV #$DRAM,R0 ;RETURN STORAGE ADR IN R0
≠JMP≡≡$TTERM≡≥ 121752 000137 122340 JMP $TTERM ;VERIFY TERMINATION & EXIT
≠CLR≡≡R0≡≥ 121756 005000 69$: CLR R0 ;NO DIGITS TYPED
≡TTERM≡≡TTERM≡≥ 121760 104201 9$: TTERM ;VERIFY TERMINATION
≤EXITER≡≥ EXITERR ;ERROR RETURN
≠JMP≡≡$EXITE≡≥ 121762 000137 124036 JMP $EXITE
≥
≥ ;SHIFT 36 BIT WORD C(R1) PLACES LEFT
≥
≠MOV≡≡$DRAM≡≡R5≡≥ 121766 012705 147462 SHFT36: MOV #$DRAM,R5
≠CLC≡≠CLC≡≥ 121772 000241 CLC
≠ROL≡≡R5≡≥ 121774 006125 ROL (R5)+
≠ROL≡≡R5≡≥ 121776 006125 ROL (R5)+
≠ROL≡≡R5≡≥ 122000 006125 ROL (R5)+
≠DEC≡≡R1≡≥ 122002 005301 DEC R1
≠BGT≡≡SHFT36≡≥ 122004 003370 BGT SHFT36
≠RTS≡≡PC≡≥ 122006 000207 RTS PC
≥
≥ ;NEGATE - TWO'S COMPLEMENT 36 BIT WORD
≥
≠MOV≡≡$DRAM≡≡R1≡≥ 122010 012701 147462 NEG36: MOV #$DRAM,R1 ;MAKE 1'S COMPLEMENT
≠COM≡≡R1≡≥ 122014 005121 COM (R1)+
≠COM≡≡R1≡≥ 122016 005121 COM (R1)+
≠COM≡≡R1≡≥ 122020 005111 COM (R1)
≠MOV≡≡$DRAM≡≡R1≡≥ 122022 012701 147462 MOV #$DRAM,R1
≠ADD≡≡R1≡≥ 122026 062721 000001 ADD #1,(R1)+ ;MAKE THAT 2'S COMPLEMENT
≠ADC≡≡R1≡≥ 122032 005521 ADC (R1)+
≠ADC≡≡R1≡≥ 122034 005511 ADC (R1)
≠BIC≡≡R1≡≥ 122036 042711 177760 BIC #177760,(R1) ;STRIP OVERFLOW
≠RTS≡≡PC≡≥ 122042 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 216
SUB11 PAL[KL,SYS] Page 28.1 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
≥
≠MOV≡≡$DRAM≡≡R0≡≥ 122044 012700 147462 $TI36C: MOV #$DRAM,R0 ;CLEAR STORAGE
≠CLR≡≡R0≡≥ 122050 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 122052 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 122054 005020 CLR (R0)+
≠RTS≡≡PC≡≥ 122056 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 217
SUB11 PAL[KL,SYS] Page 29 SIGNED MULTIPLY SUBROUTINE
≥ .SBTTL SIGNED MULTIPLY SUBROUTINE
≥
≤PUSH≡≥ $MULTP: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡SP≡≡R1≡≥ 122062 016601 000022 MOV 22(SP),R1
≠MOV≡≡SP≡≡R0≡≥ 122066 016600 000020 MOV 20(SP),R0 ;MULTIPLICAND
≠CLR≡≡R4≡≥ 122072 005004 CLR R4 ;CLEAR SIGN
≠TST≡≡R0≡≥ 122074 005700 TST R0 ;TEST SIGN
≠BPL≡≥ 122076 100002 BPL 1$
≥
≠INC≡≡R4≡≥ 122100 005204 INC R4 ;SET SIGN BIT
≠NEG≡≡R0≡≥ 122102 005400 NEG R0 ;MAKE MULTIPLICAND POSITIVE
≥
≠TST≡≡R1≡≥ 122104 005701 1$: TST R1 ;TEST SIGN OF MULTIPLIER
≠BPL≡≥ 122106 100002 BPL 2$
≥
≠DEC≡≡R4≡≥ 122110 005304 DEC R4 ;UPDATE SIGN BIT
≠NEG≡≡R1≡≥ 122112 005401 NEG R1 ;MAKE MULTIPLIER POSITIVE
≥
≠MOV≡≡R3≡≥ 122114 012703 000021 2$: MOV #17.,R3 ;SET LOOP COUNT
≠CLR≡≡R2≡≥ 122120 005002 CLR R2 ;SET UP FOR MULTIPLY LOOP
≥
≠BCC≡≥ 122122 103001 3$: BCC 4$ ;DONT ADD IF MULTIPLICAND IS ZERO
≠ADD≡≡R1≡≡R2≡≥ 122124 060102 ADD R1,R2
≥
≠ROR≡≡R2≡≥ 122126 006002 4$: ROR R2 ;POSITION THE PARTIAL PRODUCT
≠ROR≡≡R0≡≥ 122130 006000 ROR R0 ;AND THE MULTIPLICAND
≠DEC≡≡R3≡≥ 122132 005303 DEC R3 ;DONE YET
≠BNE≡≥ 122134 001372 BNE 3$ ;NOPE
≥
≠TST≡≡R4≡≥ 122136 005704 TST R4 ;TEST SIGN
≠BEQ≡≥ 122140 001403 BEQ 5$ ;PRODUCT IS POSITIVE
≥
≠NEG≡≡R0≡≥ 122142 005400 NEG R0 ;PRODUCT SHOULD BE NEGATIVE
≠NEG≡≡R2≡≥ 122144 005402 NEG R2
≠SBC≡≡R0≡≥ 122146 005600 SBC R0 ;SUBTRACT CARRY
≥
≠MOV≡≡R0≡≡SP≡≥ 122150 010066 000020 5$: MOV R0,20(SP) ;MOST SIGNIFICANT BITS
≠MOV≡≡R2≡≡SP≡≥ 122154 010266 000022 MOV R2,22(SP) ;LEAST SIGNIFICANT BITS
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT ;EXIT
≠JMP≡≡$EXIT≡≥ 122162 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 218
SUB11 PAL[KL,SYS] Page 30 BREAK CHARACTER
≥ .SBTTL BREAK CHARACTER
≥
≠DEC≡≡$INPTC≡≥ 122166 005337 150716 $TTIBRK:DEC $INPTC ;BACKUP INPUT POINTER
≡TTICHR≡≡TTICHR≡≥ 122172 104005 TTICHR
≠BCC≡≡$$PEX4≡≥ 122174 103122 BCC $$PEX4 ;NOTHING IN BUFFER
≤EXITER≡≥ $$PEX5: EXITERR
≠JMP≡≡$EXITE≡≥ 122176 000137 124036 JMP $EXITE
≥
≠.SBTTL≡≥ .SBTTL TELETYPE INPUT SPACE DELETE ROUTINE
≥
≡TTICHR≡≡TTICHR≡≥ 122202 104005 $TTSDL: TTICHR
≠BCS≡≡$TTSDX≡≥ 122204 103446 BCS $TTSDX ;BUFFER EMPTY
≠CMPB≡≡R0≡≡BLANK≡≥ 122206 120027 000040 CMPB R0,#BLANK
≠BEQ≡≡$TTSDL≡≥ 122212 001773 BEQ $TTSDL ;DELETE SPACES
≠CMPB≡≡R0≡≡TAB≡≥ 122214 120027 000011 CMPB R0,#TAB
≠BEQ≡≡$TTSDL≡≥ 122220 001770 BEQ $TTSDL ;DELETE TABS
≠CMPB≡≡R0≡≥ 122222 122700 000055 CMPB #'-,R0 ;TREAT + OR -
≠BEQ≡≥ 122226 001411 BEQ 3$ ;SAME AS NUMBER
≠CMPB≡≡R0≡≥ 122230 122700 000053 CMPB #'+,R0
≠BEQ≡≥ 122234 001406 BEQ 3$
≠CMPB≡≡R0≡≥ 122236 120027 000060 CMPB R0,#60
≠BLT≡≥ 122242 002406 BLT 1$ ;BR IF NON-NUMBER
≠CMPB≡≡R0≡≥ 122244 120027 000071 CMPB R0,#71
≠BGT≡≥ 122250 003003 BGT 1$ ;BR IF NON-NUMBER
≠DEC≡≡$INPTC≡≥ 122252 005337 150716 3$: DEC $INPTC ;NUMBER, BACKUP INPUT POINTER
≠BR≡≡$$PEX4≡≥ 122256 000471 BR $$PEX4 ;C-BIT CLEAR RETURN
≠CMPB≡≡R0≡≥ 122260 120027 000072 1$: CMPB R0,#': ;COLON OR SLASH, V-BIT & C-BIT SET
≠BEQ≡≥ 122264 001412 BEQ 10$
≠CMPB≡≡R0≡≥ 122266 120027 000057 CMPB R0,#'/
≠BEQ≡≥ 122272 001407 BEQ 10$
≠CMPB≡≡R0≡≥ 122274 120027 000136 CMPB R0,#'↑ ;UPARROW, Z-BIT & C-BIT SET
≠BNE≡≡$$PEX5≡≥ 122300 001336 BNE $$PEX5
≠BIS≡≡ZBIT≡≡SP≡≥ 122302 052766 000004 000014 BIS #ZBIT,14(SP)
≠BR≡≡$$PEX5≡≥ 122310 000732 BR $$PEX5
≥
≠BIS≡≡VBIT≡≡SP≡≥ 122312 052766 000002 000014 10$: BIS #VBIT,14(SP)
≠BR≡≡$$PEX5≡≥ 122320 000726 BR $$PEX5
≠JMP≡≡$PARAM≡≥ 122322 000137 113452 $TTSDX: JMP $PARAM
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 219
SUB11 PAL[KL,SYS] Page 31 TELETYPE INPUT TERMINATION CHECK
≥ .SBTTL TELETYPE INPUT TERMINATION CHECK
≥
≠INC≡≡$INPTC≡≥ 122326 005237 150716 $TTITRM:INC $INPTC ;BECAUSE "TTERM" DECREMENTS
≡TTERM≡≡TTERM≡≥ 122332 104201 $TTBTRM:TTERM ;VERIFY TERMINATOR
≠BCS≡≡$TTSDX≡≥ 122334 103772 BCS $TTSDX ;BAD, C-BIT SET RETURN
≠BR≡≡$$PEX4≡≥ 122336 000441 BR $$PEX4 ;OK
≥
≤PUSH≡≥ $TTERM: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠DEC≡≡$INPTC≡≥ 122342 005337 150716 DEC $INPTC ;BACKUP INPUT POINTER
≡TTICHR≡≡TTICHR≡≥ 122346 104005 TTICHR ;GET TERMINATION CHAR
≠BCS≡≥ 122350 103407 BCS 2$ ;NONE
≠MOV≡≡TRMTAB≡≡R1≡≥ 122352 012701 122400 MOV #TRMTAB,R1 ;SETUP TERMINATION SCAN POINTER
≠CMPB≡≡R0≡≡R1≡≥ 122356 120011 1$: CMPB R0,(R1) ;CHAR MATCH LEGAL TERMINATOR ?
≠BEQ≡≥ 122360 001403 BEQ 2$ ;YES
≠TSTB≡≡R1≡≥ 122362 105721 TSTB (R1)+ ;NOT YET, GO TO NEXT
≠BEQ≡≥ 122364 001403 BEQ 3$ ;NO MATCH, ERROR
≠BR≡≥ 122366 000773 BR 1$
≤POP≡≥ 2$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡$$PEX4≡≥ 122372 000423 BR $$PEX4 ;OK, C-BIT CLEAR RETURN
≤POP≡≥ 3$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡$$PEX5≡≥ 122376 000677 BR $$PEX5 ;ERROR, C-BIT SET RETURN
≥
≠.BYTE≡≡SPACE≡≥ 122400 040
≡TAB≡≥ 122401 011 TRMTAB: .BYTE SPACE,TAB
≠.BYTE≡≡COMMA≡≥ 122402 054
≡CR≡≥ 122403 015 .BYTE COMMA,CR
≠.BYTE≡≡ALTMOD≡≥ 122404 033
≥ 122405 072 .BYTE ALTMOD,72 ;COLON
≠.BYTE≡≥ 122406 057
≥ 122407 000 .BYTE 57,0 ;SLASH
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 220
SUB11 PAL[KL,SYS] Page 32 INPUT & CHECK OCTAL NUMBER
≥ .SBTTL INPUT & CHECK OCTAL NUMBER
≥
≡TTISDL≡≡TTISDL≡≥ 122410 104016 $TTCOCT:TTISDL
≠BCS≡≡$TTSDX≡≥ 122412 103743 BCS $TTSDX
≡TTIOCT≡≡TTIOCT≡≥ 122414 104007 TTIOCT
≠BCS≡≡$TTSDX≡≥ 122416 103741 BCS $TTSDX ;NON-OCTAL
≠BR≡≡$$PEX4≡≥ 122420 000410 BR $$PEX4 ;OK
≥
≡TTCOCT≡≡TTCOCT≡≥ 122422 104010 $TOCTE: TTCOCT
≠BIT≡≡R0≡≥ 122424 032700 000001 BIT #1,R0 ;ONLY EVEN OCTAL
≠BNE≡≡$TTSDX≡≥ 122430 001334 BNE $TTSDX
≠BR≡≡$$PEX4≡≥ 122432 000403 BR $$PEX4
≥
≠.SBTTL≡≥ .SBTTL TELETYPE DELETE SPACES & INPUT OCTAL NUMBER
≥
≡TTCOCT≡≡TTCOCT≡≥ 122434 104010 $TTSDO: TTCOCT
≠TST≡≡R0≡≥ 122436 005700 TST R0 ;MUST BE POSITIVE ALSO
≠BMI≡≡$TTSDX≡≥ 122440 100730 BMI $TTSDX
≡$$PEX4≠≥ 122442 $$PEX4=.
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 122442 000137 124064 JMP $EXIT
≥
≠.SBTTL≡≥ .SBTTL TELETYPE DELETE SPACES & INPUT 36BIT NUMBER
≥
≡TTISDL≡≡TTISDL≡≥ 122446 104016 $TTS36: TTISDL ;DELETE SPACES
≠BCS≡≡$TTSDX≡≥ 122450 103724 BCS $TTSDX
≡TTI36≡≡TTI36≡≥ 122452 104014 TTI36 ;INPUT 36 BIT NUMBER
≠BCS≡≡$TTSDX≡≥ 122454 103722 BCS $TTSDX
≠BR≡≡$$PEX4≡≥ 122456 000771 BR $$PEX4
≥
≠.SBTTL≡≥ .SBTTL TELETYPE INPUT C-RAM ADDRESS
≥
≡TTISDO≡≡TTISDO≡≥ 122460 104017 $TICRA: TTISDO ;GET ADDRESS
≠CMP≡≡R0≡≥ 122462 020027 002777 CMP R0,#2777
≠BLE≡≡$$PEX4≡≥ 122466 003765 BLE $$PEX4
≠JMP≡≡ADRERR≡≥ 122470 000137 113350 JMP ADRERR ;TOO BIG
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 221
SUB11 PAL[KL,SYS] Page 33 SHIFT R0 RIGHT/LEFT ROUTINES
≥ .SBTTL SHIFT R0 RIGHT/LEFT ROUTINES
≥
≠MOV≡≡$EMADR≡≡R1≡≥ 122474 017701 025134 $SHFTR: MOV @$EMADR,R1 ;GET SHIFT COUNT
≠ASR≡≡R0≡≥ 122500 006200 1$: ASR R0 ;SHIFT RIGHT
≠DEC≡≡R1≡≥ 122502 005301 DEC R1
≠BGT≡≥ 122504 003375 BGT 1$
≤EXITSK≡≥ $SHFTX: EXITSKP ;SKIP OVER TRAILING PARAMETER
≠JMP≡≡$EXITS≡≥ 122506 000137 124056 JMP $EXITS
≥
≠MOV≡≡$EMADR≡≡R1≡≥ 122512 017701 025116 $SHFTL: MOV @$EMADR,R1
≠ASL≡≡R0≡≥ 122516 006300 1$: ASL R0 ;SHIFT LEFT
≠DEC≡≡R1≡≥ 122520 005301 DEC R1
≠BGT≡≥ 122522 003375 BGT 1$
≠BR≡≡$SHFTX≡≥ 122524 000770 BR $SHFTX
≥
≠.SBTTL≡≥ .SBTTL PRINT MESSAGE, CONDITIONAL DEPENDING ON "RPTFLG"
≥
≠TSTB≡≡RPTFLG≡≥ 122526 105737 147732 $$PMSR: TSTB RPTFLG ;DOES REPEAT FLAG ALLOW PRINTING ?
≠BNE≡≡$SHFTX≡≥ 122532 001365 BNE $SHFTX ;NO
≥
≠.SBTTL≡≥ .SBTTL PRINT MESSAGE
≥
≠MOV≡≡$EMADR≡≡R0≡≥ 122534 017700 025074 $$PMSG: MOV @$EMADR,R0 ;MESSAGE ADDRESS TO R0
≡PNTAL≡≡PNTAL≡≥ 122540 104024 PNTAL ;PRINT
≠BR≡≡$SHFTX≡≥ 122542 000761 BR $SHFTX ;SKIP RETURN
≥
≠.SBTTL≡≥ .SBTTL PRINT CHARACTER IMMEDIATE
≥
≠MOV≡≡$EMADR≡≡R2≡≥ 122544 013702 147634 $PNTCI: MOV $EMADR,R2 ;GET DATA ADDRESS
≠MOVB≡≡R2≡≡R1≡≥ 122550 112201 MOVB (R2)+,R1 ;GET FIRST BYTE
≡PLDBUF≡≡PLDBUF≡≥ 122552 104154 PLDBUF ;INSERT IN BUFFER
≠MOVB≡≡R2≡≡R1≡≥ 122554 111201 MOVB (R2),R1 ;GET 2ND BYTE
≠BEQ≡≥ 122556 001401 BEQ 1$ ;IS THERE ANY ?
≡PLDBUF≡≡PLDBUF≡≥ 122560 104154 PLDBUF ;YES, INSERT IN BUFFER
≠BR≡≡$SHFTX≡≥ 122562 000751 1$: BR $SHFTX ;SKIP RETURN
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 222
SUB11 PAL[KL,SYS] Page 34 SMALL TIME DELAY
≥ .SBTTL SMALL TIME DELAY
≥
≠MOV≡≡R1≡≥ 122564 012701 000012 $DELAY: MOV #10.,R1
≠DEC≡≡R1≡≥ 122570 005301 1$: DEC R1
≠BNE≡≥ 122572 001376 BNE 1$
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 122574 000137 124064 JMP $EXIT
≥
≥ ;CONSOLE TIME DELAY FOR REPEAT LOOPS
≥
≡TTISDL≡≡TTISDL≡≥ 122600 104016 .TD: TTISDL
≠BCS≡≥ 122602 103404 BCS 1$ ;NO ARG, DO ONCE
≡TTIDEC≡≡TTIDEC≡≥ 122604 104011 TTIDEC
≠BCS≡≥ 122606 103402 BCS 1$ ;DO ONCE ANYWAY
≠MOV≡≡R0≡≡R1≡≥ 122610 010001 MOV R0,R1 ;SAVE DELAY COUNT
≠BR≡≥ 122612 000401 BR 2$
≠CLR≡≡R1≡≥ 122614 005001 1$: CLR R1
≡TDELAY≡≡TDELAY≡≥ 122616 104056 2$: TDELAY ;SMALL TIME DELAY
≠DEC≡≡R1≡≥ 122620 005301 DEC R1 ;DONE REQUESTED DELAYS ?
≠BGT≡≥ 122622 003375 BGT 2$
≠JMP≡≡$KONSL≡≥ 122624 000137 100230 JMP $KONSL
≥
≠.SBTTL≡≥ .SBTTL SAVE AND RESTORE R0-R5 ROUTINES
≥
≤PUSH≡≥ $REGSAV:PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH 16(SP)
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH 16(SP)
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡SP≡≠.LIST≡≠RTI≡≠RTI≡≥ 122642 000002 RTI
≥
≥ ;*RESTORE R0-R5
≥
≠MOV≡≡SP≡≡SP≡≥ 122644 016666 000014 000034 $REGRST:MOV 14(SP),34(SP)
≠MOV≡≡SP≡≡SP≡≥ 122652 016666 000012 000032 MOV 12(SP),32(SP)
≠ADD≡≡SP≡≥ 122660 062706 000016 ADD #16,SP
≤POP≡≥ POP <R0,R5,R4,R3,R2,R1>
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠MOV≡≡SP≡≡R5≡≠MOV≡≡SP≡≡R4≡≠MOV≡≡SP≡≡R3≡≠MOV≡≡SP≡≡R2≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≠RTI≡≠RTI≡≥ 122700 000002 RTI
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 223
SUB11 PAL[KL,SYS] Page 35 SAVE AND RESTORE R0-R5 ROUTINES
≥ ;FATAL VECTOR INTERRUPT
≥
≤PUSH≡≥ $FATLE: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <?FATAL INTR>
≡$PMSG≡≡$PMSG≡≥ 122704 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 122706 146062 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$EOR≡≥ 122710 000407 BR $EOR
≥
≤PUSH≡≥ $TIMOT: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <?BUS TIMEOUT>
≡$PMSG≡≡$PMSG≡≥ 122714 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 122716 146076 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$EOR≡≥ 122720 000403 BR $EOR
≥
≤PUSH≡≥ $RESVD: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <?RESERVED INST>
≡$PMSG≡≡$PMSG≡≥ 122724 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 122726 146113 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≠CLR≡≡TENRUN≡≥ 122730 005037 147670 $EOR: CLR TENRUN
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤PUSH≡≥ PUSH <R1,R2,R3,R4,R5,R0>
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠MOV≡≡R2≡≡SP≡≠MOV≡≡R3≡≡SP≡≠MOV≡≡R4≡≡SP≡≠MOV≡≡R5≡≡SP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠BR≡≡$EOR2≡≥ 122752 000414 BR $EOR2
≥
≥ ;STACK UNDERFLOW
≥
≠MOV≡≡STACK≡≡SP≡≥ 122754 012706 157774 $STUF: MOV #STACK-2,SP
≠MOV≡≡SP≡≡$KONSP≡≥ 122760 010637 147736 MOV SP,$KONSP
≤PMSG≡≥ PMSG <?ST UNFLO>
≡$PMSG≡≡$PMSG≡≥ 122764 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 122766 146132 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠CLR≡≡PCMDFL≡≥ 122770 005037 152214 CLR PCMDFLG
≠JMP≡≡$CNTLC≡≥ 122774 000137 100004 JMP $CNTLC
≥
≤PMSG≡≥ $NOTAS: PMSG <?UNAS EMT>
≡$PMSG≡≡$PMSG≡≥ 123000 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 123002 146144 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠CLR≡≡PCMDFL≡≥ 123004 005037 152214 $EOR2: CLR PCMDFLG
≠JMP≡≡$PH1≡≥ 123010 000137 115262 JMP $PH1
≥
≤PUSH≡≥ $FATAL: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <?FATAL>
≡$PMSG≡≡$PMSG≡≥ 123016 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 123020 146156 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$EOR2≡≥ 123022 000770 BR $EOR2
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 224
SUB11 PAL[KL,SYS] Page 36 EMT DECODER
≥ .SBTTL EMT DECODER
≥
≥ ;*THIS ROUTINE WILL PICKUP THE LOWER BYTE OF THE "EMT" INSTRUCTION
≥ ;*AND USE IT TO INDEX THROUGH THE EMT TABLE FOR THE STARTING ADDRESS
≥ ;*OF THE DESIRED ROUTINE. THEN USING THE ADDRESS OBTAINED IT WILL
≥ ;*GO TO THAT ROUTINE.
≥
≠CMP≡≡SP≡≡$$STKM≡≥ 123024 020627 157360 $EMTRP: CMP SP,#$$STKM ;check against stack bottom
≠BLE≡≡$STUF≡≥ 123030 003751 BLE $STUF ;OFF BOTTOM OF STACK
≤PUSH≡≥ PUSH <R1,R2,R3,R4,R5,R0>
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠MOV≡≡R2≡≡SP≡≠MOV≡≡R3≡≡SP≡≠MOV≡≡R4≡≡SP≡≠MOV≡≡R5≡≡SP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡SP≡≡R0≡≥ 123046 016600 000014 MOV 14(SP),R0 ;GET EMT ADDRESS (+2)
≠BIC≡≡SP≡≥ 123052 042766 000017 000016 BIC #17,16(SP) ;CLEAR ALL STATUS BITS
≠MOV≡≡R0≡≡$EMADR≡≥ 123060 010037 147634 MOV R0,$EMADR ;SAVE
≠MOV≡≡R0≡≡R0≡≥ 123064 014000 MOV -(R0),R0 ;GET RIGHT BYTE OF EMT
≠BIC≡≡R0≡≥ 123066 042700 177400 BIC #177400,R0
≠CMP≡≡R0≡≡$EMTAE≡≡$EMTAD≡≥ 123072 020027 000240 CMP R0,#<<$EMTAE-$EMTAD>/2>
≠BGE≡≡$NOTAS≡≥ 123076 002340 BGE $NOTAS ;EMT IN RANGE ?
≤SL≡≥ SL R0,1 ;ROUND TO WORD ADDRESS
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R0≡≠.LIST≡≠MOV≡≡$EMTAD≡≡R0≡≡R0≡≥ 123102 016000 123110 MOV $EMTAD(R0),R0 ;INDEX TO TABLE
≠RTS≡≡R0≡≥ 123106 000200 RTS R0 ;GO TO ROUTINE
≥
≠.SBTTL≡≥ .SBTTL EMT TABLE
≥
≥ ;*THIS TABLE CONTAINS THE STARTING ADDRESSES OF THE ROUTINES CALLED
≥ ;*BY THE "EMT" INSTRUCTION.
≥
≥ ; ROUTINE
≥ ; -------
≡$FATAL≡≡$FATAL≡≥ 123110 123014 $EMTAD: $FATAL ;EMT + 0
≡$ERRHL≡≡$ERRHL≡≥ 123112 115232 $ERRHLT ; 1
≡$PRGHL≡≡$PRGHL≡≥ 123114 115222 $PRGHLT ; 2
≡$RUNLP≡≡$RUNLP≡≥ 123116 107030 $RUNLP ; 3
≡$TTILI≡≡$TTILI≡≥ 123120 120150 $TTILIN ; 4
≡$TTICH≡≡$TTICH≡≥ 123122 117622 $TTICHR ; 5
≡$TTLOO≡≡$TTLOO≡≥ 123124 117654 $TTLOOK ; 6
≡$TTIOC≡≡$TTIOC≡≥ 123126 121074 $TTIOCT ; 7
≡$TTCOC≡≡$TTCOC≡≥ 123130 122410 $TTCOCT ;EMT + 10
≡$TTIDE≡≡$TTIDE≡≥ 123132 121232 $TTIDEC ; 11
≡$TTIYE≡≡$TTIYE≡≥ 123134 117746 $TTIYES ; 12
≡$TTALT≡≡$TTALT≡≥ 123136 117702 $TTALTM ; 13
≡$TTI36≡≡$TTI36≡≥ 123140 121344 $TTI36 ; 14
≡$TTIBR≡≡$TTIBR≡≥ 123142 122166 $TTIBRK ; 15
≡$TTSDL≡≡$TTSDL≡≥ 123144 122202 $TTSDL ; 16
≡$TTSDO≡≡$TTSDO≡≥ 123146 122434 $TTSDO ; 17
≡$TTS36≡≡$TTS36≡≥ 123150 122446 $TTS36 ;EMT + 20
≡$TICRA≡≡$TICRA≡≥ 123152 122460 $TICRA ; 21
≡$TTITR≡≡$TTITR≡≥ 123154 122326 $TTITRM ; 22
≡$TTBTR≡≡$TTBTR≡≥ 123156 122332 $TTBTRM ; 23
≡$PNTAL≡≡$PNTAL≡≥ 123160 115522 $PNTAL ; 24
≡$$PMSG≡≡$$PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 225
SUB11 PAL[KL,SYS] Page 36.1 EMT TABLE
≥ 123162 122534 $$PMSG ; 25
≡$$PMSR≡≡$$PMSR≡≥ 123164 122526 $$PMSR ; 26
≡$PNTCH≡≡$PNTCH≡≥ 123166 115624 $PNTCHR ; 27
≡$PNTNB≡≡$PNTNB≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 226
SUB11 PAL[KL,SYS] Page 37 EMT TABLE
≥ 123170 115614 $PNTNBR ;EMT + 30
≡$PCRLF≡≡$PCRLF≡≥ 123172 116742 $PCRLF ; 31
≡$PSPAC≡≡$PSPAC≡≥ 123174 115634 $PSPACE ; 32
≡$PSLAS≡≡$PSLAS≡≥ 123176 115642 $PSLASH ; 33
≡$PCOMM≡≡$PCOMM≡≥ 123200 115650 $PCOMMA ; 34
≡$PNTOC≡≡$PNTOC≡≥ 123202 117366 $PNTOCT ; 35
≡$PNTOS≡≡$PNTOS≡≥ 123204 117374 $PNTOSC ; 36
≡$PNTDE≡≡$PNTDE≡≥ 123206 117476 $PNTDEC ; 37
≡$PNT18≡≡$PNT18≡≥ 123210 117114 $PNT18 ;EMT + 40
≡$PNT23≡≡$PNT23≡≥ 123212 117130 $PNT23 ; 41
≡$PNT36≡≡$PNT36≡≥ 123214 117154 $PNT36 ; 42
≡$PFORC≡≡$PFORC≡≥ 123216 120046 $PFORCE ; 43
≡$PNORM≡≡$PNORM≡≥ 123220 120054 $PNORML ; 44
≡$PBELL≡≡$PBELL≡≥ 123222 116750 $PBELL ; 45
≡$PNTOD≡≡$PNTOD≡≥ 123224 116772 $PNTODC ; 46
≡$PODT≡≡$PODT≡≥ 123226 116760 $PODT ; 47
≡$REGSA≡≡$REGSA≡≥ 123230 122630 $REGSAV ;EMT + 50
≡$REGRS≡≡$REGRS≡≥ 123232 122644 $REGRST ; 51
≡$CMP36≡≡$CMP36≡≥ 123234 125316 $CMP36 ; 52
≡$SHFTR≡≡$SHFTR≡≥ 123236 122474 $SHFTR ; 53
≡$SHFTL≡≡$SHFTL≡≥ 123240 122512 $SHFTL ; 54
≡$SETFL≡≡$SETFL≡≥ 123242 124046 $SETFLG ; 55
≡$DELAY≡≡$DELAY≡≥ 123244 122564 $DELAY ; 56
≡$SWITC≡≡$SWITC≡≥ 123246 120026 $SWITCH ; 57
≡$SWTSA≡≡$SWTSA≡≥ 123250 120040 $SWTSAM ;EMT + 60
≡$EOP≡≡$EOP≡≥ 123252 115220 $EOP ; 61
≡$ERREO≡≡$ERREO≡≥ 123254 115220 $ERREOP ; 62
≡$EOPSE≡≡$EOPSE≡≥ 123256 115220 $EOPSET ; 63
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ $COMLIN ; 64
≥ $COMSND ; 65
≥ $COMACK ; 66
≥ $COMNAK ; 67
≥ $COMCLR ;EMT + 70
≥ $COMCTL ; 71
≥ .IFF
≠.REPT≡≥ 000006 .REPT 6
≥ $FATAL ;64-71
≥ .ENDR
≡$FATAL≡≡$FATAL≡≥ 123260 123014 $FATAL ;64-71
≡$FATAL≡≡$FATAL≡≥ 123262 123014 $FATAL ;64-71
≡$FATAL≡≡$FATAL≡≥ 123264 123014 $FATAL ;64-71
≡$FATAL≡≡$FATAL≡≥ 123266 123014 $FATAL ;64-71
≡$FATAL≡≡$FATAL≡≥ 123270 123014 $FATAL ;64-71
≡$FATAL≡≡$FATAL≡≥ 123272 123014 $FATAL ;64-71
≥ .ENDC
≡$MULTP≡≡$MULTP≡≥ 123274 122060 $MULTP ; 72
≡$WCRAM≡≡$WCRAM≡≥ 123276 142254 $WCRAM ; 73
≡$RCRAM≡≡$RCRAM≡≥ 123300 142564 $RCRAM ; 74
≡$WWADR≡≡$WWADR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 227
SUB11 PAL[KL,SYS] Page 37.1 EMT TABLE
≥ 123302 142122 $WWADR ; 75
≡$MRESE≡≡$MRESE≡≥ 123304 141656 $MRESET ; 76
≡$TENSP≡≡$TENSP≡≥ 123306 125616 $TENSP ; 77
≡$SM≡≡$SM≡≥ 123310 125400 $SM ;EMT + 100
≡$XCT≡≡$XCT≡≥ 123312 125474 $XCT ; 101
≡$LODAR≡≡$LODAR≡≥ 123314 144132 $LODAR ; 102
≡$EXAM≡≡$EXAM≡≥ 123316 124322 $EXAM ; 103
≡$EXAMT≡≡$EXAMT≡≥ 123320 124314 $EXAMT ; 104
≡$DPOS≡≡$DPOS≡≥ 123322 124240 $DPOS ; 105
≡$DPOST≡≡$DPOST≡≥ 123324 124234 $DPOST ; 106
≡$DPOSV≡≡$DPOSV≡≥ 123326 125150 $DPOSVR ; 107
≡$DPSVT≡≡$DPSVT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 228
SUB11 PAL[KL,SYS] Page 38 EMT TABLE
≥ 123330 125144 $DPSVT ;EMT + 110
≡$D10MO≡≡$D10MO≡≥ 123332 124204 $D10MON ; 111
≡$D10ZR≡≡$D10ZR≡≥ 123334 124144 $D10ZRO ; 112
≡$DTEBA≡≡$DTEBA≡≥ 123336 140736 $DTEBAS ; 113
≡$DFXCT≡≡$DFXCT≡≥ 123340 141144 $DFXCT ; 114
≡$DXCTT≡≡$DXCTT≡≥ 123342 141114 $DXCTT ; 115
≡$DFRD≡≡$DFRD≡≥ 123344 140760 $DFRD ; 116
≡$DFRDM≡≡$DFRDM≡≥ 123346 141570 $DFRDMV ; 117
≡$DFWRT≡≡$DFWRT≡≥ 123350 141400 $DFWRT ;EMT + 120
≡$DFWIR≡≡$DFWIR≡≥ 123352 141360 $DFWIR ; 121
≡$DFSCL≡≡$DFSCL≡≥ 123354 141130 $DFSCLK ; 122
≡$DFPC≡≡$DFPC≡≥ 123356 144440 $DFPC ; 123
≡$DFVMA≡≡$DFVMA≡≥ 123360 144456 $DFVMA ; 124
≡$DFADB≡≡$DFADB≡≥ 123362 144464 $DFADB ; 125
≡$RDRAM≡≡$RDRAM≡≥ 123364 143340 $RDRAM ; 126
≡$WDRAM≡≡$WDRAM≡≥ 123366 143270 $WDRAM ; 127
≡$DRAMA≡≡$DRAMA≡≥ 123370 143510 $DRAMAD ;EMT + 130
≡$BURST≡≡$BURST≡≥ 123372 143742 $BURST ; 131
≡$PNTCP≡≡$PNTCP≡≥ 123374 103600 $PNTCPU ; 132
≡$PRGCM≡≡$PRGCM≡≥ 123376 101452 $PRGCMD ; 133
≡$P36B≡≡$P36B≡≥ 123400 117144 $P36B ; 134
≡$ECLOK≡≡$ECLOK≡≥ 123402 125544 $ECLOK ; 135
≡$ESYNC≡≡$ESYNC≡≥ 123404 123610 $ESYNC ; 136
≡$PADR≡≡$PADR≡≥ 123406 117046 $PADR ; 137
≡$DFRDT≡≡$DFRDT≡≥ 123410 140746 $DFRDT ;EMT + 140
≡$DWRTT≡≡$DWRTT≡≥ 123412 141620 $DWRTT ; 141
≡$PCRAM≡≡$PCRAM≡≥ 123414 126502 $PCRAM ; 142
≡$PDRAM≡≡$PDRAM≡≥ 123416 127600 $PDRAM ; 143
≡$TTBAC≡≡$TTBAC≡≥ 123420 120010 $TTBACK ; 144
≡$TENSW≡≡$TENSW≡≥ 123422 111762 $TENSW ; 145
≡$PROL3≡≡$PROL3≡≥ 123424 117346 $PROL36 ; 146
≡$SETMP≡≡$SETMP≡≥ 123426 144226 $SETMPH ; 147
≡$DFVMH≡≡$DFVMH≡≥ 123430 144432 $DFVMH ;EMT + 150
≡$PRINT≡≡$PRINT≡≥ 123432 116040 $PRINTT ; 151
≡$PTTY≡≡$PTTY≡≥ 123434 116174 $PTTY ; 152
≥
≠.IF≡≡LPTASB≡≥ .IF DF LPTASB
≥ $PLPT ; 153
≥ .IFF
≡$FATAL≡≡$FATAL≡≥ 123436 123014 $FATAL
≥ .ENDC
≥
≡$PLDBU≡≡$PLDBU≡≥ 123440 115664 $PLDBUF ; 154
≡$R50UP≡≡$R50UP≡≥ 123442 134170 $R50UPK ; 155
≡$DTINI≡≡$DTINI≡≥ 123444 134134 $DTINIT ; 156
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ $RPINIT ; 157
≥ .IFF
≡$FATAL≡≡$FATAL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 229
SUB11 PAL[KL,SYS] Page 38.1 EMT TABLE
≥ 123446 123014 $FATAL
≥ .ENDC
≥
≡$DVDAT≡≡$DVDAT≡≥ 123450 134032 $DVDATA ;EMT + 160
≡$DTREA≡≡$DTREA≡≥ 123452 134500 $DTREAD ; 161
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ $RPREAD ; 162
≥ .IFF
≡$FATAL≡≡$FATAL≡≥ 123454 123014 $FATAL
≥ .ENDC
≥
≡$DVFRA≡≡$DVFRA≡≥ 123456 133772 $DVFRAM ; 163
≡$DVWRD≡≡$DVWRD≡≥ 123460 134110 $DVWRD ; 164
≡$ASCR5≡≡$ASCR5≡≥ 123462 135124 $ASCR50 ; 165
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ $RPLOAD ; 166
≥ $RPFIND ; 167
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 230
SUB11 PAL[KL,SYS] Page 39 EMT TABLE
≥ $RPLKUP ;EMT + 170
≥ $RPRDFL ; 171
≥ $RPWRFL ; 172
≥ $RPWRIT ; 173
≥ $RPADDR ; 174
≥ $RPBASE ; 175
≥ .IFF
≠.REPT≡≥ 000010 .REPT 8
≥ $FATAL
≥ .ENDR
≡$FATAL≡≡$FATAL≡≥ 123464 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123466 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123470 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123472 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123474 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123476 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123500 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123502 123014 $FATAL
≥ .ENDC
≥
≡$TENCH≡≡$TENCH≡≥ 123504 112106 $TENCHR ; 176
≡$PNTBA≡≡$PNTBA≡≥ 123506 115770 $PNTBAK ; 177
≡$TOCTE≡≡$TOCTE≡≥ 123510 122422 $TOCTE ;EMT + 200
≡$TTERM≡≡$TTERM≡≥ 123512 122340 $TTERM ; 201
≡$CLKPR≡≡$CLKPR≡≥ 123514 143732 $CLKPRM ; 202
≡$MICNU≡≡$MICNU≡≥ 123516 143132 $MICNUL ; 203
≡$MICFI≡≡$MICFI≡≥ 123520 143220 $MICFIL ; 204
≡$DTWRT≡≡$DTWRT≡≥ 123522 134506 $DTWRT ; 205
≡$NAMEX≡≡$NAMEX≡≥ 123524 130700 $NAMEXT ; 206
≡$DTAFI≡≡$DTAFI≡≥ 123526 133430 $DTAFILE ; 207
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ $RPFILE ;EMT + 210
≥ .IFF
≡$FATAL≡≡$FATAL≡≥ 123530 123014 $FATAL
≥ .ENDC
≥
≡$DTRDF≡≡$DTRDF≡≥ 123532 134370 $DTRDFL ; 211
≡$DTWTF≡≡$DTWTF≡≥ 123534 134444 $DTWTFL ; 212
≡$DTBAS≡≡$DTBAS≡≥ 123536 134472 $DTBASE ; 213
≡$PNTCI≡≡$PNTCI≡≥ 123540 122544 $PNTCI ; 214
≡$PNTRS≡≡$PNTRS≡≥ 123542 116022 $PNTRST ; 215
≡$PRGNP≡≡$PRGNP≡≥ 123544 101444 $PRGNPT ; 216
≡$TTPIN≡≡$TTPIN≡≥ 123546 116006 $TTPINI ; 217
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ $COMCMD ;EMT + 220
≥ $CMRTRY ; 221
≥ $COMENQ ; 222
≥ $COMEOT ; 223
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 231
SUB11 PAL[KL,SYS] Page 39.1 EMT TABLE
≥ .IFF
≠.REPT≡≥ 000004 .REPT 4
≥ $FATAL
≥ .ENDR
≡$FATAL≡≡$FATAL≡≥ 123550 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123552 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123554 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123556 123014 $FATAL
≥ .ENDC
≡$TTILN≡≡$TTILN≡≥ 123560 120142 $TTILNW ; 224
≡$TTICC≡≡$TTICC≡≥ 123562 101636 $TTICCL ; 225
≡$DFLEG≡≡$DFLEG≡≥ 123564 104276 $DFLEGAL ; 226
≡$PTAB≡≡$PTAB≡≥ 123566 115656 $PTAB ; 227
≥
≠.IF≡≡RXASB≡≥ .IF DF RXASB
≥ $RXFILE ;EMT + 230
≥ $RXINIT ; 231
≥ $RXRDFL ; 232
≥ $RXWTFL ; 233
≥ $RXBASE ; 234
≥ $RXREAD ; 235
≥ $RXWRT ; 236
≥ .IFF
≠.REPT≡≥ 000007 .REPT 7
≥ $FATAL
≥ .ENDR
≡$FATAL≡≡$FATAL≡≥ 123570 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123572 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123574 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123576 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123600 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123602 123014 $FATAL
≡$FATAL≡≡$FATAL≡≥ 123604 123014 $FATAL
≥ .ENDC
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ $RPERR ; 237
≥ .IFF
≡$FATAL≡≡$FATAL≡≥ 123606 123014 $FATAL
≥ .ENDC
≥
≡$EMTAE≠≥ 123610 $EMTAE=.
≥
≤PUSH≡≥ $ESYNC: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠JMP≡≡$NOTAS≡≥ 123612 000137 123000 JMP $NOTAS
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 232
SUB11 PAL[KL,SYS] Page 40 POWER DOWN AND UP ROUTINES
≥ .SBTTL POWER DOWN AND UP ROUTINES
≥
≠MOV≡≡$PWRUP≡≡PWRVEC≡≥ 123616 012737 123630 000024 $PWRDN: MOV #$PWRUP,@#PWRVEC ;SET UP VECTOR
≠HALT≡≠HALT≡≥ 123624 000000 $ILLUP: HALT
≠BR≡≡$ILLUP≡≥ 123626 000776 BR $ILLUP ;HANG UP
≥
≥ ;POWER UP ROUTINE
≥
≠MOV≡≡CPUPR≡≡PS≡≥ 123630 012737 000140 177776 $PWRUP: MOV #CPUPR,PS ;SET CPU PRIORITY
≠MOV≡≡STACK≡≡SP≡≥ 123636 012706 157776 MOV #STACK,SP ;SET SP
≠.LIF≡≡SAILVR≡≥ .LIF DF SAILVR
≠JSR≡≡PC≡≡CLKSTA≡≥ 123642 004737 125746 JSR PC,CLKSTA ;START CLOCK
≠CLR≡≡R5≡≥ 123646 005005 CLR R5 ;WAIT LOOP FOR THE TTY
≠INC≡≡R5≡≥ 123650 005205 1$: INC R5 ;WAIT FOR THE INC
≠BNE≡≥ 123652 001376 BNE 1$ ;OF WORD
≠MOV≡≡$PWRDN≡≡PWRVEC≡≥ 123654 012737 123616 000024 MOV #$PWRDN,@#PWRVEC ;SET UP THE POWER DOWN VECTOR
≠CLR≡≡CONSOL≡≥ 123662 005037 077776 CLR CONSOL-2
≠CLR≡≡LPTFLG≡≥ 123666 005037 157304 CLR LPTFLG ;DISCONNECT LINE PRINTER
≠.IF≡≡TELASB≡≥ .IF NDF TELASB
≥ CLR DL11EFLG ;DISCONNECT KLINIK !!!
≥ .IFF
≠CLR≡≡FSFLG≡≥ 123672 005037 152236 CLR FSFLG
≠MOV≡≡DLRTS≡≡$FSTKS≡≥ 123676 012777 000004 754124 MOV #DLRTS,@$FSTKS
≠MOV≡≡R0≡≥ 123704 012700 116100 MOV #40000.,R0 ;40000*2.36USEC = 94.4 MS
≠SOB≡≡R0≡≥ 123710 077001 SOB R0,. ;WAIT FOR DATA SET TO HANG UP
≠BIS≡≡DLRTS≡≡DLDTR≡≡DLDIE≡≡$FSTKS≡≥ 123712 052777 000046 754110 BIS #DLRTS!DLDTR!DLDIE,@$FSTKS ;SET DATA TERM READY AND DATA SET INT ENB
≥ ;LEAVE REQUEST TO SEND UP ALTHOUGH WE DON'T USE IT
≥ .ENDC
≠INC≡≡$PWRCN≡≥ 123720 005237 157312 INC $PWRCNT ;COUNT POWER RESTARTS
≥
≠.IF≡≡SAILVR≡≥ .IF NDF SAILVR
≥ MOV #KWLKS,R3
≥ CLR R5
≥ 10$: TSTB (R3) ;WAIT FOR CLOCK TICK
≥ BPL 10$
≥ BIC #200,(R3)
≥ .IFF
≠CLR≡≡CLKFLG≡≥ 123724 005037 157160 CLR CLKFLG
≠TST≡≡CLKFLG≡≥ 123730 005737 157160 10$: TST CLKFLG
≠BEQ≡≥ 123734 001775 BEQ 10$
≠CLR≡≡CLKFLG≡≥ 123736 005037 157160 CLR CLKFLG
≥ .ENDC
≠INC≡≡R5≡≥ 123742 005205 INC R5 ;COUNT IT
≠CMP≡≡R5≡≥ 123744 020527 000454 CMP R5,#<5.*60.> ;WAITED 5 SEC FOR TTY POWER ?
≠BLE≡≥ 123750 003767 BLE 10$ ;NOT YET
≤PMSG≡≥ PMSG <\"POWER RESTART" >
≡$PMSG≡≡$PMSG≡≥ 123752 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 123754 146165 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡$PWRCN≡≡R0≡≥ 123756 013700 157312 MOV $PWRCNT,R0
≡PNTDEC≡≡PNTDEC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 233
SUB11 PAL[KL,SYS] Page 40.1 POWER DOWN AND UP ROUTINES
≥ 123762 104037 PNTDEC
≡PCRLF≡≡PCRLF≡≥ 123764 104031 PCRLF
≠CLR≡≡R5≡≥ 123766 005005 CLR R5 ;CLEAR TIME-UP COUNTER
≠JSR≡≡PC≡≡$TIRDY≡≥ 123770 004737 120670 2$: JSR PC,$TIRDY ;ANY OPERATOR INTERRUPT ?
≠BCS≡≥ 123774 103407 BCS 3$ ;NO
≠MOVB≡≡$TICHR≡≡R4≡≥ 123776 113704 147744 MOVB $TICHR,R4 ;YES, GET CHAR
≠BICB≡≡R4≡≥ 124002 142704 000200 BICB #200,R4
≠CMPB≡≡CNTRLC≡≡R4≡≥ 124006 122704 000003 CMPB #CNTRLC,R4 ;IS IT CONTROL C ?
≠BEQ≡≥ 124012 001407 BEQ 4$ ;YES, ABORT TIME-UP WAIT
≥ 3$:
≠.IF≡≡SAILVR≡≥ .IF NDF SAILVR
≥ TSTB (R3) ;CLOCK SET ?
≥ BPL 2$ ;NO
≥ BIC #200,(R3)
≥ .IFF
≠TST≡≡CLKFLG≡≥ 124014 005737 157160 TST CLKFLG
≠BEQ≡≥ 124020 001763 BEQ 2$
≥ .ENDC
≠INC≡≡R5≡≥ 124022 005205 INC R5 ;COUNT CLOCK TICK
≠CMP≡≡R5≡≥ 124024 020527 000454 CMP R5,#<5.*60.> ;WAITED 5 SECONDS FOR KL10 ?
≠BLE≡≥ 124030 003757 BLE 2$ ;NOT YET
≠JMP≡≡START≡≥ 124032 000137 100000 4$: JMP START
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 234
SUB11 PAL[KL,SYS] Page 41 EXIT SUBROUTINE
≥ .SBTTL EXIT SUBROUTINE
≥
≠BIS≡≡CBIT≡≡SP≡≥ 124036 052766 000001 000014 $EXITE: BIS #CBIT,14(SP) ;SET C-BIT ERROR
≠BR≡≡$EXIT≡≥ 124044 000407 BR $EXIT
≥
≠MOV≡≡$EMADR≡≡R1≡≥ 124046 017701 023562 $SETFLG:MOV @$EMADR,R1 ;SET -1 TO FLAG WORD
≠MOV≡≡R1≡≥ 124052 012711 777777 MOV #-1,(R1)
≥
≠ADD≡≡SP≡≥ 124056 062766 000002 000012 $EXITS: ADD #2,12(SP) ;SKIP RETURN
≤POP≡≥ $EXIT: POP <R5,R4,R3,R2,R1>
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R5≡≠MOV≡≡SP≡≡R4≡≠MOV≡≡SP≡≡R3≡≠MOV≡≡SP≡≡R2≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≠RTT≡≠RTT≡≥ 124076 000006 1$: RTT ;RETURN TO USER
≥
≥ ;MEMORY PARITY
≥
≠TST≡≡MEMPEF≡≥ 124100 005737 147612 MEMPE: TST MEMPEF ;BEEN HERE ALREADY ?
≠BPL≡≥ 124104 100001 BPL 1$
≡FATAL≡≡FATAL≡≥ 124106 104000 FATAL ;YES
≠COM≡≡MEMPEF≡≥ 124110 005137 147612 1$: COM MEMPEF ;SET FLAG
≠BIC≡≡MMPIE≡≡MMLPBA≡≥ 124114 042737 000001 172100 BIC #MMPIE,MMLPBA ;CLEAR ENABLE
≠BIT≡≡MMERRF≡≡MMLPBA≡≥ 124122 032737 100000 172100 BIT #MMERRF,MMLPBA ;ERROR SET ?
≠BNE≡≥ 124130 001001 BNE 2$
≡FATAL≡≡FATAL≡≥ 124132 104000 FATAL ;NO, HOW DID THIS GET HERE ?
≤PMSG≡≥ 2$: PMSG <?PARITY>
≡$PMSG≡≡$PMSG≡≥ 124134 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 124136 146207 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 124140 000137 100004 JMP $CNTLC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 235
SUB11 PAL[KL,SYS] Page 42 PDP10 OPERATIONS
≥ .SBTTL PDP10 OPERATIONS
≥
≥ ;PDP-10 MEMORY ZERO
≥ ; R0 = COUNT, R1 = POINTER TO START ADDRESS
≥
≠MOV≡≡R0≡≡R5≡≥ 124144 010005 $D10ZRO: MOV R0,R5 ;SAVE COUNT
≠DEC≡≡R5≡≥ 124146 005305 DEC R5
≠MOV≡≡.DPXAD≡≡R4≡≥ 124150 012704 147704 MOV #.DPXAD,R4
≠MOVB≡≡R1≡≡R4≡≥ 124154 112124 MOVB (R1)+,(R4)+
≠MOVB≡≡R1≡≡R4≡≥ 124156 112124 MOVB (R1)+,(R4)+
≠MOVB≡≡R1≡≡R4≡≥ 124160 111114 MOVB (R1),(R4)
≠TST≡≡R4≡≥ 124162 005744 TST -(R4)
≠CLR≡≡.DAT1≡≥ 124164 005077 033136 CLR @.DAT1 ;CLEAR DTE20 DATA WORDS
≠CLR≡≡.DAT2≡≥ 124170 005077 033130 CLR @.DAT2
≠CLR≡≡.DAT3≡≥ 124174 005077 033122 CLR @.DAT3
≥
≠MOV≡≡R4≡≡R1≡≥ 124200 010401 $D10ZX: MOV R4,R1 ;POINTER TO ADDRESS
≠BR≡≡$DPSX1≡≥ 124202 000440 BR $DPSX1
≥
≥ ;PDP-10 SET -1 TO FLAG WORD
≥ ; ADDRESS IN TRAILING PARAMETER
≥
≠MOV≡≡L10ADR≡≡R1≡≥ 124204 012701 147702 $D10MON: MOV #L10ADR+2,R1 ;SETUP 10 ADR BLOCK POINTER
≠CLR≡≡R1≡≥ 124210 005011 CLR (R1)
≠MOV≡≡$EMADR≡≡R1≡≥ 124212 017741 023416 MOV @$EMADR,-(R1) ;PUT 10 ADR IN ADR BLOCK
≠MOV≡≡TENMO≡≡R0≡≥ 124216 012700 100056 MOV #TENMO,R0 ;SETUP -1 DATA WORD
≠ADD≡≡SP≡≥ 124222 062766 000002 000012 ADD #2,12(SP) ;SKIP RETURN OVER TRAILING PARAMETER
≠CLR≡≡R5≡≥ 124230 005005 CLR R5
≠BR≡≡$DPOSX≡≥ 124232 000405 BR $DPOSX
≥
≥ ;EXAMINE AND DEPOSIT 10 MEMORY
≥
≠JSR≡≡PC≡≡$10ADR≡≥ 124234 004737 125352 $DPOST: JSR PC,$10ADR ;SETUP PARAMETERS
≥
≠CLR≡≡R5≡≥ 124240 005005 $DPOS: CLR R5
≠JSR≡≡PC≡≡$D10AD≡≥ 124242 004737 125072 JSR PC,$D10ADR ;SETUP PDP-10 ADDRESS
≠MOV≡≡$TEMP0≡≡R2≡≥ 124246 012702 147672 $DPOSX: MOV #$TEMP0,R2 ;STUFF THE DEXWRDS
≠MOVB≡≡R0≡≡R2≡≥ 124252 112022 MOVB (R0)+,(R2)+
≠MOVB≡≡R0≡≡R2≡≥ 124254 112022 MOVB (R0)+,(R2)+
≠MOVB≡≡R0≡≡R2≡≥ 124256 112022 MOVB (R0)+,(R2)+
≠MOVB≡≡R0≡≡R2≡≥ 124260 112022 MOVB (R0)+,(R2)+
≠MOVB≡≡R0≡≡R2≡≥ 124262 112022 MOVB (R0)+,(R2)+
≠MOVB≡≡R0≡≡R2≡≥ 124264 111022 MOVB (R0),(R2)+
≠BIC≡≡R2≡≥ 124266 042742 177760 BIC #177760,-(R2)
≠MOV≡≡.DAT1≡≡R3≡≥ 124272 013703 157326 MOV .DAT1,R3
≠MOV≡≡R2≡≡R3≡≥ 124276 011213 MOV (R2),(R3) ;BITS 00-03 TO .DAT1
≠MOV≡≡R2≡≡R3≡≥ 124300 014243 MOV -(R2),-(R3) ;BITS 04-19 TO .DAT2
≠MOV≡≡R2≡≡R3≡≥ 124302 014243 MOV -(R2),-(R3) ;BITS 20-35 TO .DAT3
≠BIS≡≡DEP≡≡R1≡≥ 124304 052761 010000 000002 $DPSX1: BIS #DEP,2(R1) ;SET FLAG
≠BR≡≡$EXDEP≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 236
SUB11 PAL[KL,SYS] Page 42.1 PDP10 OPERATIONS
≥ 124312 000414 BR $EXDEP
≥
≠JSR≡≡PC≡≡$10ADR≡≥ 124314 004737 125352 $EXAMT: JSR PC,$10ADR ;SETUP PARAMETERS
≠BR≡≡$EXAMX≡≥ 124320 000405 BR $EXAMX
≥
≥ ;EXAMINE 10 CORE. R0 POINTS TO 2 WORDS CONTAINING THE 10 ADDRESS
≥ ; (BITS 20:35 IN FIRST WORD, 14:19 IN SECOND WORD)
≥ ; RESULT RETURNED IN $DRAM (20:35), $DRAM+2 (4:19), $DRAM+4 (0:3)
≠MOV≡≡R0≡≡R1≡≥ 124322 010001 $EXAM: MOV R0,R1
≠JSR≡≡PC≡≡$D10AD≡≥ 124324 004737 125072 JSR PC,$D10ADR ;SETUP PDP-10 ADDRESS
≠MOV≡≡$DRAM≡≡R0≡≥ 124330 012700 147462 MOV #$DRAM,R0
≠CLR≡≡R5≡≥ 124334 005005 $EXAMX: CLR R5
≠BIC≡≡DEP≡≡R1≡≥ 124336 042761 010000 000002 BIC #DEP,2(R1) ;CLEAR FLAG BIT
≠MOV≡≡EBUSPC≡≡.STDTE≡≥ 124344 012777 000020 033002 $EXDEP: MOV #EBUSPC,@.STDTE ;E-BUS PARITY CLEAR
≥
≠.IF≡≡EPTREL≡≥ 000001 .IF EQ EPTREL
≥ BIS #PHYS!PRTOFF,2(R1)
≥ .IFF
≠BIS≡≡$TADSP≡≡R1≡≥ 124352 053761 147424 000002 BIS $TADSP,2(R1) ;$TADSP DESIGNATES ADDR MODE
≠MOV≡≡PHYS≡≡PRTOFF≡≡$TADSP≡≥ 124360 012737 104000 147424 MOV #PHYS!PRTOFF,$TADSP ;RESET ADDR MODE FOR NEXT EXDEP
≥ .ENDC
≠TST≡≡VRBFLG≡≥ 124366 005737 147564 TST VRBFLG
≠BEQ≡≥ 124372 001425 BEQ 70$
≠BIT≡≡KLRUN≡≡.DIAG1≡≥ 124374 032777 002000 032746 BIT #KLRUN,@.DIAG1
≠BNE≡≥ 124402 001021 BNE 70$
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH @.DAT1 ;IF VERBOSE AND KL IS NOT RUNNING THEN USE
≠.NLIST≡≠.IRP≡≠MOV≡≡.DAT1≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH @.DAT2 ;APR FLAGS TO DETERMINE NXM, ETC.
≠.NLIST≡≠.IRP≡≠MOV≡≡.DAT2≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH @.DAT3
≠.NLIST≡≠.IRP≡≠MOV≡≡.DAT3≡≡SP≡≠.LIST≡≠MOV≡≡$$CLRF≡≡R0≡≥ 124422 012700 125064 MOV #$$CLRF,R0
≡EXCT≡≡EXCT≡≥ 124426 104101 EXCT ;EXECUTE A CONO APR,23400 TO CLR NXM,IOPGF,MB PAR
≤POP≡≥ POP @.DAT3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡.DAT3≡≠.LIST≡≤POP≡≥ POP @.DAT2
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡.DAT2≡≠.LIST≡≤POP≡≥ POP @.DAT1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡.DAT1≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠MOV≡≡R1≡≡.TENA1≡≥ 124446 016177 000002 032654 70$: MOV 2(R1),@.TENA1
≠MOV≡≡R1≡≡.TENA2≡≥ 124454 011177 032652 MOV (R1),@.TENA2 ;START DTE20
≠MOV≡≡EMTIMO≡≡SP≡≥ 124460 013746 100104 MOV EMTIMO,-(SP) ;SET TIMEOUT COUNT
≠BIT≡≡DEXDON≡≡.STDTE≡≥ 124464 032777 000004 032662 93$: BIT #DEXDON,@.STDTE ;TEST BIT
≠BNE≡≥ 124472 001034 BNE 94$ ;LEAVE IF NOW A ONE(OK)
≠DEC≡≡SP≡≥ 124474 005316 DEC (SP) ;DECREMENT COUNT
≠BNE≡≥ 124476 001372 BNE 93$ ;CONTINUE LOOP
≠TST≡≡RPTFLG≡≥ 124500 005737 147732 TST RPTFLG ;OTHERWISE TIMEOUT
≠BNE≡≥ 124504 001027 BNE 94$ ;UNLESS UNDER REPEAT
≠TST≡≡VRBFLG≡≥ 124506 005737 147564 TST VRBFLG
≠BEQ≡≥ 124512 001416 BEQ 95$
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PMSG≡≥ PMSG <EXAM/DEPOSIT TIMEOUT, ADDRESS = >
≡$PMSG≡≡$PMSG≡≥ 124516 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 237
SUB11 PAL[KL,SYS] Page 42.2 PDP10 OPERATIONS
≥ 124520 146217 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R1≡≡R0≡≥ 124522 010100 MOV R1,R0
≤PUSH≡≥ PUSH 2(R0)
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠BIC≡≡R0≡≥ 124530 042760 177700 000002 BIC #177700,2(R0)
≡PNTADR≡≡PNTADR≡≥ 124536 104137 PNTADR
≡PCRLF≡≡PCRLF≡≥ 124540 104031 PCRLF
≤POP≡≥ POP 2(R1)
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠CLR≡≡TENRUN≡≥ 124550 005037 147670 95$: CLR TENRUN ;CLEAR TEN RUNNING
≠CLR≡≡R5≡≥ 124554 005005 CLR R5 ;CLEAR BLOCK ZERO INDICATOR
≠BIS≡≡CBIT≡≡SP≡≥ 124556 052766 000001 000016 BIS #CBIT,16(SP)
≠TST≡≡VRBFLG≡≥ 124564 005737 147564 94$: TST VRBFLG
≠BEQ≡≥ 124570 001475 BEQ 96$
≠BIT≡≡KLRUN≡≡.DIAG1≡≥ 124572 032777 002000 032550 BIT #KLRUN,@.DIAG1
≠BNE≡≥ 124600 001071 BNE 96$ ;KL IS STILL RUNNING
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH @.DAT1
≠.NLIST≡≠.IRP≡≠MOV≡≡.DAT1≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH @.DAT2
≠.NLIST≡≠.IRP≡≠MOV≡≡.DAT2≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH @.DAT3
≠.NLIST≡≠.IRP≡≠MOV≡≡.DAT3≡≡SP≡≠.LIST≡≠MOV≡≡SP≡≥ 124620 012746 000000 MOV #0,-(SP) ;PUSH FLAG
≠MOV≡≡R0≡≥ 124624 012700 000110 MOV #110,R0
≡DFRD≡≡DFRD≡≥ 124630 104116 DFRD ;BIT 7 IS APR NXM ERR IN
≠BIT≡≡BIT12≡≡.DAT2≡≥ 124632 032777 010000 032464 BIT #BIT12,@.DAT2 ;BITS 4-19 (TEST BIT 7)
≠BEQ≡≥ 124640 001403 BEQ 89$ ;BRANCH IF NOT SET
≠INC≡≡SP≡≥ 124642 005216 INC (SP) ;INC FLAG
≤PMSG≡≥ PMSG <MBOX DETECTED NXM\>
≡$PMSG≡≡$PMSG≡≥ 124644 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 124646 146260 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BIT≡≡BIT10≡≡.DAT2≡≥ 124650 032777 002000 032446 89$: BIT #BIT10,@.DAT2 ;TEST BIT 9
≠BEQ≡≥ 124656 001403 BEQ 88$ ;EBUS BIT 9 IS APR MB PAR ERR IN
≠INC≡≡SP≡≥ 124660 005216 INC (SP)
≤PMSG≡≥ PMSG <MB PARITY ERROR DETECTED\>
≡$PMSG≡≡$PMSG≡≥ 124662 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 124664 146303 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BIT≡≡BIT11≡≡.DAT2≡≥ 124666 032777 004000 032430 88$: BIT #BIT11,@.DAT2 ;TEST BIT 8
≠BEQ≡≥ 124674 001403 BEQ 87$ ;EBUS BIT 8 IS APR I/O PF ERR IN
≠INC≡≡SP≡≥ 124676 005216 INC (SP)
≤PMSG≡≥ PMSG <IOPGF (PROB AR PAR ERR) DETECTED\>
≡$PMSG≡≡$PMSG≡≥ 124700 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 124702 146335 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠TST≡≡SP≡≥ 124704 005726 87$: TST (SP)+ ;TEST AND FLUSH FLAG, ZERO IF NO ERRORS DETECTED
≠BEQ≡≥ 124706 001417 BEQ 86$ ;BRANCH IF NO ERRORS
≠TST≡≡RPTFLG≡≥ 124710 005737 147732 TST RPTFLG
≠BEQ≡≥ 124714 001414 BEQ 86$
≤PMSG≡≥ PMSG <ADDR = > ;ERROR UNDER REPEAT, GIVE ADDRESS
≡$PMSG≡≡$PMSG≡≥ 124716 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 124720 146377 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R1≡≡R0≡≥ 124722 010100 MOV R1,R0
≤PUSH≡≥ PUSH 2(R0)
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠BIC≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 238
SUB11 PAL[KL,SYS] Page 42.3 PDP10 OPERATIONS
≥ 124730 042760 177700 000002 BIC #177700,2(R0)
≡PNTADR≡≡PNTADR≡≥ 124736 104137 PNTADR
≡PCRLF≡≡PCRLF≡≥ 124740 104031 PCRLF
≤POP≡≥ POP 2(R1)
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ 86$: POP @.DAT3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡.DAT3≡≠.LIST≡≤POP≡≥ POP @.DAT2
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡.DAT2≡≠.LIST≡≤POP≡≥ POP @.DAT1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡.DAT1≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠TST≡≡SP≡≥ 124764 005726 96$: TST (SP)+ ;RESET STACK
≠BIT≡≡DEP≡≡R1≡≥ 124766 032761 010000 000002 BIT #DEP,2(R1)
≠BNE≡≥ 124774 001020 BNE 1$ ;DEPOSIT BRANCHES
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡.DAT3≡≡R3≡≥ 125000 013703 157322 MOV .DAT3,R3
≠MOV≡≡R3≡≡R0≡≥ 125004 012320 MOV (R3)+,(R0)+ ;BITS 20-35 FROM .DAT3
≠MOV≡≡R3≡≡R0≡≥ 125006 012320 MOV (R3)+,(R0)+ ;BITS 04-19 FROM .DAT2
≠MOV≡≡R3≡≡R0≡≥ 125010 011310 MOV (R3),(R0) ;BITS 00-03 FROM .DAT1
≠BIC≡≡R0≡≥ 125012 042710 177760 BIC #177760,(R0)
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BIT≡≡BPARER≡≡.STDTE≡≥ 125020 032777 000020 032326 BIT #BPARER,@.STDTE ;E-BUS PARITY ERROR ?
≠BEQ≡≥ 125026 001403 BEQ 1$ ;NO
≠BIS≡≡CBIT≡≡VBIT≡≡NBIT≡≡ZBIT≡≡SP≡≥ 125030 052766 000017 000014 BIS #CBIT!VBIT!NBIT!ZBIT,14(SP) ;SET ALL COND BITS
≠TST≡≡R5≡≥ 125036 005705 1$: TST R5 ;EXAM, DPOS OR FINISHED BLOCK ZERO ?
≠BEQ≡≥ 125040 001407 BEQ 2$ ;YES
≠DEC≡≡R5≡≥ 125042 005305 DEC R5 ;BLOCK ZERO, DECREMENT COUNT
≠ADD≡≡R4≡≥ 125044 062714 000001 ADD #1,(R4) ;INCREMENT PDP-10 ADDRESS
≠ADC≡≡R4≡≥ 125050 005564 000002 ADC 2(R4)
≠JMP≡≡$D10ZX≡≥ 125054 000137 124200 JMP $D10ZX ;CLEAR NEXT WORD
≤EXIT≡≥ 2$: EXIT
≠JMP≡≡$EXIT≡≥ 125060 000137 124064 JMP $EXIT
≥
≤IO10≡≥ $$CLRF: IO10 CONO,APR,,23400 ;CLEAR APR NXM, IO PG FAIL, MB PAR ERR
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 239
SUB11 PAL[KL,SYS] Page 42.4 PDP10 OPERATIONS
≥ .IRPC AD1,23400
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000002 ADL=10*<ADL&7777>+2
≠.IIF≡≡ADL≡≥ 770002 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000023 ADL=10*<ADL&7777>+3
≠.IIF≡≡ADL≡≥ 770023 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000234 ADL=10*<ADL&7777>+4
≠.IIF≡≡ADL≡≥ 770234 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 002340 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 772340 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 023400 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡CONO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡APR≡≡CONO≡≡APR≡≠.LIST≡≠.EVEN≡≥ 125072 .EVEN
≠MOV≡≡L10ADR≡≡R4≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 240
SUB11 PAL[KL,SYS] Page 43 PDP10 OPERATIONS
≥ 125072 012704 147700 $D10ADR:MOV #L10ADR,R4
≠MOVB≡≡R1≡≡R4≡≥ 125076 112124 MOVB (R1)+,(R4)+
≠MOVB≡≡R1≡≡R4≡≥ 125100 112124 MOVB (R1)+,(R4)+
≠MOVB≡≡R1≡≡R4≡≥ 125102 111114 MOVB (R1),(R4)
≠BIC≡≡R4≡≥ 125104 042714 177700 BIC #177700,(R4)
≠MOV≡≡L10ADR≡≡R1≡≥ 125110 012701 147700 MOV #L10ADR,R1
≠RTS≡≡PC≡≥ 125114 000207 RTS PC
≥
≥
≠.ASCIZ≡≥ 125116 077
≥ 125117 105
≥ 125120 055
≥ 125121 102
≥ 125122 125
≥ 125123 123
≥ 125124 040
≥ 125125 120
≥ 125126 101
≥ 125127 122
≥ 125130 111
≥ 125131 124
≥ 125132 131
≥ 125133 040
≥ 125134 105
≥ 125135 122
≥ 125136 122
≥ 125137 117
≥ 125140 122
≥ 125141 040
≥ 125142 000
≥ $EBPAR: .ASCIZ/?E-BUS PARITY ERROR /
≠.EVEN≡≥ 125144 .EVEN
≥
≠JSR≡≡PC≡≡$10ADR≡≥ 125144 004737 125352 $DPSVT: JSR PC,$10ADR ;SETUP PARAMETERS
≥
≤PUSH≡≥ $DPOSVR:PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠.IIF≡≡EPTREL≡≤PUSH≡≥ .IIF NZ EPTREL, PUSH $TADSP ;PUSH ADDRESS SPACE
≠.NLIST≡≠.IRP≡≠MOV≡≡$TADSP≡≡SP≡≠.LIST≡≡DPOS≡≡DPOS≡≥ 125156 104105 DPOS
≠BCS≡≡$DPVRP≡≥ 125160 103417 BCS $DPVRP
≠.IIF≡≡EPTREL≡≤POP≡≥ .IIF NZ EPTREL, POP $TADSP ;USE SAME ADDRESS SPACE FOR VERIFY
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡$TADSP≡≠.LIST≡≠MOV≡≡R1≡≡R0≡≥ 125166 010100 MOV R1,R0
≡EXAM≡≡EXAM≡≥ 125170 104103 EXAM
≠BCS≡≡$DPVRE≡≥ 125172 103417 BCS $DPVRE
≠MOV≡≡SP≡≡R0≡≥ 125174 011600 MOV (SP),R0
≤PUSH≡≥ PUSH R1 ;SAVE ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡$DRAM≡≡R1≡≥ 125200 012701 147462 MOV #$DRAM,R1
≡CMPR36≡≡CMPR36≡≥ 125204 104052 CMPR36
≠BCS≡≡$DPVRV≡≥ 125206 103415 BCS $DPVRV ;VERIFY ERROR
≤POP≡≥ $DPVRY: POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 241
SUB11 PAL[KL,SYS] Page 43.1 PDP10 OPERATIONS
≥ $DPVRX: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 125214 000137 124064 JMP $EXIT
≥
≥ $DPVRP: ;DEPOSIT HALF OF DEPOSIT VERIFY LOST.
≠.IIF≡≡EPTREL≡≠TST≡≡SP≡≥ 125220 005726 .IIF NZ EPTREL, TST (SP)+ ;ADJUST STACK (REMOVE ADDR. SPACE)
≠BIS≡≡CBIT≡≡NBIT≡≡SP≡≥ 125222 052766 000011 000016 BIS #CBIT!NBIT,16(SP)
≠BR≡≡$DPVRX≡≥ 125230 000770 BR $DPVRX ;NO, JUST GIVE ERROR RETURN
≥
≠BIS≡≡CBIT≡≡ZBIT≡≡SP≡≥ 125232 052766 000005 000016 $DPVRE: BIS #CBIT!ZBIT,16(SP) ;EXAMINE HALF OF DEPOSIT VERIFY LOST
≠BR≡≡$DPVRX≡≥ 125240 000764 BR $DPVRX
≥
≠BIS≡≡CBIT≡≡VBIT≡≡SP≡≥ 125242 052766 000003 000020 $DPVRV: BIS #CBIT!VBIT,20(SP) ;SET C & V FOR VERIFY ERROR
≠TST≡≡VRBFLG≡≥ 125250 005737 147564 TST VRBFLG
≠BEQ≡≡$DPVRY≡≥ 125254 001755 BEQ $DPVRY
≤PMSG≡≥ PMSG <\ADDRESS = >
≡$PMSG≡≡$PMSG≡≥ 125256 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 125260 146407 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≡PNTADR≡≡PNTADR≡≥ 125264 104137 PNTADR
≤PMSG≡≥ PMSG <DEPOSIT DATA = >
≡$PMSG≡≡$PMSG≡≥ 125266 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 125270 146423 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≡PNT36≡≡PNT36≡≥ 125274 104042 PNT36
≤PMSG≡≥ PMSG < EXAMINE DATA = >
≡$PMSG≡≡$PMSG≡≥ 125276 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 125300 146443 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡$DRAM≡≡R0≡≥ 125302 012700 147462 MOV #$DRAM,R0
≡PNT36≡≡PNT36≡≥ 125306 104042 PNT36
≡PCRLF≡≡PCRLF≡≥ 125310 104031 PCRLF
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 125312 000137 124064 JMP $EXIT
≥
≥ ;5-BYTE COMPARE ROUTINE, C & V BIT SET IF ERROR
≥
≤PUSH≡≥ $CMP36: PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡R2≡≥ 125320 012702 000005 MOV #5,R2
≠CMPB≡≡R0≡≡R1≡≥ 125324 122021 1$: CMPB (R0)+,(R1)+
≠BNE≡≥ 125326 001003 BNE 2$
≠DEC≡≡R2≡≥ 125330 005302 DEC R2
≠BNE≡≥ 125332 001374 BNE 1$
≠BR≡≥ 125334 000403 BR 3$
≠BIS≡≡CBIT≡≡VBIT≡≡SP≡≥ 125336 052766 000003 000016 2$: BIS #CBIT!VBIT,16(SP) ;SET C & V FOR VERIFY ERROR
≤POP≡≥ 3$: POP R0 ;POINT TO ACTUAL
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 125346 000137 124064 JMP $EXIT
≥
≥ ;PDP-10 ADDRESS PARAMETER SETUP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 242
SUB11 PAL[KL,SYS] Page 43.2 PDP10 OPERATIONS
≥
≠MOV≡≡$EMADR≡≡R5≡≥ 125352 013705 147634 $10ADR: MOV $EMADR,R5 ;SETUP TRAILING PARAMETER PICKUP
≠MOV≡≡L10ADR≡≡R1≡≥ 125356 012701 147702 MOV #L10ADR+2,R1 ;SETUP 10 ADR BLOCK POINTER
≠CLR≡≡R1≡≥ 125362 005011 CLR (R1) ;CLEAR HI ADR
≥
≠MOV≡≡R5≡≡R1≡≥ 125364 012541 MOV (R5)+,-(R1) ;SETUP PDP-10 ADDRESS
≠MOV≡≡R5≡≡R0≡≥ 125366 011500 MOV (R5),R0 ;POINTER TO DATA BLOCK IN R0
≠ADD≡≡SP≡≥ 125370 062766 000004 000014 ADD #4,14(SP) ;RETURN OVER TRAILING PARAMETERS
≠RTS≡≡PC≡≥ 125376 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 243
SUB11 PAL[KL,SYS] Page 44 PDP10 OPERATIONS
≥ ;START MICROCODE
≥
≤PUSH≡≥ $SM: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡MRESET≡≡MRESET≡≥ 125402 104076 MRESET ;RESET KL10
≠CLR≡≡R0≡≥ 125404 005000 CLR R0 ;SELECT UCODE START ADR
≡WWADR≡≡WWADR≡≥ 125406 104075 WWADR
≡DFXCTT≡≡DFXCTT≡≥ 125410 104115 DFXCTT ;GET CLOCK GOING
≡STRCLK≡≡STRCLK≡≥ 125412 000001 STRCLK
≥
≠MOV≡≡R1≡≥ 125414 012701 000002 MOV #2,R1
≠MOV≡≡$SMTAB≡≡R0≡≥ 125420 012700 125462 MOV #$SMTAB,R0
≤PUSH≡≥ 1$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡EXCT≡≡EXCT≡≥ 125426 104101 EXCT ;DO TEN INSTR
≠BCS≡≥ 125430 103410 BCS 2$
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠ADD≡≡R0≡≥ 125434 062700 000005 ADD #5,R0 ;NEXT
≠DEC≡≡R1≡≥ 125440 005301 DEC R1
≠BNE≡≥ 125442 001370 BNE 1$
≥
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 125446 000137 124064 JMP $EXIT
≥
≤POP≡≥ 2$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXITER≡≥ $SMERR: EXITERR
≠JMP≡≡$EXITE≡≥ 125456 000137 124036 JMP $EXITE
≥
≤IO10≡≥ $SMTAB: IO10 CONO,APR,,200000 ;IO SYS CLEAR
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,200000
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 244
SUB11 PAL[KL,SYS] Page 44.1 PDP10 OPERATIONS
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000002 ADL=10*<ADL&7777>+2
≠.IIF≡≡ADL≡≥ 770002 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000020 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 770020 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000200 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 770200 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 002000 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 772000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 020000 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≡ADL≡≡ADH≠≥ 000002 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡CONO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡APR≡≡CONO≡≡APR≡≠.LIST≡≤IO10≡≥ IO10 CONO,PI,,10000 ;PI SYS CLEAR
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≡BLKO≠≥ 000002 BLKO=2
≡DATAO≠≥ 000003 DATAO=3
≡BLKI≠≥ 000000 BLKI=0
≡DATAI≠≥ 000001 DATAI=1
≡CONO≠≥ 000004 CONO=4
≡CONI≠≥ 000005 CONI=5
≡CONSZ≠≥ 000006 CONSZ=6
≡CONSO≠≥ 000007 CONSO=7
≡APR≠≥ 000000 APR=0
≡PI≠≥ 000004 PI=4
≡PAG≠≥ 000010 PAG=10
≡CCA≠≥ 000014 CCA=14
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IRPC≡≥ .IRPC AD1,10000
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000001 ADL=10*<ADL&7777>+1
≠.IIF≡≡ADL≡≥ 770001 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000010 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 770010 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000100 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 770100 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 001000 ADL=10*<ADL&7777>+0
≠.IIF≡≡ADL≡≥ 771000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 010000 ADL=10*<ADL&7777>+0
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡CONO≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡PI≡≡CONO≡≡PI≡≠.LIST≡≠.EVEN≡≥ 125474 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 245
SUB11 PAL[KL,SYS] Page 45 PDP10 OPERATIONS
≥ ;PDP-10 INSTRUCTION EXECUTE
≥
≡LODAR≡≡LODAR≡≥ 125474 104102 $XCT: LODAR
≠BCS≡≥ 125476 103417 BCS 6$
≡DFXCTT≡≡DFXCTT≡≥ 125500 104115 DFXCTT ;SET CONTINUE BUTTON
≡CONBUT≡≡CONBUT≡≥ 125502 000012 CONBUT
≡DFXCTT≡≡DFXCTT≡≥ 125504 104115 DFXCTT ;RUN THE CLOCK
≡STRCLK≡≡STRCLK≡≥ 125506 000001 STRCLK
≥
≠TST≡≡RPTFLG≡≥ 125510 005737 147732 TST RPTFLG ;DOING REPEAT ?
≠BNE≡≥ 125514 001011 BNE 2$ ;YES, NO CHECK
≥
≠MOV≡≡R1≡≥ 125516 012701 001750 MOV #1000.,R1
≠BIT≡≡HALTLP≡≡.DIAG1≡≥ 125522 032777 001000 031620 4$: BIT #HALTLP,@.DIAG1
≠BNE≡≥ 125530 001003 BNE 2$
≠DEC≡≡R1≡≥ 125532 005301 DEC R1 ;NO, WAITED LONG ENOUGH
≠BNE≡≥ 125534 001372 BNE 4$
≠BR≡≡$SMERR≡≥ 125536 000747 6$: BR $SMERR
≥
≤EXIT≡≥ 2$: EXIT
≠JMP≡≡$EXIT≡≥ 125540 000137 124064 JMP $EXIT
≥
≥ ;ECLOK - GIVE A COMPLETE EBOX CLOCK
≥
≠MOV≡≡R5≡≥ 125544 012705 007640 $ECLOK: MOV #4000.,R5
≥
≡DFSCLK≡≡DFSCLK≡≥ 125550 104122 91$: DFSCLK ;STEP RAW CLOCK
≡DFRDT≡≡DFRDT≡≥ 125552 104140 DFRDT ;READ CLOCK STATE
≥ 125554 000104 104
≠BIT≡≡BIT2≡≡.DAT3≡≥ 125556 032777 000004 031536 BIT #BIT2,@.DAT3 ;CLK E BOX SOURCE HIGH ?
≠BNE≡≥ 125564 001010 BNE 92$
≠DEC≡≡R5≡≥ 125566 005305 DEC R5
≠BNE≡≥ 125570 001367 BNE 91$
≠TST≡≡RPTFLG≡≥ 125572 005737 147732 TST RPTFLG
≠BNE≡≥ 125576 001003 BNE 92$
≠BIS≡≡CBIT≡≡SP≡≥ 125600 052766 000001 000014 BIS #CBIT,14(SP) ;REPORT TIMEOUT
≥
≡DFXCTT≡≡DFXCTT≡≥ 125606 104115 92$: DFXCTT
≡CECLK≡≡CECLK≡≥ 125610 000004 CECLK
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 125612 000137 124064 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 246
SUB11 PAL[KL,SYS] Page 46 PDP10 OPERATIONS
≥ ;PDP-10 CONTROLLED STOP ROUTINE
≥
≤PUSH≡≥ $TENSP: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠CLR≡≡TENRUN≡≥ 125620 005037 147670 CLR TENRUN ;CLEAR LOGICAL TEN RUNNING FLAG
≥ ;;;;; CLR TENCLK ;CLEAR TEN USING CLOCK FLAG
≥ ;;;;; DON'T CLEAR TENCLK. YOU MIGHT WANT TO CONTINUE THE SYSTEM
≥
≠MOV≡≡DCOMST≡≡DFUNC≡≡CLRRUN≡≡.DIAG1≡≥ 125624 012777 010201 031516 MOV #DCOMST!DFUNC!<CLRRUN*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 125632 004737 141302 JSR PC,$$DFXDN ;CLEAR RUN FLOP
≥
≠MOV≡≡R1≡≥ 125636 012701 001750 MOV #1000.,R1
≠BIT≡≡HALTLP≡≡.DIAG1≡≥ 125642 032777 001000 031500 1$: BIT #HALTLP,@.DIAG1
≠BNE≡≥ 125650 001003 BNE 2$ ;TEN RETURNED TO HALT LOOP
≠DEC≡≡R1≡≥ 125652 005301 DEC R1
≠BNE≡≥ 125654 001372 BNE 1$
≠BR≡≥ 125656 000430 BR 5$ ;FAILED TO RETURN TO HALT LOOP
≥
≡DFRDT≡≡DFRDT≡≥ 125660 104140 2$: DFRDT
≥ 125662 000131 131
≠BIT≡≡BIT1≡≡.DAT2≡≥ 125664 032777 000002 031432 BIT #BIT1,@.DAT2 ;BIT 18, CON CACHE LOOK
≠BEQ≡≥ 125672 001417 BEQ 4$ ;FALSE, CACHE IS NOT ON
≥
≠MOV≡≡$$CF≡≡R0≡≥ 125674 012700 104425 MOV #$$CF,R0
≡EXCT≡≡EXCT≡≥ 125700 104101 EXCT ;EXECUTE CACHE FLUSH
≠BCS≡≥ 125702 103416 BCS 5$ ;FAILED
≥
≠MOV≡≡R1≡≥ 125704 012701 001750 MOV #1000.,R1
≡DFRDT≡≡DFRDT≡≥ 125710 104140 3$: DFRDT
≥ 125712 000110 110
≠BIT≡≡BIT2≡≡.DAT1≡≥ 125714 032777 000004 031404 BIT #BIT2,@.DAT1 ;BIT 1, SWEEP BUSY ENABLE
≠BEQ≡≥ 125722 001403 BEQ 4$ ;FINISHED SWEEP
≠DEC≡≡R1≡≥ 125724 005301 DEC R1
≠BNE≡≥ 125726 001370 BNE 3$
≠BR≡≥ 125730 000403 BR 5$ ;FAILED TO FINISH CACHE SWEEP
≥
≤POP≡≥ 4$: POP R0 ;SUCESSFUL RETURN
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 125734 000137 124064 JMP $EXIT
≥
≤POP≡≥ 5$: POP R0 ;FAILED RETURN
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXITER≡≥ EXITERR
≠JMP≡≡$EXITE≡≥ 125742 000137 124036 JMP $EXITE
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 247
SUB11 PAL[KL,SYS] Page 47 CLOCK INITIALIZATION, INTERRUPTS
≥ .SBTTL CLOCK INITIALIZATION, INTERRUPTS
≠.IF≡≡SAILVR≡≥ .IF DF SAILVR
≥
≤PUSH≡≥ CLKSTA: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡KWLIV≡≡R0≡≥ 125750 012700 000100 MOV #KWLIV,R0
≠MOV≡≡CLKINT≡≡R0≡≥ 125754 012720 126054 MOV #CLKINT,(R0)+
≠MOV≡≡CPUPR≡≡R0≡≥ 125760 012710 000140 MOV #CPUPR,(R0)
≠CLR≡≡KTIMBS≡≥ 125764 005037 157162 CLR KTIMBS ;ASSUME WE'RE NOT KEEPING TIMEBASE
≠MOV≡≡TIMBAS≡≡R0≡≥ 125770 012700 157164 MOV #TIMBAS,R0
≠CLR≡≡R0≡≥ 125774 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 125776 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 126000 005010 CLR (R0)
≠MOV≡≡TIM11≡≡R0≡≥ 126002 012700 157172 MOV #TIM11,R0
≠CLR≡≡R0≡≥ 126006 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 126010 005020 CLR (R0)+
≠CLR≡≡R0≡≥ 126012 005010 CLR (R0)
≠CLR≡≡CLKFLG≡≥ 126014 005037 157160 CLR CLKFLG
≠BIC≡≡KWLKS≡≥ 126020 042737 000300 177546 BIC #300,KWLKS ;CLEAR CLOCK FLAG AND INTERRUPT ENABLE
≠TSTB≡≡KWLKS≡≥ 126026 105737 177546 1$: TSTB KWLKS
≠BPL≡≥ 126032 100375 BPL 1$ ;LOOP UNTIL CLOCK FLAG COMES ON
≠BIC≡≡KWLKS≡≥ 126034 042737 000200 177546 BIC #200,KWLKS ;CLEAR CLOCK FLAG
≠BIS≡≡KWLKS≡≥ 126042 052737 000100 177546 BIS #100,KWLKS ;SET INTERRUPT ENABLE.
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTS≡≡PC≡≥ 126052 000207 RTS PC
≥
≥
≠BIC≡≡KWLKS≡≥ 126054 042737 000200 177546 CLKINT: BIC #200,KWLKS ;CLEAR CLOCK FLAG
≠INC≡≡CLKFLG≡≥ 126062 005237 157160 INC CLKFLG ;INCREMENT SOFTWARE CLOCK FLAG
≠INC≡≡TIM11≡≥ 126066 005237 157172 INC TIM11
≠ADC≡≡TIM11≡≥ 126072 005537 157174 ADC TIM11+2
≠ADC≡≡TIM11≡≥ 126076 005537 157176 ADC TIM11+4
≠TST≡≡FSCLKA≡≥ 126102 005737 152234 TST FSCLKA
≠BEQ≡≥ 126106 001425 BEQ 3$ ;NO FS CLOCK REQUESTS
≠CMP≡≡TIM11≡≡FSRTIM≡≥ 126110 023737 157176 152232 CMP TIM11+4,FSRTIM+4
≠BGT≡≥ 126116 003012 BGT 2$
≠BNE≡≥ 126120 001020 BNE 3$
≠CMP≡≡TIM11≡≡FSRTIM≡≥ 126122 023737 157174 152230 CMP TIM11+2,FSRTIM+2
≠BGT≡≥ 126130 003005 BGT 2$
≠BNE≡≥ 126132 001013 BNE 3$
≠CMP≡≡TIM11≡≡FSRTIM≡≥ 126134 023737 157172 152226 CMP TIM11,FSRTIM
≠BLT≡≥ 126142 002407 BLT 3$
≤PUSH≡≥ 2$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡FSCLKA≡≡R0≡≥ 126146 013700 152234 MOV FSCLKA,R0
≠CLR≡≡FSCLKA≡≥ 126152 005037 152234 CLR FSCLKA
≠JSR≡≡PC≡≡R0≡≥ 126156 004710 JSR PC,@R0
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠TST≡≡KTIMBS≡≥ 126162 005737 157162 3$: TST KTIMBS
≠BEQ≡≥ 126166 001406 BEQ 4$ ;JUMP IF NOT KEEPING A TIMEBASE
≠INC≡≡TIMBAS≡≥ 126170 005237 157164 INC TIMBAS
≠ADC≡≡TIMBAS≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 248
SUB11 PAL[KL,SYS] Page 47.1 CLOCK INITIALIZATION, INTERRUPTS
≥ 126174 005537 157166 ADC TIMBAS+2
≠ADC≡≡TIMBAS≡≥ 126200 005537 157170 ADC TIMBAS+4
≠BIT≡≡DLRTS≡≡$FSTKS≡≥ 126204 032777 000004 751616 4$: BIT #DLRTS,@$FSTKS ;SEE IF REQUEST TO SEND IS UP (CLEARED BY INIT)
≠BNE≡≥ 126212 001002 BNE 5$ ;YES, HAVEN'T BEEN RESET
≠JSR≡≡PC≡≡HANGU1≡≥ 126214 004737 114040 JSR PC,HANGU1
≠TST≡≡TIMFLG≡≥ 126220 005737 157142 5$: TST TIMFLG ;DOES KL WANT TIME/DATE FROM BATTERY CLOCK?
≠BEQ≡≥ 126224 001406 BEQ 6$ ;NO
≠BIT≡≡TIM11≡≥ 126226 032737 007777 157172 BIT #7777,TIM11 ;IS IT TIME YET? (EVERY 10000 TICS=1.13 SECS)
≠BNE≡≥ 126234 001002 BNE 6$ ;NO
≠INC≡≡TMSFLG≡≥ 126236 005237 157140 INC TMSFLG ;TELL C10COP TO STORE THE TIME
≠RTT≡≠RTT≡≥ 126242 000006 6$: RTT ;DISMISS INTERRUPT
≥
≥ .ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 249
KLDCP PAL[KL,SYS] Page 5.4 CLOCK INITIALIZATION, INTERRUPTS
≥
≥ ;KL10 C-Ram/D-Ram functions
≠.INSRT≡≥ .INSRT FD11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 250
FD11 PALII[KL,SYS] Page 1 CLOCK INITIALIZATION, INTERRUPTS
≥ COMMENT ⊗ VALID 00015 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00003 00002 .SBTTL CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ C00004 00003 3$: MOV R0,$ECADR SAVE C-RAM ADDRESS
≥ C00006 00004 FIELD PRINT OUT, THIS IS THE C-RAM BIT FIDDLER
≥ C00008 00005 READ THE C-RAM AND PRINT ACTUAL BY E-BUS ARRANGMENT
≥ C00009 00006 JSR PC,$$ECA PRINT C-RAM ADDRESS
≥ C00010 00007 .SBTTL DISPATCH RAM CONSOLE FUNCTIONS
≥ C00011 00008 TTISDO READ "J" FIELD
≥ C00012 00009 TTISDO READ ODD "J" FIELD
≥ C00014 00010 EXAMINE D-RAM SUBROUTINE
≥ C00015 00011 PRINT D-RAM IN LOGICAL FIELD FORMAT
≥ C00017 00012 .SBTTL DEPOSIT C-RAM SUBROUTINE
≥ C00018 00013 C-RAM PRIMARY DECISION TABLE
≥ C00020 00014 C-RAM SECONDARY DECISION TABLES
≥ C00022 00015
≥ C00023 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 251
FD11 PALII[KL,SYS] Page 2 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ .SBTTL CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥
≡DFLEGA≡≡DFLEGA≡≥ 126244 104226 $EC: DFLEGAL ;FUNCTION LEGAL ?
≡TTISDL≡≡TTISDL≡≥ 126246 104016 TTISDL
≠BCS≡≥ 126250 103402 BCS 8$ ;NON-NUMBER
≥
≡TTICRA≡≡TTICRA≡≥ 126252 104021 1$: TTICRA ;READ IN C-RAM ADDRESS
≠BR≡≥ 126254 000432 BR 3$
≥
≠BVC≡≥ 126256 102005 8$: BVC 82$
≠MOV≡≡$ECADR≡≡R0≡≥ 126260 013700 147724 MOV $ECADR,R0 ;COLON, READ & LIST SAME CRAM ADDRESS
≠INC≡≡$INPTC≡≥ 126264 005237 150716 INC $INPTC
≠BR≡≥ 126270 000426 BR 33$
≥
≡TTBTRM≡≡TTBTRM≡≥ 126272 104023 82$: TTBTRM
≥
≡$ALLEC≠≥ 126274 $ALLEC=.
≡DFRDT≡≡DFRDT≡≥ 126274 104140 DFRDT ;EXAMINE PRESENT C-RAM OUTPUT
≡RCRAM2≡≡RCRAM2≡≥ 126276 000146 RCRAM2
≠JSR≡≡PC≡≡$ECGET≡≥ 126300 004737 126452 JSR PC,$ECGET
≤PUSH≡≥ PUSH $ECADR
≠.NLIST≡≠.IRP≡≠MOV≡≡$ECADR≡≡SP≡≠.LIST≡≡DFRDT≡≡DFRDT≡≥ 126310 104140 DFRDT ;READ HIGH ORDER BITS
≡RCRAM1≡≡RCRAM1≡≥ 126312 000147 RCRAM1
≤POP≡≥ POP R0 ;LOW ORDER TO R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠JSR≡≡PC≡≡$ECGET≡≥ 126316 004737 126452 JSR PC,$ECGET
≠ASL≡≡R0≡≥ 126322 006300 ASL R0 ;POSITION TO 6-0
≠ASL≡≡R0≡≥ 126324 006300 ASL R0
≠SWAB≡≡R0≡≥ 126326 000300 SWAB R0
≠BISB≡≡R0≡≡$ECADR≡≥ 126330 150037 147724 BISB R0,$ECADR ;STUFF LOW ORDER
≠MOV≡≡R0≡≥ 126334 012700 777777 MOV #-1,R0 ;-1 READS CURRENT C-RAM OUTPUT
≠BR≡≥ 126340 000402 BR 33$
≠MOV≡≡R0≡≡$ECADR≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 252
FD11 PALII[KL,SYS] Page 3 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ 126342 010037 147724 3$: MOV R0,$ECADR ;SAVE C-RAM ADDRESS
≥
≡RCRAM≡≡RCRAM≡≥ 126346 104074 33$: RCRAM ;READ THE RAM ADDRESS
≥
≠MOV≡≡R0≡≡$ADR1≡≥ 126350 010037 147716 MOV R0,$ADR1 ;SAVE STARTING ADDRESS OF DATA LIST
≠TST≡≡ALLFLG≡≥ 126354 005737 147734 TST ALLFLG
≠BNE≡≥ 126360 001025 BNE 91$
≡PCRLF≡≡PCRLF≡≥ 126362 104031 9$: PCRLF ;PRINT OCTAL VALUE OF C-RAM
≥
≠JSR≡≡PC≡≡$$ECA≡≥ 126364 004737 127026 JSR PC,$$ECA ;PRINT C-RAM ADDRESS
≥
≠MOV≡≡$ADR1≡≡R5≡≥ 126370 013705 147716 MOV $ADR1,R5 ;GET C-RAM DATA LIST ADDRESS
≠ADD≡≡R5≡≥ 126374 062705 000012 ADD #12,R5
≠MOV≡≡R5≡≡R4≡≥ 126400 011504 MOV (R5),R4 ;SAVE SPEC
≠MOV≡≡R5≡≡R0≡≥ 126402 014500 MOV -(R5),R0 ;PRINT 1ST C-RAM WORD, LAST IN LIST
≡PNTOCT≡≡PNTOCT≡≥ 126404 104035 PNTOCT
≥
≠MOV≡≡R5≡≡R0≡≥ 126406 014500 MOV -(R5),R0 ;PRINT 2ND C-RAM WORD
≡PNTOCT≡≡PNTOCT≡≥ 126410 104035 PNTOCT
≥
≠MOV≡≡R5≡≡R0≡≥ 126412 014500 MOV -(R5),R0 ;PRINT 3RD C-RAM WORD
≡PNTOCT≡≡PNTOCT≡≥ 126414 104035 PNTOCT
≥
≠MOV≡≡R5≡≡R0≡≥ 126416 014500 MOV -(R5),R0 ;PRINT 4TH C-RAM WORD
≡PNTOCT≡≡PNTOCT≡≥ 126420 104035 PNTOCT
≥
≠MOV≡≡R5≡≡R0≡≥ 126422 014500 MOV -(R5),R0 ;PRINT 5TH C-RAM WORD
≡PNTOCT≡≡PNTOCT≡≥ 126424 104035 PNTOCT
≥
≠MOV≡≡R4≡≡R0≡≥ 126426 010400 MOV R4,R0 ;PRINT 6TH C-RAM WORD (SPEC)
≡PNTODT≡≡PNTODT≡≥ 126430 104047 PNTODT
≥ 126432 000002 2
≥
≠MOV≡≡$ECADR≡≡R0≡≥ 126434 013700 147724 91$: MOV $ECADR,R0
≠MOV≡≡$ADR1≡≡R1≡≥ 126440 013701 147716 MOV $ADR1,R1
≡PNTCRM≡≡PNTCRM≡≥ 126444 104142 PNTCRM ;PRINT C-RAM BY LOGICAL FIELDS
≠JMP≡≡ALLEXT≡≥ 126446 000137 102262 JMP ALLEXT
≥
≠MOV≡≡.DAT2≡≡$ECADR≡≥ 126452 017737 030646 147724 $ECGET: MOV @.DAT2,$ECADR ;GET BITS 4,5
≠MOVB≡≡.DAT1≡≡$ECADR≡≥ 126460 117737 030642 147724 MOVB @.DAT1,$ECADR ;GET BITS 0-3
≠SWAB≡≡$ECADR≡≥ 126466 000337 147724 SWAB $ECADR
≠BIC≡≡$ECADR≡≥ 126472 042737 170077 147724 BIC #170077,$ECADR
≠RTS≡≡PC≡≥ 126500 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 253
FD11 PALII[KL,SYS] Page 4 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ ;FIELD PRINT OUT, THIS IS THE C-RAM BIT FIDDLER
≥
≠MOV≡≡R0≡≡$ECADR≡≥ 126502 010037 147724 $PCRAM: MOV R0,$ECADR
≠MOV≡≡R1≡≡$ADR1≡≥ 126506 010137 147716 MOV R1,$ADR1
≥
≤PMSG≡≥ 91$: PMSG <\ LOC/ J T AR AD BR MQ FM SCAD SC FE SH # VMA MEM COND SPEC M\>
≡$PMSG≡≡$PMSG≡≥ 126512 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 126514 146464 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≠JSR≡≡PC≡≡$$ECA≡≥ 126516 004737 127026 JSR PC,$$ECA ;PRINT C-RAM ADDRESS
≥
≠MOV≡≡$CRMD0≡≡R5≡≥ 126522 012705 130062 $DCTPC: MOV #$CRMD0,R5 ;GET PRIMARY DECISION TABLE ADDRESS
≠CLR≡≡R0≡≥ 126526 005000 $DCTP1: CLR R0
≠MOV≡≡R5≡≡R4≡≥ 126530 012504 MOV (R5)+,R4 ;R4=SECONDARY DECISION TABLE ADDRESS
≠BEQ≡≡$END≡≥ 126532 001426 BEQ $END ;WOW WE MADE IT TO THE END
≥
≠MOVB≡≡R4≡≡R3≡≥ 126534 112403 2$: MOVB (R4)+,R3 ;GET A BYTE FROM SECONDARY TABLE
≠BEQ≡≡$NEXT≡≥ 126536 001416 BEQ $NEXT ;GET NEXT FIELD
≠MOVB≡≡R3≡≡R2≡≥ 126540 110302 MOVB R3,R2 ;CALCULATE BYTE LOCATION
≠ASRB≡≡R3≡≥ 126542 106203 ASRB R3 ;/2
≠ASRB≡≡R3≡≥ 126544 106203 ASRB R3 ;/4
≠ASRB≡≡R3≡≥ 126546 106203 ASRB R3 ;/8
≠ADD≡≡$ADR1≡≡R3≡≥ 126550 063703 147716 ADD $ADR1,R3
≠MOVB≡≡R3≡≡R3≡≥ 126554 111303 MOVB (R3),R3 ;FETCH THE DATA BYTE
≠BICB≡≡R2≡≥ 126556 142702 000370 BICB #370,R2 ;R2=BIT LOCATION
≠ASRB≡≡R3≡≥ 126562 106203 3$: ASRB R3 ;CALCULATE BIT LOCATION
≠DEC≡≡R2≡≥ 126564 005302 DEC R2 ;FOUND BIT YET
≠BGE≡≥ 126566 002375 BGE 3$
≠ROL≡≡R0≡≥ 126570 006100 ROL R0 ;PLACE BIT IN R0
≠BR≡≥ 126572 000760 BR 2$
≥
≠MOVB≡≡R5≡≡R1≡≥ 126574 112501 $NEXT: MOVB (R5)+,R1 ;R1=OCTAL CHARACTERS IN NUMBER
≡PNTODC≡≡PNTODC≡≥ 126576 104046 PNTODC ;PRINT THE NUMBER
≠MOVB≡≡R5≡≡R1≡≥ 126600 112501 MOVB (R5)+,R1 ;R1=POST SPACING PARAMETER
≠JSR≡≡PC≡≡$PNTSP≡≥ 126602 004737 117776 JSR PC,$PNTSPC
≠BR≡≡$DCTP1≡≥ 126606 000747 BR $DCTP1
≠MOV≡≡$ADR1≡≡R5≡≥ 126610 013705 147716 $END: MOV $ADR1,R5 ;SPECIAL PRINT OF SPEC FIELD
≠MOVB≡≡R5≡≡R0≡≥ 126614 116500 000012 MOVB 12(R5),R0
≡PNTODT≡≡PNTODT≡≥ 126620 104047 PNTODT
≥ 126622 000002 2
≡PSPACE≡≡PSPACE≡≥ 126624 104032 PSPACE
≠MOVB≡≡R5≡≡R0≡≥ 126626 116500 000004 MOVB 4(R5),R0
≡SHIFTR≡≡SHIFTR≡≥ 126632 104053 SHIFTR
≥ 126634 000004 4
≠BIC≡≡R0≡≥ 126636 042700 177776 BIC #177776,R0
≡PNTOCS≡≡PNTOCS≡≥ 126642 104036 PNTOCS
≠TST≡≡ALLFLG≡≥ 126644 005737 147734 TST ALLFLG
≠BEQ≡≥ 126650 001401 BEQ 1$
≡PCRLF≡≡PCRLF≡≥ 126652 104031 PCRLF
≤EXIT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 254
FD11 PALII[KL,SYS] Page 4.1 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ 1$: EXIT
≠JMP≡≡$EXIT≡≥ 126654 000137 124064 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 255
FD11 PALII[KL,SYS] Page 5 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ ;READ THE C-RAM AND PRINT ACTUAL BY E-BUS ARRANGMENT
≥
≡DFLEGA≡≡DFLEGA≡≥ 126660 104226 $RC: DFLEGAL ;FUNCTION LEGAL ?
≡TTISDL≡≡TTISDL≡≥ 126662 104016 TTISDL
≠BCS≡≥ 126664 103443 BCS 3$ ;NON-NUMBER
≠BR≡≥ 126666 000426 BR 2$ ;NUMBER, MUST BE ADDRESS
≥
≠MOV≡≡RCRAM1≡≡R0≡≥ 126670 012700 000147 1$: MOV #RCRAM1,R0
≠JSR≡≡R5≡≡$RCP≡≥ 126674 004537 127010 JSR R5,$RCP ;FIRST 36
≠MOV≡≡RCRAM2≡≡R0≡≥ 126700 012700 000146 MOV #RCRAM2,R0
≠JSR≡≡R5≡≡$RCP≡≥ 126704 004537 127010 JSR R5,$RCP ;2ND 36
≠MOV≡≡RCRAM3≡≡R0≡≥ 126710 012700 000145 MOV #RCRAM3,R0
≠JSR≡≡R5≡≡$RCP≡≥ 126714 004537 127010 JSR R5,$RCP ;3RD 36
≠MOV≡≡RCRAM4≡≡R0≡≥ 126720 012700 000144 MOV #RCRAM4,R0
≠JSR≡≡R5≡≡$RCP≡≥ 126724 004537 127010 JSR R5,$RCP ;4TH 36
≠TST≡≡RPTFLG≡≥ 126730 005737 147732 TST RPTFLG
≠BNE≡≥ 126734 001001 BNE 11$
≡PCRLF≡≡PCRLF≡≥ 126736 104031 PCRLF
≠JMP≡≡$KONSL≡≥ 126740 000137 100230 11$: JMP $KONSL
≥
≡TTICRA≡≡TTICRA≡≥ 126744 104021 2$: TTICRA ;GET C-RAM ADDRESS
≠MOV≡≡R0≡≡$ECADR≡≥ 126746 010037 147724 MOV R0,$ECADR
≠MOV≡≡$ECADR≡≡R0≡≥ 126752 013700 147724 5$: MOV $ECADR,R0
≥
≡WWADR≡≡WWADR≡≥ 126756 104075 WWADR ;WRITE C-RAM ADDRESS
≥
≡DFSCLK≡≡DFSCLK≡≥ 126760 104122 DFSCLK
≡DFSCLK≡≡DFSCLK≡≥ 126762 104122 DFSCLK
≠JSR≡≡PC≡≡$$ECA≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 256
FD11 PALII[KL,SYS] Page 6 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
≥ 126764 004737 127026 JSR PC,$$ECA ;PRINT C-RAM ADDRESS
≡PSPACE≡≡PSPACE≡≥ 126770 104032 PSPACE
≥
≠BR≡≥ 126772 000736 BR 1$
≥
≠BVC≡≥ 126774 102003 3$: BVC 32$
≠INC≡≡$INPTC≡≥ 126776 005237 150716 INC $INPTC ;COLON, READ SAME C-RAM ADDRESS
≠BR≡≥ 127002 000763 BR 5$
≥
≡TTBTRM≡≡TTBTRM≡≥ 127004 104023 32$: TTBTRM ;READ PRESENT C-RAM ADDRESS
≠BR≡≥ 127006 000730 BR 1$
≥
≠MOV≡≡.DFRDA≡≡R1≡≥ 127010 012701 147710 $RCP: MOV #.DFRDA,R1
≡DFRDMV≡≡DFRDMV≡≥ 127014 104117 DFRDMV ;READ C-RAM
≥
≠MOV≡≡R1≡≡R0≡≥ 127016 010100 MOV R1,R0
≡PNT36≡≡PNT36≡≥ 127020 104042 PNT36 ;PRINT IT
≡PSPACE≡≡PSPACE≡≥ 127022 104032 PSPACE
≠RTS≡≡R5≡≥ 127024 000205 1$: RTS R5
≥
≥ ;PRINT C-RAM ADDRESS
≥
≠MOV≡≡$ECADR≡≡R0≡≥ 127026 013700 147724 $$ECA: MOV $ECADR,R0
≡PNTODT≡≡PNTODT≡≥ 127032 104047 PNTODT
≥ 127034 000004 4
≡PSLASH≡≡PSLASH≡≥ 127036 104033 PSLASH
≠RTS≡≡PC≡≥ 127040 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 257
FD11 PALII[KL,SYS] Page 7 DISPATCH RAM CONSOLE FUNCTIONS
≥ .SBTTL DISPATCH RAM CONSOLE FUNCTIONS
≥
≥ ;LOAD D-RAM SUBROUTINE
≥
≠JMP≡≡$PARAM≡≥ 127042 000137 113452 $DDNPR: JMP $PARAM
≥
≡DFLEGA≡≡DFLEGA≡≥ 127046 104226 $DD: DFLEGAL ;FUNCTION LEGAL ?
≡TTISDO≡≡TTISDO≡≥ 127050 104017 TTISDO ;GET THE ADDRESS
≠BIT≡≡R0≡≥ 127052 032700 000001 BIT #1,R0
≠BNE≡≥ 127056 001005 BNE 98$ ;MUST BE EVEN ADDRESS
≥
≠MOV≡≡R0≡≡$ADR≡≥ 127060 010037 147720 MOV R0,$ADR ;SAVE THE ADDRESS
≥
≠CMP≡≡R0≡≥ 127064 020027 000776 CMP R0,#776 ;TEST ADDRESS SIZE
≠BLE≡≥ 127070 003402 BLE 2$
≠JMP≡≡ADRERR≡≥ 127072 000137 113350 98$: JMP ADRERR
≥
≡TTIBRK≡≡TTIBRK≡≥ 127076 104015 2$: TTIBRK ;READ A CHARACTER
≠BCS≡≡$DDNPR≡≥ 127100 103760 BCS $DDNPR ;NO COLON
≥
≠CMPB≡≡R0≡≥ 127102 120027 000072 CMPB R0,#': ;IS IT A COLON
≠BEQ≡≥ 127106 001403 BEQ 21$
≠CMPB≡≡R0≡≥ 127110 120027 000057 CMPB R0,#'/
≠BNE≡≡$DDNPR≡≥ 127114 001352 BNE $DDNPR
≥
≠JSR≡≡PC≡≡$DDA≡≥ 127116 004737 127434 21$: JSR PC,$DDA ;READ A FIELD
≠MOV≡≡R0≡≡$DRAM≡≥ 127122 010037 147462 MOV R0,$DRAM ;STORE "A" FIELD
≥
≠JSR≡≡PC≡≡$DDB≡≥ 127126 004737 127450 JSR PC,$DDB
≠BIS≡≡R0≡≡$DRAM≡≥ 127132 050037 147462 BIS R0,$DRAM ;STORE "B" FIELD
≥
≡TTISDO≡≡TTISDO≡≥ 127136 104017 TTISDO ;READ "P" FIELD
≠BIC≡≡R0≡≥ 127140 042700 177776 BIC #177776,R0 ;SAVE "P" FIELD
≥
≡SHIFTL≡≡SHIFTL≡≥ 127144 104054 SHIFTL
≥ 127146 000005 5
≠BIS≡≡R0≡≡$DRAM≡≥ 127150 050037 147462 BIS R0,$DRAM
≡TTISDO≡≡TTISDO≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 258
FD11 PALII[KL,SYS] Page 8 DISPATCH RAM CONSOLE FUNCTIONS
≥ 127154 104017 TTISDO ;READ "J" FIELD
≥
≠CMP≡≡R0≡≥ 127156 020027 001777 CMP R0,#1777
≠BLE≡≥ 127162 003404 BLE 3$
≡$DDSIZ≠≥ 127164 $DDSIZ=.
≤PMSG≡≥ PMSG <\J SIZE ERR>
≡$PMSG≡≡$PMSG≡≥ 127164 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 127166 146567 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 127170 000137 100004 JMP $CNTLC
≥
≠MOV≡≡R0≡≡$DRAM≡≥ 127174 010037 147470 3$: MOV R0,$DRAM+6 ;SAVE FOR COMMON
≠BIC≡≡R0≡≥ 127200 042700 177760 BIC #177760,R0
≠BIS≡≡R0≡≡$DRAM≡≥ 127204 050037 147462 BIS R0,$DRAM ;SAVE "J" EVEN
≥
≥ ;DONE WITH EVEN NOW PROMPT FOR ODD
≥
≤PMSG≡≥ $DRAMO: PMSG < DD > ;PROMPT
≡$PMSG≡≡$PMSG≡≥ 127210 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 127212 146603 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡$ADR≡≡R0≡≥ 127214 013700 147720 MOV $ADR,R0 ;ODD ADDRESS
≠INC≡≡R0≡≥ 127220 005200 INC R0
≥
≡PNTOCS≡≡PNTOCS≡≥ 127222 104036 PNTOCS
≥
≤PMSG≡≥ PMSG <:←> ;PRINT COLON, OUTPUT
≡$PMSG≡≡$PMSG≡≥ 127224 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 127226 146610 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≡TTILIN≡≡TTILIN≡≥ 127230 104004 TTILIN
≠BCS≡≡$DDNPR≡≥ 127232 103703 BCS $DDNPR
≥
≠JSR≡≡PC≡≡$DDA≡≥ 127234 004737 127434 JSR PC,$DDA ;READ ODD "A" FIELD
≠MOV≡≡R0≡≡$DRAM≡≥ 127240 010037 147464 MOV R0,$DRAM+2 ;INSERT ODD "A" FIELD
≥
≠JSR≡≡PC≡≡$DDB≡≥ 127244 004737 127450 JSR PC,$DDB ;READ ODD "B" FIELD
≠BIS≡≡R0≡≡$DRAM≡≥ 127250 050037 147464 BIS R0,$DRAM+2
≥
≡TTISDO≡≡TTISDO≡≥ 127254 104017 TTISDO ;READ ODD "P" FIELD
≥
≠BIC≡≡R0≡≥ 127256 042700 177776 BIC #177776,R0
≥
≡SHIFTL≡≡SHIFTL≡≥ 127262 104054 SHIFTL
≥ 127264 000005 5
≠BIS≡≡R0≡≡$DRAM≡≥ 127266 050037 147464 BIS R0,$DRAM+2
≡TTISDO≡≡TTISDO≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 259
FD11 PALII[KL,SYS] Page 9 DISPATCH RAM CONSOLE FUNCTIONS
≥ 127272 104017 TTISDO ;READ ODD "J" FIELD
≥
≠CMP≡≡R0≡≥ 127274 020027 001777 CMP R0,#1777
≠BGT≡≡$DDSIZ≡≥ 127300 003331 BGT $DDSIZ
≥
≠MOV≡≡R0≡≡$DRAM≡≥ 127302 010037 147472 1$: MOV R0,$DRAM+10 ;SAVE FOR COMMON
≠BIC≡≡R0≡≥ 127306 042700 177760 BIC #177760,R0
≠BIS≡≡R0≡≡$DRAM≡≥ 127312 050037 147464 BIS R0,$DRAM+2 ;SAVE "J" ODD
≠BIC≡≡$DRAM≡≥ 127316 042737 000017 147470 BIC #17,$DRAM+6
≠BIC≡≡$DRAM≡≥ 127324 042737 000017 147472 BIC #17,$DRAM+10
≠CMP≡≡$DRAM≡≡$DRAM≡≥ 127332 023737 147470 147472 CMP $DRAM+6,$DRAM+10 ;ARE BOTH COMMONS THE SAME ?
≠BEQ≡≥ 127340 001410 BEQ 2$
≠CMP≡≡$ADR≡≥ 127342 022737 000254 147720 CMP #254,$ADR ;IS THIS JRST/JFCL ?
≠BEQ≡≥ 127350 001404 BEQ 2$ ;YES, COMMONS MAY BE DIFFERENT
≤PMSG≡≥ PMSG <\J CMN ERR>
≡$PMSG≡≡$PMSG≡≥ 127352 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 127354 146613 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 127356 000137 100004 JMP $CNTLC
≥
≠MOV≡≡$DRAM≡≡R0≡≥ 127362 013700 147472 2$: MOV $DRAM+10,R0 ;USE ODD COMMON
≥
≤SR≡≥ SR R0,6
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠ASR≡≡R0≡≠.LIST≡≠MOV≡≡R0≡≡$DRAM≡≥ 127402 010037 147466 MOV R0,$DRAM+4 ;INSERT "J" COMMON
≥
≠MOV≡≡$ADR≡≡R0≡≥ 127406 013700 147720 MOV $ADR,R0
≠MOV≡≡$DRAM≡≡R1≡≥ 127412 012701 147462 MOV #$DRAM,R1
≥
≡MRESET≡≡MRESET≡≥ 127416 104076 MRESET
≥
≡WDRAM≡≡WDRAM≡≥ 127420 104127 WDRAM ;WRITE THE D-RAM
≥
≡PCRLF≡≡PCRLF≡≥ 127422 104031 PCRLF
≠JMP≡≡$KONSL≡≥ 127424 000137 100230 JMP @#$KONSL
≥
≠JMP≡≡$OCTN≡≥ 127430 000137 113452 99$: JMP $OCTN
≥
≡TTISDO≡≡TTISDO≡≥ 127434 104017 $DDA: TTISDO ;READ "A" FIELD
≡SHIFTL≡≡SHIFTL≡≥ 127436 104054 SHIFTL
≥ 127440 000013 11.
≠BIC≡≡R0≡≥ 127442 042700 143777 BIC #143777,R0
≠RTS≡≡PC≡≥ 127446 000207 RTS PC
≥
≡TTISDO≡≡TTISDO≡≥ 127450 104017 $DDB: TTISDO ;READ "B" FIELD
≡SHIFTL≡≡SHIFTL≡≥ 127452 104054 SHIFTL
≥ 127454 000010 8.
≠BIC≡≡R0≡≥ 127456 042700 174377 BIC #174377,R0
≠RTS≡≡PC≡≥ 127462 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 260
FD11 PALII[KL,SYS] Page 10 DISPATCH RAM CONSOLE FUNCTIONS
≥ ;EXAMINE D-RAM SUBROUTINE
≥
≠JMP≡≡$OCTN≡≥ 127464 000137 113452 $EDNOA: JMP $OCTN
≠JMP≡≡ADRERR≡≥ 127470 000137 113350 $EDODD: JMP ADRERR
≥
≡DFLEGA≡≡DFLEGA≡≥ 127474 104226 $ED: DFLEGAL ;FUNCTION LEGAL ?
≡TTISDL≡≡TTISDL≡≥ 127476 104016 TTISDL
≠BCS≡≥ 127500 103413 BCS 5$
≥
≡TTISDO≡≡TTISDO≡≥ 127502 104017 TTISDO ;READ THE ADDRESS
≠BIT≡≡R0≡≥ 127504 032700 000001 BIT #1,R0
≠BNE≡≡$EDODD≡≥ 127510 001367 BNE $EDODD ;MUST BE EVEN ADDRESS
≠MOV≡≡R0≡≡$EDADR≡≥ 127512 010037 147722 MOV R0,$EDADR
≠CMP≡≡R0≡≥ 127516 020027 000777 4$: CMP R0,#777 ;TEST FOR HIGHEST ADDRESS
≠BLE≡≥ 127522 003414 BLE 2$
≠JMP≡≡ADRERR≡≥ 127524 000137 113350 41$: JMP ADRERR
≥
≠BVC≡≥ 127530 102005 5$: BVC 52$
≠MOV≡≡$EDADR≡≡R0≡≥ 127532 013700 147722 51$: MOV $EDADR,R0 ;COLON, EXAMINE SAME DRAM ADDRESS
≠INC≡≡$INPTC≡≥ 127536 005237 150716 INC $INPTC
≠BR≡≥ 127542 000765 BR 4$
≥
≡TTBTRM≡≡TTBTRM≡≥ 127544 104023 52$: TTBTRM
≠MOV≡≡$EDADR≡≡R0≡≥ 127546 013700 147722 MOV $EDADR,R0
≠BR≡≥ 127552 000761 BR 4$
≥
≠MOV≡≡R0≡≡$EDADR≡≥ 127554 010037 147722 2$: MOV R0,$EDADR
≥
≡MRESET≡≡MRESET≡≥ 127560 104076 MRESET
≥
≡RDRAM≡≡RDRAM≡≥ 127562 104126 RDRAM ;READ D-RAM
≥
≠MOV≡≡R0≡≡R1≡≥ 127564 010001 MOV R0,R1
≠MOV≡≡$EDADR≡≡R0≡≥ 127566 013700 147722 MOV $EDADR,R0
≥
≡PNTDRM≡≡PNTDRM≡≥ 127572 104143 PNTDRM ;PRINT D-RAM
≥
≠JMP≡≡$KONSL≡≥ 127574 000137 100230 JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 261
FD11 PALII[KL,SYS] Page 11 DISPATCH RAM CONSOLE FUNCTIONS
≥ ;PRINT D-RAM IN LOGICAL FIELD FORMAT
≥
≠MOV≡≡R0≡≡R5≡≥ 127600 010005 $PDRAM: MOV R0,R5
≤PMSG≡≥ PMSG <\ADR: A B P J\>
≡$PMSG≡≡$PMSG≡≥ 127602 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 127604 146626 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≠MOV≡≡R1≡≡R0≡≥ 127606 016100 000004 MOV 4(R1),R0 ;POSITION COMMON J-FIELD
≡SHIFTL≡≡SHIFTL≡≥ 127612 104054 SHIFTL
≥ 127614 000006 6 ;FOR PRINTING
≠MOV≡≡R0≡≡R2≡≥ 127616 010002 MOV R0,R2
≥
≠CLR≡≡R4≡≥ 127620 005004 CLR R4
≥
≠MOV≡≡R5≡≡R0≡≥ 127622 010500 1$: MOV R5,R0 ;PRINT D-RAM ADDRESS
≡PNTODT≡≡PNTODT≡≥ 127624 104047 PNTODT
≥ 127626 000003 3
≡PSLASH≡≡PSLASH≡≥ 127630 104033 PSLASH
≡PSPACE≡≡PSPACE≡≥ 127632 104032 PSPACE
≥
≠MOV≡≡R1≡≡R0≡≥ 127634 011100 MOV (R1),R0 ;PRINT A-FIELD
≡SHIFTR≡≡SHIFTR≡≥ 127636 104053 SHIFTR
≥ 127640 000013 11.
≡PNTNBR≡≡PNTNBR≡≥ 127642 104030 PNTNBR
≡PSPACE≡≡PSPACE≡≥ 127644 104032 PSPACE
≥
≠MOV≡≡R1≡≡R0≡≥ 127646 011100 MOV (R1),R0 ;PRINT B-FIELD
≡SHIFTR≡≡SHIFTR≡≥ 127650 104053 SHIFTR
≥ 127652 000010 8.
≡PNTNBR≡≡PNTNBR≡≥ 127654 104030 PNTNBR
≡PSPACE≡≡PSPACE≡≥ 127656 104032 PSPACE
≥
≠MOV≡≡R1≡≡R0≡≥ 127660 011100 MOV (R1),R0 ;PRINT PARITY
≡SHIFTR≡≡SHIFTR≡≥ 127662 104053 SHIFTR
≥ 127664 000005 5
≠BIC≡≡R0≡≥ 127666 042700 177776 BIC #177776,R0
≡PNTNBR≡≡PNTNBR≡≥ 127672 104030 PNTNBR
≡PSPACE≡≡PSPACE≡≥ 127674 104032 PSPACE
≥
≠MOV≡≡R1≡≡R0≡≥ 127676 012100 MOV (R1)+,R0 ;PRINT J-FIELD
≠BIC≡≡R0≡≥ 127700 042700 177760 BIC #177760,R0
≠BIS≡≡R2≡≡R0≡≥ 127704 050200 BIS R2,R0
≡PNTODT≡≡PNTODT≡≥ 127706 104047 PNTODT
≥ 127710 000004 4
≥
≡PCRLF≡≡PCRLF≡≥ 127712 104031 PCRLF
≠TST≡≡R4≡≥ 127714 005704 TST R4 ;COMPLETED D-RAM PAIR ?
≠BNE≡≥ 127716 001003 BNE 2$
≥
≠INC≡≡R4≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 262
FD11 PALII[KL,SYS] Page 11.1 DISPATCH RAM CONSOLE FUNCTIONS
≥ 127720 005204 INC R4 ;NO, SET FLAG
≠INC≡≡R5≡≥ 127722 005205 INC R5 ;SETUP ODD ADDRESS
≠BR≡≥ 127724 000736 BR 1$ ;GO DO ODD PRINTOUT
≥
≤EXIT≡≥ 2$: EXIT
≠JMP≡≡$EXIT≡≥ 127726 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 263
FD11 PALII[KL,SYS] Page 12 DEPOSIT C-RAM SUBROUTINE
≥ .SBTTL DEPOSIT C-RAM SUBROUTINE
≥
≠JMP≡≡$PARAM≡≥ 127732 000137 113452 $DCNCL: JMP $PARAM
≥
≡DFLEGA≡≡DFLEGA≡≥ 127736 104226 $DC: DFLEGAL ;FUNCTION LEGAL ?
≡TTICRA≡≡TTICRA≡≥ 127740 104021 TTICRA
≠MOV≡≡R0≡≡$ADR≡≥ 127742 010037 147720 2$: MOV R0,$ADR ;SAVE ADDRESS
≡TTIBRK≡≡TTIBRK≡≥ 127746 104015 TTIBRK ;GET THE COLON
≠BCS≡≡$DCNCL≡≥ 127750 103770 BCS $DCNCL
≠CMPB≡≡R0≡≥ 127752 120027 000072 CMPB R0,#':
≠BEQ≡≥ 127756 001403 BEQ 20$
≠CMPB≡≡R0≡≥ 127760 120027 000057 CMPB R0,#'/
≠BNE≡≡$DCNCL≡≥ 127764 001362 BNE $DCNCL ;NO COLON
≠MOV≡≡$TTSAV≡≡R5≡≥ 127766 012705 150004 20$: MOV #$TTSAV,R5 ;CLEAR STORAGE
≠CLR≡≡R5≡≥ 127772 005025 CLR (R5)+
≠CLR≡≡R5≡≥ 127774 005025 CLR (R5)+
≠CLR≡≡R5≡≥ 127776 005025 CLR (R5)+
≠CLR≡≡R5≡≥ 130000 005025 CLR (R5)+
≠CLR≡≡R5≡≥ 130002 005025 CLR (R5)+
≠CLR≡≡R5≡≥ 130004 005015 CLR (R5)
≠MOV≡≡R4≡≥ 130006 012704 000005 MOV #5,R4
≡TTISDL≡≡TTISDL≡≥ 130012 104016 4$: TTISDL
≠BCS≡≥ 130014 103413 BCS 3$ ;USE 0'S AFTER FIRST NON-NUMBER
≡TTCOCT≡≡TTCOCT≡≥ 130016 104010 TTCOCT
≠MOV≡≡R0≡≡R5≡≥ 130020 010045 MOV R0,-(R5)
≠DEC≡≡R4≡≥ 130022 005304 DEC R4
≠BNE≡≥ 130024 001372 BNE 4$
≡TTISDL≡≡TTISDL≡≥ 130026 104016 TTISDL
≠BCS≡≥ 130030 103405 BCS 3$
≡TTCOCT≡≡TTCOCT≡≥ 130032 104010 TTCOCT
≠BIC≡≡R0≡≥ 130034 042700 177740 BIC #177740,R0
≠MOV≡≡R0≡≡$TTSAV≡≥ 130040 010037 150016 MOV R0,$TTSAV+12
≠MOV≡≡$ADR≡≡R0≡≥ 130044 013700 147720 3$: MOV $ADR,R0
≠MOV≡≡$TTSAV≡≡R1≡≥ 130050 012701 150004 MOV #$TTSAV,R1
≡WCRAM≡≡WCRAM≡≥ 130054 104073 WCRAM
≠JMP≡≡$KONSL≡≥ 130056 000137 100230 JMP @#$KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 264
FD11 PALII[KL,SYS] Page 13 DEPOSIT C-RAM SUBROUTINE
≥ ;C-RAM PRIMARY DECISION TABLE
≥ ;
≠.WORD≡≡$FJ≡≥ 130062 130160 $CRMD0: .WORD $FJ ;J FIELD
≠.BYTE≡≥ 130064 004
≥ 130065 001 .BYTE 4,1 ;CHARACTERS , POST SPACING
≥
≠.WORD≡≡$FT≡≥ 130066 130174 .WORD $FT ;T FIELD
≠.BYTE≡≥ 130070 001
≥ 130071 001 .BYTE 1,1
≥
≠.WORD≡≡$FAR≡≥ 130072 130200 .WORD $FAR ;AR FIELD
≠.BYTE≡≥ 130074 002
≥ 130075 001 .BYTE 2,1
≥
≠.WORD≡≡$FAD≡≥ 130076 130210 .WORD $FAD ;AD FIELD
≠.BYTE≡≥ 130100 004
≥ 130101 001 .BYTE 4,1
≥
≠.WORD≡≡$FBR≡≥ 130102 130224 .WORD $FBR ;BR FIELD
≠.BYTE≡≥ 130104 001
≥ 130105 002 .BYTE 1,2
≥
≠.WORD≡≡$FMQ≡≥ 130106 130230 .WORD $FMQ ;MQ FIELD
≠.BYTE≡≥ 130110 001
≥ 130111 002 .BYTE 1,2
≥
≠.WORD≡≡$FFM≡≥ 130112 130232 .WORD $FFM ;FM FIELD
≠.BYTE≡≥ 130114 001
≥ 130115 002 .BYTE 1,2
≥
≠.WORD≡≡$FSCAD≡≥ 130116 130236 .WORD $FSCAD ;SCAD FIELD
≠.BYTE≡≥ 130120 003
≥ 130121 002 .BYTE 3,2
≥
≠.WORD≡≡$FSC≡≥ 130122 130250 .WORD $FSC ;SC FIELD
≠.BYTE≡≥ 130124 001
≥ 130125 002 .BYTE 1,2
≥
≠.WORD≡≡$FFE≡≥ 130126 130252 .WORD $FFE ;FE FIELD
≠.BYTE≡≥ 130130 001
≥ 130131 002 .BYTE 1,2
≥
≠.WORD≡≡$FSH≡≥ 130132 130254 .WORD $FSH ;SH FIELD
≠.BYTE≡≥ 130134 001
≥ 130135 001 .BYTE 1,1
≥
≠.WORD≡≡$FNUM≡≥ 130136 130260 .WORD $FNUM ;NUM FIELD
≠.BYTE≡≥ 130140 003
≥ 130141 002 .BYTE 3,2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 265
FD11 PALII[KL,SYS] Page 13.1 DEPOSIT C-RAM SUBROUTINE
≥
≠.WORD≡≡$FVMA≡≥ 130142 130272 .WORD $FVMA ;VMA FIELD
≠.BYTE≡≥ 130144 001
≥ 130145 002 .BYTE 1,2
≥
≠.WORD≡≡$FMEM≡≥ 130146 130276 .WORD $FMEM ;MEM FIELD
≠.BYTE≡≥ 130150 002
≥ 130151 003 .BYTE 2,3
≥
≠.WORD≡≡$FCOND≡≥ 130152 130304 .WORD $FCOND ;COND FIELD
≠.BYTE≡≥ 130154 002
≥ 130155 003 .BYTE 2,3
≥
≠.WORD≡≥ 130156 000000 .WORD 0 ;END OF TABLE WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 266
FD11 PALII[KL,SYS] Page 14 DEPOSIT C-RAM SUBROUTINE
≥ ;C-RAM SECONDARY DECISION TABLES
≥
≠.BYTE≡≥ 130160 112
≥ 130161 111 $FJ: .BYTE 74.,73. ;J00(5), J01(6)
≠.BYTE≡≥ 130162 110
≥ 130163 107 .BYTE 72.,71. ;J02(7), J03(8)
≠.BYTE≡≥ 130164 106
≥ 130165 105 .BYTE 70.,69. ;J04(9), J05(10)
≠.BYTE≡≥ 130166 104
≥ 130167 103 .BYTE 68.,67. ;J06(11), J07(12)
≠.BYTE≡≥ 130170 102
≥ 130171 101 .BYTE 66.,65. ;J08(13), J09(14)
≠.BYTE≡≥ 130172 100
≥ 130173 000 .BYTE 64.,0 ;J10(15)
≥
≠.BYTE≡≥ 130174 003
≥ 130175 001 $FT: .BYTE 3.,1. ;T00(76), T01(78)
≠.BYTE≡≥ 130176 000
≥ 130177 000 .BYTE 0,0
≥
≠.BYTE≡≥ 130200 053
≥ 130201 013 $FAR: .BYTE 43.,11. ;ARXM SEL4(36), ARXM SEL2(68)
≠.BYTE≡≥ 130202 011
≥ 130203 042 .BYTE 9.,34. ;ARXM SEL1(70), ARM SEL4(45)
≠.BYTE≡≥ 130204 017
≥ 130205 015 .BYTE 15.,13. ;ARM SEL2(64), ARM SEL1(66)
≠.BYTE≡≥ 130206 000
≥ 130207 000 .BYTE 0,0
≥
≠.BYTE≡≥ 130210 063
≥ 130211 057 $FAD: .BYTE 51.,47. ;ADB SEL2(28), ADB SEL1(32)
≠.BYTE≡≥ 130212 066
≥ 130213 065 .BYTE 54.,53. ;ADA DIS(25), ADA SEL2(26)
≠.BYTE≡≥ 130214 064
≥ 130215 005 .BYTE 52.,5. ;ADA SEL1(27), AD CRY(74)
≠.BYTE≡≥ 130216 067
≥ 130217 073 .BYTE 55.,59. ;AD BOOLE(24), AD SEL 8 (20)
≠.BYTE≡≥ 130220 072
≥ 130221 071 .BYTE 58.,57. ;AD SEL 4 (21), AD SEL 2 (22)
≠.BYTE≡≥ 130222 070
≥ 130223 000 .BYTE 56.,0 ;AD SEL 1 (23)
≥
≠.BYTE≡≥ 130224 031
≥ 130225 033 $FBR: .BYTE 25.,27. ;BRX LOAD(54), BR LOAD(52)
≠.BYTE≡≥ 130226 000
≥ 130227 000 .BYTE 0,0
≥
≠.BYTE≡≥ 130230 077
≥ 130231 000 $FMQ: .BYTE 63.,0 ;MQ SEL(16)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 267
FD11 PALII[KL,SYS] Page 14.1 DEPOSIT C-RAM SUBROUTINE
≥
≠.BYTE≡≥ 130232 027
≥ 130233 026 $FFM: .BYTE 23.,22. ;FM ADR SEL4(56), FM ADR SEL2(57)
≠.BYTE≡≥ 130234 025
≥ 130235 000 .BYTE 21.,0 ;FM ADR SEL1(58)
≥
≠.BYTE≡≥ 130236 045
≥ 130237 023 $FSCAD: .BYTE 37.,19. ;SCADB SEL2(42), SCADB SEL1(60)
≠.BYTE≡≥ 130240 117
≥ 130241 047 .BYTE 79.,39. ;SCADA DIS(0), SCADA SEL2(40)
≠.BYTE≡≥ 130242 046
≥ 130243 116 .BYTE 38.,78. ;SCADA SEL1(41), SCAD 4(1)
≠.BYTE≡≥ 130244 115
≥ 130245 114 .BYTE 77.,76. ;SCAD 2(2), SCAD 1(3)
≠.BYTE≡≥ 130246 000
≥ 130247 000 .BYTE 0,0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 268
FD11 PALII[KL,SYS] Page 15 DEPOSIT C-RAM SUBROUTINE
≥
≠.BYTE≡≥ 130250 021
≥ 130251 000 $FSC: .BYTE 17.,0 ;SCM SEL 2(62)
≥
≠.BYTE≡≥ 130252 113
≥ 130253 000 $FFE: .BYTE 75.,0 ;FE LOAD(4)
≥
≠.BYTE≡≥ 130254 041
≥ 130255 040 $FSH: .BYTE 33.,32. ;SH/ARMM SEL2(46), SH/ARMM SEL1(47)
≠.BYTE≡≥ 130256 000
≥ 130257 000 .BYTE 0,0
≥
≠.BYTE≡≥ 130260 062
≥ 130261 061 $FNUM: .BYTE 50.,49. ;#00(29), #01(30)
≠.BYTE≡≥ 130262 060
≥ 130263 056 .BYTE 48.,46. ;#02(31), #03(33)
≠.BYTE≡≥ 130264 055
≥ 130265 054 .BYTE 45.,44. ;#04(34), #05(35)
≠.BYTE≡≥ 130266 052
≥ 130267 051 .BYTE 42.,41. ;#06(37), #07(38)
≠.BYTE≡≥ 130270 050
≥ 130271 000 .BYTE 40.,0 ;#08(39)
≥
≠.BYTE≡≥ 130272 043
≥ 130273 007 $FVMA: .BYTE 35.,7. ;VMA SEL 2(44), VMA SEL 1(72)
≠.BYTE≡≥ 130274 000
≥ 130275 000 .BYTE 0,0
≥
≠.BYTE≡≥ 130276 037
≥ 130277 036 $FMEM: .BYTE 31.,30. ;MEM 00(48), MEM 01(49)
≠.BYTE≡≥ 130300 035
≥ 130301 034 .BYTE 29.,28. ;MEM 02(50), MEM 03(51)
≠.BYTE≡≥ 130302 000
≥ 130303 000 .BYTE 0,0
≥
≠.BYTE≡≥ 130304 076
≥ 130305 075 $FCOND: .BYTE 62.,61. ;COND 00(17), COND 01(18)
≠.BYTE≡≥ 130306 074
≥ 130307 032 .BYTE 60.,26. ;COND 02(19), COND 03(53)
≠.BYTE≡≥ 130310 030
≥ 130311 024 .BYTE 24.,20. ;COND 04(55), COND 05(59)
≠.BYTE≡≥ 130312 000
≥ 130313 000 .BYTE 0,0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 269
KLDCP PAL[KL,SYS] Page 5.5 DEPOSIT C-RAM SUBROUTINE
≥
≥ ;Dectape
≠.INSRT≡≥ .INSRT DTA11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 270
DTA11 PAL[KL,SYS] Page 1 DEPOSIT C-RAM SUBROUTINE
≥ COMMENT ⊗ VALID 00027 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00003 00002 .SBTTL PROGRAM FILE LOADER, 4-SEPT-75
≥ C00008 00003 PROCESS FILENAME.EXT FROM INPUT BUFFER
≥ C00011 00004 DECTAPE/RP04/FLOPPY LOADER START
≥ C00013 00005 LLDONE: MOV R4,DVCNT RESAVE POINTERS
≥ C00015 00006 LDPRO2: JMP ACTLDC LOAD TYPE ERROR
≥ C00017 00007 LDCKSM: TST LDOCTF LOADING OCTAL ?
≥ C00019 00008 LOAD DONE ROUTINE PDP11 LOAD ROUTINE
≥ C00021 00009 3$: TST VERIFY
≥ C00022 00010 PDP-11 BINARY LOAD ROUTINE
≥ C00024 00011 3$: PUSH R0
≥ C00025 00012 KL10 LOAD D-RAM ROUTINE
≥ C00027 00013 KL10 C-RAM ZERO
≥ C00031 00014 2$: MOV LDADR,R0 SELECT C-RAM STARTING ADDRESS
≥ C00032 00015 LOAD TEN CORE ZERO
≥ C00034 00016 LOAD TEN DATA
≥ C00036 00017 LD10VR: BMI LD10ER N-BIT SET DEPOSIT FAILED
≥ C00037 00018 DEVICE FILE DIRECTORY LOOKUP
≥ C00039 00019 1$: MOV (R0)+,DIRST0 STORE RAD50 NAME
≥ C00041 00020 DECTAPE/FLOPPY DIRECTORY ROUTINE
≥ C00042 00021 READ DEVICE FRAME SUBROUTINE
≥ C00044 00022 DVEOF: TST LDCNTL EOF, PRINTING A HELP FILE ?
≥ C00045 00023 RAD50 UNPACK SUBROUTINE
≥ C00047 00024 DECTAPE READ/WRITE FILE ROUTINES
≥ C00048 00025 DECTAPE DEVICE READ/WRITE ROUTINE
≥ C00050 00026 DTSRA: ADD #3,@#TCDT +3 TO TCDT
≥ C00053 00027 .SBTTL ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
≥ C00055 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 271
DTA11 PAL[KL,SYS] Page 2 PROGRAM FILE LOADER, 4-SEPT-75
≥ .SBTTL PROGRAM FILE LOADER, 4-SEPT-75
≥
≥ ;LOAD CONTROL FLAG WORD "LDCNTL"
≥ ;BIT15=1 IS HELP, PRINT FILE READ
≥ ;WORD = 0 .A10, PDP-10 LOAD
≥ ; 1 .A11, PDP-11 LOAD
≥ ; 2 .RAM, KL10 C-RAM ZERO
≥ ; 3 .RAM, KL10 C-RAM LOAD
≥ ; 4 .RAM, KL10 D-RAM LOAD
≥ ; 5 .BIN, PDP-11 BIN LOAD
≥ ; 6 .D10, PDP-11 LOAD DSKDMP BOOTSTRAP .D10 FILE
≥ ;ACT10 .BIN LOADED AS .A11
≥ ; .SAV LOADED AS .A10
≥
≥ ;PROGRAM DETERMINATION & LOAD CONTROL INITIALIZATION
≥
≡NAMEXT≡≡NAMEXT≡≥ 130314 104206 DVLOAD: NAMEXT ;SETUP NAME.EXT
≠TST≡≡R0≡≥ 130316 005700 TST R0 ;ANY EXT ?
≠BNE≡≥ 130320 001043 BNE 4$ ;YES
≠TSTB≡≡JFILEF≡≥ 130322 105737 147620 TSTB JFILEF ;DOING "J" COMMAND ?
≠BEQ≡≥ 130326 001405 BEQ 50$ ;NO
≠MOV≡≡R4≡≥ 130330 012704 046503 MOV #"CM,R4 ;YES, DEFAULT EXT IS "CMD"
≠MOV≡≡R5≡≥ 130334 012705 020104 MOV #"D ,R5
≠BR≡≥ 130340 000427 BR 52$
≥
≠TSTB≡≡IFILEF≡≥ 130342 105737 147624 50$: TSTB IFILEF ;DOING "I" COMMAND ?
≠BEQ≡≥ 130346 001405 BEQ 51$ ;NO
≠MOV≡≡R4≡≥ 130350 012704 041503 MOV #"CC,R4 ;YES, DEFAULT EXT IS "CCL"
≠MOV≡≡R5≡≥ 130354 012705 020114 MOV #"L ,R5
≠BR≡≥ 130360 000417 BR 52$
≥
≠MOV≡≡LDOVRD≡≡R4≡≥ 130362 013704 150732 51$: MOV LDOVRD,R4 ;ANY LOAD EXT OVERRIDE ?
≠BLE≡≥ 130366 003403 BLE 53$ ;IF NOT, USE "A10"
≠CMP≡≡R4≡≥ 130370 022704 000007 CMP #7,R4
≠BGE≡≥ 130374 002002 BGE 54$ ;BRANCH UNLESS OUT OF BOUNDS
≠MOV≡≡R4≡≥ 130376 012704 000001 53$: MOV #1,R4
≠DEC≡≡R4≡≥ 130402 005304 54$: DEC R4 ;RESULT OF 0=A10,1=A11,2,3,4=RAM,5=BIN,6=D10(DSKDMP)
≠ASL≡≡R4≡≥ 130404 006304 ASL R4 ;DOUBLE R4 (SINCE WE NEED 4 BYTES PER ENTRY)
≠ASL≡≡R4≡≥ 130406 006304 ASL R4 ;DOUBLE AGAIN
≠MOV≡≡DEFEXT≡≡R4≡≡R5≡≥ 130410 016405 130646 MOV DEFEXT+2(R4),R5 ;SECOND 2 CHARACTERS OF DEFAULT EXT.
≠MOV≡≡DEFEXT≡≡R4≡≡R4≡≥ 130414 016404 130644 MOV DEFEXT(R4),R4
≠MOV≡≡R4≡≡EXTBF≡≥ 130420 010437 151166 52$: MOV R4,EXTBF
≠MOV≡≡R5≡≡EXTBF≡≥ 130424 010537 151170 MOV R5,EXTBF+2
≠MOV≡≡LDCNTL≡≡R3≡≥ 130430 012703 150734 4$: MOV #LDCNTL,R3
≠TST≡≡R3≡≥ 130434 005713 TST (R3) ;IS THIS "HELP"
≠BMI≡≥ 130436 100451 BMI 12$ ;BRANCH IF "HELP". NO DEFAULT EXTENSION.
≠MOV≡≡TEMP≡≡R4≡≥ 130440 012704 147627 MOV #TEMP+1,R4
≠MOV≡≡EXTBF≡≡R5≡≥ 130444 012705 151170 MOV #EXTBF+2,R5
≠MOVB≡≡R5≡≡R4≡≥ 130450 111514 MOVB (R5),(R4) ;MAKE A WORD OUT OF 2ND & 3RD CHAR
≠MOVB≡≡R5≡≡R4≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 272
DTA11 PAL[KL,SYS] Page 2.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 130452 114544 MOVB -(R5),-(R4)
≠CMPB≡≡R5≡≥ 130454 122745 000101 CMPB #'A,-(R5) ;IS FIRST CHAR AN "A" ?
≠BEQ≡≥ 130460 001420 BEQ 6$ ;BR IF YES
≠CMPB≡≡R5≡≥ 130462 122715 000102 CMPB #'B,(R5) ;IS FIRST CHAR A "B" ?
≠BEQ≡≥ 130466 001446 BEQ 14$ ;BR IF YES
≠CMPB≡≡R5≡≥ 130470 122715 000123 CMPB #'S,(R5) ;IS FIRST CHAR AN "S" ?
≠BEQ≡≥ 130474 001451 BEQ 16$ ;BR IF YES
≠CMPB≡≡R5≡≥ 130476 122715 000122 CMPB #'R,(R5) ;IS FIRST CHAR AN "R" ?
≠BEQ≡≥ 130502 001422 BEQ 66$ ;BR IF YES
≠CMPB≡≡R5≡≥ 130504 122715 000104 CMPB #'D,(R5) ;IS FIRST CHAR A "D" ?
≠BEQ≡≥ 130510 001447 BEQ 21$
≠TST≡≡LDOVRD≡≥ 130512 005737 150732 5$: TST LDOVRD ;ANY LOAD EXT OVERRIDE ?
≠BNE≡≥ 130516 001021 BNE 12$ ;YES
≠BR≡≡$$$NAM≡≥ 130520 000566 BR $$$NAM ;NAME.EXT ERR
≥
≠CMP≡≡R4≡≥ 130522 022714 030061 6$: CMP #"10,(R4) ;HERE IS IF FIRST CHARACTER IS AN "A"
≠BEQ≡≥ 130526 001406 BEQ 7$ ;BR IF ".A10"
≠CMP≡≡R4≡≥ 130530 022714 030461 CMP #"11,(R4)
≠BNE≡≥ 130534 001366 BNE 5$ ;BR IF NOT "A11"
≠MOV≡≡R3≡≥ 130536 012713 000001 MOV #1,(R3) ;"A11"
≠BR≡≥ 130542 000407 BR 12$
≥
≠CLR≡≡R3≡≥ 130544 005013 7$: CLR (R3) ;A10. SETUP LOAD CONTROL
≠BR≡≥ 130546 000405 BR 12$
≥
≠CMP≡≡R4≡≥ 130550 022714 046501 66$: CMP #"AM,(R4) ;"R" SEEN
≠BNE≡≥ 130554 001356 BNE 5$ ;BR IF NOT ".RAM"
≠MOV≡≡R3≡≥ 130556 012713 000002 MOV #2,(R3) ;"RAM"
≠TST≡≡LDOVRD≡≥ 130562 005737 150732 12$: TST LDOVRD ;ANY LOAD EXT OVERRIDE ?
≠BEQ≡≥ 130566 001404 BEQ 20$ ;NO
≠MOV≡≡LDOVRD≡≡R0≡≥ 130570 013700 150732 MOV LDOVRD,R0 ;SET LOAD CONTROL ACCORDINGLY
≠DEC≡≡R0≡≥ 130574 005300 DEC R0
≠MOV≡≡R0≡≡R3≡≥ 130576 010013 MOV R0,(R3)
≠JMP≡≡DEVFIL≡≥ 130600 000137 133350 20$: JMP DEVFIL ;GO GET FILE & LOAD
≥
≠CMP≡≡R4≡≥ 130604 022714 047111 14$: CMP #"IN,(R4) ;IS EXTENSION ".BIN" ?
≠BNE≡≥ 130610 001340 BNE 5$ ;BR IF NO
≠MOV≡≡R3≡≥ 130612 012713 000005 MOV #5,(R3) ;YES, SET LOAD CONTROL
≠BR≡≥ 130616 000761 BR 12$
≥
≠CMP≡≡R4≡≥ 130620 022714 053101 16$: CMP #"AV,(R4) ;IS EXTENSION ".SAV" ?
≠BEQ≡≥ 130624 001747 BEQ 7$ ;YES, ACT10 TREATS AS ".A10"
≠BR≡≥ 130626 000731 BR 5$
≥
≠CMP≡≡R4≡≥ 130630 022714 030061 21$: CMP #"10,(R4) ;IS EXTENSION ".D10" ?
≠BNE≡≥ 130634 001326 BNE 5$ ;NO, GO REPORT ERROR
≠MOV≡≡R3≡≥ 130636 012713 000006 MOV #6,(R3) ;YES, SET LOAD CONTROL
≠BR≡≥ 130642 000747 BR 12$
≥
≠.ASCII≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 273
DTA11 PAL[KL,SYS] Page 2.2 PROGRAM FILE LOADER, 4-SEPT-75
≥ 130644 101
≥ 130645 061
≥ 130646 060
≥ 130647 040
≥ DEFEXT: .ASCII /A10 /
≠.ASCII≡≥ 130650 101
≥ 130651 061
≥ 130652 061
≥ 130653 040
≥ .ASCII /A11 /
≠.ASCII≡≥ 130654 122
≥ 130655 101
≥ 130656 115
≥ 130657 040
≥ .ASCII /RAM /
≠.ASCII≡≥ 130660 122
≥ 130661 101
≥ 130662 115
≥ 130663 040
≥ .ASCII /RAM /
≠.ASCII≡≥ 130664 122
≥ 130665 101
≥ 130666 115
≥ 130667 040
≥ .ASCII /RAM /
≠.ASCII≡≥ 130670 102
≥ 130671 111
≥ 130672 116
≥ 130673 040
≥ .ASCII /BIN /
≠.ASCII≡≥ 130674 104
≥ 130675 061
≥ 130676 060
≥ 130677 040
≥ .ASCII /D10 / ;FOR DSKDMP BOOT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 274
DTA11 PAL[KL,SYS] Page 3 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;PROCESS FILENAME.EXT FROM INPUT BUFFER
≥
≠MOV≡≡NAMBF≡≡R0≡≥ 130700 012700 151160 $NAMEXT:MOV #NAMBF,R0 ;CLEAR NAME LOOKUP BUFFER
≠MOV≡≡R1≡≥ 130704 012701 020040 MOV #20040,R1 ;TO SPACES
≠MOV≡≡R2≡≥ 130710 012702 000005 MOV #5,R2
≠MOV≡≡R1≡≡R0≡≥ 130714 010120 70$: MOV R1,(R0)+ ;UP TO 9 CHARS
≠DEC≡≡R2≡≥ 130716 005302 DEC R2
≠BGT≡≥ 130720 003375 BGT 70$
≥
≠MOV≡≡NAMBF≡≡R2≡≥ 130722 012702 151160 MOV #NAMBF,R2 ;LOOKUP NAME
≠MOV≡≡R1≡≥ 130726 012701 000007 MOV #7,R1 ;MAXIMUM OF 6 CHARS IN NAME
≡TTISDL≡≡TTISDL≡≥ 130732 104016 TTISDL
≠BCS≡≥ 130734 103402 BCS 99$ ;LETTER, ALREADY IN R0
≡TTICHR≡≡TTICHR≡≥ 130736 104005 1$: TTICHR ;GET CHAR FROM TTY BUFFER
≠BCS≡≥ 130740 103456 BCS 5$
≠CMPB≡≡R0≡≥ 130742 122700 000056 99$: CMPB #'.,R0
≠BEQ≡≥ 130746 001415 BEQ 2$ ;BR IF PERIOD, NAME.EXT SEPARATOR
≠CMPB≡≡R0≡≥ 130750 122700 000033 CMPB #33,R0
≠BEQ≡≥ 130754 001435 BEQ 97$ ;ALTMODE, SELF START
≠CMPB≡≡R0≡≥ 130756 122700 000015 CMPB #15,R0
≠BEQ≡≥ 130762 001442 BEQ 96$ ;CR, NO EXTENSION
≠CMPB≡≡SPACE≡≡R0≡≥ 130764 122700 000040 CMPB #SPACE,R0 ;IF SPACE, NO EXT
≠BEQ≡≥ 130770 001437 BEQ 96$
≠DEC≡≡R1≡≥ 130772 005301 DEC R1
≠BEQ≡≥ 130774 001440 BEQ 5$ ;BR IF MORE THAN 6 CHARS
≠MOVB≡≡R0≡≡R2≡≥ 130776 110022 MOVB R0,(R2)+ ;STORE CHAR
≠BR≡≥ 131000 000756 BR 1$
≥
≠MOV≡≡EXTBF≡≡R2≡≥ 131002 012702 151166 2$: MOV #EXTBF,R2 ;GET EXTENSION
≠MOV≡≡R1≡≥ 131006 012701 000004 MOV #4,R1
≡TTICHR≡≡TTICHR≡≥ 131012 104005 3$: TTICHR
≠BCS≡≥ 131014 103430 BCS 5$
≠CMPB≡≡R0≡≥ 131016 122700 000033 CMPB #33,R0
≠BEQ≡≥ 131022 001415 BEQ 13$ ;BR IF ALTMODE
≠CMPB≡≡R0≡≥ 131024 122700 000015 CMPB #15,R0
≠BEQ≡≥ 131030 001414 BEQ 98$ ;BR IF CR
≠CMPB≡≡SPACE≡≡R0≡≥ 131032 122700 000040 CMPB #SPACE,R0 ;BR IF SPACE
≠BEQ≡≥ 131036 001411 BEQ 98$
≠DEC≡≡R1≡≥ 131040 005301 DEC R1
≠BEQ≡≥ 131042 001415 BEQ 5$ ;BR IF MORE THAN 3 CHARS
≠MOVB≡≡R0≡≡R2≡≥ 131044 110022 MOVB R0,(R2)+ ;STORE CHAR
≠BR≡≥ 131046 000761 BR 3$
≥
≠COM≡≡SRTFLG≡≥ 131050 005137 150726 97$: COM SRTFLG ;SET SELF START FLAG
≠BR≡≥ 131054 000405 BR 96$
≥
≠COM≡≡SRTFLG≡≥ 131056 005137 150726 13$: COM SRTFLG
≥
≠CMP≡≡R1≡≥ 131062 022701 000004 98$: CMP #4,R1
≠BNE≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 275
DTA11 PAL[KL,SYS] Page 3.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 131066 001001 BNE 10$
≠CLR≡≡R0≡≥ 131070 005000 96$: CLR R0
≤EXIT≡≥ 10$: EXIT
≠JMP≡≡$EXIT≡≥ 131072 000137 124064 JMP $EXIT
≥
≡$$$NAM≠≥ 131076 $$$NAM=.
≡$PMSG≡≡$PMSG≡≥ 131076 104025 5$: $PMSG ;NAME.EXT ERR
≡$$NAM≡≡$$NAM≡≥ 131100 131106 $$NAM
≠JMP≡≡$CNTLC≡≥ 131102 000137 100004 JMP $CNTLC
≥
≠.ASCIZ≡≥ 131106 116
≥ 131107 101
≥ 131110 115
≥ 131111 105
≥ 131112 056
≥ 131113 105
≥ 131114 130
≥ 131115 124
≥ 131116 040
≥ 131117 105
≥ 131120 122
≥ 131121 122
≥ 131122 000
≥ $$NAM: .ASCIZ /NAME.EXT ERR/
≠.EVEN≡≥ 131124 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 276
DTA11 PAL[KL,SYS] Page 4 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;DECTAPE/RP04/FLOPPY LOADER START
≥
≠CMP≡≡LDCNTL≡≥ 131124 022737 000005 150734 DTRPLD: CMP #5,LDCNTL ;PDP-11 .BIN FILE LOAD ?
≠BNE≡≡LLD1≡≥ 131132 001002 BNE LLD1
≠JMP≡≡LDBIN≡≥ 131134 000137 132242 JMP LDBIN
≥
≡DVDATA≡≡DVDATA≡≥ 131140 104160 LLD1: DVDATA ;LOAD FIRST BUFFER
≠BCC≡≡LLD2≡≥ 131142 103002 BCC LLD2
≠JMP≡≡DVEOF≡≥ 131144 000137 134066 JMP DVEOF ;EOF
≥
≥ LLD2:
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP
≥ BPL 1$
≥ JMP ACTLD2 ;ACT10 PROCESS
≥ .ENDC
≠MOV≡≡$INBUF≡≡R5≡≥ 131150 012705 150500 1$: MOV #$INBUF,R5 ;SET UP START OF CHAR BUFFER
≠MOV≡≡R5≡≡$INPTC≡≥ 131154 010537 150716 MOV R5,$INPTC
≥
≠MOV≡≡DVCNT≡≡R4≡≥ 131160 013704 151126 LLD3: MOV DVCNT,R4 ;SETUP DEVICE BYTE COUNTER
≠MOV≡≡DVADR≡≡R3≡≥ 131164 013703 151130 MOV DVADR,R3 ;SETUP DEVICE DATA BLOCK ADDRESS
≥
≠TST≡≡R4≡≥ 131170 005704 LLD4: TST R4 ;ANY DATA REMAINING ?
≠BGT≡≥ 131172 003004 BGT 2$ ;YES
≥
≡DVDATA≡≡DVDATA≡≥ 131174 104160 DVDATA ;NO, READ NEXT DEVICE BLOCK
≠BCC≡≡LLD3≡≥ 131176 103370 BCC LLD3
≠JMP≡≡DVEOF≡≥ 131200 000137 134066 JMP DVEOF ;END OF FILE ?
≥
≠MOVB≡≡R3≡≡R0≡≥ 131204 112300 2$: MOVB (R3)+,R0 ;GET FRAME, ONE 7 BIT CHAR
≠DEC≡≡R4≡≥ 131206 005304 DEC R4 ;COUNT IT
≠BIC≡≡R0≡≥ 131210 042700 177600 BIC #177600,R0
≠TST≡≡R0≡≥ 131214 005700 TST R0 ;IS FRAME A NULL ?
≠BEQ≡≡LLD4≡≥ 131216 001764 BEQ LLD4 ;BR IF YES, DON'T STORE
≠MOVB≡≡R0≡≡R5≡≥ 131220 110025 MOVB R0,(R5)+ ;STORE IN BUFFER
≠CMP≡≡R5≡≡$INBUF≡≥ 131222 020527 150714 CMP R5,#$INBUF+140.
≠BLE≡≥ 131226 003402 BLE 1$ ;BR IF BUFFER DIDN'T OVERFLOW
≠JMP≡≡$LINER≡≥ 131230 000137 131762 JMP $LINERR ;REPORT BUFFER OVERFLOW
≠CMP≡≡R0≡≥ 131234 022700 000012 1$: CMP #12,R0 ;IS CHAR A LINE FEED ?
≠BEQ≡≡LLDONE≡≥ 131240 001401 BEQ LLDONE ;BR IF LINE DONE
≠BR≡≡LLD4≡≥ 131242 000752 BR LLD4 ;LOOP TILL LF FOUND
≠MOV≡≡R4≡≡DVCNT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 277
DTA11 PAL[KL,SYS] Page 5 PROGRAM FILE LOADER, 4-SEPT-75
≥ 131244 010437 151126 LLDONE: MOV R4,DVCNT ;RESAVE POINTERS
≠MOV≡≡R3≡≡DVADR≡≥ 131250 010337 151130 MOV R3,DVADR
≠CLRB≡≡R5≡≥ 131254 105015 CLRB (R5) ;STORE A NULL TO END STRING
≠MOV≡≡R5≡≡$INPTR≡≥ 131256 010537 150720 MOV R5,$INPTR
≠INC≡≡DEVLC≡≥ 131262 005237 150724 INC DEVLC ;COUNT LINE
≠MOV≡≡DEVLC≡≡SWR≡≥ 131266 013737 150724 177570 MOV DEVLC,SWR ;DISPLAY
≠TST≡≡LDCNTL≡≥ 131274 005737 150734 TST LDCNTL ;IS HELP FLAG SET ?
≠BPL≡≡LDPROC≡≥ 131300 100002 BPL LDPROC ;BR IF NO
≠JMP≡≡DAHLP≡≥ 131302 000137 140316 JMP DAHLP ;DTA/ACT HELP
≥
≠CLR≡≡LDOCTF≡≥ 131306 005037 150736 LDPROC: CLR LDOCTF ;CLEAR OCTAL LOAD FLAG
≠CLR≡≡LDZBLK≡≥ 131312 005037 150730 CLR LDZBLK
≠MOV≡≡LDCNTL≡≡R1≡≥ 131316 013701 150734 MOV LDCNTL,R1 ;GET LOAD CONTROL
≠MOV≡≡$INPTC≡≡R5≡≥ 131322 013705 150716 MOV $INPTC,R5 ;SETUP INPUT POINTER
≠MOVB≡≡R5≡≡R0≡≥ 131326 112500 MOVB (R5)+,R0 ;GET FIRST CHAR FROM FILE
≠CMPB≡≡R0≡≥ 131330 122700 000073 CMPB #';,R0 ;IS FIRST CHAR A SEMICOLON ?
≠BEQ≡≡LDPRO1≡≥ 131334 001420 BEQ LDPRO1 ;YES, PROCESS COMMENT LINE
≠CMPB≡≡LDLTR≡≡R1≡≡R0≡≥ 131336 126100 131672 CMPB LDLTR(R1),R0 ;DOES 1ST CHAR MATCH LOAD TYPE ?
≠BEQ≡≡LDPRO3≡≥ 131342 001443 BEQ LDPRO3 ;YES
≠CMP≡≡LDCNTL≡≥ 131344 023727 150734 000006 CMP LDCNTL,#6 ;D10 FILES ACT LIKE A10
≠BEQ≡≥ 131352 001403 BEQ 1$
≠TST≡≡LDCNTL≡≥ 131354 005737 150734 TST LDCNTL ;IS THIS .A10 FILE ?
≠BNE≡≡LDPRO2≡≥ 131360 001032 BNE LDPRO2 ;NO, ERROR
≠CMPB≡≡R0≡≥ 131362 122700 000132 1$: CMPB #'Z,R0 ;YES, IS FIRST CHAR A "Z" ?
≠BNE≡≡LDPRO2≡≥ 131366 001027 BNE LDPRO2 ;NO, ERROR
≠COM≡≡LDZBLK≡≥ 131370 005137 150730 COM LDZBLK ;YES, SET CORE ZERO FLAG
≠BR≡≡LDPRO3≡≥ 131374 000426 BR LDPRO3
≥
≠TST≡≡DEVLC≡≥ 131376 005737 150724 LDPRO1: TST DEVLC ;COMMENT, IS THIS FIRST LINE ?
≠BNE≡≡LLD2≡≥ 131402 001262 BNE LLD2 ;NO
≤PUSH≡≥ PUSH PCMDNF ;SAVE PGM CMD NO PRINT FLAG
≠.NLIST≡≠.IRP≡≠MOV≡≡PCMDNF≡≡SP≡≠.LIST≡≡SWITCH≡≡SWITCH≡≥ 131410 104057 SWITCH
≠BIT≡≡R0≡≡CHAIN≡≥ 131412 030027 000001 BIT R0,#CHAIN ;IS CHAIN SWITCH SET ?
≠BEQ≡≥ 131416 001403 BEQ 1$ ;NO
≠MOV≡≡PCMDNF≡≥ 131420 012737 777777 152212 MOV #-1,PCMDNF ;YES, PREVENT FILE ID PRINTOUT
≥
≠MOVB≡≡R5≡≡R1≡≥ 131426 112501 1$: MOVB (R5)+,R1 ;PUT FILE ID LINE IN OUTPUT BUFFER
≠BEQ≡≥ 131430 001402 BEQ 2$ ;NULL, DONE
≡PLDBUF≡≡PLDBUF≡≥ 131432 104154 PLDBUF
≠BR≡≥ 131434 000774 BR 1$
≤POP≡≥ 2$: POP PCMDNF ;RESTORE FLAG
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡PCMDNF≡≠.LIST≡≡PNTRST≡≡PNTRST≡≥ 131442 104215 PNTRST ;RESET OUTPUT POINTERS ANYWAY
≠BR≡≡LLD2≡≥ 131444 000641 BR LLD2
≠JMP≡≡ACTLDC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 278
DTA11 PAL[KL,SYS] Page 6 PROGRAM FILE LOADER, 4-SEPT-75
≥ 131446 000137 140522 LDPRO2: JMP ACTLDC ;LOAD TYPE ERROR
≥
≠MOVB≡≡R5≡≡R0≡≥ 131452 112500 LDPRO3: MOVB (R5)+,R0 ;GET 2ND CHAR
≠CMPB≡≡R0≡≥ 131454 122700 000117 CMPB #'O,R0 ;IS IT AN O ?
≠BEQ≡≡LDOCT≡≥ 131460 001445 BEQ LDOCT ;YES, OCTAL DATA FORMAT LOAD
≠CMPB≡≡R0≡≥ 131462 122700 000040 CMPB #40,R0 ;IS IT A SPACE ?
≠BNE≡≡LDPRO2≡≥ 131466 001367 BNE LDPRO2 ;BR IF NO
≥
≠MOV≡≡LDCNT≡≡R1≡≥ 131470 012701 150740 LDCLR: MOV #LDCNT,R1 ;SETUP CONVERTED STORAGE ADDRESS
≠CLR≡≡R2≡≥ 131474 005002 LDCNV: CLR R2 ;CLEAR WORD FORMER
≠MOVB≡≡R5≡≡R0≡≥ 131476 112500 1$: MOVB (R5)+,R0 ;GET CHAR
≠CMP≡≡R0≡≥ 131500 022700 000015 CMP #15,R0 ;IS IT A CR ?
≠BEQ≡≥ 131504 001774 BEQ 1$ ;YES, IGNORE
≠CMP≡≡R0≡≥ 131506 022700 000012 CMP #12,R0 ;IS IT A LF ?
≠BEQ≡≡LDEOL≡≥ 131512 001435 BEQ LDEOL ;YES, END OF LINE
≠CMP≡≡R0≡≥ 131514 022700 000054 CMP #54,R0 ;IS IT A COMMA ?
≠BEQ≡≥ 131520 001415 BEQ 2$ ;YES, GO STORE WORD
≠TST≡≡LDOCTF≡≥ 131522 005737 150736 TST LDOCTF ;LOADING OCTAL ?
≠BNE≡≥ 131526 001014 BNE 3$ ;YES
≤SL≡≥ SL R2,6 ;SHIFT WORD FORMER LEFT 6
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠.LIST≡≠BIC≡≡R0≡≥ 131544 042700 000100 BIC #100,R0 ;CLEAR ASCIIZED BIT
≠BIS≡≡R0≡≡R2≡≥ 131550 050002 4$: BIS R0,R2 ;INSERT NEW OIT
≠BR≡≥ 131552 000751 BR 1$ ;LOOP TILL WORD FORMED
≥
≠MOV≡≡R2≡≡R1≡≥ 131554 010221 2$: MOV R2,(R1)+ ;STORE 16 BIT WORD
≠BR≡≡LDCNV≡≥ 131556 000746 BR LDCNV ;GO DO NEXT
≥
≤SL≡≥ 3$: SL R2,3 ;OCTAL LOAD
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠.LIST≡≠BIC≡≡R0≡≥ 131566 042700 177770 BIC #177770,R0 ;CLEAR ALL BUT NUMBER PART
≠BR≡≥ 131572 000766 BR 4$
≥
≠COM≡≡LDOCTF≡≥ 131574 005137 150736 LDOCT: COM LDOCTF ;OCTAL LOAD, SET FLAG
≠BR≡≡LDCLR≡≥ 131600 000733 BR LDCLR
≥
≠JMP≡≡ACTLDF≡≥ 131602 000137 140536 LDERR: JMP ACTLDF ;LOAD ERROR
≥
≠MOV≡≡R2≡≡R1≡≥ 131606 010211 LDEOL: MOV R2,(R1) ;STORE CHECKSUM
≠TST≡≡LDOCTF≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 279
DTA11 PAL[KL,SYS] Page 7 PROGRAM FILE LOADER, 4-SEPT-75
≥ 131610 005737 150736 LDCKSM: TST LDOCTF ;LOADING OCTAL ?
≠BNE≡≥ 131614 001012 BNE 2$ ;YES, NO CHECKSUM
≠MOV≡≡LDCNT≡≡R2≡≥ 131616 012702 150740 MOV #LDCNT,R2 ;CHECKSUM LOAD STORAGE
≠CLR≡≡R0≡≥ 131622 005000 CLR R0
≠ADD≡≡R2≡≡R0≡≥ 131624 062200 1$: ADD (R2)+,R0
≠CMP≡≡R2≡≡R1≡≥ 131626 020201 CMP R2,R1
≠BLE≡≥ 131630 003775 BLE 1$
≠TST≡≡R0≡≥ 131632 005700 TST R0 ;IS CHECKSUM = 0 ?
≠BEQ≡≥ 131634 001402 BEQ 2$ ;BR IF 0
≠JMP≡≡ACTBCK≡≥ 131636 000137 140530 JMP ACTBCK ;BAD CHECKSUM
≥
≠MOV≡≡LDCNTL≡≡R0≡≥ 131642 013700 150734 2$: MOV LDCNTL,R0 ;DISPATCH TO PROPER LOAD ROUTINE
≤SL≡≥ SL R0,1 ;DETERMINED FROM LDCNTL WORD
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R0≡≠.LIST≡≠JMP≡≡LDTYPE≡≡R0≡≥ 131650 000170 131654 JMP @LDTYPE(R0)
≥
≡LDTEN≡≡LDTEN≡≥ 131654 133052 LDTYPE: LDTEN ;.A10, LOAD TEN
≡LDELVN≡≡LDELVN≡≥ 131656 131776 LDELVN ;.A11, LOAD ELEVEN
≡LDCZRO≡≡LDCZRO≡≥ 131660 132610 LDCZRO ;.RAM, ZERO C-RAM
≡LDCRAM≡≡LDCRAM≡≥ 131662 132642 LDCRAM ;.RAM, LOAD C-RAM
≡LDDRAM≡≡LDDRAM≡≥ 131664 132452 LDDRAM ;.RAM, LOAD D-RAM
≥ 131666 000000 0 ;.BIN, DETECTED IN LINE
≡LDBOOT≡≡LDBOOT≡≥ 131670 135266 LDBOOT ;.D10, LOAD DSKDMP BOOT INTO 11 (SAME FORMAT AS A10)
≥
≠.ASCII≡≥ 131672 124
≥ 131673 105
≥ 131674 132
≥ 131675 103
≥ 131676 104
≥ 131677 040
≥ 131700 124
≥ LDLTR: .ASCII /TEZCD T/
≥
≠.ASCIZ≡≥ 131701 061
≥ 131702 061
≥ 131703 040
≥ 131704 105
≥ 131705 122
≥ 131706 122
≥ 131707 054
≥ 131710 101
≥ 131711 104
≥ 131712 122
≥ 131713 075
≥ 131714 000
≥ $$LD11: .ASCIZ /11 ERR,ADR=/
≠.ASCIZ≡≥ 131715 103
≥ 131716 117
≥ 131717 122
≥ 131720 075
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 280
DTA11 PAL[KL,SYS] Page 7.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 131721 000
≥ $$COR: .ASCIZ /COR=/
≠.ASCIZ≡≥ 131722 101
≥ 131723 103
≥ 131724 124
≥ 131725 075
≥ 131726 000
≥ $$ACT: .ASCIZ /ACT=/
≠.ASCIZ≡≥ 131727 134
≥ 131730 122
≥ 131731 101
≥ 131732 115
≥ 131733 040
≥ 131734 105
≥ 131735 122
≥ 131736 122
≥ 131737 054
≥ 131740 103
≥ 131741 117
≥ 131742 122
≥ 131743 075
≥ 131744 000
≥ $$RAM: .ASCIZ /\RAM ERR,COR=/
≠.ASCIZ≡≥ 131745 134
≥ 131746 061
≥ 131747 060
≥ 131750 040
≥ 131751 105
≥ 131752 122
≥ 131753 122
≥ 131754 054
≥ 131755 101
≥ 131756 104
≥ 131757 122
≥ 131760 075
≥ 131761 000
≥ $$TEN: .ASCIZ /\10 ERR,ADR=/
≠.EVEN≡≥ 131762 .EVEN
≥
≤PMSG≡≥ $LINERR:PMSG <?LINE TOO LONG>
≡$PMSG≡≡$PMSG≡≥ 131762 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 131764 146645 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 131766 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 281
DTA11 PAL[KL,SYS] Page 8 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;LOAD DONE ROUTINE PDP11 LOAD ROUTINE
≥
≥ LDDONE:
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP ;LOAD DONE
≥ BMI 1$ ;BR IF ACT10 MODE
≥ .ENDC
≠JMP≡≡DADONE≡≥ 131772 000137 140474 JMP DADONE
≥
≠.LIF≡≡MONASB≡≥ .LIF DF MONASB
≥ 1$: JMP ACTDON ;ACT10 PROCESS
≥
≥ ;PDP-11 CORE LOAD ROUTINE
≥
≠MOV≡≡LDCNT≡≡R0≡≥ 131776 013700 150740 LDELVN: MOV LDCNT,R0 ;GET LOAD WORD COUNT
≠BEQ≡≥ 132002 001510 BEQ 2$ ;IF 0, THIS IS TRANSFER BLOCK
≠MOV≡≡LDATA≡≡R2≡≥ 132004 012702 150744 MOV #LDATA,R2 ;SETUP DATA PICKUP POINTER
≠MOV≡≡LDADR≡≡R1≡≥ 132010 013701 150742 MOV LDADR,R1 ;GET LOAD MEMORY ADDRESS
≠BIT≡≡R1≡≥ 132014 032701 000001 BIT #1,R1 ;LOAD WORD OR BYTE ?
≠BNE≡≥ 132020 001034 BNE 3$ ;BYTE LOAD
≥
≠TST≡≡VERIFY≡≥ 132022 005737 147730 1$: TST VERIFY
≠BNE≡≥ 132026 001005 BNE 11$
≠MOV≡≡R2≡≡R1≡≥ 132030 012221 19$: MOV (R2)+,(R1)+ ;MOVE WORD FROM STOR TO MEMORY
≠DEC≡≡R0≡≥ 132032 005300 13$: DEC R0 ;DECREMENT WORD COUNT
≠BGT≡≥ 132034 003372 BGT 1$ ;LOOP TILL ALL WORDS MOVED
≠JMP≡≡LLD2≡≥ 132036 000137 131150 18$: JMP LLD2 ;GO DO NEXT LOAD LINE
≥
≠CMP≡≡R2≡≡R1≡≥ 132042 021211 11$: CMP (R2),(R1) ;COMPARE CURRENT AGAINST FILE
≠BEQ≡≥ 132044 001417 BEQ 12$
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡$PMSG≡≡$PMSG≡≥ 132050 104025 $PMSG
≡$$LD11≡≡$$LD11≡≥ 132052 131701 $$LD11 ;"11 ERR,ADR="
≠MOV≡≡R1≡≡R0≡≥ 132054 010100 MOV R1,R0
≡PNTOCT≡≡PNTOCT≡≥ 132056 104035 PNTOCT
≥
≡$PMSG≡≡$PMSG≡≥ 132060 104025 $PMSG
≡$$COR≡≡$$COR≡≥ 132062 131715 $$COR ;"COR="
≠MOV≡≡R2≡≡R0≡≥ 132064 011200 MOV (R2),R0
≡PNTOCT≡≡PNTOCT≡≥ 132066 104035 PNTOCT
≥
≡$PMSG≡≡$PMSG≡≥ 132070 104025 $PMSG
≡$$ACT≡≡$$ACT≡≥ 132072 131722 $$ACT ;"ACT="
≠MOV≡≡R1≡≡R0≡≥ 132074 011100 MOV (R1),R0
≡PNTOCT≡≡PNTOCT≡≥ 132076 104035 PNTOCT
≡PCRLF≡≡PCRLF≡≥ 132100 104031 PCRLF
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≥
≠TST≡≡R2≡≥ 132104 005722 12$: TST (R2)+
≠TST≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 282
DTA11 PAL[KL,SYS] Page 8.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 132106 005721 TST (R1)+
≠BR≡≥ 132110 000750 BR 13$
≠TST≡≡VERIFY≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 283
DTA11 PAL[KL,SYS] Page 9 PROGRAM FILE LOADER, 4-SEPT-75
≥ 132112 005737 147730 3$: TST VERIFY
≠BNE≡≥ 132116 001005 BNE 31$
≥
≠MOVB≡≡R2≡≡R1≡≥ 132120 112221 39$: MOVB (R2)+,(R1)+ ;ODD ADDRESS, BYTE LOAD
≠MOVB≡≡R2≡≡R1≡≥ 132122 112221 MOVB (R2)+,(R1)+ ;2 BYTES PER WORD
≠DEC≡≡R0≡≥ 132124 005300 38$: DEC R0 ;DECREMENT WORD COUNT
≠BGT≡≥ 132126 003371 BGT 3$ ;LOOP TILL ALL BYTES MOVED
≠BR≡≥ 132130 000742 BR 18$ ;GO ON TO NEXT
≥
≥
≠CLR≡≡R5≡≥ 132132 005005 31$: CLR R5
≤PUSH≡≥ 32$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠CMPB≡≡R2≡≡R1≡≥ 132136 121211 CMPB (R2),(R1)
≠BEQ≡≥ 132140 001422 BEQ 33$
≥
≡$PMSG≡≡$PMSG≡≥ 132142 104025 $PMSG
≡$$LD11≡≡$$LD11≡≥ 132144 131701 $$LD11 ;"11 ERR,ADR="
≠MOV≡≡R1≡≡R0≡≥ 132146 010100 MOV R1,R0
≡PNTOCT≡≡PNTOCT≡≥ 132150 104035 PNTOCT
≥
≡$PMSG≡≡$PMSG≡≥ 132152 104025 $PMSG
≡$$COR≡≡$$COR≡≥ 132154 131715 $$COR ;"COR="
≠MOVB≡≡R2≡≡R0≡≥ 132156 111200 MOVB (R2),R0
≠BIC≡≡R0≡≥ 132160 042700 177400 BIC #177400,R0
≡PNTOCS≡≡PNTOCS≡≥ 132164 104036 PNTOCS
≥
≡PSPACE≡≡PSPACE≡≥ 132166 104032 PSPACE
≡$PMSG≡≡$PMSG≡≥ 132170 104025 $PMSG
≡$$ACT≡≡$$ACT≡≥ 132172 131722 $$ACT ;"ACT="
≠MOVB≡≡R1≡≡R0≡≥ 132174 111100 MOVB (R1),R0
≠BIC≡≡R0≡≥ 132176 042700 177400 BIC #177400,R0
≡PNTOCS≡≡PNTOCS≡≥ 132202 104036 PNTOCS
≡PCRLF≡≡PCRLF≡≥ 132204 104031 PCRLF
≤POP≡≥ 33$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠INC≡≡R2≡≥ 132210 005202 INC R2
≠INC≡≡R1≡≥ 132212 005201 INC R1
≠TST≡≡R5≡≥ 132214 005705 TST R5
≠BNE≡≥ 132216 001342 BNE 38$
≠INC≡≡R5≡≥ 132220 005205 INC R5
≠BR≡≥ 132222 000744 BR 32$
≥
≠MOV≡≡LDADR≡≡R0≡≥ 132224 013700 150742 2$: MOV LDADR,R0
≠MOV≡≡R0≡≡PGOADR≡≥ 132230 010037 157204 LD11DN: MOV R0,PGOADR
≠CLR≡≡PGOCTL≡≥ 132234 005037 157202 CLR PGOCTL
≠BR≡≡LDDONE≡≥ 132240 000654 BR LDDONE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 284
DTA11 PAL[KL,SYS] Page 10 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;PDP-11 BINARY LOAD ROUTINE
≥
≡DVDATA≡≡DVDATA≡≥ 132242 104160 LDBIN: DVDATA ;LOAD DEVICE BUFFER
≠CLR≡≡$CKS11≡≥ 132244 005037 151070 LDBIN1: CLR $CKS11 ;INIT CHECKSUM
≡DVFRAM≡≡DVFRAM≡≥ 132250 104163 DVFRAM ;READ FRAME
≠DECB≡≡R0≡≥ 132252 105300 DECB R0 ;CHECK FOR BLOCK START
≠BNE≡≡LDBIN1≡≥ 132254 001373 BNE LDBIN1 ;NOT YET
≡DVFRAM≡≡DVFRAM≡≥ 132256 104163 DVFRAM ;READ ANOTHER FRAME
≥
≡DVWRD≡≡DVWRD≡≥ 132260 104164 DVWRD ;GET FULL BYTE COUNT
≠MOV≡≡R0≡≡LBC≡≥ 132262 010037 151064 MOV R0,LBC
≠SUB≡≡LBC≡≥ 132266 162737 000006 151064 SUB #6,LBC
≠BEQ≡≡LJMP≡≥ 132274 001456 BEQ LJMP ;BYTE COUNT OF 6 IS XFER BLOCK
≡DVWRD≡≡DVWRD≡≥ 132276 104164 DVWRD ;GET LOAD ADDRESS
≠MOV≡≡R0≡≡R5≡≥ 132300 010005 MOV R0,R5 ;STORE LOAD ADDRESS
≥
≡DVFRAM≡≡DVFRAM≡≥ 132302 104163 LDBIN2: DVFRAM ;READ DATA FRAME
≠DEC≡≡LBC≡≥ 132304 005337 151064 DEC LBC
≠BGE≡≡LDBIN3≡≥ 132310 002007 BGE LDBIN3 ;BR IF MORE DATA REMAINS
≠TSTB≡≡$CKS11≡≥ 132312 105737 151070 TSTB $CKS11 ;CORRECT CHECKSUM ?
≠BEQ≡≡LDBIN1≡≥ 132316 001752 BEQ LDBIN1 ;BR IF GOOD CHECKSUM
≤PMSG≡≥ LDBINE: PMSG <\CKSUM ERR>
≡$PMSG≡≡$PMSG≡≥ 132320 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 132322 146664 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 132324 000137 100004 $LDBNE: JMP $CNTLC
≥
≠TST≡≡VERIFY≡≥ 132330 005737 147730 LDBIN3: TST VERIFY
≠BNE≡≥ 132334 001010 BNE 1$
≠CMP≡≡R5≡≡PRGSRT≡≥ 132336 020527 100000 CMP R5,#PRGSRT ;TRYING TO LOAD INTO KLDCP ?
≠BLO≡≥ 132342 103403 BLO 10$ ;NO
≤PMSG≡≥ PMSG <\ADR ERR>
≡$PMSG≡≡$PMSG≡≥ 132344 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 132346 146677 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡$LDBNE≡≥ 132350 000765 BR $LDBNE ;YES, BAD !!
≠MOVB≡≡R0≡≡R5≡≥ 132352 110025 10$: MOVB R0,(R5)+ ;STORE DATA 1 BYTE AT A TIME
≠BR≡≡LDBIN2≡≥ 132354 000752 BR LDBIN2 ;LOOP
≥
≠CMPB≡≡R0≡≡R5≡≥ 132356 120015 1$: CMPB R0,(R5)
≠BNE≡≥ 132360 001002 BNE 3$
≠INC≡≡R5≡≥ 132362 005205 2$: INC R5
≠BR≡≡LDBIN2≡≥ 132364 000746 BR LDBIN2
≤PUSH≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 285
DTA11 PAL[KL,SYS] Page 11 PROGRAM FILE LOADER, 4-SEPT-75
≥ 3$: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡$PMSG≡≡$PMSG≡≥ 132370 104025 $PMSG
≡$$LD11≡≡$$LD11≡≥ 132372 131701 $$LD11 ;"11 ERR,ADR="
≥
≠MOV≡≡R5≡≡R0≡≥ 132374 010500 MOV R5,R0
≡PNTOCT≡≡PNTOCT≡≥ 132376 104035 PNTOCT
≥
≡$PMSG≡≡$PMSG≡≥ 132400 104025 $PMSG
≡$$COR≡≡$$COR≡≥ 132402 131715 $$COR ;"COR="
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≡PNTOCS≡≡PNTOCS≡≥ 132406 104036 PNTOCS
≥
≡PSPACE≡≡PSPACE≡≥ 132410 104032 PSPACE
≡$PMSG≡≡$PMSG≡≥ 132412 104025 $PMSG
≡$$ACT≡≡$$ACT≡≥ 132414 131722 $$ACT ;"ACT="
≠MOVB≡≡R5≡≡R0≡≥ 132416 111500 MOVB (R5),R0
≠BIC≡≡R0≡≥ 132420 042700 177400 BIC #177400,R0
≡PNTOCS≡≡PNTOCS≡≥ 132424 104036 PNTOCS
≡PCRLF≡≡PCRLF≡≥ 132426 104031 PCRLF
≠BR≡≥ 132430 000754 BR 2$
≥
≡DVWRD≡≡DVWRD≡≥ 132432 104164 LJMP: DVWRD ;GET POSSIBLE XFER ADDRESS
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡DVFRAM≡≡DVFRAM≡≥ 132436 104163 DVFRAM
≠TSTB≡≡$CKS11≡≥ 132440 105737 151070 TSTB $CKS11 ;CORRECT CHECKSUM ?
≠BNE≡≡LDBINE≡≥ 132444 001325 BNE LDBINE ;BR IF BAD
≤POP≡≥ POP R0 ;SETUP START ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡LD11DN≡≥ 132450 000667 BR LD11DN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 286
DTA11 PAL[KL,SYS] Page 12 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;KL10 LOAD D-RAM ROUTINE
≥
≥ ;CALLS "WDRAM" WITH R0 = D-RAM ADDRESS
≥ ; R1 = LOAD DATA ADDRESS
≥
≠MOV≡≡LDCNT≡≡R2≡≥ 132452 013702 150740 LDDRAM: MOV LDCNT,R2 ;GET LOAD WORD COUNT
≠BEQ≡≥ 132456 001437 BEQ 2$ ;WC = 0, TRANSFER BLOCK
≠MOV≡≡LDADR≡≡R3≡≥ 132460 013703 150742 MOV LDADR,R3 ;SETUP D-RAM ADDRESS
≠MOV≡≡LDATA≡≡R4≡≥ 132464 012704 150744 MOV #LDATA,R4 ;DATA PICKUP ADDRESS
≥
≠MOV≡≡R3≡≡R0≡≥ 132470 010300 1$: MOV R3,R0 ;D-RAM ADDRESS TO R0
≠MOV≡≡R4≡≡R1≡≥ 132472 010401 MOV R4,R1 ;DATA ADDRESS TO R1
≥
≠TST≡≡VERIFY≡≥ 132474 005737 147730 TST VERIFY
≠BNE≡≥ 132500 001001 BNE 11$ ;VERIFY D-RAM
≡WDRAM≡≡WDRAM≡≥ 132502 104127 WDRAM ;WRITE D-RAM
≥
≠MOV≡≡R3≡≡R0≡≥ 132504 010300 11$: MOV R3,R0
≡RDRAM≡≡RDRAM≡≥ 132506 104126 RDRAM ;READ D-RAM
≠MOV≡≡R0≡≡R5≡≥ 132510 010005 MOV R0,R5
≠BIC≡≡R0≡≥ 132512 042710 000020 BIC #20,(R0) ;CLEAR COMPUTED PARITY
≠CMP≡≡R0≡≡R1≡≥ 132516 022021 CMP (R0)+,(R1)+ ;COMPARE EVEN WORD
≠BNE≡≥ 132520 001020 BNE 20$
≠BIC≡≡R0≡≥ 132522 042710 000020 BIC #20,(R0) ;CLEAR COMPUTED PARITY
≠CMP≡≡R0≡≡R1≡≥ 132526 022021 CMP (R0)+,(R1)+ ;COMPARE ODD WORD
≠BNE≡≥ 132530 001014 BNE 20$
≠CMP≡≡R0≡≡R1≡≥ 132532 021011 CMP (R0),(R1) ;COMPARE COMMON WORD
≠BNE≡≥ 132534 001012 BNE 20$
≠ADD≡≡R3≡≥ 132536 062703 000002 21$: ADD #2,R3 ;TO NEXT EVEN D-RAM ADDRESS
≠ADD≡≡R4≡≥ 132542 062704 000006 ADD #6,R4 ;SETUP NEXT DATA PICKUP ADR
≠SUB≡≡R2≡≥ 132546 162702 000003 SUB #3,R2 ;DECREMENT WORD COUNT
≠BGT≡≥ 132552 003346 BGT 1$ ;BR IF NOT DONE YET
≠BR≡≡$LLD2≡≥ 132554 000473 BR $LLD2 ;BACK FOR NEXT LOAD FILE LINE
≥
≠JMP≡≡LDDONE≡≥ 132556 000137 131772 2$: JMP LDDONE ;LOAD FINISHED
≥
≡$PMSG≡≡$PMSG≡≥ 132562 104025 20$: $PMSG
≡$$RAM≡≡$$RAM≡≥ 132564 131727 $$RAM ;"RAM ERR,COR="
≠MOV≡≡R3≡≡R0≡≥ 132566 010300 MOV R3,R0
≠MOV≡≡R4≡≡R1≡≥ 132570 010401 MOV R4,R1
≡PNTDRM≡≡PNTDRM≡≥ 132572 104143 PNTDRM ;PRINT CORRECT D-RAM
≥
≡$PMSG≡≡$PMSG≡≥ 132574 104025 $PMSG
≡$$ACT≡≡$$ACT≡≥ 132576 131722 $$ACT ;"ACT="
≠MOV≡≡R3≡≡R0≡≥ 132600 010300 MOV R3,R0
≠MOV≡≡R5≡≡R1≡≥ 132602 010501 MOV R5,R1
≡PNTDRM≡≡PNTDRM≡≥ 132604 104143 PNTDRM ;PRINT ACTUAL D-RAM
≠BR≡≥ 132606 000753 BR 21$ ;CONTINUE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 287
DTA11 PAL[KL,SYS] Page 13 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;KL10 C-RAM ZERO
≥
≠COMMEN≡≥ COMMENT ⊗
≥
≥ RAM file. The RAM file is ascii-ized text. A RAM file consists of a
≥ Z-line, some C-lines, and some D-lines. The Z-line zeros a selected
≥ region of the CRAM. Each C-line loads one or more microcode words
≥ into the CRAM. The D-lines load the DRAM.
≥
≥ Z wc,addr,count,chksum<crlf>
≥ The "Z " and the commas and crlf are literal. WC is ignored
≥ and may be an empty string. ADDR is the first location in
≥ the CRAM to zero; COUNT is the number of words of CRAM to zero.
≥ If COUNT is zero, nothing is zeroed (one Z line must appear
≥ in the file). Chksum, as always, is the negative of the 16-bit
≥ sum of all preceding fields.
≥
≥ C wc,addr,w0pt0,w0pt1,w0pt2,w0pt3,w0pt4,w0pt5,w1pt0....,chksum
≥ WC is a multiple of 6. Six 16-bit fields are loaded into
≥ each CRAM word. Note: In octal format, denoted by CO, the
≥ fields above are partly reversed. They appear in the order:
≥ Pt4,Pt3,Pt2,Pt1,Pt0,Pt5. This is the same format as the
≥ EC and DC commands use.
≥ Pt5 is the spec field. Other fields are:...
≥ A zero WC signifies the CRAM start address is in ADDR, and
≥ that D-lines follow.
≥
≥
≥ D wc,addr,w0pt0,w0pt1,w0pt2,w2tp0,w2pt1,w2pt2,....,chksum
≥ WC must be a multiple of 3. Three 16-bit fields are loaded
≥ into an even-odd pair of DRAM locations specified by addr
≥ (which should be even). WC=0 signifies end of file.
≥
≥ ⊗
≥
≥
≥
≡MRESET≡≡MRESET≡≥ 132610 104076 LDCZRO: MRESET ;MASTER RESET
≠TST≡≡VERIFY≡≥ 132612 005737 147730 TST VERIFY
≠BNE≡≥ 132616 001006 BNE 2$ ;NO ZEROING IF VERIFY
≠MOV≡≡LDATA≡≡R1≡≥ 132620 013701 150744 MOV LDATA,R1 ;GET C-RAM ZERO COUNT
≠BEQ≡≥ 132624 001403 BEQ 2$ ;0 ZERO COUNT, BYPASS ZEROING C-RAM
≠MOV≡≡LDADR≡≡R0≡≥ 132626 013700 150742 MOV LDADR,R0 ;SETUP STARTING ADDRESS
≥
≡MICNUL≡≡MICNUL≡≥ 132632 104203 MICNUL ;ZERO C-RAM
≠INC≡≡LDCNTL≡≥ 132634 005237 150734 2$: INC LDCNTL ;ADVANCE LOAD CONTROL TO C-RAM LOAD
≠BR≡≡$LLD2≡≥ 132640 000441 BR $LLD2
≥
≥ ;KL10 LOAD C-RAM ROUTINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 288
DTA11 PAL[KL,SYS] Page 13.1 PROGRAM FILE LOADER, 4-SEPT-75
≥
≥ ;CALLS "WCRAM" WITH R0 = C-RAM ADDRESS
≥ ; R1 = DATA PICKUP ADDRESS
≥
≠MOV≡≡LDCNT≡≡R2≡≥ 132642 013702 150740 LDCRAM: MOV LDCNT,R2 ;GET LOAD WORD COUNT
≠BEQ≡≥ 132646 001440 BEQ 2$ ;WC = 0, TRANSFER BLOCK
≠MOV≡≡LDADR≡≡R3≡≥ 132650 013703 150742 MOV LDADR,R3 ;SETUP C-RAM ADDRESS
≠BIS≡≡BIT14≡≡R3≡≥ 132654 052703 040000 BIS #BIT14,R3 ;SET SPECIAL RESET BIT
≠MOV≡≡LDATA≡≡R4≡≥ 132660 012704 150744 MOV #LDATA,R4 ;DATA PICKUP ADDRESS
≥
≠TST≡≡LDOCTF≡≥ 132664 005737 150736 1$: TST LDOCTF ;LOADING OCTAL ?
≠BNE≡≥ 132670 001035 BNE 3$ ;YES
≠MOV≡≡R3≡≡R0≡≥ 132672 010300 4$: MOV R3,R0 ;C-RAM ADDRESS TO R0
≠MOV≡≡R4≡≡R1≡≥ 132674 010401 MOV R4,R1 ;DATA PICKUP ADDRESS TO R1
≥
≠TST≡≡VERIFY≡≥ 132676 005737 147730 TST VERIFY
≠BNE≡≥ 132702 001001 BNE 41$
≡WCRAM≡≡WCRAM≡≥ 132704 104073 WCRAM ;WRITE C-RAM
≠MOV≡≡R3≡≡R0≡≥ 132706 010300 41$: MOV R3,R0
≡RCRAM≡≡RCRAM≡≥ 132710 104074 RCRAM ;READ C-RAM BACK
≥
≠MOV≡≡R5≡≥ 132712 012705 000006 MOV #6,R5
≠MOV≡≡R4≡≡R1≡≥ 132716 010401 MOV R4,R1
≠CMP≡≡R0≡≡R1≡≥ 132720 022021 11$: CMP (R0)+,(R1)+ ;RAM LOADED PROPERLY ?
≠BNE≡≥ 132722 001035 BNE 12$ ;NO
≠DEC≡≡R5≡≥ 132724 005305 DEC R5
≠BNE≡≥ 132726 001374 BNE 11$
≠INC≡≡R3≡≥ 132730 005203 42$: INC R3 ;TO NEXT C-RAM ADDRESS
≠ADD≡≡R4≡≥ 132732 062704 000014 ADD #12.,R4 ;TO NEXT PICKUP ADDRESS
≠SUB≡≡R2≡≥ 132736 162702 000006 SUB #6,R2 ;DECREMENT WORD COUNT, 6 11 WDS PER
≠BGT≡≥ 132742 003350 BGT 1$ ;BR IF NOT DONE YET
≡$LLD2≠≥ 132744 $LLD2=.
≠JMP≡≡LLD2≡≥ 132744 000137 131150 JMP LLD2 ;GET NEXT LOAD FILE LINE
≠MOV≡≡LDADR≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 289
DTA11 PAL[KL,SYS] Page 14 PROGRAM FILE LOADER, 4-SEPT-75
≥ 132750 013700 150742 2$: MOV LDADR,R0 ;SELECT C-RAM STARTING ADDRESS
≡WWADR≡≡WWADR≡≥ 132754 104075 WWADR ;WRITE ADDRESS TO C-RAM
≠INC≡≡LDCNTL≡≥ 132756 005237 150734 INC LDCNTL ;ADVANCE LOAD CONTROL TO D-RAM LOAD
≠BR≡≡$LLD2≡≥ 132762 000770 BR $LLD2
≥
≥ ;OCTAL C-RAM LOAD, DATA IS BACKWARDS FROM UPSIDE DOWN NORMAL
≥
≠MOV≡≡R4≡≡R0≡≥ 132764 011400 3$: MOV (R4),R0 ;GET WORD 0
≠MOV≡≡R4≡≡R4≡≥ 132766 016414 000010 MOV 10(R4),(R4) ;PUT WORD 5 IN 0'S PLACE
≠MOV≡≡R0≡≡R4≡≥ 132772 010064 000010 MOV R0,10(R4) ;PUT WORD 0 IN 5'S PLACE
≠MOV≡≡R4≡≡R0≡≥ 132776 016400 000002 MOV 2(R4),R0 ;GET WORD 1
≠MOV≡≡R4≡≡R4≡≥ 133002 016464 000006 000002 MOV 6(R4),2(R4) ;PUT WORD 4 IN 1'S PLACE
≠MOV≡≡R0≡≡R4≡≥ 133010 010064 000006 MOV R0,6(R4) ;PUT WORD 1 IN 4'S PLACE
≠BR≡≥ 133014 000726 BR 4$ ;NOW GO LOAD IN C-RAM
≥
≡$PMSG≡≡$PMSG≡≥ 133016 104025 12$: $PMSG ;"RAM ERR,COR="
≡$$RAM≡≡$$RAM≡≥ 133020 131727 $$RAM
≠MOV≡≡R3≡≡R0≡≥ 133022 010300 MOV R3,R0
≠MOV≡≡R4≡≡R1≡≥ 133024 010401 MOV R4,R1
≡PNTCRM≡≡PNTCRM≡≥ 133026 104142 PNTCRM
≡PCRLF≡≡PCRLF≡≥ 133030 104031 PCRLF
≡$PMSG≡≡$PMSG≡≥ 133032 104025 $PMSG
≡$$ACT≡≡$$ACT≡≥ 133034 131722 $$ACT ;"ACT="
≠MOV≡≡R3≡≡R0≡≥ 133036 010300 MOV R3,R0
≠MOV≡≡$BUFRC≡≡R1≡≥ 133040 012701 147514 MOV #$BUFRC,R1
≡PNTCRM≡≡PNTCRM≡≥ 133044 104142 PNTCRM
≡PCRLF≡≡PCRLF≡≥ 133046 104031 PCRLF
≠BR≡≥ 133050 000727 BR 42$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 290
DTA11 PAL[KL,SYS] Page 15 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;LOAD TEN CORE ZERO
≥
≥ ; START ADDRESS, LOW 16 BITS IN LDADR
≥ ; , BITS 18 & 19 IN HI-BYTE OF LDCNT
≥ ; ZERO COUNT IN LDATA
≥ ; WORD COUNT SIGNIFIES NUMBER OF LDATA WORDS USED FOR ZEROING
≥ ; "D10ZRO" - INCREMENTS PDP-10 ADDRESS WHILE ZEROING
≥
≠MOV≡≡L10ADR≡≡R3≡≥ 133052 012703 147702 LDTEN: MOV #L10ADR+2,R3 ;SETUP BLOCK START ADDRESS POINTER
≠CLR≡≡R3≡≥ 133056 005013 CLR (R3)
≠MOVB≡≡LDCNT≡≡R3≡≥ 133060 113713 150741 MOVB LDCNT+1,(R3) ;HI-BYTE OF LDCNT IS ADR BITS 18 & 19
≠MOV≡≡LDADR≡≡R3≡≥ 133064 013743 150742 MOV LDADR,-(R3) ;SETUP ADR BITS 20-35
≥
≠TST≡≡LDZBLK≡≥ 133070 005737 150730 TST LDZBLK ;TEN CORE ZERO BLOCK ?
≠BEQ≡≡LDRDIN≡≥ 133074 001425 BEQ LDRDIN ;NO, LOAD DATA
≥
≡SM≡≡SM≡≥ 133076 104100 LDTENZ: SM ;START MACHINE
≠BCC≡≥ 133100 103002 BCC 3$
≠JMP≡≡.XCTER≡≥ 133102 000137 104566 JMP .XCTER ;FAILED
≠TST≡≡VERIFY≡≥ 133106 005737 147730 3$: TST VERIFY
≠BNE≡≥ 133112 001015 BNE 2$ ;DON'T ZERO IF VERIFY
≠MOV≡≡LDATA≡≡R4≡≥ 133114 012704 150744 MOV #LDATA,R4
≠MOVB≡≡LDCNT≡≡R2≡≥ 133120 113702 150740 MOVB LDCNT,R2 ;IS WC = 0 ?
≠BEQ≡≥ 133124 001410 BEQ 2$ ;YES, NO ZEROING
≠MOV≡≡R3≡≡R1≡≥ 133126 010301 MOV R3,R1 ;SETUP ADDRESS
≠MOV≡≡R4≡≡R0≡≥ 133130 012400 1$: MOV (R4)+,R0 ;SETUP ZERO COUNT
≡D10ZRO≡≡D10ZRO≡≥ 133132 104112 D10ZRO ;DEPOSIT ZEROS, CLEARING CORE
≠BCS≡≡LD10ER≡≥ 133134 103476 BCS LD10ER
≠MOV≡≡.DPXAD≡≡R1≡≥ 133136 012701 147704 MOV #.DPXAD,R1
≠DEC≡≡R2≡≥ 133142 005302 DEC R2 ;COMPLETED ALL ZEROS ?
≠BNE≡≥ 133144 001371 BNE 1$ ;NOT YET
≥
≠BR≡≡$LLD2≡≥ 133146 000676 2$: BR $LLD2 ;ALL REQUESTED CORE ZEROED.
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 291
DTA11 PAL[KL,SYS] Page 16 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;LOAD TEN DATA
≥
≥ ;CALLS "DPOSVR" WITH R0 = LOAD DATA ADDRESS
≥ ; R1 = PDP-10 ADDRESS
≥
≠MOVB≡≡LDCNT≡≡R2≡≥ 133150 113702 150740 LDRDIN: MOVB LDCNT,R2 ;GET LOAD WORD COUNT
≠BEQ≡≥ 133154 001423 BEQ 2$ ;WC = 0, TRANSFER BLOCK
≠MOV≡≡LDATA≡≡R4≡≥ 133156 012704 150744 MOV #LDATA,R4 ;DATA PICKUP ADDRESS
≥
≠MOV≡≡R3≡≡R1≡≥ 133162 010301 1$: MOV R3,R1
≠MOV≡≡R4≡≡R0≡≥ 133164 010400 MOV R4,R0 ;SETUP DATA PICKUP ADDRESS
≥
≠TST≡≡VERIFY≡≥ 133166 005737 147730 TST VERIFY
≠BNE≡≡LD10V≡≥ 133172 001047 BNE LD10V
≡DPOSVR≡≡DPOSVR≡≥ 133174 104107 DPOSVR ;DEPOSIT & VERIFY
≠BCS≡≡LD10VR≡≥ 133176 103423 BCS LD10VR ;FAILED
≡$LRDIN≠≥ 133200 $LRDIN=.
≠ADD≡≡R3≡≥ 133200 062723 000001 ADD #1,(R3)+ ;INCREMENT 10 ADDRESS
≠ADC≡≡R3≡≥ 133204 005513 ADC (R3)
≠TST≡≡R3≡≥ 133206 005743 TST -(R3)
≠ADD≡≡R4≡≥ 133210 062704 000006 ADD #6,R4 ;SETUP NEXT DATA PICKUP ADDRESS
≠SUB≡≡R2≡≥ 133214 162702 000003 SUB #3,R2 ;DECREMENT WORD COUNT
≠BGT≡≥ 133220 003360 BGT 1$ ;BR IF NOT DONE YET
≠BR≡≡$LLD2≡≥ 133222 000650 BR $LLD2 ;BACK FOR NEXT LOAD FILE LINE
≥
≠MOV≡≡PGOADR≡≡R4≡≥ 133224 012704 157204 2$: MOV #PGOADR,R4
≠MOV≡≡R3≡≡R4≡≥ 133230 012324 MOV (R3)+,(R4)+ ;TRANSFER START ADDRESS
≠MOV≡≡R3≡≡R4≡≥ 133232 011314 MOV (R3),(R4) ;TO GO ADDRESS
≠MOV≡≡PGOCTL≡≥ 133234 012737 000002 157202 MOV #2,PGOCTL
≠JMP≡≡LDDONE≡≥ 133242 000137 131772 JMP LDDONE
≠BMI≡≡LD10ER≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 292
DTA11 PAL[KL,SYS] Page 17 PROGRAM FILE LOADER, 4-SEPT-75
≥ 133246 100431 LD10VR: BMI LD10ER ;N-BIT SET DEPOSIT FAILED
≠BEQ≡≡LD10ER≡≥ 133250 001430 BEQ LD10ER ;Z-BIT SET, EXAMINE FAILED
≡LD10VE≠≥ 133252 LD10VE=.
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≡$PMSG≡≡$PMSG≡≥ 133254 104025 $PMSG ;"10 ERR,ADR="
≡$$TEN≡≡$$TEN≡≥ 133256 131745 $$TEN
≠MOV≡≡L10ADR≡≡R0≡≥ 133260 012700 147700 MOV #L10ADR,R0
≡PNTADR≡≡PNTADR≡≥ 133264 104137 PNTADR
≥
≡$PMSG≡≡$PMSG≡≥ 133266 104025 $PMSG
≡$$COR≡≡$$COR≡≥ 133270 131715 $$COR ;"COR="
≠MOV≡≡R4≡≡R0≡≥ 133272 010400 MOV R4,R0
≡PNT36≡≡PNT36≡≥ 133274 104042 PNT36
≥
≡$PMSG≡≡$PMSG≡≥ 133276 104025 $PMSG
≡$$ACT≡≡$$ACT≡≥ 133300 131722 $$ACT ;"ACT="
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≡PNT36≡≡PNT36≡≥ 133304 104042 PNT36
≡PCRLF≡≡PCRLF≡≥ 133306 104031 PCRLF
≠BR≡≡$LRDIN≡≥ 133310 000733 BR $LRDIN
≥
≠MOV≡≡R1≡≡R0≡≥ 133312 010100 LD10V: MOV R1,R0
≡EXAM≡≡EXAM≡≥ 133314 104103 EXAM ;EXAMINE PRESENT CONTENTS
≠BCS≡≡LD10ER≡≥ 133316 103405 BCS LD10ER ;CAN'T EXAMINE
≠MOV≡≡R0≡≡R1≡≥ 133320 010001 MOV R0,R1
≠MOV≡≡R4≡≡R0≡≥ 133322 010400 MOV R4,R0
≡CMPR36≡≡CMPR36≡≥ 133324 104052 CMPR36 ;COMPARE WITH LOAD FILE
≠BCC≡≡$LRDIN≡≥ 133326 103324 BCC $LRDIN ;OK
≠BR≡≡LD10VE≡≥ 133330 000750 BR LD10VE ;BAD
≥
≡$PMSG≡≡$PMSG≡≥ 133332 104025 LD10ER: $PMSG ;"10 ERR,ADR="
≡$$TEN≡≡$$TEN≡≥ 133334 131745 $$TEN
≠MOV≡≡L10ADR≡≡R0≡≥ 133336 012700 147700 MOV #L10ADR,R0
≡PNTADR≡≡PNTADR≡≥ 133342 104137 PNTADR
≠JMP≡≡$CNTLC≡≥ 133344 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 293
DTA11 PAL[KL,SYS] Page 18 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;DEVICE FILE DIRECTORY LOOKUP
≥
≡SETFLG≡≡SETFLG≡≥ 133350 104055 DEVFIL: SETFLG ;INIT DEVICE LINE COUNT
≡DEVLC≡≡DEVLC≡≥ 133352 150724 DEVLC
≡TTPINI≡≡TTPINI≡≥ 133354 104217 TTPINI ;INIT TTY POINTERS
≠CLR≡≡$OUTBF≡≥ 133356 005037 150254 CLR $OUTBF
≠TST≡≡DEVTYP≡≥ 133362 005737 157310 TST DEVTYP ;LOAD FROM WHAT DEVICE ?
≠BEQ≡≡DTFIL≡≥ 133366 001405 BEQ DTFIL ; 0 = DECTAPE
≠BMI≡≥ 133370 100402 BMI 1$ ; -1 = ACT10
≠JMP≡≡RPFIL≡≥ 133372 000137 100574 JMP RPFIL ; 1 = RP04
≥
≠.IIF≡≡RPASB≡≡$CMDER≡≡RPFIL≠≥ 100574 .IIF NDF RPASB,RPFIL==$CMDER
≠.IF≡≡MONASB≡≥ .IF NDF MONASB
≠JMP≡≡$CMDER≡≥ 133376 000137 100574 1$: JMP $CMDER
≥ .IFF
≥ 1$: JMP ACTFIL
≥ .ENDC
≥
≠TST≡≡FLOPPY≡≥ 133402 005737 157306 DTFIL: TST FLOPPY
≠BEQ≡≥ 133406 001402 BEQ 10$
≡RXFILE≡≡RXFILE≡≥ 133410 104230 RXFILE ;FLOPPY
≠BR≡≥ 133412 000401 BR 11$
≡DTAFIL≡≡DTAFIL≡≥ 133414 104207 10$: DTAFILE
≠BCS≡≥ 133416 103402 11$: BCS 1$
≠JMP≡≡DTRPLD≡≥ 133420 000137 131124 JMP DTRPLD
≠JMP≡≡$NONXF≡≥ 133424 000137 134146 1$: JMP $NONXF ;NON-EX FILE
≥
≥ ;DECTAPE FORMAT
≥ ;FIRST DIRECTORY BLOCK = 102 (8)
≥
≥ ;FILE DIRECTORY BLOCK
≥ ; LINK TO NEXT BLOCK
≥ ; 1 - FILE NAME 1
≥ ; 2 - FILE NAME 2
≥ ; 3 - FILE EXTENSION
≥ ; 4 - DATE
≥ ; 5 - SPARE
≥ ; 6 - START BLOCK #
≥ ; 7 - LENGTH
≥ ; 8 - END BLOCK #
≥ ; 9 - SPARE
≥ ;FILE DATA BLOCK
≥ ; LINK TO NEXT BLOCK
≥ ; 255 DATA WORDS
≥
≥ ;DECTAPE PROGRAM FILE SEARCH
≥
≡DTINIT≡≡DTINIT≡≥ 133430 104156 $DTAFILE:DTINIT ;DECTAPE INITIALIZATION
≠TST≡≡FLOPPY≡≥ 133432 005737 157306 DTAFL1: TST FLOPPY
≠BEQ≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 294
DTA11 PAL[KL,SYS] Page 18.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 133436 001402 BEQ 20$
≡RXRDFL≡≡RXRDFL≡≥ 133440 104232 RXRDFL ;FLOPPY READ FILE
≠BR≡≥ 133442 000401 BR 21$
≡DTRDFL≡≡DTRDFL≡≥ 133444 104211 20$: DTRDFL ;READ UFD DIRECTORY BLOCK
≠BCS≡≥ 133446 103500 21$: BCS 11$ ;EOF, CAN'T FIND FILE
≠MOV≡≡R0≡≡R0≡≥ 133450 011000 MOV (R0),R0 ;PUT FIRST BUFFER ADR IN R0
≠MOV≡≡R1≡≥ 133452 012701 000034 MOV #28.,R1 ;28 ENTRIES IN DIRECTORY
≠MOV≡≡R0≡≡DIRST0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 295
DTA11 PAL[KL,SYS] Page 19 PROGRAM FILE LOADER, 4-SEPT-75
≥ 133456 012037 151146 1$: MOV (R0)+,DIRST0 ;STORE RAD50 NAME
≠MOV≡≡R0≡≡DIRST1≡≥ 133462 012037 151150 MOV (R0)+,DIRST1
≠MOV≡≡R0≡≡DTEXT≡≥ 133466 012037 151144 MOV (R0)+,DTEXT ;STORE RAD50 EXT
≠CMP≡≡R0≡≡R0≡≥ 133472 022020 CMP (R0)+,(R0)+ ;SKIP 2 WORDS
≠MOV≡≡R0≡≡DTSTRT≡≥ 133474 012037 151132 MOV (R0)+,DTSTRT ;SAVE STARTING BLOCK #
≠MOV≡≡R0≡≡DTLNGT≡≥ 133500 012037 151134 MOV (R0)+,DTLNGTH ;SAVE LENGTH
≠CMP≡≡R0≡≡R0≡≥ 133504 022020 CMP (R0)+,(R0)+ ;MOVE TO NEXT ENTRY
≤PUSH≡≥ PUSH <R0,R1>
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≡R50UPK≡≡R50UPK≡≥ 133512 104155 R50UPK ;UNPACK NAME
≡DIRST0≡≡DIRST0≡≥ 133514 151146
≡DIRST2≡≥ 133516 151152 DIRST0,DIRST2
≠BCS≡≥ 133520 103446 BCS 10$
≡R50UPK≡≡R50UPK≡≥ 133522 104155 R50UPK
≡DIRST1≡≡DIRST1≡≥ 133524 151150
≡DIRST3≡≥ 133526 151155 DIRST1,DIRST3+1
≠BCS≡≥ 133530 103442 BCS 10$
≡R50UPK≡≡R50UPK≡≥ 133532 104155 R50UPK ;UNPACK EXTENSION
≡DTEXT≡≡DTEXT≡≥ 133534 151144
≡DTEXTS≡≥ 133536 151136 DTEXT,DTEXTS
≠BCS≡≥ 133540 103436 BCS 10$ ;ERROR RETURN
≥
≠TST≡≡DVDIRF≡≥ 133542 005737 151124 TST DVDIRF ;DOING "DIR" ?
≠BNE≡≡$DTDI1≡≥ 133546 001042 BNE $DTDI1 ;YES
≥
≠MOV≡≡NAMBF≡≡R3≡≥ 133550 012703 151160 MOV #NAMBF,R3 ;LOAD ADDRESS OF INPUT DATA
≠MOV≡≡DIRST2≡≡R4≡≥ 133554 012704 151152 MOV #DIRST2,R4 ;LOAD ADDRESS OF TABLE
≠MOV≡≡R0≡≥ 133560 012700 000006 MOV #6,R0 ;SET COUNT
≠CMPB≡≡R3≡≡R4≡≥ 133564 122324 3$: CMPB (R3)+,(R4)+ ;CHECK NAME DATA
≠BNE≡≥ 133566 001023 BNE 10$ ;BR IF NOT SAME
≠DEC≡≡R0≡≥ 133570 005300 DEC R0 ;DONE 6 TIMES ?
≠BNE≡≥ 133572 001374 BNE 3$ ;BR IF NOT
≠MOV≡≡EXTBF≡≡R3≡≥ 133574 012703 151166 MOV #EXTBF,R3 ;LOAD ADDRESS OF EXT INPUT
≠MOV≡≡DTEXTS≡≡R4≡≥ 133600 012704 151136 MOV #DTEXTS,R4 ;LOAD ADDRESS OF EXT STOR
≠MOV≡≡R0≡≥ 133604 012700 000003 MOV #3,R0 ;SET COUNT 3 CHARS
≠CMPB≡≡R3≡≡R4≡≥ 133610 122324 6$: CMPB (R3)+,(R4)+ ;CHECK EXT DATA
≠BNE≡≥ 133612 001011 BNE 10$ ;BR IF NOT SAME
≠DEC≡≡R0≡≥ 133614 005300 DEC R0 ;DONE 3 TIMES ?
≠BNE≡≥ 133616 001374 BNE 6$ ;BR IF NOT
≤POP≡≥ POP <R1,R0>
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠MOV≡≡DTSTRT≡≡DVBUF≡≥ 133624 013737 151132 151172 MOV DTSTRT,DVBUF ;LOAD STARTING BLOCK
≤EXIT≡≥ EXIT ;NOW GO LOAD FILE
≠JMP≡≡$EXIT≡≥ 133632 000137 124064 JMP $EXIT
≡$DTDI2≠≥ 133636 $DTDI2=.
≤POP≡≥ 10$: POP <R1,R0>
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠DEC≡≡R1≡≥ 133642 005301 DEC R1 ;BEEN THRU 28 ENTRIES ?
≠BNE≡≥ 133644 001304 BNE 1$ ;NOT YET
≠BR≡≡DTAFL1≡≥ 133646 000671 BR DTAFL1 ;TRY NEXT UFD BLOCK
≥
≤EXITER≡≥ 11$: EXITERR
≠JMP≡≡$EXITE≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 296
DTA11 PAL[KL,SYS] Page 19.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 133650 000137 124036 JMP $EXITE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 297
DTA11 PAL[KL,SYS] Page 20 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;DECTAPE/FLOPPY DIRECTORY ROUTINE
≥
≠CLR≡≡NAMBF≡≥ 133654 005037 151160 $DTDI1: CLR NAMBF
≠CLR≡≡DTEXT≡≥ 133660 005037 151144 CLR DTEXT
≠CMP≡≡DIRST2≡≥ 133664 022737 020040 151152 CMP #020040,DIRST2 ;DON'T PRINT SPACES
≠BEQ≡≥ 133672 001414 BEQ 1$
≥
≡$PMSG≡≡$PMSG≡≥ 133674 104025 $PMSG ;PRINT "FILE"
≡DIRST2≡≡DIRST2≡≥ 133676 151152 DIRST2
≥
≡PSPACE≡≡PSPACE≡≥ 133700 104032 PSPACE
≥
≡$PMSG≡≡$PMSG≡≥ 133702 104025 $PMSG ;PRINT "EXT"
≡DTEXTS≡≡DTEXTS≡≥ 133704 151136 DTEXTS
≥
≠MOV≡≡TAB≡≡R0≡≥ 133706 012700 000011 MOV #TAB,R0
≡PNTCHR≡≡PNTCHR≡≥ 133712 104027 PNTCHR
≠MOV≡≡DTLNGT≡≡R0≡≥ 133714 013700 151134 MOV DTLNGTH,R0
≡PNTDEC≡≡PNTDEC≡≥ 133720 104037 PNTDEC ;PRINT NUMBER OF BLOCKS
≥
≡PCRLF≡≡PCRLF≡≥ 133722 104031 PCRLF
≠BR≡≡$DTDI2≡≥ 133724 000744 1$: BR $DTDI2 ;GO DO NEXT
≥
≡TTITRM≡≡TTITRM≡≥ 133726 104022 $DI: TTITRM
≡PNORML≡≡PNORML≡≥ 133730 104044 PNORML
≠TST≡≡DEVTYP≡≥ 133732 005737 157310 TST DEVTYP
≠BEQ≡≡$DTDIR≡≥ 133736 001403 BEQ $DTDIR ;DECTAPE
≠BMI≡≥ 133740 100400 BMI 1$ ;ILLEGAL ON ACT10
≠.LIF≡≡RPASB≡≥ .LIF DF RPASB
≥ JMP $RPDIR ;RP04
≥
≠JMP≡≡$CMDE≡≥ 133742 000137 113364 1$: JMP $CMDE
≥
≡SETFLG≡≡SETFLG≡≥ 133746 104055 $DTDIR: SETFLG
≡DVDIRF≡≡DVDIRF≡≥ 133750 151124 DVDIRF ;SET DIRECTORY FLAG
≠TST≡≡FLOPPY≡≥ 133752 005737 157306 TST FLOPPY
≠BEQ≡≥ 133756 001402 BEQ 1$
≡RXFILE≡≡RXFILE≡≥ 133760 104230 RXFILE ;FLOPPY
≠BR≡≥ 133762 000401 BR 2$
≡DTAFIL≡≡DTAFIL≡≥ 133764 104207 1$: DTAFILE
≠JMP≡≡$CONSL≡≥ 133766 000137 100014 2$: JMP $CONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 298
DTA11 PAL[KL,SYS] Page 21 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;READ DEVICE FRAME SUBROUTINE
≥
≠TST≡≡DVCNT≡≥ 133772 005737 151126 $DVFRAM:TST DVCNT ;USED ALL DATA ?
≠BGT≡≥ 133776 003002 BGT 1$ ;NO
≥
≡DVDATA≡≡DVDATA≡≥ 134000 104160 DVDATA ;YES, READ NEXT BLOCK
≠BCS≡≡DVEOF≡≥ 134002 103431 BCS DVEOF ;EOF
≥
≠MOVB≡≡DVADR≡≡R0≡≥ 134004 117700 015120 1$: MOVB @DVADR,R0 ;GET ONE BYTE
≠INC≡≡DVADR≡≥ 134010 005237 151130 INC DVADR ;INCREMENT PICKUP ADDRESS
≠DEC≡≡DVCNT≡≥ 134014 005337 151126 DEC DVCNT ;COUNT IT
≠BIC≡≡R0≡≥ 134020 042700 177400 BIC #177400,R0 ;CLEAR JUNK, CHAR IS 8 BITS
≠ADD≡≡R0≡≡$CKS11≡≥ 134024 060037 151070 ADD R0,$CKS11
≠BR≡≡$$DVX≡≥ 134030 000444 BR $$DVX
≥
≥ ;READ DEVICE BUFFER SUBROUTINE
≥
≥ $DVDATA:
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ TST DEVTYP
≥ BNE 4$
≥ .ENDC
≥
≠TST≡≡FLOPPY≡≥ 134032 005737 157306 TST FLOPPY
≠BEQ≡≥ 134036 001402 BEQ 1$
≡RXRDFL≡≡RXRDFL≡≥ 134040 104232 RXRDFL ;FLOPPY
≠BR≡≥ 134042 000401 BR 11$
≡DTRDFL≡≡DTRDFL≡≥ 134044 104211 1$: DTRDFL ;DECTAPE READ
≠BCS≡≥ 134046 103405 11$: BCS 3$ ;EOF
≠MOV≡≡R0≡≡DVADR≡≥ 134050 012037 151130 2$: MOV (R0)+,DVADR ;SAVE BUFFER ADDRESS
≠MOV≡≡R0≡≡DVCNT≡≥ 134054 011037 151126 MOV (R0),DVCNT ;SAVE BUFFER BYTE COUNT
≠BR≡≡$$DVX≡≥ 134060 000430 BR $$DVX
≥
≤EXITER≡≥ 3$: EXITERR ;EOF
≠JMP≡≡$EXITE≡≥ 134062 000137 124036 JMP $EXITE
≥
≠.IF≡≡RPASB≡≥ .IF DF RPASB
≥ 4$: MOV #FILDSB,R0
≥ RPRDFL ;RP04 FILE DATA BLOCK READ
≥ BCC 2$
≥
≥ CMP #1,R0 ;ERROR, EOF ?
≥ BEQ DVEOF ;YES
≥ RPERROR ;NO, JUST ERROR
≥ .ENDC
≠TST≡≡LDCNTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 299
DTA11 PAL[KL,SYS] Page 22 PROGRAM FILE LOADER, 4-SEPT-75
≥ 134066 005737 150734 DVEOF: TST LDCNTL ;EOF, PRINTING A HELP FILE ?
≠BMI≡≥ 134072 100404 BMI 1$ ;YES
≤PMSG≡≥ PMSG <\EOF ?>
≡$PMSG≡≡$PMSG≡≥ 134074 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 134076 146710 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 134100 000137 100004 JMP $CNTLC
≠JMP≡≡DAHLPD≡≥ 134104 000137 140400 1$: JMP DAHLPD
≥
≥ ;ASSEMBLE ONE 16 BIT DATA WORD
≥
≡DVFRAM≡≡DVFRAM≡≥ 134110 104163 $DVWRD: DVFRAM ;READ FRAME
≠MOV≡≡R0≡≡LTMP≡≥ 134112 010037 151066 MOV R0,LTMP
≡DVFRAM≡≡DVFRAM≡≥ 134116 104163 DVFRAM ;GET ANOTHER FRAME
≠SWAB≡≡R0≡≥ 134120 000300 SWAB R0 ;PLACE IN HIGH ORDER BYTE
≠BIS≡≡R0≡≡LTMP≡≥ 134122 050037 151066 BIS R0,LTMP ;PUT 2 BYTES TOGETHER
≠MOV≡≡LTMP≡≡R0≡≥ 134126 013700 151066 MOV LTMP,R0 ;PUT BACK IN R0
≠BR≡≡$$DVX≡≥ 134132 000403 BR $$DVX
≥
≥ ;DECTAPE INITIALIZATION
≥
≠MOV≡≡DVBUF≡≥ 134134 012737 000102 151172 $DTINIT:MOV #102,DVBUF ;SET STARTING BLOCK NUMBER
≤EXIT≡≥ $$DVX: EXIT
≠JMP≡≡$EXIT≡≥ 134142 000137 124064 JMP $EXIT
≥
≥ ;FILE NOT FOUND
≥
≠TST≡≡DIAFLG≡≥ 134146 005737 151120 $NONXF: TST DIAFLG ;DOING "DIAMON" FILE SELECTION ?
≠BEQ≡≥ 134152 001402 BEQ 1$ ;NO
≠JMP≡≡DIANF≡≥ 134154 000137 112234 JMP DIANF ;YES, "DIAMON" FILE NOT FOUND
≥
≤PMSG≡≥ 1$: PMSG <NON-EX FILE>
≡$PMSG≡≡$PMSG≡≥ 134160 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 134162 146717 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 134164 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 300
DTA11 PAL[KL,SYS] Page 23 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;RAD50 UNPACK SUBROUTINE
≥
≠ADD≡≡SP≡≥ 134170 062766 000004 000012 $R50UPK:ADD #4,12(SP) ;RETURN OVER TRAILING PARAMETERS
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡$EMADR≡≡R5≡≥ 134200 013705 147634 MOV $EMADR,R5
≠MOV≡≡R5≡≡R4≡≥ 134204 012504 MOV (R5)+,R4 ;RAD50 ADDRESS TO R4
≠MOV≡≡R4≡≡R4≡≥ 134206 011404 MOV (R4),R4 ;RAD50 VALUE TO R4
≠MOV≡≡R5≡≡R3≡≥ 134210 011503 MOV (R5),R3 ;STORE ADDRESS TO R3
≠MOV≡≡R1≡≥ 134212 012701 000002 MOV #2,R1
≠MOV≡≥ 134216 012746 777777 MOV #-1,-(6) ;SET STACK STOP
≠MOV≡≡R4≡≥ 134222 010446 1$: MOV R4,-(6) ;SAVE PREVIOUS VALUE
≠CLR≡≡R4≡≥ 134224 005004 CLR R4 ;CLEAR R4 FOR NEXT REMAINDER
≠MOV≡≡R0≡≥ 134226 011600 2$: MOV (6),R0 ;TAKE 3/4 OF VALUE
≠BISB≡≡PC≡≡R0≡≥ 134230 151700 BISB @PC,R0 ;???????
≠MOV≡≡R0≡≡R2≡≥ 134232 010002 MOV R0,R2
≠ROR≡≡R2≡≥ 134234 006002 ROR R2
≠ASR≡≡R2≡≥ 134236 006202 ASR R2
≠SUB≡≡R2≡≡R0≡≥ 134240 160200 SUB R2,R0
≠BIC≡≡R0≡≥ 134242 042700 000037 BIC #37,R0 ;PREPARE TO TAKE 1/4 OF RESULT
≠SUB≡≡R0≡≥ 134246 160016 SUB R0,(6) ;BUT REDUCE ORIGINAL BY 3/4
≠ROR≡≡R0≡≥ 134250 006000 ROR R0 ;GET 3/16 OF ORIGINAL
≠ASR≡≡R0≡≥ 134252 006200 ASR R0
≠SUB≡≡R0≡≥ 134254 160016 SUB R0,(6)
≠ADD≡≡R0≡≡R4≡≥ 134256 060004 ADD R0,R4 ;THIS GIVES 1ST APPROXIMATION
≠CMP≡≥ 134260 021627 000047 CMP (6),#47 ;LOW AS POSSIBLE ?
≠BHI≡≥ 134264 101360 BHI 2$ ;IF SO THIS IS BYTE REQUIRED
≠ASR≡≡R4≡≥ 134266 006204 ASR R4
≠ASR≡≡R4≡≥ 134270 006204 ASR R4
≠ASR≡≡R4≡≥ 134272 006204 ASR R4
≠DEC≡≡R1≡≥ 134274 005301 DEC R1 ;DONE 2 BYTES ?
≠BNE≡≥ 134276 001351 BNE 1$ ;BR IF NOT
≠CMPB≡≡R4≡≥ 134300 120427 000047 CMPB R4,#47 ;LAST BYTE TOO BIG ?
≠BHI≡≥ 134304 101005 BHI 4$ ;IF YES, ERROR
≠TSTB≡≡R4≡≥ 134306 105704 3$: TSTB R4 ;SPACE ?
≠BEQ≡≥ 134310 001414 BEQ 6$ ;IF YES, ADD 40
≠CMPB≡≡R4≡≥ 134312 120427 000035 CMPB R4,#35 ;IF UNUSED CODE ....
≠BNE≡≥ 134316 001003 BNE 5$
≠MOV≡≡R4≡≥ 134320 012704 000130 4$: MOV #'X,R4 ;ASCII X TO R4
≠BR≡≥ 134324 000414 BR 9$ ;GO TO ERROR EXIT
≠CMPB≡≡R4≡≥ 134326 120427 000033 5$: CMPB R4,#33 ;$ ?
≠BEQ≡≥ 134332 001407 BEQ 8$ ;IF YES, GO ADD 11
≠BHI≡≥ 134334 101004 BHI 7$ ;FOR DIGIT OR DOT ADD 22
≠ADD≡≡R4≡≥ 134336 062704 000040 ADD #40,R4 ;FOR LETTER ADD 100
≠ADD≡≡R4≡≥ 134342 062704 000016 6$: ADD #16,R4
≠ADD≡≡R4≡≥ 134346 062704 000011 7$: ADD #11,R4
≠ADD≡≡R4≡≥ 134352 062704 000011 8$: ADD #11,R4
≠MOVB≡≡R4≡≥ 134356 110423 9$: MOVB R4,(3)+ ;STORE RESULT
≠MOV≡≡R4≡≥ 134360 012604 MOV (6)+,R4 ;GET NEXT BYTE
≠BPL≡≥ 134362 100351 BPL 3$ ;BR IF NOT STACK STOP
≤POP≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 301
DTA11 PAL[KL,SYS] Page 23.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠BR≡≡$$DVX≡≥ 134366 000665 $$$DVX: BR $$DVX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 302
DTA11 PAL[KL,SYS] Page 24 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;DECTAPE READ/WRITE FILE ROUTINES
≥
≠TST≡≡DVBUF≡≥ 134370 005737 151172 $DTRDFL:TST DVBUF ;ANY DATA BLOCKS REMAINING ?
≠BNE≡≡$DTRFL≡≥ 134374 001002 BNE $DTRFL ;YES
≤EXITER≡≥ $$DTXE: EXITERR ;NO
≠JMP≡≡$EXITE≡≥ 134376 000137 124036 JMP $EXITE
≥
≠MOV≡≡DVBUF≡≡DTBLK≡≥ 134402 013737 151172 151052 $DTRFL: MOV DVBUF,DTBLK ;SET REQUESTED BLOCK
≠MOV≡≡DVBUF≡≡CASAV≡≥ 134410 012737 151172 151054 MOV #DVBUF,CASAV ;SET BUFFER ADDRESS
≠MOV≡≡WCSAV≡≥ 134416 012737 777400 151056 MOV #-256.,WCSAV ;SET WORD COUNT
≥
≡DTREAD≡≡DTREAD≡≥ 134424 104161 DTREAD ;DECTAPE READ
≠BCS≡≡$$DTXC≡≥ 134426 103404 BCS $$DTXC ;FAILED
≥
≠MOV≡≡$DTINF≡≡R0≡≥ 134430 012700 134466 MOV #$DTINFO,R0
≤EXIT≡≥ $$DTX: EXIT
≠JMP≡≡$EXIT≡≥ 134434 000137 124064 JMP $EXIT
≥
≠JMP≡≡$CNTLC≡≥ 134440 000137 100004 $$DTXC: JMP $CNTLC ;FAILED
≥
≠MOV≡≡DVBUF≡≡CASAV≡≥ 134444 012737 151172 151054 $DTWTFL:MOV #DVBUF,CASAV
≠MOV≡≡WCSAV≡≥ 134452 012737 777400 151056 MOV #-256.,WCSAV
≥
≡DTWRT≡≡DTWRT≡≥ 134460 104205 DTWRT ;WRITE DECTAPE
≠BCC≡≡$$DTX≡≥ 134462 103364 BCC $$DTX ;OK
≠BR≡≡$$DTXC≡≥ 134464 000765 BR $$DTXC ;FAILED
≥
≡DVBUF≡≡DVBUF≡≥ 134466 151174 $DTINFO:DVBUF+2 ;FIRST USABLE DATA WORD
≥ 134470 000776 510. ;BYTE COUNT
≥
≠MOV≡≡DTBLK≡≡R0≡≥ 134472 012700 151052 $DTBASE:MOV #DTBLK,R0 ;RETURN PARAMETER BASE ADDRESS
≠BR≡≡$$DTX≡≥ 134476 000756 BR $$DTX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 303
DTA11 PAL[KL,SYS] Page 25 PROGRAM FILE LOADER, 4-SEPT-75
≥ ;DECTAPE DEVICE READ/WRITE ROUTINE
≥
≠MOV≡≡TCRDAT≡≡TCDO≡≡R0≡≥ 134500 012700 000005 $DTREAD:MOV #TCRDATA+TCDO,R0
≠BR≡≡$DTXFR≡≥ 134504 000402 BR $DTXFR
≥
≠MOV≡≡TCWDAT≡≡TCDO≡≡R0≡≥ 134506 012700 000015 $DTWRT: MOV #TCWDATA+TCDO,R0
≥
≠MOV≡≡R0≡≡DTXCMD≡≥ 134512 010037 151060 $DTXFR: MOV R0,DTXCMD ;SAVE COMMAND
≠MOV≡≡TRYCTR≡≥ 134516 012737 000003 151062 MOV #3,TRYCTR ;SET MAXIMUM TRY COUNT, 3.
≥
≠MOVB≡≡DTUNIT≡≡R4≡≥ 134524 113704 157277 $DTXF1: MOVB DTUNIT+1,R4 ;SETUP UNIT
≠MOV≡≡WCSAV≡≡TCWC≡≥ 134530 013737 151056 177344 MOV WCSAV,@#TCWC ;SETUP WORD COUNT
≠MOV≡≡CASAV≡≡TCBA≡≥ 134536 013737 151054 177346 MOV CASAV,@#TCBA ;SETUP READ ADDRESS
≠MOV≡≡TCRNUM≡≡TCDO≡≡R0≡≥ 134544 012700 000003 MOV #TCRNUM+TCDO,R0
≠MOV≡≡TCCM≡≡R1≡≥ 134550 012701 177342 MOV #TCCM,R1
≠MOV≡≡TCREV≡≡R3≡≥ 134554 012703 004000 MOV #TCREV,R3
≠MOV≡≡DTBLK≡≡R2≡≥ 134560 013702 151052 MOV DTBLK,R2 ;SETUP BLOCK # AND DIRECTION
≠BPL≡≡$DTXF2≡≥ 134564 100004 BPL $DTXF2
≠NEG≡≡R2≡≥ 134566 005402 NEG R2
≠ADD≡≡R4≡≥ 134570 062704 000010 ADD #10,R4 ;REVERSE, SET REV INDICATOR
≠BIS≡≡R3≡≡R0≡≥ 134574 050300 BIS R3,R0 ;START UP IN REVERSE
≥
≠MOV≡≡REVCNT≡≥ 134576 012737 000006 151074 $DTXF2: MOV #6,REVCNT ;SET MAXIMUM REVERSAL COUNT, 6.
≠CLR≡≡INTSW≡≥ 134604 005037 151072 CLR INTSW ;SET INTSW FOR SEARCH
≥
≤PUSH≡≥ $DTXF3: PUSH R3
≠.NLIST≡≠.IRP≡≠MOV≡≡R3≡≡SP≡≠.LIST≡≠JSR≡≡PC≡≡$TIRDY≡≥ 134612 004737 120670 JSR PC,$TIRDY ;ANY OPERATOR INTERRUPTS ?
≠BCS≡≥ 134616 103413 BCS 2$ ;NO
≠MOVB≡≡$TICHR≡≡R3≡≥ 134620 113703 147744 MOVB $TICHR,R3 ;GET CHAR
≠BICB≡≡R3≡≥ 134624 142703 000200 BICB #200,R3
≠CMPB≡≡CNTRLC≡≡R3≡≥ 134630 122703 000003 CMPB #CNTRLC,R3 ;IS IT CONTROL C ?
≠BNE≡≥ 134634 001004 BNE 2$ ;NO
≠BIC≡≡R1≡≥ 134636 042711 000116 BIC #116,(R1) ;YES, STOP DECTAPE
≠JMP≡≡$TICC≡≥ 134642 000137 120524 JMP $TICC ;AND ABORT
≤POP≡≥ 2$: POP R3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R3≡≠.LIST≡≠BIS≡≡DTUNIT≡≡R0≡≥ 134650 053700 157276 BIS DTUNIT,R0 ;SELECT UNIT
≠MOV≡≡R0≡≡R1≡≥ 134654 010011 MOV R0,(R1) ;SET TCCM
≠BIT≡≡TCERR≡≡TCRDY≡≡R1≡≥ 134656 032711 100200 1$: BIT #TCERR+TCRDY,(R1) ;WAIT FOR DONE OR ERROR
≠BEQ≡≥ 134662 001775 BEQ 1$
≠BMI≡≡DTER≡≥ 134664 100445 BMI DTER ;BR IF ERROR
≠TSTB≡≡INTSW≡≥ 134666 105737 151072 TSTB INTSW ;SEARCH OR TRANSFER ?
≠BNE≡≡DATINT≡≥ 134672 001110 BNE DATINT ;BR IF TRANSFER
≠CMP≡≡TCDT≡≡R2≡≥ 134674 023702 177350 CMP @#TCDT,R2 ;BLOCK MATCH ?
≠BEQ≡≡DTSRF≡≥ 134700 001423 BEQ DTSRF ;BR IF YES
≠BGT≡≡DTSRE≡≥ 134702 003011 BGT DTSRE ;BR IF LARGER
≠BIT≡≡R3≡≡R1≡≥ 134704 030311 BIT R3,(R1) ;SMALLER, REVERSE ?
≠BEQ≡≡$DTXF3≡≥ 134706 001740 BEQ $DTXF3 ;FORWARD, CONTINUE DIRECTION
≠ADD≡≡TCDT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 304
DTA11 PAL[KL,SYS] Page 26 PROGRAM FILE LOADER, 4-SEPT-75
≥ 134710 062737 000003 177350 DTSRA: ADD #3,@#TCDT ;+3 TO TCDT
≠CMP≡≡TCDT≡≡R2≡≥ 134716 023702 177350 CMP @#TCDT,R2 ;LOWER BY 3 OR MORE ?
≠BLOS≡≡DTREV≡≥ 134722 101461 BLOS DTREV ;YES, GO REVERSE
≠BR≡≡$DTXF3≡≥ 134724 000731 BR $DTXF3 ;NO, CONTINUE DIRECTION
≥
≠BIT≡≡R3≡≡R1≡≥ 134726 030311 DTSRE: BIT R3,(R1) ;BLK HIGH, CHECK DIRECTION
≠BNE≡≡$DTXF3≡≥ 134730 001327 BNE $DTXF3 ;BR IF REV, CONTINUE DIRECTION
≠SUB≡≡TCDT≡≥ 134732 162737 000003 177350 SUB #3,@#TCDT ;FWD, -3 TO TCDT
≠CMP≡≡R2≡≡TCDT≡≥ 134740 020237 177350 CMP R2,@#TCDT ;HIGHER BY 3 OR MORE ?
≠BLE≡≡DTREV≡≥ 134744 003450 BLE DTREV ;REVERSE IF HIGHER BY 3 OR MORE
≠BR≡≡$DTXF3≡≥ 134746 000720 BR $DTXF3 ;NO, CONTINUE DIRECTION
≥
≠CMPB≡≡TCCM1≡≡R4≡≥ 134750 123704 177343 DTSRF: CMPB @#TCCM1,R4 ;BLOCK SAME, SAME DIRECTION ?
≠BNE≡≡$DTXF3≡≥ 134754 001315 BNE $DTXF3 ;BR IF NOT, CONTINUE SEARCH
≠COMB≡≡INTSW≡≥ 134756 105137 151072 $DTXF4: COMB INTSW ;WANTED ???
≠MOVB≡≡DTXCMD≡≡R0≡≥ 134762 113700 151060 MOVB DTXCMD,R0 ;SET UP XFER COMMAND
≠TST≡≡DTBLK≡≥ 134766 005737 151052 TST DTBLK
≠BPL≡≡$DTXF3≡≥ 134772 100306 BPL $DTXF3 ;FORWARD READ
≠BIS≡≡R3≡≡R0≡≥ 134774 050300 BIS R3,R0 ;REVERSE READ
≠BR≡≡$DTXF3≡≥ 134776 000704 BR $DTXF3
≥
≠TSTB≡≡INTSW≡≥ 135000 105737 151072 DTER: TSTB INTSW ;SEARCH OR XFER ?
≠BNE≡≡DTERA≡≥ 135004 001003 BNE DTERA ;BR IF XFER
≠TST≡≡TCST≡≥ 135006 005737 177340 TST @#TCST ;END ZONE ?
≠BMI≡≡DTREV≡≥ 135012 100425 BMI DTREV ;BR IF YES, TO REVERSE
≠BIT≡≡TCSOFT≡≡TCST≡≥ 135014 032737 063000 177340 DTERA: BIT #TCSOFT,@#TCST ;CHECK FOR SOFT ERROR
≠BEQ≡≡DTHDER≡≥ 135022 001414 BEQ DTHDER ;BR IF NOT SOFT ERROR
≠DECB≡≡TRYCTR≡≥ 135024 105337 151062 DECB TRYCTR ;3RD TRY ?
≠BEQ≡≡$DTXF3≡≥ 135030 001667 BEQ $DTXF3 ;BR IF YES
≠BR≡≡$DTXF1≡≥ 135032 000634 BR $DTXF1 ;GO TRY AGAIN
≥
≠BIC≡≡R1≡≥ 135034 042711 000116 DTERB: BIC #116,(R1) ;STOP DECTAPE
≤PMSG≡≥ PMSG <?SOFT>
≡$PMSG≡≡$PMSG≡≥ 135040 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135042 146733 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤PMSG≡≥ DTERC: PMSG < DTA ERR>
≡$PMSG≡≡$PMSG≡≥ 135044 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135046 146741 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤EXITER≡≥ EXITERR
≠JMP≡≡$EXITE≡≥ 135050 000137 124036 JMP $EXITE
≥
≠BIC≡≡R1≡≥ 135054 042711 000116 DTHDER: BIC #116,(R1) ;STOP DECTAPE
≤PMSG≡≥ PMSG <?HARD>
≡$PMSG≡≡$PMSG≡≥ 135060 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135062 146752 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡DTERC≡≥ 135064 000767 BR DTERC
≥
≠ADD≡≡R3≡≡R0≡≥ 135066 060300 DTREV: ADD R3,R0 ;CHANGE DIRECTION
≠BIC≡≡BIT12≡≡R0≡≥ 135070 042700 010000 BIC #BIT12,R0
≠DECB≡≡REVCNT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 305
DTA11 PAL[KL,SYS] Page 26.1 PROGRAM FILE LOADER, 4-SEPT-75
≥ 135074 105337 151074 DTREVC: DECB REVCNT ;6TH REVERSAL ?
≠BNE≡≡$DTXF3≡≥ 135100 001243 BNE $DTXF3 ;BR IF NOT
≠BIC≡≡R1≡≥ 135102 042711 000116 BIC #116,(R1) ;STOP DECTAPE
≤PMSG≡≥ PMSG <?REV>
≡$PMSG≡≡$PMSG≡≥ 135106 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135110 146760 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡DTERC≡≥ 135112 000754 BR DTERC
≥
≠BIC≡≡R1≡≥ 135114 042711 000116 DATINT: BIC #116,(R1) ;STOP DECTAPE
≤EXIT≡≥ EXIT ;DONE
≠JMP≡≡$EXIT≡≥ 135120 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 306
DTA11 PAL[KL,SYS] Page 27 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
≥ .SBTTL ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
≥
≥ ;CALL:
≥ ; ASCR50
≥ ; ASCII ADDRESS
≥ ; RAD50 ADDRESS
≥ ;NINE BYTES OF ASCII INPUT
≥ ;THREE WORDS OF RAD50 OUTPUT
≥
≠ADD≡≡SP≡≥ 135124 062766 000004 000012 $ASCR50:ADD #4,12(SP) ;RETURN OVER TRAILING PARAMETERS
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡$EMADR≡≡R5≡≥ 135134 013705 147634 MOV $EMADR,R5
≠MOV≡≡R5≡≡R1≡≥ 135140 012501 MOV (R5)+,R1 ;SETUP ASCII ADDRESS
≠MOV≡≡R5≡≡R4≡≥ 135142 011504 MOV (R5),R4 ;SETUP RAD50 STORAGE ADDRESS
≠MOV≡≡R3≡≥ 135144 012703 066600 MOV #066600,R3
≠CLR≡≡R4≡≥ 135150 005014 1$: CLR (R4) ;RESULT WORD
≠MOV≡≡R0≡≥ 135152 012700 135242 2$: MOV #30$,R0 ;SETUP SCAN TABLE
≠MOVB≡≡R0≡≡R2≡≥ 135156 112002 3$: MOVB (R0)+,R2 ;PUT CONVERSION IN R2
≠BEQ≡≥ 135160 001425 BEQ 20$ ;IF END OF TABLE, ERROR
≠CMPB≡≡R1≡≡R0≡≥ 135162 121120 CMPB (R1),(R0)+ ;COMPARE ASCII CHAR
≠BLO≡≥ 135164 103423 BLO 20$ ;IF LESS THAN TABLE ENTRY, ERROR
≠CMPB≡≡R1≡≡R0≡≥ 135166 121120 CMPB (R1),(R0)+
≠BHI≡≥ 135170 101372 BHI 3$ ;LOOP, HAVEN'T FOUND YET
≠MOVB≡≡R1≡≡R0≡≥ 135172 112100 MOVB (R1)+,R0 ;FOUND, ASCII CHAR TO R0
≠ADD≡≡R2≡≡R0≡≥ 135174 060200 ADD R2,R0 ;CONVERT
≠ASL≡≡R4≡≥ 135176 006314 ASL (R4)
≠ASL≡≡R4≡≥ 135200 006314 ASL (R4)
≠ASL≡≡R4≡≥ 135202 006314 ASL (R4)
≠ADD≡≡R4≡≡R0≡≥ 135204 061400 ADD (R4),R0
≠ASL≡≡R4≡≥ 135206 006314 ASL (R4)
≠ASL≡≡R4≡≥ 135210 006314 ASL (R4)
≠ADD≡≡R0≡≡R4≡≥ 135212 060014 ADD R0,(R4)
≠ASL≡≡R3≡≥ 135214 006303 ASL R3 ;SHIFT RAD50 WORD COUNTER
≠BMI≡≥ 135216 100755 BMI 2$ ;NOT DONE WITH THIS RAD50 YET
≠BEQ≡≥ 135220 001402 BEQ 10$ ;IF 0, ALL DONE
≠TST≡≡R4≡≥ 135222 005724 TST (R4)+ ;STEP TO NEXT RAD50 WORD
≠BR≡≥ 135224 000751 BR 1$ ;GO DO NEXT
≤POP≡≥ 10$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 135230 000137 124064 JMP $EXIT
≤POP≡≥ 20$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXITER≡≥ EXITERR
≠JMP≡≡$EXITE≡≥ 135236 000137 124036 JMP $EXITE
≥
≠.BYTE≡≥ 135242 340
≥ 135243 040
≥ 135244 040 30$: .BYTE 340,' ,' ;SPACE
≠.BYTE≡≥ 135245 367
≥ 135246 044
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 307
DTA11 PAL[KL,SYS] Page 27.1 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
≥ 135247 044 .BYTE 367,'$,'$ ;DOLLAR SIGN
≠.BYTE≡≥ 135250 356
≥ 135251 056
≥ 135252 056 .BYTE 356,'.,'. ;PERIOD
≠.BYTE≡≥ 135253 356
≥ 135254 060
≥ 135255 071 .BYTE 356,'0,'9 ;DIGITS
≠.BYTE≡≥ 135256 300
≥ 135257 101
≥ 135260 132 .BYTE 300,'A,'Z ;UPPER CASE LETTERS
≥ ; .ENABL LC
≠.BYTE≡≥ 135261 240
≥ 135262 141
≥ 135263 172 .BYTE 240,'a,'z ;LOWER CASE LETTERS
≠.BYTE≡≥ 135264 000 .BYTE 0 ;INDICATE THE END OF THE TABLE
≠.EVEN≡≥ 135266 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 308
KLDCP PAL[KL,SYS] Page 5.6 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
≥
≥ ;Disk boot for WAITS
≠.LIF≡≡BOOASB≡≥ .LIF DF BOOASB
≠.INSRT≡≥ .INSRT BOOT.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 309
BOOT PAL[KL,SYS] Page 1 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
≥ COMMENT ⊗ VALID 00003 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00002 00002 .SBTTL DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ C00005 00003 $DS DS command to copy DSKDMP BOOT into KL10 and start it.
≥ C00007 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 310
BOOT PAL[KL,SYS] Page 2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ .SBTTL DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥
≥ ;bootbg is located in 11 high core (152210)
≥ ;bootsz is 2260
≥
≥ ;LD Command to load the bootstrap code from the dectape into 11 memory.
≥
≠.IF≡≡BOOASB≡≥ .IF DF BOOASB
≥
≥ ;LOAD DSKDMP BOOTSTRAP
≠MOV≡≡L10ADR≡≡R3≡≥ 135266 012703 147702 LDBOOT: MOV #L10ADR+2,R3 ;SETUP BLOCK START ADDRESS POINTER
≠CLR≡≡R3≡≥ 135272 005013 CLR (R3)
≠MOVB≡≡LDCNT≡≡R3≡≥ 135274 113713 150741 MOVB LDCNT+1,(R3) ;HI-BYTE OF LDCNT IS ADR BITS 18 & 19
≠MOV≡≡LDADR≡≡R3≡≥ 135300 013743 150742 MOV LDADR,-(R3) ;SETUP ADR BITS 20-35
≠TST≡≡LDZBLK≡≥ 135304 005737 150730 TST LDZBLK ;IS IT A Z LINE?
≠BEQ≡≡LDBDAT≡≥ 135310 001437 BEQ LDBDAT ;NO, LOAD DATA
≠MOV≡≡R3≡≡BOOTBG≡≥ 135312 012337 152262 MOV (R3)+,BOOTBG ;STARTING ZERO ADDRESS (LOW 16 BITS)
≠MOV≡≡R3≡≡BOOTBG≡≥ 135316 011337 152264 MOV (R3),BOOTBG+2 ; HIGH TWO BITS (18 AND 19)
≠CLR≡≡R1≡≥ 135322 005001 CLR R1
≠MOV≡≡LDATA≡≡R2≡≥ 135324 012702 150744 MOV #LDATA,R2
≠MOVB≡≡LDCNT≡≡R3≡≥ 135330 113703 150740 MOVB LDCNT,R3
≠ADD≡≡R2≡≡R1≡≥ 135334 062201 1$: ADD (R2)+,R1 ;ACCUMULATE TOTAL # WORDS TO ZERO
≠DEC≡≡R3≡≥ 135336 005303 DEC R3
≠BNE≡≥ 135340 001375 BNE 1$
≠MOV≡≡R1≡≡R2≡≥ 135342 010102 MOV R1,R2
≤SL≡≥ SL R1,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R1≡≠.LIST≡≠ADD≡≡R2≡≡R1≡≥ 135346 060201 ADD R2,R1 ;TIMES 3 IS NUMBER OF PDP-11 WORDS
≠CMP≡≡R1≡≡BOOTSZ≡≥ 135350 020127 002260 CMP R1,#BOOTSZ
≠BLE≡≥ 135354 003404 BLE 2$ ;BRANCH IF SMALL ENOUGH
≤PMSG≡≥ PMSG <?BOOT TOO LONG>
≡$PMSG≡≡$PMSG≡≥ 135356 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135360 146765 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 135362 000137 100004 JMP $CNTLC
≥
≠MOV≡≡BOOTBF≡≡R1≡≥ 135366 012701 152272 2$: MOV #BOOTBF,R1
≠MOV≡≡BOOTSZ≡≡R2≡≥ 135372 012702 002260 MOV #BOOTSZ,R2
≠CLR≡≡R1≡≥ 135376 005021 3$: CLR (R1)+
≠DEC≡≡R2≡≥ 135400 005302 DEC R2
≠BNE≡≥ 135402 001375 BNE 3$ ;CLEAR OUT THE BOOT BUFFER
≠JMP≡≡LLD2≡≥ 135404 000137 131150 LDBLD2: JMP LLD2 ;DO NEXT LINE
≥
≠MOVB≡≡LDCNT≡≡R0≡≥ 135410 113700 150740 LDBDAT: MOVB LDCNT,R0 ;WC
≠BEQ≡≡LDBXFR≡≥ 135414 001421 BEQ LDBXFR ;WC=0 MEANS TRANSFER BLOCK
≠MOV≡≡LDATA≡≡R1≡≥ 135416 012701 150744 MOV #LDATA,R1
≠MOV≡≡LDADR≡≡R2≡≥ 135422 013702 150742 MOV LDADR,R2
≠SUB≡≡BOOTBG≡≡R2≡≥ 135426 163702 152262 SUB BOOTBG,R2 ;GET OFFSET FROM START OF BUFFER
≠MOV≡≡R2≡≡R3≡≥ 135432 010203 MOV R2,R3
≤SL≡≥ SL R2,2
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R2≡≠ASL≡≡R2≡≠.LIST≡≤SL≡≥ SL R3,1
≠.NLIST≡≠.IF≡≠.REPT≡≠ASL≡≡R3≡≠.LIST≡≠ADD≡≡R3≡≡R2≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 311
BOOT PAL[KL,SYS] Page 2.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 135442 060302 ADD R3,R2 ;TIMES 6 GIVES BYTE OFFSET FROM BOOTBF
≠ADD≡≡BOOTBF≡≡R2≡≥ 135444 062702 152272 ADD #BOOTBF,R2
≠MOV≡≡R1≡≡R2≡≥ 135450 012122 5$: MOV (R1)+,(R2)+ ;COPY A WORD
≠DEC≡≡R0≡≥ 135452 005300 DEC R0
≠BNE≡≥ 135454 001375 BNE 5$
≠BR≡≡LDBLD2≡≥ 135456 000752 BR LDBLD2
≥
≠MOV≡≡R3≡≡BOOTSA≡≥ 135460 012337 152266 LDBXFR: MOV (R3)+,BOOTSA
≠MOV≡≡R3≡≡BOOTSA≡≥ 135464 011337 152270 MOV (R3),BOOTSA+2 ;SAVE AWAY STARTING ADDRESS
≠JMP≡≡LDDONE≡≥ 135470 000137 131772 JMP LDDONE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 312
BOOT PAL[KL,SYS] Page 3 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ;$DS DS command to copy DSKDMP BOOT into KL10 and start it.
≥
≡TTITRM≡≡TTITRM≡≥ 135474 104022 $DS: TTITRM
≠TST≡≡BOOTSA≡≥ 135476 005737 152266 TST BOOTSA
≠BNE≡≥ 135502 001007 BNE 2$
≠TST≡≡BOOTSA≡≥ 135504 005737 152270 TST BOOTSA+2
≠BNE≡≥ 135510 001004 BNE 2$
≤PMSG≡≥ PMSG <?LOAD DSKDMP - USE LD>
≡$PMSG≡≡$PMSG≡≥ 135512 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135514 147004 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 135516 000137 100004 JMP $CNTLC
≥
≠CMP≡≡PEBITS≡≥ 135522 023727 157262 000036 2$: CMP PEBITS,#36
≠BEQ≡≥ 135530 001410 BEQ 3$
≠CMP≡≡PEBITS≡≥ 135532 023727 157262 000037 CMP PEBITS,#37
≠BEQ≡≥ 135540 001404 BEQ 3$
≤PMSG≡≥ PMSG <FIX PARITY ENABLES - PE 36>
≡$PMSG≡≡$PMSG≡≥ 135542 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135544 147032 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 135546 000137 100004 JMP $CNTLC
≥
≠CMP≡≡CLKDFL≡≥ 135552 023727 157252 000017 3$: CMP CLKDFL+4,#17
≠BEQ≡≥ 135560 001402 BEQ 4$
≤PMSG≡≥ PMSG <SOME CACHE DISABLED - USE CE 17\>
≡$PMSG≡≡$PMSG≡≥ 135562 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 135564 147065 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡L10ADR≡≡R3≡≥ 135566 012703 147702 4$: MOV #L10ADR+2,R3
≠MOV≡≡BOOTBG≡≡R3≡≥ 135572 013713 152264 MOV BOOTBG+2,(R3)
≠MOV≡≡BOOTBG≡≡R3≡≥ 135576 013743 152262 MOV BOOTBG,-(R3)
≠MOV≡≡BOOTWD≡≡R2≡≥ 135602 012702 000620 MOV #BOOTWD,R2 ;NUMBER OF PDP-10 WORDS IN BUFFER
≠MOV≡≡BOOTBF≡≡R4≡≥ 135606 012704 152272 MOV #BOOTBF,R4
≡MRESET≡≡MRESET≡≥ 135612 104076 MRESET
≡SM≡≡SM≡≥ 135614 104100 SM
≠MOV≡≡R3≡≡R1≡≥ 135616 010301 1$: MOV R3,R1
≠MOV≡≡R4≡≡R0≡≥ 135620 010400 MOV R4,R0
≡DPOSVR≡≡DPOSVR≡≥ 135622 104107 DPOSVR
≠BCS≡≡DSVER≡≥ 135624 103420 BCS DSVER
≠INC≡≡R3≡≥ 135626 005213 INC (R3) ;STAY IN SAME 64K SECTION
≠ADD≡≡R4≡≥ 135630 062704 000006 ADD #6,R4 ;NEXT PDP-10 WORDS WORTH
≠DEC≡≡R2≡≥ 135634 005302 DEC R2
≠BNE≡≥ 135636 001367 BNE 1$
≠MOV≡≡PGOADR≡≡R4≡≥ 135640 012704 157204 MOV #PGOADR,R4
≠MOV≡≡BOOTSA≡≡R4≡≥ 135644 013724 152266 MOV BOOTSA,(R4)+
≠MOV≡≡BOOTSA≡≡R4≡≥ 135650 013714 152270 MOV BOOTSA+2,(R4)
≠MOV≡≡PGOCTL≡≥ 135654 012737 000002 157202 MOV #2,PGOCTL
≠JMP≡≡$$GO≡≥ 135662 000137 113216 JMP $$GO ;START IT UP
≥
≤PMSG≡≥ DSVER: PMSG <DEX ERROR IN DS>
≡$PMSG≡≡$PMSG≡≥ 135666 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 313
BOOT PAL[KL,SYS] Page 3.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 135670 147126 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 135672 000137 100004 JMP $CNTLC
≥
≥ .ENDC ;IF DF BOOASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 314
KLDCP PAL[KL,SYS] Page 5.7 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥
≥ ;RX01 floppies
≠.LIF≡≡RXASB≡≥ .LIF DF RXASB
≥ .INSRT FLOPPY.PAL
≥
≥ ;RP04 disk
≠.LIF≡≡RPASB≡≥ .LIF DF RPASB
≥ .INSRT RP0411.PAL
≥
≥ ;queued message protocol
≠.LIF≡≡%%QMP≡≥ .LIF DF %%QMP
≠.INSRT≡≥ .INSRT QMP11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 315
QMP11 PAL[KL,SYS] Page 1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ COMMENT ⊗ VALID 00015 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00003 00002 MACROS AND QUEUE ENTRY DEFINITIONS
≥ C00005 00003 ETHERNET OUTPUT COMPLETION INTERRUPT ROUTINE ENOINT, SNDEN, SNDENR
≥ C00009 00004 ENIINT ETHERNET INPUT COMPLETION INTERRUPT ROUTINE
≥ C00016 00005 DTEINT, DTE10D Interrupt routines
≥ C00019 00006 DTE11D - COMPLETION OF TO11 TRANSFER FROM DTE
≥ C00025 00007 QMPCMD - ROUTINE CALLED FROM KLDCP WHEN 10 SENDS ITEM COUNT
≥ C00029 00008 SND10 - ROUTINE TO QUEUE BLOCK FOR XFER TO 10
≥ C00032 00009 QINI - ROUTINE TO INITIALIZE QUEUE STRUCTURES
≥ C00035 00010 $QUEUE - GENERALIZED QUEUE ROUTINE
≥ C00037 00011 QMPINI - ROUTINE TO INITIALIZE INTERRUPT ADDRESSES ETC.
≥ C00040 00012 RQCB/RLCB: first fit dynamic core allocation routines
≥ C00042 00013 $RLCB - ReLease Core Block
≥ C00046 00014 $RQCB - REQUEST CORE BLOCK
≥ C00051 00015 $SAVAL, $SAVVR, $SAVRG Register Save and Restore Co-routines
≥ C00054 ENDMK
≥ C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 316
QMP11 PAL[KL,SYS] Page 2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; MACROS AND QUEUE ENTRY DEFINITIONS
≥ ;
≥
≠.MACRO≡≤CALL≠≥ .MACRO CALL A
≥ JSR PC,A
≥ .ENDM
≥
≠.MACRO≡≤RETURN≠≥ .MACRO RETURN
≥ RTS PC
≥ .ENDM
≥
≠.MACRO≡≤SAVAL≠≥ .MACRO SAVAL
≥ JSR PC,$SAVAL
≥ .ENDM
≥
≠.MACRO≡≤SAVVR≠≥ .MACRO SAVVR
≥ JSR R2,$SAVVR
≥ .ENDM
≥
≠.MACRO≡≤SAVRG≠≥ .MACRO SAVRG
≥ JSR R5,$SAVRG
≥ .ENDM
≥
≠.MACRO≡≤QUEUE≠≥ .MACRO QUEUE A
≥ JSR R5,$QUEUE
≥ .WORD A
≥ .ENDM
≥
≠.MACRO≡≤QCLR≠≥ .MACRO QCLR A
≥ JSR R5,$QCLR
≥ .WORD A
≥ .ENDM
≥
≥ ; THE FOLLOWING DEFINITIONS ARE FOR QUEUE HEADERS
≥ ;
≡QCHN≠≥ 000000 QCHN=0 ; OFFSET TO CHAIN POINTER IN QUEUE ENTRY
≡QSIZ≠≥ 000002 QSIZ=2 ; OFFSET FROM ENTRY TO BYTE COUNT FOR QUEUE ENTRY
≡QREQ≠≥ 000004 QREQ=4 ; OFFSET FROM ENTRY TO REQUEST VALUE FOR QUEUE ENTRY
≡QENWC≠≥ 000006 QENWC=6 ; OFFSET TO ETHERNET PACKET WORD COUNT
≡QENMSG≠≥ 000010 QENMSG==10 ; OFFSET TO START OF EN MESSAGE INSIDE QUEUE BLOCK
≥ ;
≡QHDRSZ≠≥ 000006 QHDRSZ=6 ; SIZE OF QUEUE ENTRY HEADER
≥ ;
≡QNOPMS≠≥ 000000 QNOPMS=0 ; This packet is a no-op
≡QECHRY≠≥ 000001 QECHRY=1 ; THIS PACKET IS AN ECHO RESPONSE
≡QECHRQ≠≥ 000002 QECHRQ=2 ; REQUEST for an echo response
≡QENPKT≠≥ 000003 QENPKT=3 ; An ethernet packet
≡QENADR≠≥ 000004 QENADR=4 ; An ethernet host address.
≡QDTMSG≠≥ 000005 QDTMSG=5 ; Dectape message
≡QENBCC≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 317
QMP11 PAL[KL,SYS] Page 2.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 000006 QENBCC=6 ; Ethernet broadcast-packet control command
≥ ;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 318
QMP11 PAL[KL,SYS] Page 3 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; ETHERNET OUTPUT COMPLETION INTERRUPT ROUTINE ENOINT, SNDEN, SNDENR
≥ ;
≥ ;
≤CALL≡≥ ENOINT: CALL 1$ ; CALL THE REAL INTERRUPT HANDLER
≠JSR≡≡PC≡≥ 135676 004737 135704 JSR PC,1$
≠RTI≡≠RTI≡≥ 135702 000002 RTI ; THEN RETURN FROM INTERRUPT
≥ ;
≥ ; THIS INTERRUPT HANDLER WILL SAVE AND RESTORE REGISTERS
≥ ;
≤SAVVR≡≥ 1$: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 135704 004237 140266 JSR R2,$SAVVR
≠TST≡≡ENOCSR≡≥ 135710 005737 160024 TST ENOCSR ; TEST FOR ERROR INDICATION
≠BMI≡≥ 135714 100417 BMI 3$ ; IF MI THEN COLLISION OR OTHER ERROR
≠INC≡≡EN0PKO≡≥ 135716 005237 157130 INC EN0PKO ; INCREMENT COUNT OF SUCCESSFUL I/OS
≠MOV≡≡ENETQ≡≡R0≡≥ 135722 013700 157046 2$: MOV ENETQ,R0 ; GET QUEUE ADDRESS TO RELEASE BLOCK
≠BEQ≡≥ 135726 001425 BEQ 5$ ; QUEUE EMPTY, MAYBE QUEUE RESET?
≠MOV≡≡R0≡≡ENETQ≡≥ 135730 011037 157046 MOV (R0),ENETQ ; UNCHAIN BLOCK FROM QUEUE
≠BNE≡≥ 135734 001002 BNE 21$ ; IF NE THEN MORE IN CHAIN
≠CLR≡≡ENETQ≡≥ 135736 005037 157050 CLR ENETQ+2 ; IF QUEUE EMPTY, ZERO NEWEST POINTER
≥ 21$:
≤CALL≡≥ CALL QGIVE ; NOW GO RELEASE THE CORE BLOCK
≠JSR≡≡PC≡≡QGIVE≡≥ 135742 004737 136766 JSR PC,QGIVE
≤CALL≡≥ CALL SNDEN ; CHECK ETHERNET QUEUE AND RESTART I/O
≠JSR≡≡PC≡≡SNDEN≡≥ 135746 004737 136010 JSR PC,SNDEN
≤RETURN≡≥ RETURN ; RETURN FROM INTERRUPT
≠RTS≡≡PC≡≥ 135752 000207 RTS PC
≥
≠INC≡≡EN0ER1≡≥ 135754 005237 157126 3$: INC EN0ER1 ; STEP TOTAL RETRY COUNT
≠DEC≡≡EN0TRY≡≥ 135760 005337 157114 DEC EN0TRY ; DECREMENT CURRENT RETRY COUNT
≠BGT≡≥ 135764 003003 BGT 4$ ; OK, RETRY THE MESSAGE AGAIN
≠INC≡≡EN0PER≡≥ 135766 005237 157124 INC EN0PER ; STEP COUNT OF PERMANENT ERRORS
≠BR≡≥ 135772 000753 BR 2$ ; THROW THE BUFFER AWAY, TRY NEXT
≥
≤CALL≡≥ 4$: CALL SNDENR ; RETRY THE CURRENT BUFFER
≠JSR≡≡PC≡≡SNDENR≡≥ 135774 004737 136016 JSR PC,SNDENR
≤RETURN≡≥ RETURN ; AND RETURN
≠RTS≡≡PC≡≥ 136000 000207 RTS PC
≥
≠CLR≡≡ENOCSR≡≥ 136002 005037 160024 5$: CLR ENOCSR ; CLEAR INTERRUPT ENABLE BIT
≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 136006 000207 RTS PC
≥
≥
≥ ; SNDEN SNDENR - Transmit message at head of ENET Queue to the Ethernet
≥ ;
≥ ;SNDENR is the entry point for a retry.
≥ ;
≠MOV≡≡EN0TRY≡≥ 136010 012737 000010 157114 SNDEN: MOV #10,EN0TRY ; SET DEFAULT RETRY COUNT
≠MOV≡≡ENETQ≡≡R0≡≥ 136016 013700 157046 SNDENR: MOV ENETQ,R0 ; GET ADDRESS OF NEXT QUEUE ENTRY
≠BEQ≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 319
QMP11 PAL[KL,SYS] Page 3.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 136022 001424 BEQ 3$ ; NOTHING IN QUEUE
≠MOV≡≡QENWC≡≡R0≡≡R1≡≥ 136024 016001 000006 MOV QENWC(R0),R1 ; GET PACKET WORD COUNT FROM BLOCK
≠BGT≡≥ 136030 003001 BGT 1$ ; IF GT THEN CONTINUE
≡FATAL≡≡FATAL≡≥ 136032 104000 FATAL ; OTHERWISE INDICATE ERROR
≥
≠NEG≡≡R1≡≥ 136034 005401 1$: NEG R1 ; MAKE 2'S COMPLEMENT FOR I/O
≠MOV≡≡R1≡≡ENOWC≡≥ 136036 010137 160020 2$: MOV R1,ENOWC ; SET WORD COUNT IN EN DEVICE
≠ADD≡≡QENMSG≡≡R0≡≥ 136042 062700 000010 ADD #QENMSG,R0 ; POINT TO DATA IN QUEUE ENTRY
≠MOV≡≡R0≡≡ENOWA≡≥ 136046 010037 160022 MOV R0,ENOWA ; SET WORD ADDRESS IN EN DEVICE
≠MOV≡≡EN0TRY≡≡R2≡≥ 136052 013702 157114 MOV EN0TRY,R2 ; USE RETRY VALUE TO SET DELAY
≠MOV≡≡EN0DLY≡≡R2≡≡ENODLY≡≥ 136056 016237 157056 160026 MOV EN0DLY(R2),ENODLY ; SET DELAY VALUE IN EN DEVICE
≠MOV≡≡ENOCSR≡≥ 136064 012737 000101 160024 MOV #101,ENOCSR ; SET GO AND INTERRUPT ENABLE
≤RETURN≡≥ RETURN ; AND RETURN
≠RTS≡≡PC≡≥ 136072 000207 RTS PC
≥
≠CLR≡≡ENOCSR≡≥ 136074 005037 160024 3$: CLR ENOCSR ; CLEAR INT ENABLE AND GO
≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 136100 000207 RTS PC
≥ ;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 320
QMP11 PAL[KL,SYS] Page 4 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; ENIINT ETHERNET INPUT COMPLETION INTERRUPT ROUTINE
≥ ;
≥ ; ENTERED AT COMPLETION OF ETHERNET INPUT
≥ ;
≤CALL≡≥ ENIINT: CALL 1$ ; CALL THE REAL INTERRUPT HANDLER
≠JSR≡≡PC≡≥ 136102 004737 136110 JSR PC,1$
≠RTI≡≠RTI≡≥ 136106 000002 RTI ; AND RETURN FROM INTERRUPT
≥ ;
≤SAVVR≡≥ 1$: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 136110 004237 140266 JSR R2,$SAVVR
≠MOV≡≡R3≡≡SP≡≥ 136114 010346 MOV R3,-(SP) ; AND ONE MORE
≠MOV≡≡R3≡≥ 136116 012703 000002 MOV #2,R3 ; Select other input buffer
≠SUB≡≡EN0IND≡≡R3≡≥ 136122 163703 157106 SUB EN0IND,R3
≠MOV≡≡R3≡≡SP≡≥ 136126 010346 MOV R3,-(SP) ; Save on index to input buffer on stack
≠MOV≡≡ENICSR≡≡SP≡≥ 136130 013746 160034 MOV ENICSR,-(SP) ; Save status of this packet
≠MOV≡≡ENIWC≡≡SP≡≥ 136134 013746 160030 MOV ENIWC,-(SP) ; Save residual word count
≤CALL≡≥ CALL ENISET ; Start reading next packet
≠JSR≡≡PC≡≡ENISET≡≥ 136140 004737 136270 JSR PC,ENISET
≠MOV≡≡EN0IND≡≡R3≡≥ 136144 013703 157106 MOV EN0IND,R3 ; Now, select regular buffer
≠MOV≡≡SP≡≡R1≡≥ 136150 012601 MOV (SP)+,R1 ; GET RESIDUAL WORD COUNT IN R1
≠TST≡≡SP≡≥ 136152 005726 TST (SP)+ ; CHECK FOR OVERRUN OR COLLISION
≠BPL≡≥ 136154 100003 BPL 2$ ; IF PL THEN GOOD PACKET RECIEVED
≠INC≡≡EN0ER2≡≥ 136156 005237 157120 INC EN0ER2 ; INCREMENT COUNT OF INPUT PERM ERRS
≠BR≡≥ 136162 000436 BR 3$ ; AND RESTART THE I/O
≥
≠INC≡≡EN0PKI≡≥ 136164 005237 157122 2$: INC EN0PKI ; INCREMENT COUNT OF INPUT PACKETS
≠BIS≡≡R1≡≥ 136170 052701 177000 BIS #177000,R1 ; INTERFACE REQUIRES THIS CROCK
≠.IF≡≡PCKASB≡≥ .IF DF PCKASB
≥ MOV EN0BUF(R3),R0
≥ SUB #QENMSG,R0 ; Pretend we're a queue block
≥ CALL ENPCHK ; Check to see if it got clobbered later.
≥ .ENDC; DF PCKASB
≠ADD≡≡EN0BSZ≡≡R1≡≥ 136174 062701 000454 ADD #EN0BSZ,R1 ; CONVERT NOW TO POSITIVE W.C.
≠BEQ≡≥ 136200 001427 BEQ 3$ ; HAH, A ZERO LENGTH PACKET...
≥
≥ ;Code to discard quickly any broadcast packets, under control of ENBCCF, set by 10.
≠MOV≡≡EN0BUF≡≡R3≡≡R0≡≥ 136202 016300 157110 MOV EN0BUF(R3),R0 ; address of packet buffer
≠MOVB≡≡R0≡≡R2≡≥ 136206 116002 000001 MOVB 1(R0),R2 ; destination host
≠BNE≡≥ 136212 001004 BNE 20$ ; just if not broadcast packet
≠BIT≡≡ENBCCF≡≥ 136214 032737 000001 157104 BIT #1,ENBCCF ; see if broadcast packets should be ignored
≠BEQ≡≥ 136222 001416 BEQ 3$ ; jump to ignore
≥
≠ASL≡≡R1≡≥ 136224 006301 20$: ASL R1 ; MAKE R1 INTO A BYTE COUNT
≠ADD≡≡QENMSG≡≡R1≡≥ 136226 062701 000010 ADD #QENMSG,R1 ; ADD SPACE FOR BLOCK HDR
≤CALL≡≥ CALL QGET ; GO GET THE BUFFER
≠JSR≡≡PC≡≡QGET≡≥ 136232 004737 137006 JSR PC,QGET
≠BCC≡≥ 136236 103003 BCC 21$ ; C = 0, BUFFER OK, MOVE THE PACKET
≠INC≡≡EN0MEM≡≥ 136240 005237 157116 INC EN0MEM ; INCREMENT COUNT OF LOST PACKETS (NO MEM)
≠BR≡≥ 136244 000405 BR 3$ ; AND RESTART I/O
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 321
QMP11 PAL[KL,SYS] Page 4.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥
≤CALL≡≥ 21$: CALL ENICOP ; MOVE FROM READ BUFFER TO CORE BLOCK
≠JSR≡≡PC≡≡ENICOP≡≥ 136246 004737 136314 JSR PC,ENICOP
≠.IIF≡≡PCKASB≡≥ .IIF DF PCKASB, CALL ENPCHK ; CHECK CHECKSUM
≤QUEUE≡≥ QUEUE TO10Q ; QUEUE THE PACKET TO THE 10
≠JSR≡≡R5≡≡$QUEUE≡≥ 136252 004537 137502 JSR R5,$QUEUE
≠.WORD≡≡TO10Q≡≥ 136256 157052 .WORD TO10Q
≥ ;bug check: (;;;'ed t to make space. We haven't see any recently. TVR/14-Jan-81
≥ ;;; MOVB QENMSG+1(R0),R2 ; "first" byte of message = destination host number
≥ ;;; BEQ 3$ ; zero is broadcast packet.
≥ ;;; CMPB R2,ENIHAD ; compare to our host address
≥ ;;; BEQ 3$ ;
≥ ;;; PMSG <\?EN BAD ADDR\>
≥ ;;;
≥ 3$:
≠.IF≡≡PCKASB≡≥ .IF DF PCKASB
≥ MOV EN0BUF(R3),R0 ; Fill buffer with fixed pattern to see how
≥ MOV #EN0BSZ,R1 ; hardware is losing...
≥ 66$: MOV #52525,(R0)+
≥ SOB R1,66$
≥ .ENDC; DF PCKASB
≠MOV≡≡SP≡≡EN0IND≡≥ 136260 012637 157106 MOV (SP)+,EN0IND ; Next buffer now becomes current
≠MOV≡≡SP≡≡R3≡≥ 136264 012603 MOV (SP)+,R3 ; Restore borrowed register
≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 136266 000207 RTS PC
≥
≥ ;Setup for Ethernet input. R3 is index of input buffer
≠MOV≡≡EN0BUF≡≡R3≡≡ENIWA≡≥ 136270 016337 157110 160032 ENISET: MOV EN0BUF(R3),ENIWA ; SET BUFFER ADDRESS FOR EN DEVICE
≠MOV≡≡EN0BSZ≡≡ENIWC≡≥ 136276 012737 777324 160030 MOV #-EN0BSZ,ENIWC ; AND SET WORD COUNT FOR XFER
≠MOV≡≡ENICSR≡≥ 136304 012737 000101 160034 MOV #101,ENICSR ; SET GO AND INTERRUPT ENABLE
≤RETURN≡≥ RETURN ; GO RETURN FROM INTERRUPT
≠RTS≡≡PC≡≥ 136312 000207 RTS PC
≥
≥ ;enter here with R0 = Address of core block. R1=size of our request
≥ ; R3 = Index of Ethernet input buffer
≤SAVVR≡≥ ENICOP: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 136314 004237 140266 JSR R2,$SAVVR
≠MOV≡≡QENPKT≡≡QREQ≡≡R0≡≥ 136320 012760 000003 000004 MOV #QENPKT,QREQ(R0); SET Packet type in block
≠SUB≡≡QENMSG≡≡R1≡≥ 136326 162701 000010 SUB #QENMSG,R1 ; REDUCE COUNT TO PACKET SIZE (BYTES)
≠ASR≡≡R1≡≥ 136332 006201 ASR R1 ; AND CHANGE TO WORD COUNT
≠MOV≡≡R1≡≡QENWC≡≡R0≡≥ 136334 010160 000006 MOV R1,QENWC(R0) ; STORE PACKET WORD COUNT
≠ADD≡≡QENMSG≡≡R0≡≥ 136340 062700 000010 ADD #QENMSG,R0 ; POINT R0 TO DATA AREA
≠MOV≡≡EN0BUF≡≡R3≡≡R2≡≥ 136344 016302 157110 MOV EN0BUF(R3),R2 ; SET LOCATION OF FIRST WORD
≠MOV≡≡R2≡≡R0≡≥ 136350 012220 5$: MOV (R2)+,(R0)+ ; MOVE WORD FROM READ BUFF TO CORE BLOCK
≠SOB≡≡R1≡≥ 136352 077102 SOB R1,5$ ; LOOP
≤RETURN≡≥ RETURN ; RETURN FROM MOVE
≠RTS≡≡PC≡≥ 136354 000207 RTS PC
≥
≠.IF≡≡PCKASB≡≥ .IF DF PCKASB ;If checksumming PUPs
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 322
QMP11 PAL[KL,SYS] Page 4.2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥
≥ ;Bugtrap: Check PUP checksum of Ethernet packet
≥ ;R0 points to queue entry. (Subtract QENMSG if you have a bare packet)
≥ ENPCHK: SAVVR ;For paranoia's sake
≥ ADD #QENMSG,R0
≥ CMP 2(R0),#1000 ;PUP packet?
≥ BNE 79$ ; No, forget it
≥ CMP (R0)+,(R0)+ ;Skip two header words
≥ MOV (R0),R1 ;Get size
≥ BLE 78$ ; Bad size!
≥ CMP R1,#4000 ;Arbitrary upper limit on size (is this OK?)
≥ BGT 78$
≥ DEC R1 ;Round up, but exclude checksum
≥ ASR R1 ;Convert to words
≥ CLR R2 ;Initial checksum
≥ 71$: ADD (R0)+,R2 ;Add in an entry
≥ ADC R2 ;End around carry
≥ ASL R2 ;Cycle left (stupid PDP-11, ROL rotates carry)
≥ ADC R2 ;Part of cycle left, really!
≥ SOB R1,71$ ;Repeat for each word in message
≥ CMP (R0),#177777 ;If checksum is unspecified, all this was
≥ BEQ 79$ ; for nothing
≥ CMP R2,#177777 ;Special fudge to checksum?
≥ BNE 72$ ; No
≥ CLR R2 ;Yes, 177777->0
≥ 72$: CMP (R0),R2 ;Check checksum
≥ BEQ 79$ ;Good.
≥ ;We have a bad PUP packet.
≥ 78$: br 79$ ;;;FATAL ;Bitch and moan
≥ ;Return, good, bad, otherwise (like non-PUP packet)
≥ 79$: RETURN
≥
≥ .ENDC; DF PCKASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 323
QMP11 PAL[KL,SYS] Page 5 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; DTEINT, DTE10D Interrupt routines
≥
≥ ; DTEINT - INTERRUPT ROUTINE ENTERED ON DTE INTERRUPT
≥ ;
≥ ;
≤CALL≡≥ DTEINT: CALL 1$ ; USE CALL FOR REGISTER SAVE
≠JSR≡≡PC≡≥ 136356 004737 136364 JSR PC,1$
≠RTI≡≠RTI≡≥ 136362 000002 RTI ; RETURN FROM INT
≥
≤SAVRG≡≥ 1$: SAVRG ; SAVE REGS R3-R5
≠JSR≡≡R5≡≡$SAVRG≡≥ 136364 004537 140242 JSR R5,$SAVRG
≠MOV≡≡.STDTE≡≡R3≡≥ 136370 017703 020760 MOV @.STDTE,R3 ; GET DTE STATUS IN REG 3
≠BIT≡≡TO10DN≡≡TO10ER≡≡R3≡≥ 136374 032703 120000 BIT #TO10DN!TO10ER,R3 ; TO10 COMPLETION?
≠BEQ≡≥ 136400 001402 BEQ 2$ ; IF EQ NO
≤CALL≡≥ CALL DTE10D ; GO TO THE CHECK ROUTINE
≠JSR≡≡PC≡≡DTE10D≡≥ 136402 004737 136444 JSR PC,DTE10D
≠BIT≡≡TO11DN≡≡TO11ER≡≡R3≡≥ 136406 032703 000202 2$: BIT #TO11DN!TO11ER,R3 ; TO11 COMPLETION?
≠BEQ≡≥ 136412 001402 BEQ 4$ ; IF EQ NO
≤CALL≡≥ CALL DTE11D ; GO TO THE CHECK ROUTINE
≠JSR≡≡PC≡≡DTE11D≡≥ 136414 004737 136516 JSR PC,DTE11D
≠BIT≡≡TO11DB≡≡R3≡≥ 136420 032703 004000 4$: BIT #TO11DB,R3 ; IS IT DOORBELL INTERRUPT?
≠BEQ≡≥ 136424 001406 BEQ 6$ ; IF EQ NO
≠MOV≡≡T11DBF≡≥ 136426 012737 000001 157136 MOV #1,T11DBF ; YES, SET SOFTWARE DOORBELL
≠MOV≡≡INT11C≡≡.STDTE≡≥ 136434 012777 002000 020712 MOV #INT11C,@.STDTE ; AND CLEAR DOORBEL INT
≤RETURN≡≥ 6$: RETURN ; RESTORE AND RTI
≠RTS≡≡PC≡≥ 136442 000207 RTS PC
≥
≥ ; DTE10D - ROUTINE ENTERED AT COMPLETION OF XFER TO 10
≥ ;
≥ ; Call with R3=Ending status.
≥ ; If error status is seen, we leave dead message in the Q for
≥ ; SND10 to restart. (really, there should be a retry count)
≥ ;
≤SAVVR≡≥ DTE10D: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 136444 004237 140266 JSR R2,$SAVVR
≠MOV≡≡DON10C≡≡ERR10C≡≡.STDTE≡≥ 136450 012777 050000 020676 MOV #DON10C!ERR10C,@.STDTE ; RESET FLAGS IN DTE STATUS REG
≠CLR≡≡DTEBSY≡≥ 136456 005037 157134 CLR DTEBSY ; CLEAR THE DTEBSY FLAG NOW.
≠MOV≡≡TO10Q≡≡R0≡≥ 136462 013700 157052 MOV TO10Q,R0 ; BUFFER ADDRESS.
≠BEQ≡≥ 136466 001412 BEQ 5$ ; Can't happen. BR if no message address.
≠BIT≡≡TO10ER≡≡R3≡≥ 136470 032703 020000 BIT #TO10ER,R3 ; WAS THIS AN ERROR RETURN?
≠BNE≡≥ 136474 001007 BNE 5$ ; BR if error. Message remains in the Q.
≠MOV≡≡R0≡≡TO10Q≡≥ 136476 011037 157052 MOV (R0),TO10Q ; REMOVE THE BUFFER BLOCK FROM QUEUE
≠BNE≡≥ 136502 001002 BNE 4$ ; NOT LAST ENTRY IN QUEUE
≠CLR≡≡TO10Q≡≥ 136504 005037 157054 CLR TO10Q+2 ; LAST ENTRY IN QUEUE, ZERO END POINTER
≤CALL≡≥ 4$: CALL QGIVE ; GO RELEASE THE CORE BLOCK
≠JSR≡≡PC≡≡QGIVE≡≥ 136510 004737 136766 JSR PC,QGIVE
≤RETURN≡≥ 5$: RETURN ;
≠RTS≡≡PC≡≥ 136514 000207 RTS PC
≥ ;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 324
QMP11 PAL[KL,SYS] Page 6 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; DTE11D - COMPLETION OF TO11 TRANSFER FROM DTE
≥ ;
≥ ; ENTERED FROM DTEINT ROUTINE. R3 = DTE Status at Interrupt.
≥ ;
≥ ; In case of transfer error, sender has been notified in
≥ ; his ending status. Sender will retry from the top.
≥ ;
≥ ;
≤SAVVR≡≥ DTE11D: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 136516 004237 140266 JSR R2,$SAVVR
≠MOV≡≡DON11C≡≡ERR11C≡≡.STDTE≡≥ 136522 012777 000101 020624 MOV #DON11C!ERR11C,@.STDTE ; Clear DONE and ERROR in DTE STATUS
≠MOV≡≡FR10Q≡≡R0≡≥ 136530 013700 157042 MOV FR10Q,R0 ; ADDRESS OF BUFFER BLOCK
≠BEQ≡≥ 136534 001416 BEQ 5$ ; Discard interrupt if no msg block
≠CLR≡≡FR10Q≡≥ 136536 005037 157042 CLR FR10Q ; CLEAR FROM DTE POINTER
≠CLR≡≡R2≡≥ 136542 005002 CLR R2 ; If error, R2 = 0 for no-op
≠BIT≡≡TO11ER≡≡R3≡≥ 136544 032703 000002 BIT #TO11ER,R3 ; IS THE ERROR BIT ON TRANSFER SET
≠BNE≡≥ 136550 001006 BNE 2$ ; If error, branch to call $DTNOP (R2 = 0)
≥ ; NOW LOOK AT THE REQUEST WORD AND SEE WHERE DATA IS MEANT TO GO
≠MOV≡≡QREQ≡≡R0≡≡R2≡≥ 136552 016002 000004 MOV QREQ(R0),R2 ; GET THE REQUEST WORD IN R2
≠ASL≡≡R2≡≥ 136556 006302 ASL R2 ; DOUBLE FOR WORD POINTER
≠CMP≡≡R2≡≡REQMAX≡≥ 136560 020227 000016 CMP R2,#REQMAX ; bounds test
≠BHIS≡≡T11MSE≡≥ 136564 103012 BHIS T11MSE ; br if out of bounds
≠JSR≡≡PC≡≡REQLST≡≡R2≡≥ 136566 004772 136574 2$: JSR PC,@REQLST(R2) ; NOW GO TO THE SUBROUTINE
≤RETURN≡≥ 5$: RETURN ;
≠RTS≡≡PC≡≥ 136572 000207 RTS PC
≥ ;
≥ ;
≠.WORD≡≡$DTNOP≡≥ 136574 136634 REQLST: .WORD $DTNOP ;no-op discard the message
≠.WORD≡≡$ECHRY≡≥ 136576 136634 .WORD $ECHRY ;QECHRY - RESPONSE TO AN ECHO REQUEST
≠.WORD≡≡$11ECH≡≥ 136600 136642 .WORD $11ECH ;QECHRQ - REQUEST FOR AN ECHO
≠.WORD≡≡$11ETH≡≥ 136602 136660 .WORD $11ETH ;QENPKT - Request to send An EtherNet Packet
≠.WORD≡≡$11ADR≡≥ 136604 136676 .WORD $11ADR ;QENADR - REQUEST FROM 10 FOR ETHERNET ADDRESS
≠.WORD≡≡$DTNOP≡≥ 136606 136634 .WORD $DTNOP ;eventually, dectape messages. now unimplemented
≠.WORD≡≡$ENBCC≡≥ 136610 136740 .WORD $ENBCC ;QENBCC - Request to control broadcast packets
≡REQLST≡≡REQMAX≠≥ 000016 REQMAX==.-REQLST
≥
≤PUSH≡≥ T11MSE: PUSH R0 ;save msg block address
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡QREQ≡≡R0≡≡SP≡≥ 136614 016046 000004 MOV QREQ(R0),-(SP) ;save request type
≤PMSG≡≥ PMSG <\T11MSE=>
≡$PMSG≡≡$PMSG≡≥ 136620 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 136622 147146 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≡PNTOCT≡≡PNTOCT≡≥ 136626 104035 PNTOCT ;PRINT Request type
≡PCRLF≡≡PCRLF≡≥ 136630 104031 PCRLF
≤POP≡≥ POP R0 ;restore Msg addr & fall into $ECHRY
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≥ $DTNOP: ; no-op
≤CALL≡≥ $ECHRY: CALL QGIVE ; JUST FREE THE BLOCK
≠JSR≡≡PC≡≡QGIVE≡≥ 136634 004737 136766 JSR PC,QGIVE
≤RETURN≡≥ RETURN ; AND RETURN
≠RTS≡≡PC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 325
QMP11 PAL[KL,SYS] Page 6.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 136640 000207 RTS PC
≥
≠MOV≡≡QECHRY≡≡QREQ≡≡R0≡≥ 136642 012760 000001 000004 $11ECH: MOV #QECHRY,QREQ(R0) ; MAKE PACKET AN ECHO RESPONSE
≤QUEUE≡≥ QUEUE TO10Q ; AND QUEUE IT FOR 10
≠JSR≡≡R5≡≡$QUEUE≡≥ 136650 004537 137502 JSR R5,$QUEUE
≠.WORD≡≡TO10Q≡≥ 136654 157052 .WORD TO10Q
≤RETURN≡≥ RETURN ;
≠RTS≡≡PC≡≥ 136656 000207 RTS PC
≥
≤QUEUE≡≥ $11ETH: QUEUE ENETQ ; QUEUE BUFFER BLOCK TO ETHERNET QUEUE
≠JSR≡≡R5≡≡$QUEUE≡≥ 136660 004537 137502 JSR R5,$QUEUE
≠.WORD≡≡ENETQ≡≥ 136664 157046 .WORD ENETQ
≠BCC≡≥ 136666 103002 BCC 1$ ; BRANCH IF NOT FIRST (ONLY) ENTRY
≤CALL≡≥ CALL SNDEN ; OK, QUEUE IT FOR ETHERNET
≠JSR≡≡PC≡≡SNDEN≡≥ 136670 004737 136010 JSR PC,SNDEN
≤RETURN≡≥ 1$: RETURN
≠RTS≡≡PC≡≥ 136674 000207 RTS PC
≥
≥
≤CALL≡≥ $11ADR: CALL QGIVE ; GO FREE THE QUEUE ENTRY NOW
≠JSR≡≡PC≡≡QGIVE≡≥ 136676 004737 136766 JSR PC,QGIVE
≠MOV≡≡QHDRSZ≡≡R1≡≥ 136702 012701 000010 MOV #QHDRSZ+2,R1 ; NOW WE WILL GET SHORT BLOCK
≤CALL≡≥ CALL QGET ; GO GET THE SHORT BLOCK
≠JSR≡≡PC≡≡QGET≡≥ 136706 004737 137006 JSR PC,QGET
≠BCS≡≥ 136712 103411 BCS 1$ ; Can't get such a block! He'll ask again
≠MOV≡≡ENIHAD≡≡QHDRSZ≡≡R0≡≥ 136714 013760 157032 000006 MOV ENIHAD,QHDRSZ(R0) ; Store ethernet address.
≠MOV≡≡QENADR≡≡QREQ≡≡R0≡≥ 136722 012760 000004 000004 MOV #QENADR,QREQ(R0) ; SET RESPONSE CODE FOR 10
≤QUEUE≡≥ QUEUE TO10Q ; QUEUE FOR 10
≠JSR≡≡R5≡≡$QUEUE≡≥ 136730 004537 137502 JSR R5,$QUEUE
≠.WORD≡≡TO10Q≡≥ 136734 157052 .WORD TO10Q
≤RETURN≡≥ 1$: RETURN ; AND RETURN
≠RTS≡≡PC≡≥ 136736 000207 RTS PC
≥
≥ ;Here to set Ethernet broadcast packet control word.
≠MOV≡≡ENBCCF≡≡R2≡≥ 136740 013702 157104 $ENBCC: MOV ENBCCF,R2 ; get old control word to be returned
≠MOV≡≡QHDRSZ≡≡R0≡≡ENBCCF≡≥ 136744 016037 000006 157104 MOV QHDRSZ(R0),ENBCCF ; set new control word
≠MOV≡≡R2≡≡QHDRSZ≡≡R0≡≥ 136752 010260 000006 MOV R2,QHDRSZ(R0) ; put old control word in return packet
≤QUEUE≡≥ QUEUE TO10Q ; and queue for the 10
≠JSR≡≡R5≡≡$QUEUE≡≥ 136756 004537 137502 JSR R5,$QUEUE
≠.WORD≡≡TO10Q≡≥ 136762 157052 .WORD TO10Q
≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 136764 000207 RTS PC
≥
≠MOV≡≡QSIZ≡≡R0≡≡R1≡≥ 136766 016001 000002 QGIVE: MOV QSIZ(R0),R1 ; GET PACKET SIZE IN R1
≠MOV≡≡R0≡≡R2≡≥ 136772 010002 MOV R0,R2 ; MOV QUEUE ENTRY ADDRESS TO R2
≠MOV≡≡FREEQ≡≡R0≡≥ 136774 012700 157036 MOV #FREEQ,R0 ; AND ADDRESS OF FREEQ TO R0
≤CALL≡≥ CALL $RLCB ; RELEASE THE MEMORY
≠JSR≡≡PC≡≡$RLCB≡≥ 137000 004737 137722 JSR PC,$RLCB
≤RETURN≡≥ RETURN
≠RTS≡≡PC≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 326
QMP11 PAL[KL,SYS] Page 6.2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 137004 000207 RTS PC
≥
≥ ;QGET - Get a free-core block. Call with R1=Request size in bytes.
≥ ; Returns with Carry Set to signify no block available, or,
≥ ; Returns with Carry Clear, R0 = Block address. QSIZ(R0) and QCHN(R0) setup.
≠MOV≡≡FREEQ≡≡R0≡≥ 137006 012700 157036 QGET: MOV #FREEQ,R0 ; ADDRESS OF FREEQ LIST HEADER
≤CALL≡≥ CALL $RQCB ; ALLOCATE BLOCK
≠JSR≡≡PC≡≡$RQCB≡≥ 137012 004737 140046 JSR PC,$RQCB
≠BCS≡≥ 137016 103405 BCS 1$ ; BR if there's no block available
≠CLR≡≡QCHN≡≡R0≡≥ 137020 005060 000000 CLR QCHN(R0) ; CLEAR THE CHAIN WORD IN BLOCK
≠MOV≡≡R1≡≡QSIZ≡≡R0≡≥ 137024 010160 000002 MOV R1,QSIZ(R0) ; SET BUFFER SIZE IN CORE BLOCK
≠CLC≡≠CLC≡≥ 137030 000241 CLC ; RETURN CARRY CLEAR
≤RETURN≡≥ 1$: RETURN
≠RTS≡≡PC≡≥ 137032 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 327
QMP11 PAL[KL,SYS] Page 7 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; QMPCMD - ROUTINE CALLED FROM KLDCP WHEN 10 SENDS ITEM COUNT
≥ ;
≥ ; ENTERED WITH:
≥ ; R5 = 14 IN THE HIGH BYTE
≥ ;
≤CALL≡≥ QMPCMD: CALL $99
≠JSR≡≡PC≡≡$99≡≥ 137034 004737 137044 JSR PC,$99
≠JMP≡≡C10DON≡≥ 137040 000137 107526 JMP C10DON ; RETURN TO CONS11
≥
≤SAVVR≡≥ $99: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 137044 004237 140266 JSR R2,$SAVVR
≤PUSH≡≥ PUSH PS ; SAVE OLD PS
≠.NLIST≡≠.IRP≡≠MOV≡≡PS≡≡SP≡≠.LIST≡≠MOV≡≡PR7≡≡PS≡≥ 137054 012737 000340 177776 MOV #PR7,PS ; AND SET NON-INTERRUPTIBLE STATUS
≠BIT≡≡.BC11≡≥ 137062 032777 007777 020246 BIT #7777,@.BC11 ; Is there a transfer already in progress?
≠BNE≡≡QMPCXT≡≥ 137070 001034 BNE QMPCXT ; Yes, the '10 goofed. We'll just ignore it and
≥ ; let the current transfer finish.
≥ ; *** If the DTE is every real hung, we lose!
≠MOV≡≡$ECMD≡≡R1≡≥ 137072 013701 147576 MOV $ECMD+2,R1 ; WORD COUNT FROM CMD INCLUDES REQUEST
≠ASL≡≡R1≡≥ 137076 006301 ASL R1 ; MAKE BYTE COUNT FOR CORE ALLOCATION
≠ADD≡≡QHDRSZ≡≡R1≡≥ 137100 062701 000004 ADD #QHDRSZ-2,R1 ; ADD ROOM FOR HEADER TO REQUEST SIZE
≠MOV≡≡R1≡≡QMPRQS≡≥ 137104 010137 157034 MOV R1,QMPRQS ; save size of request in case we need QMPRTY
≤CALL≡≥ QMPRY1: CALL QGET ; REQUEST MEMORY
≠JSR≡≡PC≡≡QGET≡≥ 137110 004737 137006 JSR PC,QGET
≠BCS≡≡QMPCXT≡≥ 137114 103422 BCS QMPCXT ; BR if there is no buffer available.
≠CLR≡≡QMPRQS≡≥ 137116 005037 157034 CLR QMPRQS ; clear request size to avoid hassle in QMPRTY
≠MOV≡≡R0≡≡FR10Q≡≥ 137122 010037 157042 MOV R0,FR10Q ; SET HEADER ADDRESS IN FR10Q
≠ADD≡≡QHDRSZ≡≡R0≡≥ 137126 062700 000004 ADD #QHDRSZ-2,R0 ; READ REQUEST AND DATA TO QUEUE ENTRY
≠MOV≡≡R0≡≡.T11AD≡≥ 137132 010077 020204 MOV R0,@.T11AD ; SET BUFFER ADDRESS IN DTE REG
≠SUB≡≡QHDRSZ≡≡R1≡≥ 137136 162701 000004 SUB #QHDRSZ-2,R1 ; REDUCE COUNT FOR HEADER SIZE
≠ASR≡≡R1≡≥ 137142 006201 ASR R1 ; MAKE WORD COUNT AGAIN FOR DTE XFER
≠NEG≡≡R1≡≥ 137144 005401 NEG R1 ; MAKE TWO'S COMPLEMENT COUNT
≠BIC≡≡R1≡≥ 137146 042701 170000 BIC #170000,R1 ; CLEAR HIGH BITS FROM COUNT
≠BIS≡≡INT10≡≡R1≡≥ 137152 052701 100000 BIS #INT10,R1 ; SET BIT TO INTERRUPT 10 WHEN DONE
≠MOV≡≡R1≡≡.BC11≡≥ 137156 010177 020154 MOV R1,@.BC11 ; AND SET BYTE COUNT IN DTE REG
≤POP≡≥ QMPCXT: POP PS ; RESTORE RUN PRIORITY
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡PS≡≠.LIST≡≠RTS≡≡PC≡≥ 137166 000207 RTS PC
≥ ;
≥ ;If there was no buffer space available when the 10 made its request,
≥ ;the QMPCMD routine leaves QMPRQS set to the size of the request.
≥ ;QMPRTY is called from SND10, each time through the command loop.
≥
≤SAVVR≡≥ QMPRTY: SAVVR
≠JSR≡≡R2≡≡$SAVVR≡≥ 137170 004237 140266 JSR R2,$SAVVR
≤PUSH≡≥ PUSH PS
≠.NLIST≡≠.IRP≡≠MOV≡≡PS≡≡SP≡≠.LIST≡≠MOV≡≡PR7≡≡PS≡≥ 137200 012737 000340 177776 MOV #PR7,PS ; AND SET NON-INTERRUPTIBLE STATUS
≠MOV≡≡QMPRQS≡≡R1≡≥ 137206 013701 157034 MOV QMPRQS,R1
≠BEQ≡≡QMPCXT≡≥ 137212 001763 BEQ QMPCXT
≠BR≡≡QMPRY1≡≥ 137214 000735 BR QMPRY1
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 328
QMP11 PAL[KL,SYS] Page 8 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; SND10 - ROUTINE TO QUEUE BLOCK FOR XFER TO 10
≥ ;
≥ ; Called From Console Loop via JSR PC,SND10
≥ ; N.B. ROUTINE RUNS INTERRUPTABLE!!!
≥ ;
≤SAVVR≡≥ SND10: SAVVR ; SAVE REGS R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 137216 004237 140266 JSR R2,$SAVVR
≤PUSH≡≥ PUSH PS
≠.NLIST≡≠.IRP≡≠MOV≡≡PS≡≡SP≡≠.LIST≡≠MOV≡≡PR7≡≡PS≡≥ 137226 012737 000340 177776 MOV #PR7,PS ; set us as non-interuptable.
≠MOV≡≡TO10Q≡≡R0≡≥ 137234 013700 157052 MOV TO10Q,R0 ; Get address of next message to 10
≠BEQ≡≥ 137240 001446 BEQ 3$ ; Nothing in queue. Return
≠TST≡≡DTEBSY≡≥ 137242 005737 157134 TST DTEBSY ; IS THE DTE CURRENTLY BUSY?
≠BEQ≡≥ 137246 001403 BEQ 5$ ; BR if not busy
≠INC≡≡DTEBCT≡≥ 137250 005237 157132 INC DTEBCT ; increment the busy count
≠BNE≡≥ 137254 001040 BNE 3$ ; if it counts out, restart pending xfer
≠CLR≡≡DTEBCT≡≥ 137256 005037 157132 5$: CLR DTEBCT ; reset the busy count
≠MOV≡≡QSIZ≡≡R0≡≡R1≡≥ 137262 016001 000002 MOV QSIZ(R0),R1 ; GET THE BYTE COUNT FROM BLOCK COUNTER
≠SUB≡≡QHDRSZ≡≡R1≡≥ 137266 162701 000004 SUB #QHDRSZ-2,R1 ; SUBTRACT THE HEADER SIZE (INCLUDE REQUEST)
≠BGT≡≥ 137272 003002 BGT 6$ ; try not to be rediculous!
≠MOV≡≡R1≡≥ 137274 012701 000002 MOV #2,R1 ; change a negative or zero count to positive.
≠ASR≡≡R1≡≥ 137300 006201 6$: ASR R1 ; CONVERT TO WORD COUNT FOR DTE XFER
≠MOV≡≡R1≡≡COUN10≡≥ 137302 010137 157076 MOV R1,COUN10 ; SET COUNT FOR DEPOSIT IN 10 MEMORY
≠NEG≡≡R1≡≥ 137306 005401 NEG R1 ; MAKE TWO'S COMPLEMENT FOR XFER
≠ADD≡≡QHDRSZ≡≡R0≡≥ 137310 062700 000004 ADD #QHDRSZ-2,R0 ; POINT TO REQUEST WORD PRECEDING DATA
≠MOV≡≡R0≡≡.T10AD≡≥ 137314 010077 020020 MOV R0,@.T10AD ; SET WORD ADDRESS IN DTE REGISTER
≠MOV≡≡R1≡≡.BC10≡≥ 137320 010177 020010 MOV R1,@.BC10 ; SET WORD COUNT IN DTE REGISTER
≡SETFLG≡≡SETFLG≡≥ 137324 104055 SETFLG ; SET DTEBSY FLAG SO WE DON'T TRY TO WRITE MORE
≡DTEBSY≡≡DTEBSY≡≥ 137326 157134 DTEBSY ; UNTIL WE ARE FINISHED WITH THIS ONE
≠MOV≡≡SP≡≡PS≡≥ 137330 011637 177776 MOV (SP),PS ; Restore interrupts. We're done with Q & DTE
≠.IIF≡≡EPTREL≡≠MOV≡≡XEPT≡≡PRTOFF≡≡$TADSP≡≥ 137334 012737 004000 147424 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ; SET ADDR MODE FOR NXT EXDEP
≡DPOST≡≡DPOST≡≥ 137342 104106 DPOST ; EMT CALL TO DEPOSIT IN 10 MEMORY
≡$DTQMP≡≡$DTQMP≡≥ 137344 000460 $DTQMP ; ADDRESS IN 10 MEMORY
≡COUN10≡≡COUN10≡≥ 137346 157076 COUN10 ; ADDRESS OF PARAMETER STRING
≠MOV≡≡TO10DB≡≡.STDTE≡≥ 137350 012777 000400 017776 MOV #TO10DB,@.STDTE ; RING THE 10'S CHIMES
≤POP≡≥ 3$: POP PS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡PS≡≠.LIST≡≤CALL≡≥ CALL QMPRTY ; See if need a retry of QGET for a TO11 command
≠JSR≡≡PC≡≡QMPRTY≡≥ 137362 004737 137170 JSR PC,QMPRTY
≤RETURN≡≥ RETURN ; AND RETURN
≠RTS≡≡PC≡≥ 137366 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 329
QMP11 PAL[KL,SYS] Page 9 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; QINI - ROUTINE TO INITIALIZE QUEUE STRUCTURES
≡FREEAD≠≥ 003000 FREEAD==3000
≡FREESZ≠≥ 020000 FREESZ==20000
≡FREEAD≡≡FREESZ≡≡FREEND≠≥ 023000 FREEND==FREEAD+FREESZ ;of course.
≥
≥ ; Called by
≥ ; JSR PC,QINI ;Clear all queues. Initialize free memory pool.
≥
≤SAVVR≡≥ QINI: SAVVR ; SAVE R0-R2
≠JSR≡≡R2≡≡$SAVVR≡≥ 137370 004237 140266 JSR R2,$SAVVR
≥
≠MOV≡≡FREEQ≡≡R0≡≥ 137374 012700 157036 MOV #FREEQ,R0 ; ADDRESS OF FREEQ LISTHEAD
≠MOV≡≡FREEAD≡≡R1≡≥ 137400 012701 003000 MOV #FREEAD,R1 ; ADDRESS OF free pool beginning
≥
≠MOV≡≡R1≡≡EN0BUF≡≥ 137404 010137 157110 MOV R1,EN0BUF ; RESERVE FIRST OF FREE CORE
≠ADD≡≡EN0BSZ≡≡R1≡≥ 137410 062701 001130 ADD #EN0BSZ*2,R1 ; FOR ETHERNET INPUT BUFFER(S)
≠MOV≡≡R1≡≡EN0BUF≡≥ 137414 010137 157112 MOV R1,EN0BUF+2 ; MUST DOUBLE BUFFER ETHERNET INPUT
≠ADD≡≡EN0BSZ≡≡R1≡≥ 137420 062701 001130 ADD #EN0BSZ*2,R1
≥
≠MOV≡≡R1≡≡R0≡≥ 137424 010120 MOV R1,(R0)+ ; Set address of free block in list head (FREEQ)
≠CLR≡≡R0≡≥ 137426 005010 CLR (R0) ; CLEAR SECOND WORD (Looks like a zero size blk)
≠CLR≡≡R1≡≥ 137430 005021 CLR (R1)+ ; FREEQ point to a single block. (no link out)
≠MOV≡≡FREESZ≡≡R1≡≥ 137432 012711 020000 MOV #FREESZ,(R1) ; set size of the single free block.
≠SUB≡≡EN0BSZ≡≡R1≡≥ 137436 162711 002260 SUB #EN0BSZ*4,(R1) ; adjust size to account for EN buffers.
≥
≤QCLR≡≥ QCLR FR10Q ; CLEAR THE FR10Q
≠JSR≡≡R5≡≡$QCLR≡≥ 137442 004537 137466 JSR R5,$QCLR
≠.WORD≡≡FR10Q≡≥ 137446 157042 .WORD FR10Q
≤QCLR≡≥ QCLR TO10Q ; CLEAR THE TO10Q
≠JSR≡≡R5≡≡$QCLR≡≥ 137450 004537 137466 JSR R5,$QCLR
≠.WORD≡≡TO10Q≡≥ 137454 157052 .WORD TO10Q
≤QCLR≡≥ QCLR ENETQ ; CLEAR THE ETHERNET QUEUE
≠JSR≡≡R5≡≡$QCLR≡≥ 137456 004537 137466 JSR R5,$QCLR
≠.WORD≡≡ENETQ≡≥ 137462 157046 .WORD ENETQ
≥
≠.IF≡≡FSCASB≡≥ .IF DF FSCASB
≥ CLR WUSED ; Initialize bugtrap counts
≥ CLR NGETS
≥ CLR NGIVES
≥ MOV #1,BFREE ; One BIG block
≥ .ENDC;DF FSCASB
≥
≤RETURN≡≥ RETURN ;
≠RTS≡≡PC≡≥ 137464 000207 RTS PC
≥
≥ ; $QCLR - QUEUE RESET ROUTINE
≥ ;
≥ ; CALLED AS: JSR R5,$QCLR
≥ ; .WORD QPB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 330
QMP11 PAL[KL,SYS] Page 9.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; WHERE QPB IS QUEUE PARAMETER BLOCK
≥ ;
≤PUSH≡≥ $QCLR: PUSH R0 ; SAVE R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡R5≡≡R0≡≥ 137470 012500 MOV (R5)+,R0 ; GET QUEUE PARAMETER BLOCK ADDRESS
≠CLR≡≡R0≡≥ 137472 005020 CLR (R0)+ ; CLEAR POINTER TO OLDEST ENTRY
≠CLR≡≡R0≡≥ 137474 005020 CLR (R0)+ ; AND POINTER TO NEWEST ENTRY
≤POP≡≥ POP R0 ; RESTORE R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTS≡≡R5≡≥ 137500 000205 RTS R5
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 331
QMP11 PAL[KL,SYS] Page 10 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; $QUEUE - GENERALIZED QUEUE ROUTINE
≥ ;
≥ ; CALLED AS: JSR R5,$QUEUE
≥ ; .WORD QPB
≥ ; Where
≥ ; QPB = the address of the Queue Parameter Block, and
≥ ; R0 = the Address of the new Queue item.
≥ ;
≥ ; The new Queue item is:
≥ ; .WORD CHAIN POINTER
≥ ; .WORD BYTE COUNT (INCLUDES QHDRSZ BYTES FOR HEADER)
≥ ; .WORD REQUEST IDENTIFIER
≥ ; .BYTES DATA
≥ ;
≥ ; and the Queue Parameter Block is
≥ ; .WORD POINTER TO OLDEST ENTRY IN QUEUE
≥ ; .WORD POINTER TO NEWEST ENTRY IN QUEUE
≥ ;
≥ ; Routine returns with Carry set if you have just placed
≥ ; the first item in an empty queue.
≥ ;
≤PUSH≡≥ $QUEUE: PUSH R2 ; SAVE R2 IN STACK
≠.NLIST≡≠.IRP≡≠MOV≡≡R2≡≡SP≡≠.LIST≡≠MOV≡≡R5≡≡R2≡≥ 137504 012502 MOV (R5)+,R2 ; ADDRESS OF QUEUE POINTER BLOCK TO R2
≠CLR≡≡R0≡≥ 137506 005010 CLR (R0) ; CLEAR CHAIN WORD IN NEW ENTRY
≠TST≡≡R2≡≥ 137510 005712 TST (R2) ; IS QUEUE EMPTY
≠BNE≡≥ 137512 001004 BNE 1$ ; IF NE NO, QUEUE IS NOT EMPTY
≠MOV≡≡R0≡≡R2≡≥ 137514 010022 MOV R0,(R2)+ ; YES, EMPTY - SET ENTRY ADDRESS
≠MOV≡≡R0≡≡R2≡≥ 137516 010022 MOV R0,(R2)+ ; AND SET NEWEST ENTRY POINTER
≠SEC≡≠SEC≡≥ 137520 000261 SEC ; SET CARRY, FIRST AND ONLY ENTRY IN QUEUE
≠BR≡≥ 137522 000405 BR 2$ ; NOW RETURN
≠MOV≡≡R0≡≡R2≡≥ 137524 010072 000002 1$: MOV R0,@2(R2) ; CHAIN ENTRY TO CURRENT NEWEST ENTRY
≠MOV≡≡R0≡≡R2≡≥ 137530 010062 000002 MOV R0,2(R2) ; AND MAKE IT NEWEST ENTRY
≠CLC≡≠CLC≡≥ 137534 000241 CLC ; CLEAR CARRY, NOT ONLY ENTRY IN QUEUE
≤POP≡≥ 2$: POP R2 ; RESTORE R2
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R2≡≠.LIST≡≠RTS≡≡R5≡≥ 137540 000205 RTS R5 ; RETURN VIA R5
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 332
QMP11 PAL[KL,SYS] Page 11 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; QMPINI - ROUTINE TO INITIALIZE INTERRUPT ADDRESSES ETC.
≥ ;
≥ ; CALLED AS: JSR PC,QMPINI
≥ ;
≤SAVAL≡≥ QMPINI: SAVAL ; SAVE REGS R0-R5
≠JSR≡≡PC≡≡$SAVAL≡≥ 137542 004737 140200 JSR PC,$SAVAL
≤PUSH≡≥ PUSH PS ; SAVE CALLING PRIORITY
≠.NLIST≡≠.IRP≡≠MOV≡≡PS≡≡SP≡≠.LIST≡≠MOV≡≡PR7≡≡R2≡≥ 137552 012702 000340 MOV #PR7,R2 ; GET PRIORITY SEVEN IN R2
≠MOV≡≡R2≡≡PS≡≥ 137556 010237 177776 MOV R2,PS ; SET PRIORITY SEVEN NOW
≠MOV≡≡R1≡≥ 137562 012701 000774 MOV #774,R1 ; GET ADDRESS OF DTE INTERRUPT VECTOR
≠MOV≡≡DTEINT≡≡R1≡≥ 137566 012721 136356 MOV #DTEINT,(R1)+ ; SET DTE INTERRUPT VECTOR ADDRESS
≠MOV≡≡R2≡≡R1≡≥ 137572 010221 MOV R2,(R1)+ ; AND INTERRUPT PRIORITY SEVEN
≠MOV≡≡.DELAY≡≥ 137574 012777 037776 017516 MOV #37776,@.DELAY ; INITIAL DELAY COUNT
≠BIS≡≡INTRON≡≡.STDTE≡≥ 137602 052777 000040 017544 BIS #INTRON,@.STDTE ; SET INTERRUPTS ON
≥ ;
≠MOV≡≡R1≡≥ 137610 012701 000400 MOV #400,R1 ; GET ETHERNET INTERRUPT VECTOR ADDRESS
≠MOV≡≡ENOINT≡≡R1≡≥ 137614 012721 135676 MOV #ENOINT,(R1)+ ; SET INTERRUPT DISPACH ADDR IN VECTOR
≠MOV≡≡R2≡≡R1≡≥ 137620 010221 MOV R2,(R1)+ ; AND INTERRUPT PRIORITY SEVEN
≠MOV≡≡ENIINT≡≡R1≡≥ 137622 012721 136102 MOV #ENIINT,(R1)+ ; SET INTERRUPT DISPACH ADDR IN VECTOR
≠MOV≡≡R2≡≡R1≡≥ 137626 010221 MOV R2,(R1)+ ; AND INTERRUPT PRIORITY SEVEN
≠MOV≡≡ENOINT≡≡R1≡≥ 137630 012721 135676 MOV #ENOINT,(R1)+ ; SET INTERRUPT DISPATCH ADDR IN VECTOR
≠MOV≡≡R2≡≡R1≡≥ 137634 010221 MOV R2,(R1)+ ; AND SET INTERRUPT PRIORITY SEVEN
≠MOV≡≡ENIADR≡≡ENIHAD≡≥ 137636 013737 160036 157032 MOV ENIADR,ENIHAD ; GET THE ETHERNET ADDRESS
≠COMB≡≡ENIHAD≡≥ 137644 105137 157032 COMB ENIHAD ; COMPLEMENT FOR READING
≥ ;
≤CALL≡≥ CALL QINI ; INITIALIZE MEMORY AND QUEUES
≠JSR≡≡PC≡≡QINI≡≥ 137650 004737 137370 JSR PC,QINI
≥ ;
≠MOV≡≡EN0DLY≡≡R0≡≥ 137654 012700 157056 MOV #EN0DLY,R0 ; ADDRESS OF DELAY ARRAY FOR EN0
≠MOV≡≡R1≡≥ 137660 012701 000010 MOV #10,R1 ; MAXIMUM NUMBER OF RETRYS
≠MOV≡≡R2≡≥ 137664 012702 000200 MOV #200,R2 ; MAXIMUM DELAY
≠MOV≡≡R2≡≡R0≡≥ 137670 010220 1$: MOV R2,(R0)+ ; PUT DELAY IN TABLE
≠ASR≡≡R2≡≥ 137672 006202 ASR R2 ; SHIFT IT RIGHT
≠SOB≡≡R1≡≥ 137674 077103 SOB R1,1$ ; LOOP AND FILL TABLE
≥ ;
≠CLR≡≡R3≡≥ 137676 005003 CLR R3 ; Select first buffer
≠MOV≡≡R3≡≡EN0IND≡≥ 137700 010337 157106 MOV R3,EN0IND
≤CALL≡≥ CALL ENISET ; Setup to read first packet
≠JSR≡≡PC≡≡ENISET≡≥ 137704 004737 136270 JSR PC,ENISET
≠CLR≡≡ENBCCF≡≥ 137710 005037 157104 CLR ENBCCF ; DISABLE PASSING EN BROADCAST PACKETS TO 10
≥ ;
≤POP≡≥ POP PS ; RESTORE ENTRY PRIORITY
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡PS≡≠.LIST≡≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 137720 000207 RTS PC
≥ ;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 333
QMP11 PAL[KL,SYS] Page 12 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; RQCB/RLCB: first fit dynamic core allocation routines
≥ ;
≥ ; data structures
≥ ;
≥ ; Free block list header:
≥ ;
≥ ; freehd: .word next ; pointer to next free block or zero
≥ ; .word 0 ; always zero (looks like a too-small block)
≥ ;
≥ ; Free block:
≥ ;
≥ ; freebk: .word next ; pointer to next free block or zero
≥ ; .word size ; size of block in bytes
≥ ;
≥ ; Used block: User pointer to the free block addresses "usedbk" below.
≥ ;
≥ ; .word size ; size of block in bytes (and even number)
≥ ; usedbk: .word data ; Size-2 bytes of user data are permitted
≥ ;
≥ ; The free block list is ordered by the core address of the blocks
≥ ; themselves. This is so block agglomeration can be performed with
≥ ; little overhead.
≥ ;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 334
QMP11 PAL[KL,SYS] Page 13 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; $RLCB - ReLease Core Block
≥ ;
≥ ; Call this subroutine to release a core block to the free list.
≥ ; The free list is searched until the proper slot is found. The Block
≥ ; is merged into the free list. If the block being released is adjacent
≥ ; to other free blocks, then those blocks are agglomerated and the new block
≥ ; is merged into the free list.
≥ ;
≥ ; INPUTS:
≥ ; R0 = ADDRESS OF FREE BLOCK LIST HEAD
≥ ; R2 = ADDRESS OF BLOCK TO RELEASE.
≥ ;
≥ ; OUTPUTS:
≥ ; NONE
≥ ;
≤SAVRG≡≥ $RLCB: SAVRG ; SAVE NON-VOLATILE REGISTERS
≠JSR≡≡R5≡≡$SAVRG≡≥ 137722 004537 140242 JSR R5,$SAVRG
≠MOV≡≡R2≡≡R1≡≥ 137726 014201 MOV -(R2),R1 ; Point to start of block. Get size
≠BLE≡≥ 137730 003445 BLE 99$ ; A non-positive size is unlikely and undesirable
≠BIT≡≡R1≡≥ 137732 032701 000001 BIT #1,R1 ; An odd size is likewise undesirable
≠BNE≡≥ 137736 001042 BNE 99$ ; So, we bomb out.
≠CMP≡≡FREEAD≡≡R2≡≥ 137740 022702 003000 CMP #FREEAD,R2 ; Make sure free block is in bounds
≠BHI≡≥ 137744 101037 BHI 99$ ; BR if out of bounds.
≠MOV≡≡R1≡≡R3≡≥ 137746 010103 MOV R1,R3 ; Copy length of this block to R3
≠ADD≡≡R2≡≡R3≡≥ 137750 060203 ADD R2,R3 ; compute end of this block
≠CMP≡≡FREEND≡≡R3≡≥ 137752 022703 023000 CMP #FREEND,R3 ; compare to top of free storage
≠BLO≡≥ 137756 103432 BLO 99$ ; BR if out of bounds.
≠MOV≡≡R0≡≡R3≡≥ 137760 011003 1$: MOV (R0),R3 ; GET ADDRESS OF NEXT FREE BLOCK
≠BEQ≡≥ 137762 001404 BEQ 2$ ; IF EQ THEN END OF CHAIN
≠CMP≡≡R2≡≡R3≡≥ 137764 020203 CMP R2,R3 ; COMPARE ADDRESSES
≠BLO≡≥ 137766 103402 BLO 2$ ; IF LO THEN WE FOUND SLOT
≠MOV≡≡R3≡≡R0≡≥ 137770 010300 MOV R3,R0 ; SET NEW PREVIOUS ADDRESS
≠BR≡≥ 137772 000772 BR 1$ ; GO AGAIN
≥
≥ ;here, R0 is address of previous block. R3 is address of next block.
≠MOV≡≡R3≡≡R2≡≥ 137774 010312 2$: MOV R3,(R2) ; ASSUME NO AGGLOMERATION. Link out of new blk.
≠MOV≡≡R2≡≡R4≡≥ 137776 010204 MOV R2,R4 ; CALCULATE ADDRESS OF NEXT BLOCK
≠ADD≡≡R1≡≡R4≡≥ 140000 060104 ADD R1,R4 ; ADD IN BLOCK SIZE
≠.IF≡≡FSCASB≡≥ .IF DF FSCASB
≥ SUB R1,WUSED ; Bugtrap: Decrement number of words in use
≥ INC BFREE ; Assuming no agglomeration
≥ .ENDC;DF FSCASB
≠CMP≡≡R3≡≡R4≡≥ 140002 020304 CMP R3,R4 ; COMPARE BLOCK ADDRESSES
≠BNE≡≥ 140004 001002 BNE 3$ ; IF NE DO NOT MERGE BLOCKS
≠MOV≡≡R3≡≡R2≡≥ 140006 012312 MOV (R3)+,(R2) ; SET NEW FORWARD LINK
≠ADD≡≡R3≡≡R1≡≥ 140010 061301 ADD (R3),R1 ; ADJUST SIZE
≠.IIF≡≡FSCASB≡≥ .IIF DF FSCASB, DEC BFREE ; We merged one here.
≠MOV≡≡R2≡≡R0≡≥ 140012 010210 3$: MOV R2,(R0) ; ASSUME NO AGGLOMERATION
≠MOV≡≡R0≡≡R4≡≥ 140014 010004 MOV R0,R4 ; CALCULATE ADDRESS OF NEXT BLOCK
≠ADD≡≡R0≡≡R4≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 335
QMP11 PAL[KL,SYS] Page 13.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 140016 066004 000002 ADD 2(R0),R4 ; ADD IN BLOCK SIZE
≠CMP≡≡R2≡≡R4≡≥ 140022 020204 CMP R2,R4 ; COMPARE ADDRESSES
≠BNE≡≥ 140024 001004 BNE 4$ ; IF NE DO NOT MERGE
≠MOV≡≡R2≡≡R0≡≥ 140026 011210 MOV (R2),(R0) ; SET NEW FORWARD LINK
≠ADD≡≡R0≡≡R1≡≥ 140030 066001 000002 ADD 2(R0),R1 ; ADJUST SIZE
≠MOV≡≡R0≡≡R2≡≥ 140034 010002 MOV R0,R2 ; SET NEW BASE ADDRESS OF BLOCK
≠.IIF≡≡FSCASB≡≥ .IIF DF FSCASB, DEC BFREE ; We merged one here.
≠MOV≡≡R1≡≡R2≡≥ 140036 010162 000002 4$: MOV R1,2(R2) ; SET SIZE OF BLOCK
≠.IIF≡≡FSCASB≡≥ .IIF DF FSCASB, INC NGIVES ; Count instances
≤RETURN≡≥ RETURN ;
≠RTS≡≡PC≡≥ 140042 000207 RTS PC
≥
≡FATAL≡≡FATAL≡≥ 140044 104000 99$: FATAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 336
QMP11 PAL[KL,SYS] Page 14 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; $RQCB - REQUEST CORE BLOCK
≥ ;
≥ ; Call this subroutine to request a core block from the free list.
≥ ; The selection is made on the first fit basis.
≥ ;
≥ ; INPUTS:
≥ ; R0 = ADDRESS OF FREE BLOCK LIST HEAD
≥ ; R1 = Requested size of block in bytes.
≥ ;
≥ ; The size of the request will be increased by 2 and rounded up to
≥ ; be an even number of bytes.
≥ ;
≥ ; OUTPUTS:
≥ ; C=1 IF REQUEST CANNOT BE FULFILLED
≥ ; C=0 IF REQUEST IS SATISFIED. R0 = ADDRESS OF REQUESTED CORE BLOCK.
≥ ; R1 = Requested size rounded up to even #
≥ ;
≤SAVRG≡≥ $RQCB: SAVRG ; SAVE NONVOLATILE REGISTERS
≠JSR≡≡R5≡≡$SAVRG≡≥ 140046 004537 140242 JSR R5,$SAVRG
≠TST≡≡R1≡≥ 140052 005701 TST R1 ; make sure request is positive.
≠BLE≡≥ 140054 003450 BLE 99$ ; can't have idiots around here.
≠ADD≡≡R1≡≥ 140056 062701 000003 ADD #3,R1 ; Add 2 and round up to next word boundary
≠BIC≡≡R1≡≥ 140062 042701 000001 BIC #1,R1 ; Clear excess odd bit
≥ ;R0 = address of "previous", R3 = address of "current"
≠MOV≡≡R0≡≡R3≡≥ 140066 011003 2$: MOV (R0),R3 ; Get address of the next free block.
≠BEQ≡≥ 140070 001440 BEQ 9$ ; BR if end of the list. No block available.
≠CMP≡≡R1≡≡R3≡≥ 140072 020163 000002 CMP R1,2(R3) ; Is the block big enough?
≠BLOS≡≥ 140076 101402 BLOS 6$ ; BR if the block is large enough.
≠MOV≡≡R3≡≡R0≡≥ 140100 010300 MOV R3,R0 ; Advance R0 to point to this block
≠BR≡≥ 140102 000771 BR 2$ ; and go look at the next block.
≥
≥ ;Here R3 = address of a desirable block. R0 is the predecessor
≤PUSH≡≥ 6$: PUSH R1 ;Save user's size request (+2)
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡R3≡≡R2≡≥ 140106 016302 000002 MOV 2(R3),R2 ;Get the size of the block we found
≠SUB≡≡R1≡≡R2≡≥ 140112 160102 SUB R1,R2 ;Reduce it by the size of this request
≠CMP≡≡R2≡≥ 140114 022702 000020 CMP #20,R2 ;Is there enough left to be worth splitting?
≠BHIS≡≥ 140120 103004 BHIS 7$ ;BR if fragment too small to split.
≠MOV≡≡R2≡≡R3≡≥ 140122 010263 000002 MOV R2,2(R3) ;Store size of remainder.
≠ADD≡≡R2≡≡R3≡≥ 140126 060203 ADD R2,R3 ;Calculate address of piece to return now
≠BR≡≥ 140130 000403 BR 8$ ;R3=address to return. R1=Size.
≥
≠MOV≡≡R3≡≡R0≡≥ 140132 011310 7$: MOV (R3),(R0) ;Here for no split. LINK PREVIOUS TO NEXT
≠MOV≡≡R3≡≡R1≡≥ 140134 016301 000002 MOV 2(R3),R1 ;this is the actual size of this block
≠.IIF≡≡FSCASB≡≥ .IIF DF FSCASB, DEC BFREE ;One less thing on free list
≠MOV≡≡R3≡≡R0≡≥ 140140 010300 8$: MOV R3,R0 ;Copy address block to R0
≠MOV≡≡R1≡≡R0≡≥ 140142 010120 MOV R1,(R0)+ ;Store size of the block in the block.
≠CMP≡≡FREEAD≡≡R3≡≥ 140144 022703 003000 CMP #FREEAD,R3 ; Make sure free block is in bounds
≠BHI≡≥ 140150 101012 BHI 99$ ; BR if out of bounds.
≠ADD≡≡R1≡≡R3≡≥ 140152 060103 ADD R1,R3 ; compute end of this block
≠CMP≡≡FREEND≡≡R3≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 337
QMP11 PAL[KL,SYS] Page 14.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ 140154 022703 023000 CMP #FREEND,R3 ; compare to top of free storage
≠BLO≡≥ 140160 103406 BLO 99$ ; BR if out of bounds.
≠.IF≡≡FSCASB≡≥ .IF DF FSCASB
≥ ADD R1,WUSED ;Bugtrap: Update number of words used
≥ INC NGETS ; Increment number of requests
≥ .ENDC; DF FSCASB
≤POP≡≥ POP R1 ;User's request size (+2)
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≠TST≡≡R1≡≥ 140164 005741 TST -(R1) ;return in R1 the apparent block size.
≠CLC≡≠CLC≡≥ 140166 000241 CLC ; CLEAR CARRY
≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 140170 000207 RTS PC
≥
≠SEC≡≠SEC≡≥ 140172 000261 9$: SEC ; SET CARRY
≤RETURN≡≥ RETURN ;
≠RTS≡≡PC≡≥ 140174 000207 RTS PC
≥
≡FATAL≡≡FATAL≡≥ 140176 104000 99$: FATAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 338
QMP11 PAL[KL,SYS] Page 15 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ; $SAVAL, $SAVVR, $SAVRG Register Save and Restore Co-routines
≥ ;
≥ ; $SAVAL - SAVE AND RESTORE R0-R5
≥ ;
≥ ; THIS MODULE IS ENTERED VIA A "JSR PC,$SAVAL" TO SAVE AND
≥ ; SUBSEQUENTLY RESTORE REGISTERS R0 THROUGH R5. AFTER STORING THE
≥ ; REGISTER CONTENST ON THE STACK A CO-ROUTINE CALL IS MADE TO
≥ ; THE CALLING ROUTINE. A SUBSEQUENT "RTS PC" CAUSES THIS
≥ ; SUBROUTINE TO RESTORE ALL REGISTERS AND EXIT VIA AN "RTS PC".
≥ ;
≥ ; ALL REGISTER CONTENTS ARE PRESERVED.
≥ ;
≤PUSH≡≥ $SAVAL: PUSH R4
≠.NLIST≡≠.IRP≡≠MOV≡≡R4≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R3
≠.NLIST≡≠.IRP≡≠MOV≡≡R3≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R2
≠.NLIST≡≠.IRP≡≠MOV≡≡R2≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R0 ; SAVE R4-R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡SP≡≡SP≡≥ 140212 016646 000012 MOV 12(SP),-(SP) ; COPY RETURN ADDR
≠MOV≡≡R5≡≡SP≡≥ 140216 010566 000014 MOV R5,14(SP) ; SAVE R5
≤CALL≡≥ CALL @(SP)+ ; CALL THE CALLER
≠JSR≡≡PC≡≡SP≡≥ 140222 004736 JSR PC,@(SP)+
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤POP≡≥ POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ POP R2
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R2≡≠.LIST≡≤POP≡≥ POP R3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R3≡≠.LIST≡≤POP≡≥ POP R4
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R4≡≠.LIST≡≤POP≡≥ POP R5 ; RESTORE R0-R5
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R5≡≠.LIST≡≤RETURN≡≥ RETURN ; AND RETURN
≠RTS≡≡PC≡≥ 140240 000207 RTS PC
≥ ;
≥ ; $SAVRG - SAVE AND RESTORE NONVOLATILE REGISTERS, 3,4,5
≥ ;
≥ ; CALLED AS: JSR R5,$SAVRG
≥ ;
≤PUSH≡≥ $SAVRG: PUSH R4
≠.NLIST≡≠.IRP≡≠MOV≡≡R4≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R3 ; SAVE R4,R3
≠.NLIST≡≠.IRP≡≠MOV≡≡R3≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R5 ; PUT RETURN ADDRESS ON STACK
≠.NLIST≡≠.IRP≡≠MOV≡≡R5≡≡SP≡≠.LIST≡≠MOV≡≡SP≡≡R5≡≥ 140250 016605 000006 MOV 6(SP),R5 ; RETRIEVE REAL R5
≤CALL≡≥ CALL @(SP)+ ; CALL THE CALLER
≠JSR≡≡PC≡≡SP≡≥ 140254 004736 JSR PC,@(SP)+
≤POP≡≥ POP R3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R3≡≠.LIST≡≤POP≡≥ POP R4
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R4≡≠.LIST≡≤POP≡≥ POP R5 ; RESTORE R5
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R5≡≠.LIST≡≤RETURN≡≥ RETURN
≠RTS≡≡PC≡≥ 140264 000207 RTS PC
≥
≥ ; $SAVVR - SAVE AND RESTORE VOLATILE REGS - R0-R2
≥ ;
≥ ; CALLED AS: JSR R2,$SAVVR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 339
QMP11 PAL[KL,SYS] Page 15.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ ;
≤PUSH≡≥ $SAVVR: PUSH R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R0 ; SAVE R1 AND R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≤PUSH≡≥ PUSH R2 ; SAVE RETURN ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡R2≡≡SP≡≠.LIST≡≠MOV≡≡SP≡≡R2≡≥ 140274 016602 000006 MOV 6(SP),R2 ; RESTORE R2
≤CALL≡≥ CALL @(SP)+ ; CALL THE CALLER
≠JSR≡≡PC≡≡SP≡≥ 140300 004736 JSR PC,@(SP)+
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤POP≡≥ POP R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤POP≡≥ POP R2 ; RESTORE REGS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R2≡≠.LIST≡≤RETURN≡≥ RETURN ;
≠RTS≡≡PC≡≥ 140310 000207 RTS PC
≥ ;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 340
KLDCP PAL[KL,SYS] Page 5.8 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥
≥ ;File loading and command functions
≠.INSRT≡≥ .INSRT APT11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 341
APT11 PALII[KL,SYS] Page 1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
≥ COMMENT ⊗ VALID 00014 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00003 00002 .SBTTL APT10 PDP-11 PROCESS, 13-AUG-75
≥ C00005 00003 DAHLPD=.
≥ C00007 00004 ACTBCK: PMSG <?CKSUM>
≥ C00008 00005 .SBTTL COMMUNICATIONS ROUTINES
≥ C00010 00006 7$: TTICHR GET CONTROL SEQUENCE CHARACTER
≥ C00011 00007 CMERTB: CMER1
≥ C00012 00008 $COMSND:MOV #COUTBF,R5
≥ C00014 00009 $CMRTRY:MOV #COUTBF-4,R0 SETUP MESSAGE POINTER
≥ C00016 00010 $COMLIN:MOV #CINBF-4,R1 START BUFFER ADDRESS
≥ C00018 00011 3$: INC R1 NULL TO END BUFFER
≥ C00020 00012 44$: TST R0 DID CHECKSUM COMPUTE TO 0 ?
≥ C00021 00013 $COMENQ:COMCLR CLEAR COMMUNICATIONS
≥ C00023 00014 $COMCLR:CLR ENQFLG
≥ C00025 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 342
APT11 PALII[KL,SYS] Page 2 APT10 PDP-11 PROCESS, 13-AUG-75
≥ .SBTTL APT10 PDP-11 PROCESS, 13-AUG-75
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ ACTFIL: CMP #5,LDCNTL ;LOADING ".BIN" ?
≥ BNE 1$
≥ MOV #1,LDCNTL ;YES, ACT10 CONVERTS TO ".A11"
≥ 1$: COMENQ ;REQUEST APT10 SERVICE
≥ MOV #$INBUF,R0
≥ COMCMD ;SEND COMMAND TO REMOTE
≥ BCS 2$ ;C-BIT SET, FILE NOT FOUND
≥ CLR ARETRY ;CLEAR RETRY COUNTER
≥ BR ACTLD1 ;GO TO LOAD PROCESS
≥ 2$: JMP $NONXF
≥ .ENDC
≥
≥ ACTLD2:
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP
≥ BMI 1$ ;ACT10
≥ .ENDC
≠JMP≡≡LLD2≡≥ 140312 000137 131150 JMP LLD2 ;DECTAPE/RP04
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ 1$: COMACK ;ACK PREVIOUS LINE
≥ BCS ACTEOF ;C-BIT SET, EOF
≥ CLR ARETRY ;CLEAR RETRY COUNTER
≥
≥ ACTLD1: INC DEVLC ;COUNT LINE
≥ MOV DEVLC,SWR ;DISPLAY
≥ TST LDCNTL ;DOING A "HELP" ?
≥ BPL 1$ ;NO
≥ .ENDC
≡DAHLP≠≥ 140316 DAHLP=.
≠TST≡≡DIAFLG≡≥ 140316 005737 151120 TST DIAFLG ;DOING DIAMON
≠BEQ≡≥ 140322 001407 BEQ 30$ ;NO
≠TST≡≡DEVLC≡≥ 140324 005737 150724 TST DEVLC ;YES, FIRST LINE ?
≠BNE≡≥ 140330 001002 BNE 31$ ;NO
≠JMP≡≡DIAFND≡≥ 140332 000137 112226 JMP DIAFND ;YES, DIAMON FILE FOUND
≠JMP≡≡DIARNL≡≥ 140336 000137 112262 31$: JMP DIARNL ;DIAMON READ NEW LINE
≠TST≡≡IFILEF≡≥ 140342 005737 147624 30$: TST IFILEF ;DOING AN INDIRECT FILE ?
≠BEQ≡≥ 140346 001402 BEQ 4$
≠JMP≡≡IFILEP≡≥ 140350 000137 140560 JMP IFILEP ;YES, STORE INPUT
≡SETFLG≡≡SETFLG≡≥ 140354 104055 4$: SETFLG
≡HLPPNT≡≡HLPPNT≡≥ 140356 150722 HLPPNT ;NORMAL BACKSLASHES
≠MOV≡≡$INBUF≡≡R0≡≥ 140360 012700 150500 MOV #$INBUF,R0 ;YES, PRINT INPUT LINE
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP
≥ BPL 41$
≥ MOV #CINBF,R0
≥ .ENDC
≡PNTAL≡≡PNTAL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 343
APT11 PALII[KL,SYS] Page 2.1 APT10 PDP-11 PROCESS, 13-AUG-75
≥ 140364 104024 41$: PNTAL
≠CLR≡≡HLPPNT≡≥ 140366 005037 150722 CLR HLPPNT
≠BR≡≡ACTLD2≡≥ 140372 000747 BR ACTLD2 ;REPEAT TILL "EOT"
≥
≠JMP≡≡LDPROC≡≥ 140374 000137 131306 1$: JMP LDPROC ;GO TO LOAD PROCESS
≥
≠.LIF≡≡MONASB≡≥ .LIF DF MONASB
≥ ACTEOF: COMCLR
≡DAHLPD≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 344
APT11 PALII[KL,SYS] Page 3 APT10 PDP-11 PROCESS, 13-AUG-75
≥ 140400 DAHLPD=.
≠TST≡≡DIAFLG≡≥ 140400 005737 151120 TST DIAFLG ;DOING DIAMON ?
≠BEQ≡≥ 140404 001402 BEQ 10$ ;NO
≠JMP≡≡DIAEOF≡≥ 140406 000137 112362 JMP DIAEOF ;YES, SEND DIAMON END OF FILE
≠TST≡≡IFILEF≡≥ 140412 005737 147624 10$: TST IFILEF ;INDIRECT/DOUBLE INDIRECT ?
≠BNE≡≥ 140416 001002 BNE 21$ ;YES
≡PCRLF≡≡PCRLF≡≥ 140420 104031 PCRLF ;NO, JUST HELP
≠BR≡≥ 140422 000422 BR 23$ ;BACK TO CONSOLE
≥
≠TST≡≡JFILEF≡≥ 140424 005737 147620 21$: TST JFILEF ;DOUBLE INDIRECT ?
≠BPL≡≥ 140430 100012 BPL 22$ ;NO
≠TSTB≡≡JFILEF≡≥ 140432 105737 147620 TSTB JFILEF ;PRESENT JUST INDIRECT ?
≠BEQ≡≥ 140436 001407 BEQ 22$ ;YES
≠CLRB≡≡JFILEF≡≥ 140440 105037 147620 CLRB JFILEF ;SET DONE WITH READING "J"
≠MOV≡≡TOUTBF≡≡JFINP≡≥ 140444 012737 010000 147616 MOV #TOUTBF+5000,JFINP ;SET "J" POINTER TO BEGINNING
≠JMP≡≡CONSL≡≥ 140452 000137 100106 JMP CONSL ;START RUNNING
≥
≠MOV≡≡TOUTBF≡≡IFINP≡≥ 140456 012737 003000 147622 22$: MOV #TOUTBF,IFINP ;SET POINTER TO BEGINNING
≠CLRB≡≡IFILEF≡≥ 140464 105037 147624 CLRB IFILEF
≠JMP≡≡$CONSL≡≥ 140470 000137 100014 23$: JMP $CONSL ;GO PROCESS INDIRECT FILE
≥
≥ ACTDON:
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ COMACK ;ACK TRANSFER BLOCK
≥ BCC 3$
≥ .ENDC
≡DADONE≠≥ 140474 DADONE=.
≠TST≡≡SRTFLG≡≥ 140474 005737 150726 TST SRTFLG ;SELF START ?
≠BEQ≡≥ 140500 001402 BEQ 1$
≠JMP≡≡$$GO≡≥ 140502 000137 113216 JMP $$GO ;YES
≠JMP≡≡$CONSL≡≥ 140506 000137 100014 1$: JMP $CONSL ;NO
≥
≤PMSG≡≥ 3$: PMSG <?EOF,ERR>
≡$PMSG≡≡$PMSG≡≥ 140512 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 140514 147157 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠JMP≡≡$CNTLC≡≥ 140516 000137 100004 $$C2: JMP $CNTLC
≥
≤PMSG≡≥ ACTLDC: PMSG <?LOAD CHR>
≡$PMSG≡≡$PMSG≡≥ 140522 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 140524 147170 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡ACTERR≡≥ 140526 000405 BR ACTERR
≤PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 345
APT11 PALII[KL,SYS] Page 4 APT10 PDP-11 PROCESS, 13-AUG-75
≥ ACTBCK: PMSG <?CKSUM>
≡$PMSG≡≡$PMSG≡≥ 140530 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 140532 147202 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠BR≡≡ACTERR≡≥ 140534 000402 BR ACTERR
≥
≤PMSG≡≥ ACTLDF: PMSG <?FORMAT>
≡$PMSG≡≡$PMSG≡≥ 140536 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 140540 147211 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≤PMSG≡≥ ACTERR: PMSG < ERR: LOAD LINE >
≡$PMSG≡≡$PMSG≡≥ 140542 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 140544 147221 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡DEVLC≡≡R0≡≥ 140546 013700 150724 MOV DEVLC,R0
≡PNTDEC≡≡PNTDEC≡≥ 140552 104037 PNTDEC ;PRINT LOAD LINE NUMBER
≡PCRLF≡≡PCRLF≡≥ 140554 104031 PCRLF
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP
≥ BPL 2$ ;DECTAPE/RP04
≥ INC ARETRY
≥ CMP #4,ARETRY ;REACHED RETRY LIMIT ?
≥ BEQ 1$ ;YES
≥ COMNAK ;NO, NAK MESSAGE & TRY AGAIN
≥ DEC DEVLC ;DECREMENT LINE COUNT
≥ JMP ACTLD1
≥
≥ 1$: PMSG <CAN'T LOAD>
≥ .ENDC
≠BR≡≡$$C2≡≥ 140556 000757 2$: BR $$C2
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 346
APT11 PALII[KL,SYS] Page 5 COMMUNICATIONS ROUTINES
≥ .SBTTL COMMUNICATIONS ROUTINES
≥
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥
≥ $COMACK:INC MSGNBR ;COUNT MESSAGE
≥ $$CMACK:MOV #ACKMSG,R5 ;MESSAGE ACKNOWLEDGE
≥ BR $COMCX
≥
≥ $COMNAK:MOV #NAKMSG,R5 ;MESSAGE NEGATIVE ACKNOWLEDGE
≥ BR $COMCX
≥
≥ $COMCMD:CLR R5 ;MESSAGE COMMAND
≥
≥ $COMCX: MOV #3,R4 ;RETRY 3 TIMES
≥
≥ 1$: TST R5
≥ BNE 2$
≥
≥ COMSND ;COMMAND SEND
≥ BR 3$
≥
≥ 2$: MOV R5,R0
≥ COMCTL ;CONTROL SEQUENCE SEND
≥
≥ 3$: COMLIN ;GET REPLY
≥ BCS 5$ ;ERROR
≥ BPL 7$ ;CONTROL SEQUENCE
≥
≥ MOV #136,R3 ;NORMAL MESSAGE
≥ BIT #1,MSGNBR ;ODD OR EVEN MESSAGE NUMBER
≥ BEQ 4$
≥ MOV #041,R3
≥ 4$: CMP R3,COMNBR ;CORRECT MESSAGE NUMBER ?
≥ BNE $$CMACK ;NO, MUST BE REPEAT
≥ CLR R0
≥ 41$: EXIT ;NEW MESSAGE READY FOR PROCESS
≥
≥ 5$: DEC R4 ;EXCEEDED RETRY LIMIT ?
≥ BNE 6$ ;NO, TRY AGAIN
≥ JMP $COMERR ;YES, REPORT ERROR & ABORT
≥
≥ 6$: TST R5
≥ BNE 61$ ;CONTROL REPEAT
≥ CMP #-5,R0 ;RECIEVED CHECKSUM ERROR ?
≥ BEQ 61$ ;YES, SEND NAK
≥ COMRTRY ;COMMAND RETRY
≥ BR 3$
≥
≥ 61$: MOV #NAKMSG,R5
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 347
APT11 PALII[KL,SYS] Page 5.1 COMMUNICATIONS ROUTINES
≥ BR 2$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 348
APT11 PALII[KL,SYS] Page 6 COMMUNICATIONS ROUTINES
≥ 7$: TTICHR ;GET CONTROL SEQUENCE CHARACTER
≥ CMPB #'A,R0
≥ BEQ 41$ ;A, ACKNOWLEDGE
≥ CMPB #'Z,R0
≥ BEQ 8$ ;Z, END OF TRANSMISSION
≥ CMPB #'N,R0
≥ BNE 71$
≥ MOV #-7,R0 ;N, NEGATIVE ACKNOWLEDGE
≥ BR 5$
≥
≥ 71$: MOV #-10,R0 ;UNKNOWN RESPONSE
≥ BR 5$
≥
≥ 8$: EXITERR ;END OF FILE
≥
≥ $COMERR:PUSH R0
≥ PMSG <?COMM ERR >
≥ POP R0
≥ NEG R0
≥ MOV R0,R1
≥ PNTOCS
≥ PNTCI
≥ ",
≥ DEC R1
≥ SL R1,1
≥ MOV CMERTB(R1),R0
≥ PNTAL
≥ JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 349
APT11 PALII[KL,SYS] Page 7 COMMUNICATIONS ROUTINES
≥ CMERTB: CMER1
≥ CMER2
≥ CMER3
≥ CMER4
≥ CMER5
≥ CMER6
≥ CMER7
≥ CMER10
≥
≥ CMER1: .ASCIZ %NO RESPONSE%
≥ CMER2: .ASCIZ %LONG LINE%
≥ CMER3: .ASCIZ %MSG NBR%
≥ CMER4: .ASCIZ %NO CR%
≥ CMER5: .ASCIZ %MSG CKSUM%
≥ CMER6: .ASCIZ %FORMAT%
≥ CMER7: .ASCIZ %NAK%
≥ CMER10: .ASCIZ %UNKNOWN%
≥ .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 350
APT11 PALII[KL,SYS] Page 8 COMMUNICATIONS ROUTINES
≥ $COMSND:MOV #COUTBF,R5
≥ CLR R3
≥
≥ 1$: CMPB (R0),#CR ;REACHED CR YET ?
≥ BEQ 2$ ;YES
≥ CMPB (R0),#ALTMOD ;OR ALTMODE ?
≥ BEQ 12$ ;YES, SUBSTITUTE CR
≥
≥ TSTB (R0) ;REACHED NULL BYTE ?
≥ BNE 11$
≥ MOV #-6,R0 ;YES, INCORRECT MESSAGE FORMAT
≥ BR $COMERR
≥
≥ 11$: MOVB (R0),R2
≥ ADD R2,R3 ;ACCUMULATE CHECKSUM
≥ MOVB (R0)+,(R5)+ ;TRANSFER MSG TO OUTPUT BUFFER
≥ BR 1$
≥
≥ 12$: MOV #ALTMOD,(R5)+
≥ BR 22$
≥ 2$: MOVB (R0)+,(R5)+ ;PUT CR IN OUTPUT
≥ 22$: CLRB (R5) ;FOLLOW WITH NULL
≥
≥ MOV #COUTBF-4,R5 ;SETUP MESSAGE START
≥ MOVB #136,(R5)
≥ BIT #1,MSGNBR ;SET UP MESSAGE NUMBER CHAR
≥ BEQ 21$
≥ MOVB #041,(R5)
≥ 21$: INC R5
≥
≥ NEG R3 ;NEGATE CHECKSUM
≥
≥ MOV R3,R0
≥ SWAB R0
≥ BIC #177400,R0
≥ SHIFTR
≥ 4
≥ JSR PC,COMASC
≥ MOVB R0,(R5)+ ;INSERT 1ST CHECK CHAR
≥
≥ MOV R3,R0
≥ SHIFTR
≥ 6
≥ JSR PC,COMASC
≥ MOVB R0,(R5)+ ;INSERT 2ND CHECK CHAR
≥
≥ MOV R3,R0
≥ JSR PC,COMASC
≥ MOVB R0,(R5)+ ;INSERT 3RD CHECK CHAR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 351
APT11 PALII[KL,SYS] Page 9 COMMUNICATIONS ROUTINES
≥ $CMRTRY:MOV #COUTBF-4,R0 ;SETUP MESSAGE POINTER
≥
≥ $COMCTL:TSTB @$CMTKS ;ANY OLD CHARS ?
≥ BPL 1$
≥ MOVB @$CMTKB,$TTYIN ;YES, GET GET OF IT
≥ BR $COMCTL
≥
≥ 1$: TSTB @$CMTPS ;WAIT TILL OUTPUT IS READY
≥ BPL $COMCTL
≥
≥ MOV #2,R1 ;SEND 2 SYNC CHARACTERS
≥ 2$: MOVB #SYN,@$CMTPB
≥ 3$: TSTB @$CMTPS
≥ BPL 3$
≥ DEC R1
≥ BNE 2$
≥
≥ 4$: MOVB (R0)+,R1 ;GET MESSAGE CHAR
≥ BEQ 6$ ;IF NULL, DONE
≥
≥ MOVB R1,@$CMTPB ;SEND CHAR
≥ 5$: TSTB @$CMTPS ;WAIT TILL OUTPUT READY
≥ BPL 5$
≥ BR 4$ ;SEND TILL NULL
≥
≥ 6$: EXIT ;COMPLETED
≥
≥ COMASC: BIC #177700,R0 ;KEEP 6 BITS
≥ CMP R0,#74 ;LEAVE 75,76,77 ALONE
≥ BGT 1$
≥ BIS #100,R0 ;SET BIT 7 FOR ASCIIZE
≥ 1$: RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 352
APT11 PALII[KL,SYS] Page 10 COMMUNICATIONS ROUTINES
≥ $COMLIN:MOV #CINBF-4,R1 ;START BUFFER ADDRESS
≥ CLR $TTYTIM ;CLEAR TIMEOUT
≥ CLR R5 ;CLEAR IN SYNC FLAG
≥
≥ 1$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
≥ CMP $TTYTIM,#<20.*60.> ;20 SECS
≥ BGT 90$ ;TIMED OUT
≥
≥ TSTB @$CMTKS ;COMM IN FLAG SET ?
≥ BMI 2$ ;YES
≥
≥ JSR PC,$PTTYC ;ANY OPERATOR INTERRUPT ?
≥ BR 1$ ;NO
≥
≥ 2$: MOVB @$CMTKB,(R1) ;MOVE CHAR TO BUFFER
≥ BICB #200,(R1)
≥ TSTB (R1)
≥ BEQ 1$ ;IGNORE NULLS
≥
≥ CMPB (R1),#SYN ;SYNC CHAR ?
≥ BEQ 21$ ;YES
≥
≥ TST R5 ;RECIEVED SYNC YET ?
≥ BEQ 1$ ;NO, DUMP GARBAGE CHARS
≥
≥ CMPB (R1),#ALTMOD
≥ BEQ 3$ ;ALTMODE, CONTROL SEQUENCE
≥
≥ CMPB (R1),#'$ ;DOLLAR, PDP-10 SENDS THIS FOR ALTMODE
≥ BNE 22$
≥ CMP R1,#CINBF ;LEGAL ONLY IF IN CONTROL SEQUENCE
≥ BLT 3$
≥
≥ 22$: CMPB (R1),#LF
≥ BEQ 4$ ;LF, MESSAGE SEGMENT
≥
≥ INC R1
≥ CMP R1,#CINBF+140.
≥ BLE 1$ ;STILL ROOM
≥ BR 91$ ;NO, LINE TOO LONG
≥
≥ 21$: MOV #-1,R5 ;SYNC, SET IN SYNC FLAG
≥ BR 1$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 353
APT11 PALII[KL,SYS] Page 11 COMMUNICATIONS ROUTINES
≥ 3$: INC R1 ;NULL TO END BUFFER
≥ CLRB (R1)
≥ MOV R1,$INPTR ;SETUP INPUT POINTERS
≥ MOV #CINBF-4,$INPTC
≥ EXIT ;CONTROL SEQUENCE RETURN
≥
≥ 4$: INC R1
≥ CLRB (R1)
≥ MOV R1,$INPTR ;SETUP INPUT POINTERS
≥ MOV #CINBF-4,R1
≥ CMPB #041,(R1)
≥ BEQ 41$
≥ CMPB #136,(R1)
≥ BEQ 41$
≥ BR 92$ ;MESSAGE NUMBER INCORRECT
≥
≥ 41$: MOVB (R1)+,COMNBR ;SAVE MESSAGE NUMBER
≥ CLR R0 ;SETUP FOR MESSAGE CHECKSUM
≥ MOV #3,R5 ;CHARS 2,3,4 ARE CHECKSUM
≥
≥ 42$: SL R0,6
≥ MOVB (R1)+,R4 ;GET 1ST CHECK CHAR
≥ BIC #100,R4 ;CLEAR ASCIIZE BIT
≥ BIS R4,R0 ;INSERT IN 16 BIT CHECKSUM
≥ DEC R5
≥ BGT 42$ ;DO 3 CHARS
≥
≥ 43$: CMPB (R1),#CR ;REACHED EOL ?
≥ BEQ 44$ ;YES
≥ TSTB (R1) ;PAST EOL WITHOUT CR ?
≥ BEQ 93$ ;YES, NO CR ERROR
≥
≥ MOVB (R1)+,R3
≥ ADD R3,R0 ;ACCUMULATE CHECKSUM
≥ BR 43$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 354
APT11 PALII[KL,SYS] Page 12 COMMUNICATIONS ROUTINES
≥ 44$: TST R0 ;DID CHECKSUM COMPUTE TO 0 ?
≥ BNE 94$ ;NO, CHECKSUM ERROR
≥
≥ MOV #CINBF,$INPTC ;MESSAGE SEGMENT OK
≥ BIS #NBIT,14(SP) ;SET NORMAL MESSAGE INDICATOR
≥ EXIT
≥
≥ 90$: MOV #-1,R0 ;NO RESPONSE ERROR
≥ BR 99$
≥
≥ 91$: MOV #-2,R0 ;LINE TOO LONG ERROR
≥ BR 99$
≥
≥ 92$: CMPB #'?,(R1) ;IS MESSAGE NUMBER QUESTION MARK ?
≥ BEQ COMQ ;YES, HOST ERROR
≥ MOV #-3,R0 ;MESSAGE NUMBER CHAR ERROR
≥ BR 99$
≥
≥ 93$: MOV #-4,R0 ;NO CARRIAGE RETURN ERROR
≥ BR 99$
≥
≥ 94$: MOV #-5,R0 ;MESSAGE CHECKSUM ERROR
≥
≥ 99$: EXITERR ;ERROR EXIT, C-BIT SET, CODE IN R0
≥
≥ COMQ: $PMSG ;PRINT ERROR REPLY
≥ CINBF-4
≥ JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 355
APT11 PALII[KL,SYS] Page 13 COMMUNICATIONS ROUTINES
≥ $COMENQ:COMCLR ;CLEAR COMMUNICATIONS
≥ SETFLG
≥ ENQFLG ;SET APT10 IN PROGRESS
≥ MOV #3,R4
≥ 10$: CLR MSGNBR ;INITIALIZE MESSAGE NUMBER
≥ MOV #ENQMSG,R0
≥ COMCTL ;SEND "ENQ" MESSAGE
≥
≥ COMLIN ;WAIT FOR REPLY
≥ BCS 1$ ;ERROR, CODE IN R0
≥ BMI 3$ ;NORMAL MESSAGE REPLY ?
≥ TTICHR
≥ CMPB #'A,R0 ;A, ACKNOWLEDGE
≥ BNE 1$
≥ EXIT ;ACKED, GO AHEAD
≥
≥ 1$: TST R0 ;IS REPLY CODE NEGATIVE ?
≥ BMI 4$ ;YES, COMLIN ERROR
≥
≥ CMPB #'Z,R0 ;IS REPLY EOT, WAIT ?
≥ BNE 3$ ;NO
≥
≥ CLR $TTYTIM ;YES, WAIT 10 SECONDS
≥ 2$: JSR PC,$PTTYC
≥ JSR PC,C10COP
≥ CMP $TTYTIM,#<10.*60.>
≥ BLE 2$
≥ BR $COMENQ ;THEN TRY AGAIN
≥
≥ 3$: PMSG <?APT10 ENQ>
≥ JMP $CNTLC
≥
≥ 4$: DEC R4
≥ BNE 10$ ;RETRY
≥ JMP $COMERR ;COMMUNICATIONS ERROR
≥
≥ $COMEOT:MOV #EOTMSG,R0
≥ COMCTL
≥ EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 356
APT11 PALII[KL,SYS] Page 14 COMMUNICATIONS ROUTINES
≥ $COMCLR:CLR ENQFLG
≥ MOV #CANMSG,R0
≥ COMCTL
≥ MOV #100000,R1
≥ 1$: TSTB @$CMTKS ;ANY INPUT IN PROGRESS ?
≥ BPL 2$
≥ MOVB @$CMTKB,R0 ;IF SO, GET RID OF IT
≥ BR 1$
≥ 2$: DEC R1
≥ BNE 1$ ;A LITTLE DELAY
≥ EXIT
≥
≥ ENQMSG: .BYTE 'E,33,0
≥ ACKMSG: .BYTE 'A,33,0
≥ NAKMSG: .BYTE 'N,33,0
≥ CANMSG: .BYTE 'C,33,0
≥ EOTMSG: .BYTE 'Z,33,0
≥
≥ .EVEN
≥
≥ .ENDC ;.IF DF MONASB
≥
≠MOV≡≡$INBUF≡≡R0≡≥ 140560 012700 150500 IFILEP: MOV #$INBUF,R0 ;SETUP POINTERS
≠.IF≡≡MONASB≡≥ .IF DF MONASB
≥ TST DEVTYP
≥ BPL 10$
≥ MOV #CINBF,R0
≥ .ENDC
≠MOV≡≡IFINP≡≡R1≡≥ 140564 013701 147622 10$: MOV IFINP,R1
≠MOVB≡≡R0≡≡R1≡≥ 140570 112021 1$: MOVB (R0)+,(R1)+ ;TRANSFER CHARS TO STORAGE
≠BNE≡≥ 140572 001376 BNE 1$ ;TILL NULL
≠CLRB≡≡R1≡≥ 140574 105011 CLRB (R1) ;THEN STORE 2ND NULL
≠MOV≡≡R1≡≡IFINP≡≥ 140576 010137 147622 MOV R1,IFINP ;RESAVE POINTER
≠CMP≡≡R1≡≡TOUTBF≡≥ 140602 020127 012600 CMP R1,#TOUTBF+10000-200
≠BLE≡≥ 140606 003402 BLE 2$ ;EXCEEDED BUFFER ROOM ?
≠JMP≡≡$LINER≡≥ 140610 000137 131762 JMP $LINERR ;YES
≠JMP≡≡ACTLD2≡≥ 140614 000137 140312 2$: JMP ACTLD2 ;REPEAT TILL EOF
≥
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 357
KLDCP PAL[KL,SYS] Page 5.9 COMMUNICATIONS ROUTINES
≥
≥ ;PDP-11 Core Dump to A11 file
≥ ;.INSRT CDMP11.PAL
≥
≥ ;KL10 diagnostic functions
≠.INSRT≡≥ .INSRT BR11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 358
BR11 PALII[KL,SYS] Page 1 COMMUNICATIONS ROUTINES
≥ COMMENT ⊗ VALID 00025 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00003 00002 .SBTTL DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
≥ C00005 00003 .SBTTL ROUTINE TO READ THE EBUS VIA THE DTE20
≥ C00007 00004 .SBTTL ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
≥ C00009 00005 DIAGNOSTIC FUNCTION EXECUTE, FAST
≥ C00011 00006 .SBTTL ROUTINE TO WRITE 36 BITS TO THE EBUS
≥ C00014 00007 .SBTTL ROUTINE TO DO EBUS READ, THEN STORE DATA SOMEPLACE
≥ C00016 00008 .SBTTL MASTER RESET ROUTINE
≥ C00021 00009 .SBTTL CONTROL RAM ADDRESS ROUTINE
≥ C00023 00010 .SBTTL WCRAM ROUTINE
≥ C00026 00011 $STRCH: MOV WREADY,R0 GET UNSPACED DATA
≥ C00028 00012 .SBTTL RCRAM ROUTINE
≥ C00031 00013 15$: MOVB WREADY+1,-(R3) ENDING UP
≥ C00033 00014 $SQASH: MOV WREADY,R1 GET STRETCHED BITS 8-19
≥ C00035 00015 .SBTTL MICNUL & MICFIL C-RAM ROUTINES
≥ C00036 00016 MICFIL, C-RAM FILL WITH ONES ROUTINE
≥ C00037 00017 .SBTTL WDRAM ROUTINE
≥ C00038 00018 .SBTTL RDRAM ROUTINE
≥ C00040 00019 $DRAMAD: MOV #DDRAM,R3 GET ADDRESS OF EBUS DATA
≥ C00042 00020 WRITE THE IR
≥ C00044 00021 .SBTTL M-BOX CLOCK BURST ROUTINE
≥ C00046 00022 .SBTTL LOAD AR ROUTINE
≥ C00049 00023 .SBTTL MBOX PHASE ROUTINE
≥ C00052 00024 .SBTTL VMA, VMAH, PC & ADDRESS BREAK ROUTINE
≥ C00054 00025 MOV #WREADY+5,R1 NOW MOVE READ DATA
≥ C00056 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 359
BR11 PALII[KL,SYS] Page 2 DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
≥ .SBTTL DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
≥
≠TST≡≡$ONETM≡≥ 140620 005737 157316 DTEINI: TST $ONETM ;HAVE WE GONE THRU THIS ONCE BEFORE ?
≠BNE≡≥ 140624 001013 BNE 3$ ;BR IF YES
≠MOV≡≡DTEADR≡≡R0≡≥ 140626 012700 174400 MOV #DTEADR,R0
≥
≠MOV≡≡R2≡≥ 140632 012702 000020 11$: MOV #16.,R2
≠MOV≡≡.DELAY≡≡R1≡≥ 140636 012701 157320 MOV #.DELAY,R1
≠MOV≡≡R0≡≡R1≡≥ 140642 010021 1$: MOV R0,(R1)+ ;SETUP DTE20 INDIRECT ADDRESS POINTERS
≠INC≡≡R0≡≥ 140644 005200 INC R0
≠INC≡≡R0≡≥ 140646 005200 INC R0
≠DEC≡≡R2≡≥ 140650 005302 DEC R2
≠BNE≡≥ 140652 001373 BNE 1$
≡SETFLG≡≡SETFLG≡≥ 140654 104055 3$: SETFLG
≡$ONETM≡≡$ONETM≡≥ 140656 157316 $ONETM
≥
≠MOV≡≡$STJRS≡≡R0≡≥ 140660 012700 140730 MOV #$STJRS,R0 ;SETUP "JRST" START INSTRUCTION
≠MOV≡≡$$STJR≡≡R1≡≥ 140664 012701 157222 MOV #$$STJRS,R1 ;MUST BE IN STORAGE BECAUSE
≠MOV≡≡R0≡≡R1≡≥ 140670 012021 MOV (R0)+,(R1)+ ;THE JRST ADR IS VARIABLE
≠MOV≡≡R0≡≡R1≡≥ 140672 012021 MOV (R0)+,(R1)+
≠MOV≡≡R0≡≡R1≡≥ 140674 012021 MOV (R0)+,(R1)+
≥
≠MOV≡≡$PAGDF≡≡R0≡≥ 140676 012700 140722 MOV #$PAGDFL,R0 ;SETUP "DATAO PAG,0" DEFAULT ARGUMENT
≠MOV≡≡PAGDFL≡≡R1≡≥ 140702 012701 157254 MOV #PAGDFL,R1 ;MUST BE IN STORAGE BECAUSE THE CURRENT
≠MOV≡≡R0≡≡R1≡≥ 140706 012021 MOV (R0)+,(R1)+ ;AC BLOCK SELECTION IS VARIABLE
≠MOV≡≡R0≡≡R1≡≥ 140710 012021 MOV (R0)+,(R1)+
≠MOV≡≡R0≡≡R1≡≥ 140712 012021 MOV (R0)+,(R1)+
≥
≠CLR≡≡R0≡≥ 140714 005000 CLR R0
≡SETMPH≡≡SETMPH≡≥ 140716 104147 SETMPH ;SET M-BOX PHASE
≠RTS≡≡PC≡≥ 140720 000207 RTS PC
≥
≤WD36≡≥ $PAGDFL:WD36 7000,0040,0000 ;LD'S & NO ST ACC
≠.NLIST≡≠.BYTE≡≠.BYTE≡≠.LIST≡≠.EVEN≡≥ 140730 .EVEN
≥
≤I10≡≥ $STJRS: I10 JRST,0,,0
≡ADH≠≥ 000000 ADH=0
≡ADL≠≥ 000000 ADL=0
≠.IF≡≥ .IF NB 0
≠.IRPC≡≥ .IRPC AD1,0
≥ .IIF GE <ADL-10000>,ADH=ADL/10000
≥ ADL=10*<ADL&7777>+AD1
≥ .ENDM
≠.IIF≡≡ADL≡≥ 770000 .IIF GE <ADL-10000>,ADH=ADL/10000
≡ADL≡≡ADL≠≥ 000000 ADL=10*<ADL&7777>+0
≥ .ENDC
≠.IIF≡≥ .IIF B 0,AC=0
≠.IIF≡≡AC≠≥ 000000 .IIF NB 0,AC=0
≠.IIF≡≡I≠≥ 000000 .IIF B ,I=0
≠.IIF≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 360
BR11 PALII[KL,SYS] Page 2.1 DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
≥ .IIF NB ,I=
≠.IIF≡≡XR≠≥ 000000 .IIF B ,XR=0
≠.IIF≡≥ .IIF NB ,XR=
≠.NLIST≡≠.BYTE≡≡ADL≡≡ADL≡≡ADH≡≡AC≡≡I≡≡XR≡≡ADH≡≠.BYTE≡≡JRST≡≡AC≡≡JRST≡≠.LIST≡≠.EVEN≡≥ 140736 .EVEN
≥
≠MOV≡≡.DELAY≡≡R0≡≥ 140736 013700 157320 $DTEBAS:MOV .DELAY,R0
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 140742 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 361
BR11 PALII[KL,SYS] Page 3 ROUTINE TO READ THE EBUS VIA THE DTE20
≥ .SBTTL ROUTINE TO READ THE EBUS VIA THE DTE20
≥
≥ ;THIS IS THE ROUTINE TO READ 36 BITS FROM THE EBUS
≥ ;THE CALL REQUIRES THE DIAGNOSTIC FUNCTION TO BE EXECUTED
≥ ;TO BE IN REGISTER R0,RIGHT JUSTIFIED.
≥ ;CALLING SEQUENCE:
≥ ; CALL-1: MOV #DIAG FUNCTION,R0
≥ ; CALL: DFRD
≥
≠MOV≡≡$EMADR≡≡R0≡≥ 140746 017700 006662 $DFRDT: MOV @$EMADR,R0 ;PICKUP TRAILING PARAMETER
≠ADD≡≡SP≡≥ 140752 062766 000002 000012 ADD #2,12(SP) ;SKIP RETURN
≥
≠JSR≡≡PC≡≡$KLCK1≡≥ 140760 004737 141266 $DFRD: JSR PC,$KLCK1 ;CHECK KL10 CLOCK RUNNING
≠ASL≡≡R0≡≥ 140764 006300 ASL R0 ;MAKE DIAG FCN IN CORRECT BITS
≠SWAB≡≡R0≡≥ 140766 000300 SWAB R0 ;MAKE DIAG FCN IN CORRECT BYTE
≠BIS≡≡DCOMST≡≡DFUNC≡≡DIKL10≡≡R0≡≥ 140770 052700 000211 BIS #DCOMST!DFUNC!DIKL10,R0 ;SET CORRECT DTE20 BITS
≠MOV≡≡R0≡≡.DIAG1≡≥ 140774 010077 016350 MOV R0,@.DIAG1 ;EXECUTE THE FUNCTION
≤WFZERO≡≥ $DFXX: WFZERO DCOMST ;WAIT FOR DONE FLAG
≠MOV≡≡SP≡≥ 141000 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
≠BIT≡≡DCOMST≡≡.DIAG1≡≥ 141004 032777 000001 016336 91$: BIT #DCOMST,@.DIAG1 ;TEST BIT
≠BEQ≡≥ 141012 001407 BEQ 92$ ;LEAVE IF BIT ZERO(OK)
≠DEC≡≡SP≡≥ 141014 005316 DEC (SP) ;DECREMENT CNT
≠BNE≡≥ 141016 001372 BNE 91$ ;CONTINUE LOOP
≠TST≡≡RPTFLG≡≥ 141020 005737 147732 TST RPTFLG ;OTHERWISE TIME OUT
≠BNE≡≥ 141024 001002 BNE 92$
≠JSR≡≡R1≡≡$DFTIM≡≥ 141026 004137 141044 JSR R1,$DFTIM
≠TST≡≡SP≡≥ 141032 005726 92$: TST (SP)+ ;RESET STACK & CONTINUE
≠JSR≡≡PC≡≡$KLCK2≡≥ 141034 004737 141340 JSR PC,$KLCK2 ;RESTART CLOCK IF NECESSARY
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 141040 000137 124064 JMP $EXIT
≥
≠CLR≡≡TENRUN≡≥ 141044 005037 147670 $DFTIM: CLR TENRUN
≤PMSG≡≥ PMSG <?DF TIMEOUT AT >
≡$PMSG≡≡$PMSG≡≥ 141050 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 141052 147242 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R1≡≡R0≡≥ 141054 010100 MOV R1,R0
≡PNTOCT≡≡PNTOCT≡≥ 141056 104035 PNTOCT
≤PMSG≡≥ PMSG <PC = >
≡$PMSG≡≡$PMSG≡≥ 141060 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 141062 147262 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡SP≡≡R0≡≥ 141064 016600 000016 MOV 16(SP),R0 ;GET ADDRESS OF CALL
≠TST≡≡R0≡≥ 141070 005740 $DFTMX: TST -(R0)
≡PNTOCT≡≡PNTOCT≡≥ 141072 104035 PNTOCT
≠JMP≡≡$CNTLC≡≥ 141074 000137 100004 JMP $CNTLC
≥
≤PMSG≡≥ $ECTIM: PMSG <?CLK>
≡$PMSG≡≡$PMSG≡≥ 141100 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 141102 147270 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≥
≤PMSG≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 362
BR11 PALII[KL,SYS] Page 3.1 ROUTINE TO READ THE EBUS VIA THE DTE20
≥ $DFTM1: PMSG < ERR AT >
≡$PMSG≡≡$PMSG≡≥ 141104 104025 $PMSG
≡$$CLIT≡≡$$CLIT≡≥ 141106 147275 $$CLIT
≠.NLIST≡≡$$CLC≠≡$$CLIT≡≠.ASCIZ≡≡$$CLIT≠≡$$CLC≡≠.LIST≡≠MOV≡≡R1≡≡R0≡≥ 141110 010100 MOV R1,R0
≠BR≡≡$DFTMX≡≥ 141112 000766 BR $DFTMX
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 363
BR11 PALII[KL,SYS] Page 4 ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
≥ .SBTTL ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
≥
≥ ;THIS IS THE ROUTINE TO EXECUTE A NON-DATA
≥ ;DIAGNOSTIC FUNCTION. THE CALL REQUIRES THE
≥ ;DIAGNOSTIC FUNCTION TO BE EXECUTED TO BE IN
≥ ;REGISTER R0,RIGHT JUSTIFIED
≥
≥ ;CALLING SEQUENCE:
≥ ; CALL-1: MOV #DIAG FUNCTION,R0
≥ ; CALL: DFXCT
≥
≥ ;DIAGNOSTIC FUNCTION EXECUTE, TRAILING PARAMETER
≥
≠MOV≡≡$EMADR≡≡R0≡≥ 141114 017700 006514 $DXCTT: MOV @$EMADR,R0 ;PICKUP TRAILING PARAMETER
≠ADD≡≡SP≡≥ 141120 062766 000002 000012 ADD #2,12(SP) ;SKIP RETURN
≠BR≡≡$DFXCT≡≥ 141126 000406 BR $DFXCT
≥
≥ ;DIAGNOSTIC FUNCTION EXECUTE, SINGLE STEP KL10 CLOCK
≥
≠CLR≡≡KLCLKR≡≥ 141130 005037 147454 $DFSCLK:CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
≠MOV≡≡DCOMST≡≡DFUNC≡≡SSCLK≡≡.DIAG1≡≥ 141134 012777 002201 016206 MOV #DCOMST!DFUNC!<SSCLK*1000>,@.DIAG1
≠BR≡≡$$DFX1≡≥ 141142 000422 BR $$DFX1
≥
≥ ;DIAGNOSTIC FUNCTION EXECUTE
≥
≠CMP≡≡R0≡≥ 141144 020027 000001 $DFXCT: CMP R0,#001 ;KL10 CLOCK START FUNCTION ?
≠BEQ≡≥ 141150 001406 BEQ 1$ ;YES
≠CMP≡≡R0≡≥ 141152 020027 000007 CMP R0,#007 ;ANY OTHER CLOCK CONTROL FUNCTION ?
≠BGT≡≥ 141156 003006 BGT 2$ ;NO
≠CLR≡≡KLCLKR≡≥ 141160 005037 147454 CLR KLCLKR ;YES, CLEAR LOGICAL CLOCK RUN FLAG
≠BR≡≥ 141164 000403 BR 2$
≠MOV≡≡KLCLKR≡≥ 141166 012737 777777 147454 1$: MOV #-1,KLCLKR ;CLOCK START, SET LOGICAL CLOCK RUN FLAG
≠ASL≡≡R0≡≥ 141174 006300 2$: ASL R0 ;MAKE DIAG FCN IN CORRECT BITS
≠SWAB≡≡R0≡≥ 141176 000300 SWAB R0 ;MAKE DIAG FCN IN CORRECT BYTE
≠BIS≡≡DCOMST≡≡DFUNC≡≡R0≡≥ 141200 052700 000201 BIS #DCOMST!DFUNC,R0 ;SET CORRECT DTE20 BITS
≠MOV≡≡R0≡≡.DIAG1≡≥ 141204 010077 016140 MOV R0,@.DIAG1 ;EXECUTE THE FUNCTION
≤WFZERO≡≥ $$DFX1: WFZERO DCOMST ;WAIT FOR DONE
≠MOV≡≡SP≡≥ 141210 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
≠BIT≡≡DCOMST≡≡.DIAG1≡≥ 141214 032777 000001 016126 91$: BIT #DCOMST,@.DIAG1 ;TEST BIT
≠BEQ≡≥ 141222 001407 BEQ 92$ ;LEAVE IF BIT ZERO(OK)
≠DEC≡≡SP≡≥ 141224 005316 DEC (SP) ;DECREMENT CNT
≠BNE≡≥ 141226 001372 BNE 91$ ;CONTINUE LOOP
≠TST≡≡RPTFLG≡≥ 141230 005737 147732 TST RPTFLG ;OTHERWISE TIME OUT
≠BNE≡≥ 141234 001002 BNE 92$
≠JSR≡≡R1≡≡$DFTIM≡≥ 141236 004137 141044 JSR R1,$DFTIM
≠TST≡≡SP≡≥ 141242 005726 92$: TST (SP)+ ;RESET STACK & CONTINUE
≤EXIT≡≥ EXIT ;RETURN
≠JMP≡≡$EXIT≡≥ 141244 000137 124064 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 364
BR11 PALII[KL,SYS] Page 5 ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
≥ ;DIAGNOSTIC FUNCTION EXECUTE, FAST
≥
≠ASL≡≡R0≡≥ 141250 006300 $DFXFST:ASL R0 ;DIAG FUNCTION TO CORRECT BITS
≠SWAB≡≡R0≡≥ 141252 000300 SWAB R0
≠BIS≡≡DCOMST≡≡DFUNC≡≡R0≡≥ 141254 052700 000201 BIS #DCOMST!DFUNC,R0
≠MOV≡≡R0≡≡.DIAG1≡≥ 141260 010077 016064 MOV R0,@.DIAG1 ;EXECUTE THE FUNCTION
≠BR≡≡$$DFXD≡≥ 141264 000406 BR $$DFXDN
≥
≥ ;KL10 CLOCK RUNNING CONTROLS
≥
≠TST≡≡KLCLKR≡≥ 141266 005737 147454 $KLCK1: TST KLCLKR ;KL10 CLOCK RUNNING ?
≠BEQ≡≡$KLCK4≡≥ 141272 001421 BEQ $KLCK4 ;NO
≠MOV≡≡DCOMST≡≡DFUNC≡≡STPCLK≡≡.DIAG1≡≥ 141274 012777 000201 016046 MOV #DCOMST!DFUNC!<STPCLK*1000>,@.DIAG1
≥ $$DFXDN:
≤WFZERO≡≥ $KLCK3: WFZERO DCOMST
≠MOV≡≡SP≡≥ 141302 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
≠BIT≡≡DCOMST≡≡.DIAG1≡≥ 141306 032777 000001 016034 91$: BIT #DCOMST,@.DIAG1 ;TEST BIT
≠BEQ≡≥ 141314 001407 BEQ 92$ ;LEAVE IF BIT ZERO(OK)
≠DEC≡≡SP≡≥ 141316 005316 DEC (SP) ;DECREMENT CNT
≠BNE≡≥ 141320 001372 BNE 91$ ;CONTINUE LOOP
≠TST≡≡RPTFLG≡≥ 141322 005737 147732 TST RPTFLG ;OTHERWISE TIME OUT
≠BNE≡≥ 141326 001002 BNE 92$
≠JSR≡≡R1≡≡$DFTIM≡≥ 141330 004137 141044 JSR R1,$DFTIM
≠TST≡≡SP≡≥ 141334 005726 92$: TST (SP)+ ;RESET STACK & CONTINUE
≠RTS≡≡PC≡≥ 141336 000207 $KLCK4: RTS PC
≥
≠TST≡≡KLCLKR≡≥ 141340 005737 147454 $KLCK2: TST KLCLKR ;WAS CLOCK RUNNING ?
≠BEQ≡≡$KLCK4≡≥ 141344 001774 BEQ $KLCK4 ;NO
≠MOV≡≡DCOMST≡≡DFUNC≡≡STRCLK≡≡.DIAG1≡≥ 141346 012777 001201 015774 MOV #DCOMST!DFUNC!<STRCLK*1000>,@.DIAG1
≠BR≡≡$KLCK3≡≥ 141354 000752 BR $KLCK3
≥
≡DEP≡≡DEP≡≥ 141356 010000 FFDEP: DEP ;DTE20 DEPOSIT/EXAM BIT
≥
≥ ;DIAGNOSTIC FUNCTION, WRITE IR
≥
≡DFWRT≡≡DFWRT≡≥ 141360 104120 $DFWIR: DFWRT ;THE LOAD AR FUNCTION IS ALREADY SETUP
≠MOV≡≡DCOMST≡≡DFUNC≡≡IRLOAD≡≡.DIAG1≡≥ 141362 012777 014201 015760 MOV #DCOMST!DFUNC!<IRLOAD*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 141370 004737 141302 JSR PC,$$DFXDN ;STROBE DATA FROM AD TO IR
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 141374 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 365
BR11 PALII[KL,SYS] Page 6 ROUTINE TO WRITE 36 BITS TO THE EBUS
≥ .SBTTL ROUTINE TO WRITE 36 BITS TO THE EBUS
≥
≥ ;THIS IS THE ROUTINE TO WRITE 36 BITS TO THE EBUS
≥ ;THE ROUTINE REQUIRES THAT THE ADDRESS OF THE DATA
≥ ;TO BE WRITTEN IS IN REGISTER R1. THE DIAGNOSTIC
≥ ;FUNCTION WHICH DOES THE WRITE MUST BE RIGHT
≥ ;JUSTIFIED IN REGISTER R0.THE DATA TO BE WRITTEN MUST
≥ ;BE IN 5 CONSECUTIVE BYTES AS FOLLOWS:
≥ ; .BYTE EBUS BITS 28-35
≥ ; .BYTE EBUS BITS 20-27
≥ ; .BYTE EBUS BITS 12-19
≥ ; .BYTE EBUS BITS 04-11
≥ ; .BYTE EBUS BITS 00-03
≥
≥ ;CALLING SEQUENCE:
≥ ; CALL-2: MOV #ADDR,R1
≥ ; CALL-1: MOV #DIAG FCN,R0
≥ ; CALL: DFWRT
≥
≠JSR≡≡PC≡≡$KLCK1≡≥ 141400 004737 141266 $DFWRT: JSR PC,$KLCK1 ;KL10 CLOCK RUNNING ?
≤PUSH≡≥ PUSH R1 ;SAVE DESTINATION FOR POSTERITY
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠BIT≡≡R1≡≥ 141406 032701 000001 BIT #1,R1 ;DATA ON WORD BOUNDRY ?
≠BEQ≡≥ 141412 001457 BEQ 2$ ;YES
≠MOV≡≡XXDAT≡≡R5≡≥ 141414 012705 147546 MOV #XXDAT,R5
≠MOVB≡≡R1≡≡R5≡≥ 141420 112125 MOVB (R1)+,(R5)+ ;PUT BITS 28-35 INTO CORE WORD
≠MOVB≡≡R1≡≡R5≡≥ 141422 112125 MOVB (R1)+,(R5)+ ;PUT BITS 20-27 INTO CORE
≠MOV≡≡R5≡≡.DAT3≡≥ 141424 014577 015672 MOV -(R5),@.DAT3 ;PUT BITS 20-35 INTO DTE20
≠MOVB≡≡R1≡≡R5≡≥ 141430 112125 MOVB (R1)+,(R5)+ ;PUT BITS 12-19 INTO CORE WORD
≠MOVB≡≡R1≡≡R5≡≥ 141432 112125 MOVB (R1)+,(R5)+ ;PUT BITS 4-11 INTO CORE WORD
≠MOV≡≡R5≡≡.DAT2≡≥ 141434 014577 015664 MOV -(R5),@.DAT2 ;PUT BITS 4-19 INTO DTE20
≠MOVB≡≡R1≡≡R5≡≥ 141440 112115 MOVB (R1)+,(R5) ;PUT BITS 0-3 INTO CORE WORD
≠BIC≡≡R5≡≥ 141442 042715 177760 BIC #177760,(R5) ;OFF TRASH
≠MOV≡≡R5≡≡.DAT1≡≥ 141446 011577 015654 MOV (R5),@.DAT1 ;BITS 0-3 INTO DTE20
≠MOV≡≡DIKL10≡≡DSEND≡≡.DIAG1≡≥ 141452 012777 000014 015670 1$: MOV #DIKL10!DSEND,@.DIAG1 ;SET BIT TO DIAGNOSE KL10
≠MOV≡≡FFDEP≡≡.TENA1≡≥ 141460 013777 141356 015642 MOV FFDEP,@.TENA1 ;SET DEPOSIT BIT OF DTE20
≠MOV≡≡FFDEP≡≡.TENA2≡≥ 141466 013777 141356 015636 MOV FFDEP,@.TENA2 ;DO A PSEUDO DEPOSIT
≤WFONE≡≥ WFONE DEXDON ;WAIT FOR A FLAG
≠MOV≡≡SP≡≥ 141474 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
≠BIT≡≡DEXDON≡≡.STDTE≡≥ 141500 032777 000004 015646 93$: BIT #DEXDON,@.STDTE ;TEST BIT
≠BNE≡≥ 141506 001007 BNE 94$ ;LEAVE IF NOW A ONE(OK)
≠DEC≡≡SP≡≥ 141510 005316 DEC (SP) ;DECREMENT CNT
≠BNE≡≥ 141512 001372 BNE 93$ ;CONTINUE LOOP
≠TST≡≡RPTFLG≡≥ 141514 005737 147732 TST RPTFLG ;OTHERWISE TIME OUT
≠BNE≡≥ 141520 001002 BNE 94$
≠JSR≡≡R1≡≡$DFTIM≡≥ 141522 004137 141044 JSR R1,$DFTIM
≠TST≡≡SP≡≥ 141526 005726 94$: TST (SP)+ ;RESET STACK
≠ASL≡≡R0≡≥ 141530 006300 ASL R0 ;GET DIAG FCN IN BIT POSITION
≠SWAB≡≡R0≡≥ 141532 000300 SWAB R0 ;GET DIAG FCN IN BYTE POSITION
≠BIS≡≡DCOMST≡≡DSEND≡≡DIKL10≡≡DFUNC≡≡R0≡≥ 141534 052700 000215 BIS #DCOMST!DSEND!DIKL10!DFUNC,R0 ;SET DTE20 BITS
≠MOV≡≡R0≡≡.DIAG1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 366
BR11 PALII[KL,SYS] Page 6.1 ROUTINE TO WRITE 36 BITS TO THE EBUS
≥ 141540 010077 015604 MOV R0,@.DIAG1 ;EXECUTE THE DIAGNOSTIC FUNCTION
≤POP≡≥ POP R0 ;RESTORE WHERE GOT DATA
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠JMP≡≡$DFXX≡≥ 141546 000137 141000 JMP $DFXX ;WAIT FOR DONE & EXIT
≥
≠MOV≡≡R1≡≡.DAT3≡≥ 141552 012177 015544 2$: MOV (R1)+,@.DAT3 ;BITS 20-35
≠MOV≡≡R1≡≡.DAT2≡≥ 141556 012177 015542 MOV (R1)+,@.DAT2 ;BITS 4-19
≠MOV≡≡R1≡≡.DAT1≡≥ 141562 011177 015540 MOV (R1),@.DAT1 ;BITS 0-3
≠BR≡≥ 141566 000731 BR 1$
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 367
BR11 PALII[KL,SYS] Page 7 ROUTINE TO DO EBUS READ, THEN STORE DATA SOMEPLACE
≥ .SBTTL ROUTINE TO DO EBUS READ, THEN STORE DATA SOMEPLACE
≥
≥ ;ENTER THIS ROUTINE WITH R0 CONTAINING DIAGNOSTIC FUNCTION TO EXECUTE
≥ ;AND R1 CONTAINING ADDRESS OF BUFFER WHERE DATA SHOULD BE PLACED
≥
≡DFRD≡≡DFRD≡≥ 141570 104116 $DFRDMV:DFRD ;GO READ KL10 DATA
≤PUSH≡≥ PUSH R1 ;SAVE DESTINATION
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠MOV≡≡.DAT3≡≡R0≡≥ 141574 013700 157322 MOV .DAT3,R0 ;GET ADDRESS OF DTE20 REG
≠MOVB≡≡R0≡≡R1≡≥ 141600 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
≠MOVB≡≡R0≡≡R1≡≥ 141602 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
≠MOVB≡≡R0≡≡R1≡≥ 141604 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
≠MOVB≡≡R0≡≡R1≡≥ 141606 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
≠MOVB≡≡R0≡≡R1≡≥ 141610 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
≤POP≡≥ POP R0 ;RESTORE REG R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 141614 000137 124064 JMP $EXIT
≥
≥ ;DIAGNOSTIC FUNCTION WRITE, TRAILING PARAMETER
≥
≠MOV≡≡$EMADR≡≡R5≡≥ 141620 013705 147634 $DWRTT: MOV $EMADR,R5
≠MOV≡≡R5≡≡R1≡≥ 141624 012501 MOV (R5)+,R1 ;DATA ADDRESS TO R1
≠MOV≡≡R5≡≡R0≡≥ 141626 011500 MOV (R5),R0 ;DIAG FUNCTION TO R0
≠ADD≡≡SP≡≥ 141630 062766 000004 000012 ADD #4,12(SP) ;RETURN OVER TRAILING PARAMETERS
≠BR≡≡$DFWRT≡≥ 141636 000660 BR $DFWRT
≥
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 368
BR11 PALII[KL,SYS] Page 8 MASTER RESET ROUTINE
≥ .SBTTL MASTER RESET ROUTINE
≥ ;MASTER RESET DIAGNOSTIC FUNCTION LIST
≥
≠.BYTE≡≡STPCLK≡≥ 141640 000 LLIST: .BYTE STPCLK ;STOP CLOCK
≠.BYTE≡≡SETMR≡≥ 141641 007 .BYTE SETMR ;SET MASTER RESET
≠.BYTE≡≡STRCLK≡≥ 141642 001 .BYTE STRCLK ;START CLOCK
≠.BYTE≡≡LDBRR≡≥ 141643 042 .BYTE LDBRR ;LOAD BURST REGISTER RIGHT
≠.BYTE≡≡LDBRL≡≥ 141644 043 .BYTE LDBRL ;LOAD BURST REGISTER LEFT
≠.BYTE≡≡LDDIS≡≥ 141645 045 .BYTE LDDIS ;LOAD CLOCK DISTRIBUTION REGISTER
≠.BYTE≡≡LDCHK1≡≥ 141646 046 .BYTE LDCHK1 ;LOAD PARITY CHECK REGISTER
≠.BYTE≡≡LDCHK2≡≥ 141647 047 .BYTE LDCHK2 ;LOAD EBOX INTERNAL CHECK REGISTER
≠.BYTE≡≡LDCHAN≡≥ 141650 070 .BYTE LDCHAN ;INITIALIZE CHANNELS
≠.BYTE≡≡STPCLK≡≥ 141651 000 .BYTE STPCLK ;STOP CLOCK
≡LLIST≡≡LLISTL≠≥ 000012 LLISTL==.-LLIST ;BUT THE LAST THREE ARE SPECIAL
≠.BYTE≡≡ENIOJA≡≥ 141652 067 .BYTE ENIOJA ;SET IR DECODE TO KL10 MODE
≠.BYTE≡≥ 141653 076 .BYTE 76 ;D.F. TO CONTROL EBUS REG
≠.BYTE≡≡LDMBXA≡≥ 141654 071 .BYTE LDMBXA ;LOAD MEMORY TO CACHE SELECTOR
≠.EVEN≡≥ 141656 .EVEN
≥
≥ ;THIS IS A ROUTINE TO DO A MASTER RESET.
≥
≤PUSH≡≥ $MRESET:PUSH R0 ;SAVE REGISTERS
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠TST≡≡TENRUN≡≥ 141660 005737 147670 TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
≠BEQ≡≥ 141664 001401 BEQ 90$ ;BR IF NOT
≡TENSP≡≡TENSP≡≥ 141666 104077 TENSP ;STOP TEN
≠CLR≡≡TENCLK≡≥ 141670 005037 152216 90$: CLR TENCLK ;AFTER THIS, THE 10 DOESN'T NEED CLOCK INTS
≠CLR≡≡SWTDEP≡≥ 141674 005037 147422 CLR SWTDEP ; OR DATA SWITCHES ...
≠CLR≡≡MONMOD≡≥ 141700 005037 147666 CLR MONMODE ; ... OR MONITOR MODE (CLEAR FOR KA SIM)
≠CLR≡≡MTTYOF≡≥ 141704 005037 147664 CLR MTTYOF
≠CLR≡≡KASIM≡≥ 141710 005037 147660 CLR KASIM ;AND IS NO LONGER IN KASIM MODE
≠.IF≡≡CLKASB≡≥ .IF DF CLKASB
≠CLR≡≡TIMFLG≡≥ 141714 005037 157142 CLR TIMFLG ; ... OR TIME OF DAY
≠CLR≡≡TMSFLG≡≥ 141720 005037 157140 CLR TMSFLG
≥ .ENDC DF CLKASB
≠MOV≡≡DRESET≡≡.DIAG2≡≥ 141724 012777 000100 015420 MOV #DRESET,@.DIAG2 ;MASTER CLEAR THE DTE20
≠.IF≡≡%%QMP≡≥ .IF DF %%QMP
≥ ;For QMP11, include INTRON in new DTE status
≠MOV≡≡INTRON≡≡DON10C≡≡ERR10C≡≡INT11C≡≡PERCLR≡≡DON11C≡≡ERR11C≡≡.STDTE≡≥ 141732 012777 053141 015414 MOV #INTRON!DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,@.STDTE ;CLEAR DTE20 STATUS
≥ .IFF
≥ MOV #DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,@.STDTE ;CLEAR DTE20 STATUS
≥ .ENDC
≡DFWRTT≡≡DFWRTT≡≥ 141740 104141 DFWRTT ;WRITE TO CLOCK
≡CLKDFL≡≡CLKDFL≡≥ 141742 157246 CLKDFL ;SET CLOCK TO DEFAULT
≡LDSEL≡≡LDSEL≡≥ 141744 000044 LDSEL
≠CLR≡≡KLCLKR≡≥ 141746 005037 147454 CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
≠MOV≡≡LLISTL≡≡R1≡≥ 141752 012701 000012 MOV #LLISTL,R1 ;MUST EXECUTE TEN DIAG FUNCTIONS IN MR
≠MOV≡≡LLIST≡≡R2≡≥ 141756 012702 141640 MOV #LLIST,R2 ;ADDRESS OF FUNCTIONS INTO R2
≠MOVB≡≡R2≡≡R0≡≥ 141762 112200 1$: MOVB (R2)+,R0 ;FUNCTION TO R0 FOR THE EXECUTE CALL
≠JSR≡≡PC≡≡$DFXFS≡≥ 141764 004737 141250 JSR PC,$DFXFST ;EXECUTE THE DIAGNOSTIC FUNCTION
≠DEC≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 369
BR11 PALII[KL,SYS] Page 8.1 MASTER RESET ROUTINE
≥ 141770 005301 DEC R1 ;DECREMENT COUNT OF # OF FUNCTIONS LEFT
≠BNE≡≥ 141772 001373 BNE 1$ ;CONTINUE TILL DONE
≥
≠MOV≡≡R4≡≥ 141774 012704 000003 MOV #3,R4 ;SYNC MBOX NXM LOGIC
≡DFRDT≡≡DFRDT≡≥ 142000 104140 2$: DFRDT ;TEST A CHANGE COMING L
≥ 142002 000162 162
≠BIT≡≡BIT3≡≡.DAT3≡≥ 142004 032777 000010 015310 BIT #BIT3,@.DAT3
≠BEQ≡≥ 142012 001407 BEQ 3$ ;ASSERTED, CONTINUE
≠MOV≡≡DCOMST≡≡DFUNC≡≡SSCLK≡≡.DIAG1≡≥ 142014 012777 002201 015326 MOV #DCOMST!DFUNC!<SSCLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 142022 004737 141302 JSR PC,$$DFXDN ;DO ONE MBOX CLOCK
≠DEC≡≡R4≡≥ 142026 005304 DEC R4 ;DONE 3 CLOCKS ?
≠BGT≡≥ 142030 003363 BGT 2$ ;NO, TRY AGAIN
≥
≠MOV≡≡DCOMST≡≡DFUNC≡≡CECLK≡≡.DIAG1≡≥ 142032 012777 004201 015310 3$: MOV #DCOMST!DFUNC!<CECLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 142040 004737 141302 JSR PC,$$DFXDN ;CONDITIONAL EBOX CLOCK
≠MOV≡≡DCOMST≡≡DFUNC≡≡CLRMR≡≡.DIAG1≡≥ 142044 012777 006201 015276 MOV #DCOMST!DFUNC!<CLRMR*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 142052 004737 141302 JSR PC,$$DFXDN ;CLEAR MR
≥
≠MOVB≡≡R2≡≡R0≡≥ 142056 112200 MOVB (R2)+,R0
≠JSR≡≡PC≡≡$DFXFS≡≥ 142060 004737 141250 JSR PC,$DFXFST ;SET IR DECODE
≥
≠MOVB≡≡R2≡≡R0≡≥ 142064 112200 MOVB (R2)+,R0 ;GET THE NEXT FUNCTION FROM THE LIST
≠MOV≡≡WREADY≡≡R1≡≥ 142066 012701 147532 MOV #WREADY,R1 ;CLEAR A 36 BIT BUFFER FOR SENDING DATA
≠MOV≡≡R1≡≡R5≡≥ 142072 010105 MOV R1,R5
≠CLR≡≡R5≡≥ 142074 005025 CLR (R5)+ ;CLEAR A WORK AREA
≠CLR≡≡R5≡≥ 142076 005025 CLR (R5)+
≠CLR≡≡R5≡≥ 142100 005015 CLR (R5)
≡DFWRT≡≡DFWRT≡≥ 142102 104120 DFWRT ;WRITE 0'S TO EBUS & PREVENT SBUS RESET
≠MOVB≡≡R1≡≥ 142104 112711 000012 MOVB #12,(R1)
≠MOVB≡≡R2≡≡R0≡≥ 142110 112200 MOVB (R2)+,R0 ;GET NEXT DIAG FUNCTION
≡DFWRT≡≡DFWRT≡≥ 142112 104120 DFWRT ;LOAD MEMORY TO CACHE SELECTOR
≤POP≡≥ POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 142116 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 370
BR11 PALII[KL,SYS] Page 9 CONTROL RAM ADDRESS ROUTINE
≥ .SBTTL CONTROL RAM ADDRESS ROUTINE
≥
≤PUSH≡≥ $WWADR: PUSH R1 ;SAVE R1
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠TST≡≡R0≡≥ 142124 005700 TST R0 ;IF BIT 15 SET, AVOID MASTER RESET
≠BMI≡≥ 142126 100407 BMI 1$
≠BIT≡≡BIT14≡≡R0≡≥ 142130 032700 040000 BIT #BIT14,R0 ;IF BIT 14 SET, SPECIAL RESET
≠BEQ≡≥ 142134 001403 BEQ 2$
≠JSR≡≡PC≡≡$SPCMR≡≥ 142136 004737 142506 JSR PC,$SPCMR ;SPECIAL MASTER RESET
≠BR≡≥ 142142 000401 BR 1$
≡MRESET≡≡MRESET≡≥ 142144 104076 2$: MRESET
≠BIC≡≡BIT15≡≡BIT14≡≡R0≡≥ 142146 042700 140000 1$: BIC #BIT15!BIT14,R0 ;CLEAR CONTROL BITS ANYWAY
≠MOV≡≡WREADY≡≡R5≡≥ 142152 012705 147534 MOV #WREADY+2,R5
≠CLR≡≡R5≡≥ 142156 005015 CLR (R5) ;CLEAR A WORK AREA
≠CLR≡≡R5≡≥ 142160 005045 CLR -(R5)
≥
≤PUSH≡≥ PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠JSR≡≡PC≡≥ 142164 004737 142226 JSR PC,99$ ;GO LOAD EBUS BITS 00-05
≠MOV≡≡LCRDAL≡≡R0≡≥ 142170 012700 000052 MOV #LCRDAL,R0 ;WILL WRITE BITS 00-04 OF CR-ADR
≡DFWRT≡≡DFWRT≡≥ 142174 104120 DFWRT
≤POP≡≥ POP R0 ;GET COPY OF ORIGINAL CR-ADR
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠SWAB≡≡R0≡≥ 142200 000300 SWAB R0 ;GET BITS 00-04
≠ASR≡≡R0≡≥ 142202 006200 ASR R0 ;TO LOW ORDER BITS
≠ASR≡≡R0≡≥ 142204 006200 ASR R0 ;OF R0.
≠JSR≡≡PC≡≥ 142206 004737 142226 JSR PC,99$ ;GO LOAD EBUS BITS 00-05
≠MOV≡≡LCRDAR≡≡R0≡≥ 142212 012700 000051 MOV #LCRDAR,R0 ;WILL WRITE BITS 5-10 OF CRADR
≡DFWRT≡≡DFWRT≡≥ 142216 104120 DFWRT
≤POP≡≥ POP R1 ;RESTORE R1
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 142222 000137 124064 JMP $EXIT
≥
≠BIC≡≡R0≡≥ 142226 042700 000077 99$: BIC #77,R0 ;DEAL ONLY WITH 6 BITS
≠MOVB≡≡R0≡≡WREADY≡≥ 142232 110037 147535 MOVB R0,WREADY+3 ;MOV TO EBUS BITS 4 & 5
≠SWAB≡≡R0≡≥ 142236 000300 SWAB R0
≠MOVB≡≡R0≡≡WREADY≡≥ 142240 110037 147536 MOVB R0,WREADY+4 ;MOV TO EBUS BITS 0,1,2, & 3
≠MOV≡≡R5≡≡R1≡≥ 142244 010501 MOV R5,R1 ;ADDRESS FOR DFWRT
≠RTS≡≡PC≡≥ 142246 000207 RTS PC
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 371
BR11 PALII[KL,SYS] Page 10 WCRAM ROUTINE
≥ .SBTTL WCRAM ROUTINE
≥
≠.BYTE≡≡LCRAM1≡≥ 142250 057 WRLIST: .BYTE LCRAM1 ;CRAM BITS 00-19
≠.BYTE≡≡LCRAM2≡≥ 142251 056 .BYTE LCRAM2 ;CRAM BITS 20-39
≠.BYTE≡≡LCRAM3≡≥ 142252 055 .BYTE LCRAM3 ;CRAM BITS 40-59
≠.BYTE≡≡LCRAM4≡≥ 142253 054 .BYTE LCRAM4 ;CRAM BITS 60-79-EVEN
≠.EVEN≡≥ 142254 .EVEN
≥
≠MOV≡≡R1≡≡R2≡≥ 142254 010102 $WCRAM: MOV R1,R2 ;GET COPY OF DATA ADDRESS
≡WWADR≡≡WWADR≡≥ 142256 104075 WWADR ;GO AND WRITE C-RAM ADDRESS
≠MOV≡≡R4≡≥ 142260 012704 000003 MOV #3,R4 ;FOUR LOOPS PER C-RAM WORD
≥
≠MOV≡≡WREADY≡≡R1≡≥ 142264 012701 147532 1$: MOV #WREADY,R1 ;GET HOLDING AREA
≠MOVB≡≡R2≡≡R1≡≥ 142270 112221 MOVB (R2)+,(R1)+ ;REAL DATA TO HOLDING AREA
≠MOVB≡≡R2≡≡R1≡≥ 142272 112221 MOVB (R2)+,(R1)+
≠MOVB≡≡R2≡≡R1≡≥ 142274 111221 MOVB (R2),(R1)+
≥
≠TST≡≡SIGNL≡≥ 142276 005737 147530 TST SIGNL ;SEE IF DESIRED BITS ON WORD BOUNDARY
≠BEQ≡≥ 142302 001412 BEQ 3$ ;AVOID RORING CODE IF YES
≥
≥ ;THIS IS WONDERFUL RORING CODE
≥
≠TSTB≡≡R2≡≥ 142304 105722 TSTB (R2)+ ;MUST INCREMENT DATA ADDR PTR
≠MOV≡≡R0≡≥ 142306 012700 000004 MOV #4,R0 ;FOUR SHIFTS IN THIS LOOP
≥
≠MOV≡≡WREADY≡≡R1≡≥ 142312 012701 147535 2$: MOV #WREADY+3,R1 ;POINT TO HOLDING AREA
≠RORB≡≡R1≡≥ 142316 106041 RORB -(R1) ;SHIFT & INCLUDE "C" BIT
≠RORB≡≡R1≡≥ 142320 106041 RORB -(R1)
≠RORB≡≡R1≡≥ 142322 106041 RORB -(R1)
≠DEC≡≡R0≡≥ 142324 005300 DEC R0 ;DONE?
≠BNE≡≥ 142326 001371 BNE 2$ ;LOOP BACK IF NO
≥
≥ ;COMMON CODE
≥
≠COM≡≡SIGNL≡≥ 142330 005137 147530 3$: COM SIGNL ;CHANGE BOUNDARY FLAG
≠BIC≡≡WREADY≡≥ 142334 042737 177760 147534 BIC #177760,WREADY+2 ;ONLY 4 BITS COUNT
≠JSR≡≡PC≡≡$STRCH≡≥ 142342 004737 142422 4$: JSR PC,$STRCH ;GO FILL IN EBUS SPACE
≠MOVB≡≡WRLIST≡≡R4≡≡R0≡≥ 142346 116400 142250 MOVB WRLIST(R4),R0 ;CORRECT WRITE FUNCTION TO R0
≠MOV≡≡WREADY≡≡R1≡≥ 142352 012701 147532 MOV #WREADY,R1 ;ADDRESS OF DATA
≡DFWRT≡≡DFWRT≡≥ 142356 104120 DFWRT
≠DEC≡≡R4≡≥ 142360 005304 DEC R4 ;DONE ENTIRE RAM WORD?
≠BGE≡≥ 142362 002340 BGE 1$ ;BR BACK IFNO
≥
≥ ;CODE TO LOAD DISP 00-04
≥
≠MOVB≡≡R2≡≡WREADY≡≥ 142364 111237 147536 MOVB (R2),WREADY+4 ;GET DATA FOR DISP
≠ASRB≡≡WREADY≡≥ 142370 106237 147536 ASRB WREADY+4 ;SHIFT DATA
≠RORB≡≡WREADY≡≥ 142374 106037 147535 RORB WREADY+3 ;TO EBUS BITS
≠ASRB≡≡WREADY≡≥ 142400 106237 147536 ASRB WREADY+4 ;00-05
≠RORB≡≡WREADY≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 372
BR11 PALII[KL,SYS] Page 10.1 WCRAM ROUTINE
≥ 142404 106037 147535 RORB WREADY+3
≡DFWRTT≡≡DFWRTT≡≥ 142410 104141 DFWRTT ;WRITE
≡WREADY≡≡WREADY≡≥ 142412 147532 WREADY ;DATA ADDRESS
≡LCRAM5≡≡LCRAM5≡≥ 142414 000053 LCRAM5 ;DIAG FUNCTION
≤EXIT≡≥ EXIT ;DONE
≠JMP≡≡$EXIT≡≥ 142416 000137 124064 JMP $EXIT
≠MOV≡≡WREADY≡≡R0≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 373
BR11 PALII[KL,SYS] Page 11 WCRAM ROUTINE
≥ 142422 013700 147532 $STRCH: MOV WREADY,R0 ;GET UNSPACED DATA
≠MOVB≡≡WREADY≡≡WREADY≡≥ 142426 113737 147534 147535 MOVB WREADY+2,WREADY+3 ;PUT C-RAM 0-3 BITS INTO CORRECT CORE
≠CLR≡≡R3≡≥ 142434 005003 CLR R3 ;NO JUNK LEFT IN R3
≠SEC≡≠SEC≡≥ 142436 000261 SEC ;SET "C" BIT TO USE AS FLAG
≠MOV≡≡R5≡≥ 142440 012705 000004 1$: MOV #4,R5 ;FOUR SHIFTS BETWEEN BLANKS
≠ROR≡≡R3≡≥ 142444 006003 2$: ROR R3 ;NEW DATA LEFT END OF DESTINATION
≠BCS≡≥ 142446 103407 BCS 3$ ;IF FLAG FALLS OUT..DONE
≠ROR≡≡R0≡≥ 142450 006000 ROR R0 ;ROTATE SOURCE BITS RIGHT
≠DEC≡≡R5≡≥ 142452 005305 DEC R5 ;DONE 4 YET??
≠BGE≡≥ 142454 002373 BGE 2$ ;BR IF NO
≥
≠ROL≡≡R0≡≥ 142456 006100 ROL R0 ;REPAIR ANY DAMAGES
≠CLC≡≠CLC≡≥ 142460 000241 CLC ;ZERO THE "C" BIT
≠ROR≡≡R3≡≥ 142462 006003 ROR R3 ;AND ROLL ZEROES
≠BR≡≥ 142464 000765 BR 1$ ;AND CONTINUE
≥
≥ ;GET HERE TO FINISH UP
≥
≠CLC≡≠CLC≡≥ 142466 000241 3$: CLC ;ZERO "C" BIT AGAIN
≠ROL≡≡R0≡≥ 142470 006100 ROL R0 ;BITS 4-7
≠ROL≡≡R0≡≥ 142472 006100 ROL R0 ;MUST BE CORRECTED
≠MOV≡≡R3≡≡WREADY≡≥ 142474 010337 147532 MOV R3,WREADY ;BITS 8-19 INTO CORE
≠MOVB≡≡R0≡≡WREADY≡≥ 142500 110037 147534 MOVB R0,WREADY+2 ;BITS 4-7 INTO CORE
≠RTS≡≡PC≡≥ 142504 000207 RTS PC ;DONE
≥
≥ ;SPECIAL BASIC MASTER RESET
≥
≤PUSH≡≥ $SPCMR: PUSH <R0,R1,R2>
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠MOV≡≡R1≡≡SP≡≠MOV≡≡R2≡≡SP≡≠.LIST≡≠CLR≡≡KLCLKR≡≥ 142514 005037 147454 CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
≠MOV≡≡$SMRLS≡≡R1≡≥ 142520 012701 142554 MOV #$SMRLST,R1 ;COMMAND ADR TO R1
≠MOV≡≡R2≡≥ 142524 012702 000004 MOV #4,R2 ;FOUR COMMANDS
≠MOV≡≡R1≡≡.DIAG1≡≥ 142530 012177 014614 1$: MOV (R1)+,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 142534 004737 141302 JSR PC,$$DFXDN ;EXECUTE FUNCTION
≠DEC≡≡R2≡≥ 142540 005302 DEC R2
≠BNE≡≥ 142542 001372 BNE 1$
≤POP≡≥ POP <R2,R1,R0>
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R2≡≠MOV≡≡SP≡≡R1≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠RTS≡≡PC≡≥ 142552 000207 RTS PC
≥
≠.WORD≡≡DCOMST≡≡DFUNC≡≡SETMR≡≥ 142554 007201 $SMRLST:.WORD DCOMST!DFUNC!<SETMR*1000>
≠.WORD≡≡DCOMST≡≡DFUNC≡≡STRCLK≡≥ 142556 001201 .WORD DCOMST!DFUNC!<STRCLK*1000>
≠.WORD≡≡DCOMST≡≡DFUNC≡≡STPCLK≡≥ 142560 000201 .WORD DCOMST!DFUNC!<STPCLK*1000>
≠.WORD≡≡DCOMST≡≡DFUNC≡≡CLRMR≡≥ 142562 006201 .WORD DCOMST!DFUNC!<CLRMR*1000>
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 374
BR11 PALII[KL,SYS] Page 12 RCRAM ROUTINE
≥ .SBTTL RCRAM ROUTINE
≥
≠TST≡≡R0≡≥ 142564 005700 $RCRAM: TST R0 ;IS R0 NEG
≠BMI≡≥ 142566 100406 BMI 1$ ;READ CURRENT CR IF YES
≥
≡WWADR≡≡WWADR≡≥ 142570 104075 WWADR ;EXAMINE ADDRESS IN R0 IF HERE
≠MOV≡≡DCOMST≡≡DFUNC≡≡SECLK≡≡.DIAG1≡≥ 142572 012777 003201 014550 MOV #DCOMST!DFUNC!<SECLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 142600 004737 141302 JSR PC,$$DFXDN ;CLOCK ADDRESS CONTENTS TO C.R.
≥
≠MOV≡≡$BUFRC≡≡R3≡≥ 142604 012703 147526 1$: MOV #$BUFRC+10.,R3 ;GET BUFFER ADDR FOR C-RAM CONTENTS
≠MOV≡≡$RDLST≡≡R4≡≥ 142610 012704 143040 MOV #$RDLST,R4 ;GET DIAG FUNCTION LIST
≥
≠MOVB≡≡R4≡≡R0≡≥ 142614 112400 2$: MOVB (R4)+,R0 ;DIAG FUNCTION
≡DFRD≡≡DFRD≡≥ 142616 104116 DFRD
≠MOV≡≡WREADY≡≡R1≡≥ 142620 012701 147532 MOV #WREADY,R1 ;DESTINATION OF READ/MOVE
≠MOV≡≡.DAT3≡≡R0≡≥ 142624 013700 157322 MOV .DAT3,R0
≠MOV≡≡R0≡≡R1≡≥ 142630 012021 MOV (R0)+,(R1)+
≠MOV≡≡R0≡≡R1≡≥ 142632 012021 MOV (R0)+,(R1)+
≠MOV≡≡R0≡≡R1≡≥ 142634 011011 MOV (R0),(R1)
≥
≠JSR≡≡PC≡≡$SQASH≡≥ 142636 004737 143044 JSR PC,$SQASH ;GO CLEAR OUT BLANKS
≠MOV≡≡WREADY≡≡R0≡≥ 142642 012700 147535 MOV #WREADY+3,R0 ;ADDRESS OF DATA JUST READ
≠MOVB≡≡R0≡≡R3≡≥ 142646 114043 MOVB -(R0),-(R3) ;BITS 16-19 TO BUFFER
≠TST≡≡SIGNL2≡≥ 142650 005737 147512 TST SIGNL2 ;CHECK TRAFFIC LIGHT
≠BNE≡≥ 142654 001005 BNE 4$ ;BR TO RORING IF WRONG BOUNDARY
≥
≠MOVB≡≡R0≡≡R3≡≥ 142656 114043 3$: MOVB -(R0),-(R3) ;BITS 20-27 TO WORK AREA
≠MOVB≡≡R0≡≡R3≡≥ 142660 114043 MOVB -(R0),-(R3) ;BITS 28-35 TO WORK AREA
≠COM≡≡SIGNL2≡≥ 142662 005137 147512 COM SIGNL2 ;CHANGE SIGNAL
≠BR≡≥ 142666 000752 BR 2$ ;GET MORE DATA
≥
≠ASLB≡≡R3≡≥ 142670 106313 4$: ASLB (R3) ;NEED TO FIX A HALF BYTE
≠ASLB≡≡R3≡≥ 142672 106313 ASLB (R3)
≠ASLB≡≡R3≡≥ 142674 106313 ASLB (R3)
≠ASLB≡≡R3≡≥ 142676 106313 ASLB (R3)
≤PUSH≡≥ PUSH R0 ;DON'T LOSE DATA ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡R0≡≥ 142702 012700 000004 MOV #4,R0 ;DO NEXT LOOP FOUR TIMES
≥
≠MOV≡≡R3≡≡R2≡≥ 142706 010302 10$: MOV R3,R2 ;ADDRESS OF DATA TO R2
≠ROLB≡≡R2≡≥ 142710 106122 ROLB (R2)+ ;SHIFT AND DON'T FORGET "C"
≠ROLB≡≡R2≡≥ 142712 106122 ROLB (R2)+
≠ROLB≡≡R2≡≥ 142714 106122 ROLB (R2)+
≠ROLB≡≡R2≡≥ 142716 106122 ROLB (R2)+
≠DEC≡≡R0≡≥ 142720 005300 DEC R0 ;ASSEMBLED COMPLETE HALF BYTE
≠BNE≡≥ 142722 001371 BNE 10$ ;LOOP AGAIN IF NO
≤POP≡≥ POP R0 ;RETRIEVE DATA ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠TSTB≡≡R3≡≥ 142726 105723 TSTB (R3)+ ;FIX DESTINATION ADDRESS
≠TST≡≡SIGNL3≡≥ 142730 005737 147510 TST SIGNL3 ;CHECK SIGNAL
≠BNE≡≥ 142734 001003 BNE 15$ ;DONE IF MINUS
≠COM≡≡SIGNL3≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 375
BR11 PALII[KL,SYS] Page 12.1 RCRAM ROUTINE
≥ 142736 005137 147510 COM SIGNL3 ;OTHERWISE CHANGE SIGNAL
≠BR≡≥ 142742 000745 BR 3$ ;CONTINUE
≠MOVB≡≡WREADY≡≡R3≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 376
BR11 PALII[KL,SYS] Page 13 RCRAM ROUTINE
≥ 142744 113743 147533 15$: MOVB WREADY+1,-(R3) ;ENDING UP
≠MOVB≡≡WREADY≡≡R3≡≥ 142750 113743 147532 MOVB WREADY,-(R3) ;CRAM BITS 0-15 TO BUFFER
≠COM≡≡SIGNL3≡≥ 142754 005137 147510 COM SIGNL3 ;SIGNL3 TO ZERO
≠COM≡≡SIGNL2≡≥ 142760 005137 147512 COM SIGNL2 ;SIGNL2 TO ZERO
≡DFRDT≡≡DFRDT≡≥ 142764 104140 DFRDT
≡RCSPEC≡≡RCSPEC≡≥ 142766 000141 RCSPEC ;READ SPEC FIELD
≠MOV≡≡.DAT2≡≡R1≡≥ 142770 017701 014330 MOV @.DAT2,R1 ;GET DISP 03,04
≠MOV≡≡.DAT1≡≡R0≡≥ 142774 017700 014326 MOV @.DAT1,R0 ;GET DISP 00,01,02
≠ROL≡≡R1≡≥ 143000 006101 ROL R1 ;JUSTIFY IN R0
≠ROL≡≡R0≡≥ 143002 006100 ROL R0
≠ROL≡≡R1≡≥ 143004 006101 ROL R1
≠ROL≡≡R0≡≥ 143006 006100 ROL R0
≥
≠BIC≡≡R0≡≥ 143010 042700 177740 BIC #177740,R0 ;CLEAR TRASH
≠MOVB≡≡R0≡≡$BUFRC≡≥ 143014 110037 147526 MOVB R0,$BUFRC+12 ;SAVE IN BUFFER
≠MOV≡≡$BUFRC≡≡R0≡≥ 143020 012700 147516 MOV #$BUFRC+2,R0 ;RETURN DATA ADDRESS IN R0
≠BIC≡≡R0≡≥ 143024 042710 000005 BIC #5,(R0) ;CLEAR PARITY BITS
≠BIC≡≡R0≡≥ 143030 042740 052525 BIC #52525,-(R0) ;AND FIX ADDRESS
≤EXIT≡≥ EXIT ;DONE
≠JMP≡≡$EXIT≡≥ 143034 000137 124064 JMP $EXIT
≥
≠.BYTE≡≡RCRAM1≡≥ 143040 147 $RDLST: .BYTE RCRAM1 ;READ CRAM 0-19
≠.BYTE≡≡RCRAM2≡≥ 143041 146 .BYTE RCRAM2 ;READ CRAM 20-39
≠.BYTE≡≡RCRAM3≡≥ 143042 145 .BYTE RCRAM3 ;READ CRAM 40-59
≠.BYTE≡≡RCRAM4≡≥ 143043 144 .BYTE RCRAM4 ;READ CRAM 60-79-EVEN
≠MOV≡≡WREADY≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 377
BR11 PALII[KL,SYS] Page 14 RCRAM ROUTINE
≥ 143044 013701 147532 $SQASH: MOV WREADY,R1 ;GET STRETCHED BITS 8-19
≠MOV≡≡WREADY≡≡R2≡≥ 143050 013702 147534 MOV WREADY+2,R2 ;GET STRECHED BITS 0-7
≠CLR≡≡R0≡≥ 143054 005000 CLR R0 ;CLEAR A DESTINATION
≠SEC≡≠SEC≡≥ 143056 000261 SEC ;SET A DONE FLAG
≠ROR≡≡R0≡≥ 143060 006000 ROR R0 ;AND ROLLIT INTO R0
≠MOV≡≡R5≡≥ 143062 012705 000004 1$: MOV #4,R5 ;FOUR BITS PER GROUP
≠DEC≡≡R5≡≥ 143066 005305 2$: DEC R5 ;DONE A GROUP OF FOUR
≠BLT≡≥ 143070 002413 BLT 20$ ;BRANCH IF NO
≠ASR≡≡R2≡≥ 143072 006202 ASR R2 ;ROTATE SOURCE BITS RIGHT
≠ROR≡≡R1≡≥ 143074 006001 ROR R1 ;ALL TWENTY OF THEM
≠ROR≡≡R0≡≥ 143076 006000 ROR R0 ;BEGIN WITH FIRST FLAG INTO R0
≠BCC≡≥ 143100 103372 BCC 2$ ;IF FLAG FALLS OUT..DONE
≥
≥ ;HERE TO FINISH UP
≥
≠ASR≡≡R1≡≥ 143102 006201 ASR R1 ;MAKE LAST BLANKS
≠ASR≡≡R1≡≥ 143104 006201 ASR R1 ;GO VERY FAR AWAY
≠MOV≡≡R0≡≡WREADY≡≥ 143106 010037 147532 MOV R0,WREADY ;STORE RESULTS IN CORE
≠MOV≡≡R1≡≡WREADY≡≥ 143112 010137 147534 MOV R1,WREADY+2 ;ALL DONE
≠RTS≡≡PC≡≥ 143116 000207 RTS PC ;RETURN
≥
≠ASR≡≡R2≡≥ 143120 006202 20$: ASR R2 ;HERE TO SHIFT AWAY
≠ROR≡≡R1≡≥ 143122 006001 ROR R1 ;THE PAIR
≠ASR≡≡R2≡≥ 143124 006202 ASR R2 ;OF BLANKS HIDDEN
≠ROR≡≡R1≡≥ 143126 006001 ROR R1 ;AMIDST THE REAL DATA
≠BR≡≥ 143130 000754 BR 1$ ;CONTINUE
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 378
BR11 PALII[KL,SYS] Page 15 MICNUL & MICFIL C-RAM ROUTINES
≥ .SBTTL MICNUL & MICFIL C-RAM ROUTINES
≥
≥ ;MICNUL, FILL C-RAM LOCATIONS WITH ZEROS
≥
≠MOV≡≡R1≡≡R2≡≥ 143132 010102 $MICNUL:MOV R1,R2 ;NUMBER OF WORDS TO R2
≠MOV≡≡R0≡≡R3≡≥ 143134 010003 MOV R0,R3 ;SAVE START ADDRESS
≠BIS≡≡R3≡≥ 143136 052703 100000 BIS #100000,R3 ;BYPASS MR AFTER FIRST TIME
≠MOV≡≡ZEROS≡≡R1≡≥ 143142 012701 147556 MOV #ZEROS,R1
≥
≡WWADR≡≡WWADR≡≥ 143146 104075 1$: WWADR ;WRITE C-RAM ADDRESS
≥
≠MOV≡≡R4≡≥ 143150 012704 000003 MOV #3,R4
≠MOVB≡≡LCRAM1≡≡R0≡≥ 143154 112700 000057 MOVB #LCRAM1,R0 ;1ST FUNCTION IS A WRITE
≡DFWRT≡≡DFWRT≡≥ 143160 104120 DFWRT
≥
≠MOVB≡≡FLST≡≡R4≡≡R0≡≥ 143162 116400 143212 2$: MOVB FLST(R4),R0 ;DIAG FUNCTION
≠JSR≡≡PC≡≡$DFXFS≡≥ 143166 004737 141250 JSR PC,$DFXFST
≠DEC≡≡R4≡≥ 143172 005304 DEC R4
≠BGE≡≥ 143174 002372 BGE 2$ ;ZERO ALL BITS
≥
≠INC≡≡R3≡≥ 143176 005203 INC R3 ;INCREMENT C-RAM ADDRESS
≠MOV≡≡R3≡≡R0≡≥ 143200 010300 MOV R3,R0
≠DEC≡≡R2≡≥ 143202 005302 DEC R2 ;FINISHED ALL WORDS YET ?
≠BGT≡≥ 143204 003360 BGT 1$
≤EXIT≡≥ 10$: EXIT ;YES
≠JMP≡≡$EXIT≡≥ 143206 000137 124064 JMP $EXIT
≥
≠.BYTE≡≡LCRAM5≡≥ 143212 053 FLST: .BYTE LCRAM5
≠.BYTE≡≡LCRAM4≡≥ 143213 054 .BYTE LCRAM4
≠.BYTE≡≡LCRAM3≡≥ 143214 055 .BYTE LCRAM3
≠.BYTE≡≡LCRAM2≡≥ 143215 056 .BYTE LCRAM2
≠.BYTE≡≡LCRAM1≡≥ 143216 057 .BYTE LCRAM1
≠.EVEN≡≥ 143220 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 379
BR11 PALII[KL,SYS] Page 16 MICNUL & MICFIL C-RAM ROUTINES
≥ ;MICFIL, C-RAM FILL WITH ONES ROUTINE
≥
≠MOV≡≡R1≡≡R2≡≥ 143220 010102 $MICFIL:MOV R1,R2 ;NUMBER OF WORDS TO R2
≠MOV≡≡R0≡≡R3≡≥ 143222 010003 MOV R0,R3 ;SAVE ADDRESS
≠BIS≡≡R3≡≥ 143224 052703 100000 BIS #100000,R3 ;BYPASS MR AFTER FIRST TIME
≠MOV≡≡TENMO≡≡R1≡≥ 143230 012701 100056 MOV #TENMO,R1 ;36 BITS OF ONES
≥
≡WWADR≡≡WWADR≡≥ 143234 104075 1$: WWADR ;WRITE C-RAM ADDRESS
≠MOV≡≡R4≡≥ 143236 012704 000004 MOV #4,R4
≥
≠MOVB≡≡FLST≡≡R4≡≡R0≡≥ 143242 116400 143212 2$: MOVB FLST(R4),R0 ;DIAG FUNCTION
≡DFWRT≡≡DFWRT≡≥ 143246 104120 DFWRT
≠DEC≡≡R4≡≥ 143250 005304 DEC R4 ;DO ALL BITS
≠BGE≡≥ 143252 002373 BGE 2$
≥
≠INC≡≡R3≡≥ 143254 005203 INC R3 ;INCREMENT C-RAM ADDRESS
≠MOV≡≡R3≡≡R0≡≥ 143256 010300 MOV R3,R0
≠DEC≡≡R2≡≥ 143260 005302 DEC R2 ;DONE ALL ADDRESSES YET ?
≠BGT≡≥ 143262 003364 BGT 1$
≤EXIT≡≥ 10$: EXIT
≠JMP≡≡$EXIT≡≥ 143264 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 380
BR11 PALII[KL,SYS] Page 17 WDRAM ROUTINE
≥ .SBTTL WDRAM ROUTINE
≥
≠MOV≡≡R0≡≡R2≡≥ 143270 010002 $WDRAM: MOV R0,R2 ;COPY DRAM ADDRESS
≠ROR≡≡R0≡≥ 143272 006000 ROR R0 ;CHECK IF ODD OR EVEN
≠BCC≡≥ 143274 103002 BCC 1$ ;BR IF EVEN
≠JMP≡≡ADRERR≡≥ 143276 000137 113350 JMP ADRERR ;ADDRESS ERROR IF ODD
≥
≠ROL≡≡R0≡≥ 143302 006100 1$: ROL R0 ;FIX ADDRESS
≤PUSH≡≥ PUSH R1 ;SAVE POINTER TO DATA
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≡DRAMAD≡≡DRAMAD≡≥ 143306 104130 DRAMAD ;GO WRITE DRAM ADDRESS
≤POP≡≥ POP R3 ;PUT POINTER TO DATA IN R3
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R3≡≠.LIST≡≠MOV≡≡R3≡≡R1≡≥ 143312 012301 MOV (R3)+,R1 ;DATA INTO R1
≠JSR≡≡R5≡≡DATEVE≡≥ 143314 004537 143662 JSR R5,DATEVE ;WRITE EVEN DATA
≠MOV≡≡R3≡≡R1≡≥ 143320 012301 MOV (R3)+,R1 ;DATA INTO R1
≠JSR≡≡R5≡≡DATODD≡≥ 143322 004537 143646 JSR R5,DATODD ;WRITE ODD DATA
≠MOV≡≡R3≡≡R1≡≥ 143326 011301 MOV (R3),R1 ;DATA INTO R1
≠JSR≡≡R5≡≡DATCOM≡≥ 143330 004537 143634 JSR R5,DATCOM ;WRITE COMMON DATA
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 143334 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 381
BR11 PALII[KL,SYS] Page 18 RDRAM ROUTINE
≥ .SBTTL RDRAM ROUTINE
≥
≤PUSH≡≥ $RDRAM: PUSH <R1,R0> ;SAVE R1,STORE DRAM ADDR ON STACK TOP
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠CLR≡≡R1≡≥ 143344 005001 CLR R1 ;R1 IS AN INDEX COUNTER
≡DRAMAD≡≡DRAMAD≡≥ 143346 104130 1$: DRAMAD ;WRITE DRAM ADDRESS
≠MOV≡≡DCOMST≡≡DFUNC≡≡DRLTCH≡≡.DIAG1≡≥ 143350 012777 015201 013772 MOV #DCOMST!DFUNC!<DRLTCH*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 143356 004737 141302 JSR PC,$$DFXDN ;STROBE DATA TO LATCHES
≡DFRDT≡≡DFRDT≡≥ 143362 104140 DFRDT
≡DRJ710≡≡DRJ710≡≥ 143364 000135 DRJ710 ;FUNCTION TO READ J07,08,09,10
≠MOV≡≡.DAT2≡≡R0≡≥ 143366 017700 013732 MOV @.DAT2,R0 ;GET J DATA 7-10
≠ASR≡≡R0≡≥ 143372 006200 ASR R0 ;RIGHT JUSTIFY
≠ASR≡≡R0≡≥ 143374 006200 ASR R0 ;J-FIELD DATA
≠BIC≡≡R0≡≥ 143376 042700 177700 BIC #177700,R0 ;CLEAR EXTRA
≠MOVB≡≡R0≡≡RDRTMP≡≡R1≡≥ 143402 110061 147476 MOVB R0,RDRTMP(R1) ;SAVE DATA IN CORE
≠INC≡≡R1≡≥ 143406 005201 INC R1 ;INCREMENT INDEX
≥
≡DFRDT≡≡DFRDT≡≥ 143410 104140 DFRDT
≡DRAMAB≡≡DRAMAB≡≥ 143412 000133 DRAMAB ;FUNCTION TO READ "A" & "B" FIELD
≠MOV≡≡.DAT2≡≡R0≡≥ 143414 017700 013704 MOV @.DAT2,R0 ;GET A & B DATA
≠ASR≡≡R0≡≥ 143420 006200 ASR R0 ;RIGHT JUSTIFY
≠ASR≡≡R0≡≥ 143422 006200 ASR R0 ;IN R0
≠BIC≡≡R0≡≥ 143424 042700 177700 BIC #177700,R0 ;CLEAR EXTRA
≠MOVB≡≡R0≡≡RDRTMP≡≡R1≡≥ 143430 110061 147476 MOVB R0,RDRTMP(R1) ;STORE IN CORE
≠INC≡≡R1≡≥ 143434 005201 INC R1 ;INCREMENT INDEX
≥
≥ ;DECIDE IF THIS IS FIRST OR SECOND PASS
≥
≠CMP≡≡R1≡≥ 143436 020127 000003 CMP R1,#3 ;INDEX UP TO 3 YET??
≠BGE≡≥ 143442 002003 BGE 2$ ;ON OUT IF YES
≤POP≡≥ POP R0 ;IF NO,GET DRAM ADDRESS
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠INC≡≡R0≡≥ 143446 005200 INC R0 ;GET ODD HALF OF EVEN/ODD PAIR
≠BR≡≥ 143450 000736 BR 1$ ;LOOP AGAIN
≥
≡DFRDT≡≡DFRDT≡≥ 143452 104140 2$: DFRDT
≡DRJ1.4≡≡DRJ1.4≡≥ 143454 000134 DRJ1.4 ;FUNCTION TO READ J01-J04
≠MOV≡≡.DAT2≡≡R0≡≥ 143456 017700 013642 MOV @.DAT2,R0 ;GET JDATA 01-04
≠ASR≡≡R0≡≥ 143462 006200 ASR R0 ;RIGHT JUSTIFY
≠ASR≡≡R0≡≥ 143464 006200 ASR R0 ;J1-J4 BITS
≠BIC≡≡R0≡≥ 143466 042700 177760 BIC #177760,R0 ;CLEAR UNWANTED
≠MOVB≡≡R0≡≡RDRTMP≡≥ 143472 110037 147502 MOVB R0,RDRTMP+4 ;BIT SET TO CORE
≠MOV≡≡RDRTMP≡≡R0≡≥ 143476 012700 147476 MOV #RDRTMP,R0 ;PASS BACK DATA ADDRESS IN R0
≤POP≡≥ POP R1 ;RESTORE R
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 143504 000137 124064 JMP $EXIT
≠MOV≡≡DDRAM≡≡R3≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 382
BR11 PALII[KL,SYS] Page 19 RDRAM ROUTINE
≥ 143510 012703 147502 $DRAMAD: MOV #DDRAM,R3 ;GET ADDRESS OF EBUS DATA
≠MOV≡≡R3≡≡R4≡≥ 143514 010304 MOV R3,R4 ;GET A COPY IN R4
≠CMPB≡≡R4≡≡R4≡≥ 143516 122424 CMPB (R4)+,(R4)+ ;INCREMENT IT TO DDRAM+2
≠MOV≡≡R0≡≡R2≡≥ 143520 010002 MOV R0,R2 ;PUT ACTUAL ADDRESS IN R2
≠COM≡≡R2≡≥ 143522 005102 COM R2 ;READY TO TEST ADDR BITS 0-2
≠BIT≡≡R2≡≥ 143524 032702 000700 BIT #700,R2 ;MAKE THE TEST
≠BEQ≡≥ 143530 001416 BEQ 1$ ;BR IF ADDR IS 7XX
≥
≥ ;CODE FOR NON 7XX ADDRESSES
≥
≠COM≡≡R2≡≥ 143532 005102 COM R2 ;WAS NOT 7XX,SO FIX ADDRESS
≠ASL≡≡R2≡≥ 143534 006302 ASL R2 ;JUSTIFY ADDRESS IN
≠ASL≡≡R2≡≥ 143536 006302 ASL R2 ;CORRECT BIT POSITION
≠ASL≡≡R2≡≥ 143540 006302 ASL R2 ;NEED THREE SHIFTS
≠CLRB≡≡R4≡≥ 143542 105024 CLRB (R4)+ ;INCREMENT TO DDRAM+3
≠MOVB≡≡R2≡≡R4≡≥ 143544 110224 MOVB R2,(R4)+ ;MOVE ADDR BITS 4-8 TO EBUS DATA
≠SWAB≡≡R2≡≥ 143546 000302 SWAB R2 ;GET THE REST OF THE BITS
≠MOVB≡≡R2≡≡R4≡≥ 143550 110214 MOVB R2,(R4) ;MOVE ADDR BITS 0-3 TO EBUS DATA
≠JSR≡≡PC≡≡$SPCMR≡≥ 143552 004737 142506 4$: JSR PC,$SPCMR ;SPECIAL MASTER RESET
≠JSR≡≡R5≡≡WIRAR≡≥ 143556 004537 143620 JSR R5,WIRAR ;GO TO DO THE ACTUAL WRITE
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 143562 000137 124064 JMP $EXIT
≥
≥ ;CODE FOR 7XX ADRESSES
≥
≠COM≡≡R2≡≥ 143566 005102 1$: COM R2 ;FIX ADDRESS TO ORIGINAL STATE
≠ROR≡≡R2≡≥ 143570 006002 ROR R2 ;PUT LOW ORDER BIT IN "C" BIT
≠BCS≡≥ 143572 103402 BCS 2$ ;"C" SET MEANS IR BIT 12 MUST=1
≥
≠CLRB≡≡R4≡≥ 143574 105024 CLRB (R4)+ ;NO "C" BIT MEANS IR BIT 12 MUST=0
≠BR≡≥ 143576 000402 BR 3$ ;GO TO MOVE ADDRESS TO EBUS DATA
≥
≠MOVB≡≡R4≡≥ 143600 112724 000200 2$: MOVB #200,(R4)+ ;SET IR BIT 12=1
≠BIC≡≡R2≡≥ 143604 042702 000340 3$: BIC #340,R2
≠MOVB≡≡R2≡≡R4≡≥ 143610 110224 MOVB R2,(R4)+ ;MOVE D-RAM ADDR TO EBUS BIT POSITION 7-11
≠MOVB≡≡R4≡≥ 143612 112714 000016 MOVB #16,(R4) ;SET THE 7 FROM 7XX IN EBUS DATA
≠BR≡≥ 143616 000755 BR 4$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 383
BR11 PALII[KL,SYS] Page 20 RDRAM ROUTINE
≥ ;WRITE THE IR
≥
≠MOV≡≡DDRAM≡≡R1≡≥ 143620 012701 147502 WIRAR: MOV #DDRAM,R1 ;EBUS DATA ALWAYS AT DDRAM
≠MOV≡≡LDAR≡≡R0≡≥ 143624 012700 000077 WIRAR1: MOV #LDAR,R0 ;FUNCTION TO LOAD AR
≡DFWIR≡≡DFWIR≡≥ 143630 104121 DFWIR
≠RTS≡≡R5≡≥ 143632 000205 RTS R5
≥
≥ ;NOW FOR COMMON LITTLE PIECES OF THE LOADING OF THE DRAM
≥
≠MOV≡≡LDRAM3≡≡R0≡≥ 143634 012700 000062 DATCOM: MOV #LDRAM3,R0 ;GET DIAG FUN TO WRITE COMMON
≠ASL≡≡R1≡≥ 143640 006301 ASL R1 ;JUSTIFY DATA FOR THE EBUS
≠ASL≡≡R1≡≥ 143642 006301 ASL R1
≠BR≡≡CON2≡≥ 143644 000424 BR CON2 ;GO WRITE IT
≥
≠MOV≡≡LDRAM2≡≡$DDRMS≡≥ 143646 012737 000061 147460 DATODD: MOV #LDRAM2,$DDRMS ;FUNCTION FOR J-FIELD A & B
≠MOV≡≡LDRJOD≡≡R0≡≥ 143654 012700 000064 MOV #LDRJOD,R0 ;FUNCTION FOR J-FIELD ODD
≠BR≡≡CON1≡≥ 143660 000405 BR CON1 ;GO
≠MOV≡≡LDRAM1≡≡$DDRMS≡≥ 143662 012737 000060 147460 DATEVE: MOV #LDRAM1,$DDRMS ;FUNCTION FOR J-FIELD A & B
≠MOV≡≡LDRJEV≡≡R0≡≥ 143670 012700 000063 MOV #LDRJEV,R0 ;FUNCTION J-FIELD EVEN
≠ASL≡≡R1≡≥ 143674 006301 CON1: ASL R1 ;JUSTIFY PIECE I'M
≠ASL≡≡R1≡≥ 143676 006301 ASL R1 ;INTERESTED IN FOR J-DATA FIELDS
≤PUSH≡≥ PUSH R1 ;SAVE DATA TO BE SENT
≠.NLIST≡≠.IRP≡≠MOV≡≡R1≡≡SP≡≠.LIST≡≠JSR≡≡R5≡≡CON2≡≥ 143702 004537 143716 JSR R5,CON2 ;WRITE J-DATA
≤POP≡≥ POP R1 ;GET DATA AGAIN
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R1≡≠.LIST≡≠SWAB≡≡R1≡≥ 143710 000301 SWAB R1 ;NOW I'VE GOT A & B
≠MOV≡≡$DDRMS≡≡R0≡≥ 143712 013700 147460 MOV $DDRMS,R0 ;GET CORRECT DIAG FUNCTION, & WRITE
≥
≠MOVB≡≡R1≡≡DDRAM≡≥ 143716 110137 147504 CON2: MOVB R1,DDRAM+2 ;R1 ALWAYS HAS THE DATA
≠MOV≡≡DDRAM≡≡R1≡≥ 143722 012701 147502 MOV #DDRAM,R1 ;I ALWAYS PUT IT IN DDRAM
≡DFWRT≡≡DFWRT≡≥ 143726 104120 DFWRT
≠RTS≡≡R5≡≥ 143730 000205 RTS R5 ;NOW WRITE
≥
≥ ;CLOCK DEFAULT PARAMETER ADDRESS
≥
≠MOV≡≡CLKDFL≡≡R0≡≥ 143732 012700 157246 $CLKPRM:MOV #CLKDFL,R0 ;PUT ADDRESS IN R0
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 143736 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 384
BR11 PALII[KL,SYS] Page 21 M-BOX CLOCK BURST ROUTINE
≥ .SBTTL M-BOX CLOCK BURST ROUTINE
≥
≠CLR≡≡KLCLKR≡≥ 143742 005037 147454 $BURST: CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
≠MOV≡≡$STDAT≡≡R1≡≥ 143746 012701 147456 MOV #$STDAT,R1 ;WORD POINTER TO R1
≠MOV≡≡R0≡≡R2≡≥ 143752 010002 MOV R0,R2 ;BURST COUNT TO R2
≠BIC≡≡R2≡≥ 143754 042702 177600 BIC #177600,R2 ;SAVE LOWER 7 BITS
≠ROL≡≡R0≡≥ 143760 006100 ROL R0
≠SWAB≡≡R0≡≥ 143762 000300 SWAB R0
≠CLR≡≡R3≡≥ 143764 005003 CLR R3
≠BISB≡≡R0≡≡R3≡≥ 143766 150003 BISB R0,R3 ;# OF 128. CLOCK MULTIPLES
≠BEQ≡≥ 143770 001425 BEQ 2$ ;NONE, DO BURST
≥
≠MOV≡≡DCOMST≡≡DFUNC≡≡STPCLK≡≡.DIAG1≡≥ 143772 012777 000201 013350 1$: MOV #DCOMST!DFUNC!<STPCLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 144000 004737 141302 JSR PC,$$DFXDN ;CLEAR BURST MODE
≠CLR≡≡R1≡≥ 144004 005011 CLR (R1)
≠MOV≡≡LDBRR≡≡R0≡≥ 144006 012700 000042 MOV #LDBRR,R0
≡DFWRT≡≡DFWRT≡≥ 144012 104120 DFWRT ;CLEAR BURST REG RIGHT
≠MOV≡≡R1≡≥ 144014 012711 000010 MOV #10,(R1)
≠MOV≡≡LDBRL≡≡R0≡≥ 144020 012700 000043 MOV #LDBRL,R0
≡DFWRT≡≡DFWRT≡≥ 144024 104120 DFWRT ;LOAD BURST REG LEFT
≠MOV≡≡DCOMST≡≡DFUNC≡≡BRCLK≡≡.DIAG1≡≥ 144026 012777 005201 013314 MOV #DCOMST!DFUNC!<BRCLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 144034 004737 141302 JSR PC,$$DFXDN ;BURST 128 CLOCKS
≠DEC≡≡R3≡≥ 144040 005303 DEC R3 ;ANY MORE ?
≠BGT≡≥ 144042 003353 BGT 1$ ;YES, DO 128 MORE
≥
≠MOV≡≡DCOMST≡≡DFUNC≡≡STPCLK≡≡.DIAG1≡≥ 144044 012777 000201 013276 2$: MOV #DCOMST!DFUNC!<STPCLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 144052 004737 141302 JSR PC,$$DFXDN ;CLEAR BURST MODE
≠MOV≡≡R2≡≡R3≡≥ 144056 010203 MOV R2,R3 ;NUMBER LEFT TO DO
≠BIC≡≡R2≡≥ 144060 042702 177760 BIC #177760,R2
≠MOV≡≡R2≡≡R1≡≥ 144064 010211 MOV R2,(R1)
≠MOV≡≡LDBRR≡≡R0≡≥ 144066 012700 000042 MOV #LDBRR,R0
≡DFWRT≡≡DFWRT≡≥ 144072 104120 DFWRT ;LOAD BURST REG RIGHT
≤SR≡≥ SR R3,4
≠.NLIST≡≠.IF≡≠.REPT≡≠ASR≡≡R3≡≠ASR≡≡R3≡≠ASR≡≡R3≡≠ASR≡≡R3≡≠.LIST≡≠MOV≡≡R3≡≡R1≡≥ 144104 010311 MOV R3,(R1)
≠MOV≡≡LDBRL≡≡R0≡≥ 144106 012700 000043 MOV #LDBRL,R0
≡DFWRT≡≡DFWRT≡≥ 144112 104120 DFWRT ;LOAD BURST REG LEFT
≠MOV≡≡DCOMST≡≡DFUNC≡≡BRCLK≡≡.DIAG1≡≥ 144114 012777 005201 013226 MOV #DCOMST!DFUNC!<BRCLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 144122 004737 141302 JSR PC,$$DFXDN ;BURST THE CLOCK
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 144126 000137 124064 JMP $EXIT
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 385
BR11 PALII[KL,SYS] Page 22 LOAD AR ROUTINE
≥ .SBTTL LOAD AR ROUTINE
≥
≥ ; ROUTINE TO LOAD THE AR WITH AN INSTRUCTION TO BE EXECUTED.
≥ ; GETS THE MICROCODE TO THE HALT LOOP, AND THEN LINES UP THE
≥ ; MBOX PHASE CHANGE TIMING WITH EBOX SYNC BEFORE LOADING
≥ ; THE AR. THE LATTER IS NECCESSARY IN ORDER TO MAKE INSTRUCTION
≥ ; EXECUTION REPEATABLE AT THE CLOCK TICK LEVEL FOR "TRACE" AND
≥ ; FOR THE MBOX DIAGNOSTIC.
≥
≠MOV≡≡R0≡≡R3≡≥ 144132 010003 $LODAR: MOV R0,R3 ;SAVE DATA POINTER
≠MOV≡≡DCOMST≡≡DFUNC≡≡CLRRUN≡≡.DIAG1≡≥ 144134 012777 010201 013206 MOV #DCOMST!DFUNC!<CLRRUN*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 144142 004737 141302 JSR PC,$$DFXDN ;STOP EXECUTION
≠MOV≡≡R0≡≥ 144146 012700 000177 MOV #177,R0
≡BURST≡≡BURST≡≥ 144152 104131 BURST ;RUN CLOCK FOR FIXED PERIOD
≠MOV≡≡DCOMST≡≡DFUNC≡≡CECLK≡≡.DIAG1≡≥ 144154 012777 004201 013166 MOV #DCOMST!DFUNC!<CECLK*1000>,@.DIAG1
≠JSR≡≡PC≡≡$$DFXD≡≥ 144162 004737 141302 JSR PC,$$DFXDN ;GET EBOX CLOCK FALSE
≠BIT≡≡HALTLP≡≡.DIAG1≡≥ 144166 032777 001000 013154 BIT #HALTLP,@.DIAG1
≠BNE≡≥ 144174 001002 BNE 1$ ;IF AT HALT LOOP
≤EXITER≡≥ 3$: EXITERR
≠JMP≡≡$EXITE≡≥ 144176 000137 124036 JMP $EXITE
≥
≥ ; NOW CALL ROUTINE TO GET MBOX IN PHASE
≥
≠JSR≡≡PC≡≡$MBPHS≡≥ 144202 004737 144266 1$: JSR PC,$MBPHS
≠BCC≡≥ 144206 103001 BCC 2$ ;BR IF ALL OK
≠BR≡≥ 144210 000772 BR 3$
≥
≠MOV≡≡R3≡≡R1≡≥ 144212 010301 2$: MOV R3,R1
≠MOV≡≡LDAR≡≡R0≡≥ 144214 012700 000077 MOV #LDAR,R0
≡DFWRT≡≡DFWRT≡≥ 144220 104120 DFWRT ;LOAD AR
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 144222 000137 124064 JMP $EXIT
≥
≥ ; SETMPH EMT ROUTINE TO SELECT WHICH MBOX PHASE TO SYNC UP TO
≥ ;DURING THE LODAR PROCESS. R0 SELECTS ONE OF FOUR PLACES TO SYNC.
≥ ; R0 = 0, A CHANGE COMING; R0 = 1, HALFWAY TWIXT A AND B
≥ ; R0 = 2, B CHANGE COMING; R0 = 3, HALFWAY TWIXT B AND A.
≥
≠MOV≡≡R0≡≡$STODD≡≥ 144226 010037 157220 $SETMPH:MOV R0,$STODD ;SAVE FOR HALF-PHASE TEST
≠BIC≡≡BIT0≡≡R0≡≥ 144232 042700 000001 BIC #BIT0,R0 ;CLR ODD-EVEN BIT
≠MOV≡≡$STMTB≡≡R0≡≡$MPHDF≡≥ 144236 016037 144256 157214 MOV $STMTB(R0),$MPHDF ;SET DF VALUE FOR A OR B CHANGE
≠MOV≡≡$STMT1≡≡R0≡≡$MPHMK≡≥ 144244 016037 144262 157216 MOV $STMT1(R0),$MPHMK ;SET BIT MASK FOR A OR B CHANGE
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 144252 000137 124064 JMP $EXIT
≥
≥ 144256 000162 $STMTB: 162 ;A CHANGE COMING DF
≥ 144260 000163 163 ;B CHANGE COMING DF
≥
≥ 144262 000010 $STMT1: 10 ;A CHANGE COMING BIT MASK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 386
BR11 PALII[KL,SYS] Page 22.1 LOAD AR ROUTINE
≥ 144264 000400 400 ;B CHANGE COMING BIT MASK
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 387
BR11 PALII[KL,SYS] Page 23 MBOX PHASE ROUTINE
≥ .SBTTL MBOX PHASE ROUTINE
≥
≥ ; ROUTINE TO PHASE THE MBOX WITH THE EBOX HALT LOOP.
≥ ; MICROCODE ASSUMPTIONS: THE HALT LOOP IS TWO INSTRUCTIONS
≥ ; THE FIRST IS AT AN EVEN ADDRESS AND HAS T=3T (these used to be labeled
≥ ; THE SECOND IS AT AN ODD ADDRESS AND HAS T=2T backwards)
≥ ; THIS CODE LOOKS FOR THE INTERSECTION OF THE EVEN ADDRESS,
≥ ; CLK SYNC TRUE, PHASE CHANGE COMING TRUE, AND THE SELECTED
≥ ; PHASE (A OR B CHANGE COMING). THE LATTER IS CHOSEN BY
≥ ; THE "SETMPH" EMT.
≥
≠MOV≡≡R2≡≥ 144266 012702 000024 $MBPHS: MOV #20.,R2 ;SET TIMOUT VALUE
≠MOV≡≡R1≡≥ 144272 012701 000001 1$: MOV #1,R1 ;SET TICK COUNTER
≡DFRDT≡≡DFRDT≡≥ 144276 104140 DFRDT
≥ 144300 000102 102
≠BIT≡≡BIT2≡≡.DAT3≡≥ 144302 032777 000004 013012 BIT #BIT2,@.DAT3 ;BIT 33, CLK SYNC H
≠BEQ≡≥ 144310 001442 BEQ 41$ ;FALSE, TRY 1 CLOCK
≥
≡DFRDT≡≡DFRDT≡≥ 144312 104140 DFRDT
≥ 144314 000144 144
≠BIT≡≡BIT14≡≡.DAT2≡≥ 144316 032777 040000 013000 BIT #BIT14,@.DAT2 ;BIT 5, CR ADR 10 H
≠BNE≡≥ 144324 001033 BNE 42$ ;ODD, TRY 2 CLOCKS
≥
≡DFRDT≡≡DFRDT≡≥ 144326 104140 DFRDT
≥ 144330 000164 164
≠BIT≡≡BIT5≡≡.DAT3≡≥ 144332 032777 000040 012762 BIT #BIT5,@.DAT3 ;BIT 30,PHASE CHANGE COMING L
≠BNE≡≥ 144340 001023 BNE 45$ ;FALSE, TRY 5 CLOCKS
≥
≠MOV≡≡$MPHDF≡≡R0≡≥ 144342 013700 157214 MOV $MPHDF,R0 ;used to be MOVB -- jbr 4/27
≡DFRD≡≡DFRD≡≥ 144346 104116 DFRD
≠CLR≡≡R0≡≥ 144350 005000 CLR R0
≠BIT≡≡$MPHMK≡≡.DAT3≡≥ 144352 033777 157216 012742 BIT $MPHMK,@.DAT3 ;EITHER A OR B CHANGE COMING L used to be bitb --jbr
≠BEQ≡≥ 144360 001402 BEQ 2$ ;TRUE, EXIT
≠MOV≡≡R0≡≥ 144362 012700 000012 MOV #10.,R0 ;NEED 10 CLOCKS
≠BIT≡≡BIT0≡≡$STODD≡≥ 144366 032737 000001 157220 2$: BIT #BIT0,$STODD ;WANT HALFWAY BETWEEN?
≠BEQ≡≥ 144374 001402 BEQ 3$ ;BR IF NOT
≠ADD≡≡R0≡≥ 144376 062700 000005 ADD #5,R0 ;FIVE MORE TICKS THEN
≡BURST≡≡BURST≡≥ 144402 104131 3$: BURST ;DO THIS BURST:0,5,10, OR 15
≠CLC≡≠CLC≡≥ 144404 000241 CLC
≠RTS≡≡PC≡≥ 144406 000207 RTS PC ;WE'RE THERE
≥
≠ADD≡≡R1≡≥ 144410 062701 000003 45$: ADD #3,R1 ;MAKE IT FOUR
≠INC≡≡R1≡≥ 144414 005201 42$: INC R1 ;MAKE IT TWO OR FIVE
≠MOV≡≡R1≡≡R0≡≥ 144416 010100 41$: MOV R1,R0
≡BURST≡≡BURST≡≥ 144420 104131 BURST ;DO ONE TWO OR FIVE
≠DEC≡≡R2≡≥ 144422 005302 DEC R2 ;COUNT TIMEOUT
≠BNE≡≥ 144424 001322 BNE 1$
≠SEC≡≠SEC≡≥ 144426 000261 SEC
≠RTS≡≡PC≡≥ 144430 000207 RTS PC ;TOOK TOO LONG, ERROR
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 388
BR11 PALII[KL,SYS] Page 24 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
≥ .SBTTL VMA, VMAH, PC & ADDRESS BREAK ROUTINE
≥
≥ ;ROUTINE TO READ ONE OF 4 REGISTERS ON THE VMA BOARD.
≥ ;ROUTINE RETURNS WITH R0 POINTING TO A 36 BIT WORD WITH
≥ ;THE DESIRED DATA JUSTIFIED AT BIT 35
≥
≠MOV≡≡DPVMHD≡≡R0≡≥ 144432 012700 000157 $DFVMH: MOV #DPVMHD,R0 ;FUNCTION TO READ VMA HELD
≠BR≡≡$DFPC1≡≥ 144436 000402 BR $DFPC1
≠MOV≡≡DPPC≡≡R0≡≥ 144440 012700 000153 $DFPC: MOV #DPPC,R0 ;FUNCTION TO READ PC
≠MOV≡≡R5≡≥ 144444 012705 000003 $DFPC1: MOV #3,R5
≠MOV≡≡R4≡≥ 144450 012704 000273 MOV #273,R4 ;MASK FOR REGISTER OFFSET FROM BIT 35
≠BR≡≡$VMPC≡≥ 144454 000410 BR $VMPC
≠MOV≡≡DPVMA≡≡R0≡≥ 144456 012700 000157 $DFVMA: MOV #DPVMA,R0 ;DIAG FUNCTION TO READ VMA
≠BR≡≡$VMPC1≡≥ 144462 000402 BR $VMPC1
≠MOV≡≡DPADB≡≡R0≡≥ 144464 012700 000153 $DFADB: MOV #DPADB,R0 ;DIAG FUNCTION TO READ ADDRESS BREAK
≠MOV≡≡R4≡≥ 144470 012704 000356 $VMPC1: MOV #356,R4
≠CLR≡≡R5≡≥ 144474 005005 CLR R5
≤PUSH≡≥ $VMPC: PUSH R0
≠.NLIST≡≠.IRP≡≠MOV≡≡R0≡≡SP≡≠.LIST≡≠MOV≡≡R2≡≥ 144500 012702 000004 MOV #4,R2 ;FOUR READS PER REGISTER
≠MOV≡≡VMADAT≡≡R1≡≥ 144504 012701 147550 MOV #VMADAT,R1 ;FIRST CLEAR ENTIRE 36-BIT BUFFER
≠CLR≡≡R1≡≥ 144510 005021 CLR (R1)+
≠CLR≡≡R1≡≥ 144512 005021 CLR (R1)+
≠CLR≡≡R1≡≥ 144514 005021 CLR (R1)+
≥
≠MOV≡≡WREADY≡≡R1≡≥ 144516 012701 147532 1$: MOV #WREADY,R1 ;PUT DFRD DATA HERE
≡DFRDMV≡≡DFRDMV≡≥ 144522 104117 DFRDMV
≠MOV≡≡R0≡≥ 144524 012700 000005 MOV #5,R0 ;MASK RECEIVED DATA, FIVE BYTES WORTH
≠BICB≡≡R4≡≡R1≡≥ 144530 140421 2$: BICB R4,(R1)+
≠DEC≡≡R0≡≥ 144532 005300 DEC R0
≠BGT≡≥ 144534 003375 BGT 2$
≠MOV≡≡WREADY≡≡R1≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 389
BR11 PALII[KL,SYS] Page 25 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
≥ 144536 012701 147537 MOV #WREADY+5,R1 ;NOW MOVE READ DATA
≠MOV≡≡VMADAT≡≡R0≡≥ 144542 012700 147555 MOV #VMADAT+5,R0 ;TO VMA REGISTER DATA
≠BISB≡≡R1≡≡R0≡≥ 144546 154140 BISB -(R1),-(R0)
≠BISB≡≡R1≡≡R0≡≥ 144550 154140 BISB -(R1),-(R0)
≠BISB≡≡R1≡≡R0≡≥ 144552 154140 BISB -(R1),-(R0)
≠BISB≡≡R1≡≡R0≡≥ 144554 154140 BISB -(R1),-(R0)
≠BISB≡≡R1≡≡R0≡≥ 144556 154140 BISB -(R1),-(R0)
≠ROLB≡≡R0≡≥ 144560 106120 ROLB (R0)+ ;AND NOW SHIFT 35 BITS
≠ROLB≡≡R0≡≥ 144562 106120 ROLB (R0)+ ;BY ONE BIT
≠ROLB≡≡R0≡≥ 144564 106120 ROLB (R0)+
≠ROLB≡≡R0≡≥ 144566 106120 ROLB (R0)+
≠ROLB≡≡R0≡≥ 144570 106120 ROLB (R0)+
≥
≠DEC≡≡SP≡≥ 144572 005316 DEC (SP) ;CREATE NEXT DIAG FUNCTION
≠MOV≡≡SP≡≡R0≡≥ 144574 011600 MOV (SP),R0 ;TAKE IT OFF THE STACK
≠DEC≡≡R2≡≥ 144576 005302 DEC R2 ;DONE FOUR FUNCTIONS YET?
≠BGT≡≥ 144600 003346 BGT 1$ ;BR IF MORE TO DO
≥
≥ ;ALL DONE READING DATA, NOW JUSTIFY CORRECTLY FOR THE RETURN MACHINE
≥
≠MOV≡≡VMADAT≡≡R0≡≥ 144602 012700 147555 3$: MOV #VMADAT+5,R0 ;MUST CORRECT BY OFFSET AMOUNT
≠RORB≡≡R0≡≥ 144606 106040 RORB -(R0)
≠RORB≡≡R0≡≥ 144610 106040 RORB -(R0)
≠RORB≡≡R0≡≥ 144612 106040 RORB -(R0)
≠RORB≡≡R0≡≥ 144614 106040 RORB -(R0)
≠RORB≡≡R0≡≥ 144616 106040 RORB -(R0)
≠DEC≡≡R5≡≥ 144620 005305 DEC R5 ;DONE YET?
≠BGT≡≥ 144622 003367 BGT 3$ ;BR IF NO
≥
≥ ;OFFSET MAY ORIGINALLY NEED TO BE GREATER THAN 0 IF
≥ ;VMA DIAG MIXERS NOT RIGHT JUSTIFIED AT EBUS BIT 35
≥
≤POP≡≥ 4$: POP R0
≠.NLIST≡≠.IRP≡≠MOV≡≡SP≡≡R0≡≠.LIST≡≠MOV≡≡VMADAT≡≡R0≡≥ 144626 012700 147550 MOV #VMADAT,R0
≤EXIT≡≥ EXIT
≠JMP≡≡$EXIT≡≥ 144632 000137 124064 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 390
KLDCP PAL[KL,SYS] Page 5.10 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
≥
≥ ;Storage definitions
≠.INSRT≡≥ .INSRT SBST11.PAL
≠COMMEN≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 391
SBST11 PAL[KL,SYS] Page 1 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
≥ COMMENT ⊗ VALID 00009 PAGES
≥ C REC PAGE DESCRIPTION
≥ C00001 00001
≥ C00002 00002 .SBTTL *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ C00004 00003 BUFFER CREATION MACROS
≥ C00005 00004 PROGRAM BUFFERS & STORAGE AREA
≥ C00012 00005 COMMON STORAGE
≥ C00017 00006 DECTAPE PARAMETER STORAGE
≥ C00020 00007 TELETYPE BUFFERS
≥ C00023 00008 CONSOLE PARAMETER STORAGE
≥ C00025 00009 MISCELLANEOUS STORAGE
≥ C00028 ENDMK
≥ C⊗;
≠.SBTTL≡ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 392
SBST11 PAL[KL,SYS] Page 2 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ .SBTTL *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥
≠.MACRO≡≤INFORM≠≥ .MACRO INFORM A,B
≥ .IF P2
≥ .PRINT \A=B
≥ \
≥ .ENDC
≥ .ENDM
≥
≥
≠.IF≡≡KLDCP≡≥ .IF DF KLDCP
≥ ;DECISION TABLES FOR KL10/11 SUBROUTINE PACKAGE
≥
≥ $DTBL0:
≠.BYTE≡≥ 144636 012 $LF: .BYTE 12
≠.BYTE≡≥ 144637 015 $CR: .BYTE 15
≠.BYTE≡≥ 144640 007 $BELL: .BYTE 07
≠.BYTE≡≥ 144641 000 .BYTE 00
≠.EVEN≡≥ 144642 .EVEN
≥
≡$LFTBL≡≡$LFTBL≡≥ 144642 144650 $DTBL1: $LFTBL ;LINE FEED FILL TABLE
≡$CRTBL≡≡$CRTBL≡≥ 144644 144656 $CRTBL ;CARRIAGE RETURN FILL TABLE
≡$BELLT≡≡$BELLT≡≥ 144646 144664 $BELLT ;BELL FILL TABLE
≥
≠.BYTE≡≥ 144650 001
≥ 144651 001 $LFTBL: .BYTE 1,1
≠.BYTE≡≥ 144652 002
≥ 144653 001 .BYTE 2,1
≠.BYTE≡≥ 144654 002
≥ 144655 004 .BYTE 2,4
≥
≠.BYTE≡≥ 144656 000
≥ 144657 000 $CRTBL: .BYTE 0,0
≠.BYTE≡≥ 144660 011
≥ 144661 001 .BYTE 9.,1
≠.BYTE≡≥ 144662 002
≥ 144663 004 .BYTE 2,4
≥
≠.BYTE≡≥ 144664 002
≥ 144665 002 $BELLT: .BYTE 2,2
≠.BYTE≡≥ 144666 002
≥ 144667 002 .BYTE 2,2
≠.BYTE≡≥ 144670 002
≥ 144671 002 .BYTE 2,2
≥
≥ 144672 023420 $DTBL: 10000.
≥ 144674 001750 1000.
≥ 144676 000144 100.
≥ 144700 000012 10.
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 393
SBST11 PAL[KL,SYS] Page 2.1 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 144702 000001 1.
≥ 144704 000001 $TBLL: 1.
≥ 144706 000012 10.
≥ 144710 000144 100.
≥ 144712 001750 1000.
≥ 144714 023420 10000.
≥
≥ .ENDC ;IF DF KLDCP
≥
≤INFORM≡≥ INFORM PROGRAM END,\.
≠.IF≡≥ .IF P2
≠.PRINT≡≥ .PRINT \PROGRAM END=144716
≥ \
≥ .ENDC
≥
≥ ;THIS SECTION CONTAINS ALL PROGRAM TEXT LITERALS
≥
≡$$CLIT≡≡$$CLIT≡≥ 144716 147306 $$FF: $$CLIT
≥
≡$$LITT≠≥ 144720 $$LITT=.
≡$$CLIT≡≡$$$FF≠≥ 147306 $$$FF=$$CLIT
≥
≤INFORM≡≡$$CLIT≡≥ INFORM LITERAL END,\$$CLIT
≠.IF≡≥ .IF P2
≠.PRINT≡≥ .PRINT \LITERAL END=147306
≥ \
≥ .ENDC
≥
≠.IF≡≥ .IF P2
≡$$CLIT≡≥ 147306 .=$$CLIT
≥ ;PATCH: .BLKW 40
≡PATEND≠≥ 147306 PATEND==.
≥ .ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 394
SBST11 PAL[KL,SYS] Page 3 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ ;BUFFER CREATION MACROS
≥
≡COREND≡≡$$BUF≠≥ 157360 $$BUF== COREND-420 ;ROOM FOR STACK
≡$$BUF≡≡$$STKM≠≥ 157360 $$STKM==$$BUF ;Bottom boundary of stack
≥
≥ ;WORD BUFFER ASSIGNMENT MACRO
≠.MACRO≡≤.BUFW≠≥ .MACRO .BUFW $BTAG,$BARG
≥ .IIF NE $$BUF&1,$$BUF==$$BUF-1
≥ .IIF B $BARG,$$BARG==1
≥ .IIF NB $BARG,$$BARG==$BARG
≥ $$BUF==$$BUF-<$$BARG*2>
≥ .NLIST
≥ .LIST ME
≥ .LIST
≥ $BTAG== $$BUF
≥ .NLIST ME
≥ .ENDM
≥
≥ ;BYTE BUFFER ASSIGNMENT MACRO
≠.MACRO≡≤.BUFB≠≥ .MACRO .BUFB $BTAG,$BARG
≥ .IIF B $BARG,$$BARG==1
≥ .IIF NB $BARG,$$BARG==$BARG
≥ $$BUF==$$BUF-$$BARG
≥ .NLIST
≥ .LIST ME
≥ .LIST
≥ $BTAG== $$BUF
≥ .NLIST ME
≥ .ENDM
≥
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DIAG3≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 395
SBST11 PAL[KL,SYS] Page 4 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 157356 .DIAG3== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.STDTE≠≥ 157354 .STDTE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DIAG2≠≥ 157352 .DIAG2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DIAG1≠≥ 157350 .DIAG1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.T11DT≠≥ 157346 .T11DT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.T10DT≠≥ 157344 .T10DT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.T11AD≠≥ 157342 .T11AD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.T10AD≠≥ 157340 .T10AD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.BC11≠≥ 157336 .BC11== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.BC10≠≥ 157334 .BC10== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.TENA2≠≥ 157332 .TENA2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.TENA1≠≥ 157330 .TENA1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DAT1≠≥ 157326 .DAT1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DAT2≠≥ 157324 .DAT2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DAT3≠≥ 157322 .DAT3== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DELAY≠≥ 157320 .DELAY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ONETM≠≥ 157316 $ONETM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ILDSU≠≥ 157314 $ILDSUM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$PWRCN≠≥ 157312 $PWRCNT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DEVTYP≠≥ 157310 DEVTYP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FLOPPY≠≥ 157306 FLOPPY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LPTFLG≠≥ 157304 LPTFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LPTYPE≠≥ 157302 LPTYPE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡RXUNIT≠≥ 157300 RXUNIT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTUNIT≠≥ 157276 DTUNIT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡RPUNIT≠≥ 157274 RPUNIT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$BKFLG≠≥ 157272 $BKFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CLKPE≠≥ 157264 CLKPE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PEBITS≠≥ 157262 PEBITS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PAGDFL≠≥ 157254 PAGDFL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CLKDFL≠≥ 157246 CLKDFL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SWS10≠≥ 157240 SWS10== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SWS10≠≥ 157232 $SWS10== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$$SWR≠≥ 157230 $$SWR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$$STJR≠≥ 157222 $$STJRS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$STODD≠≥ 157220 $STODD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$MPHMK≠≥ 157216 $MPHMK== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$MPHDF≠≥ 157214 $MPHDF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TGOADR≠≥ 157210 TGOADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PGOADR≠≥ 157204 PGOADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PGOCTL≠≥ 157202 PGOCTL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SEADR≠≥ 157200 SEADR== $$BUF
≠.NLIST≡≠.IF≡≡SAILVR≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TIM11≠≥ 157172 TIM11== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TIMBAS≠≥ 157164 TIMBAS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡KTIMBS≠≥ 157162 KTIMBS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CLKFLG≠≥ 157160 CLKFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TIMTMP≠≥ 157152 TIMTMP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TIMADR≠≥ 157144 TIMADR== $$BUF
≠.NLIST≡≠.IF≡≡CLKASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TIMFLG≠≥ 157142 TIMFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TMSFLG≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 396
SBST11 PAL[KL,SYS] Page 4.1 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 157140 TMSFLG== $$BUF
≠.NLIST≡≠.IF≡≡%%QMP≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡T11DBF≠≥ 157136 T11DBF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTEBSY≠≥ 157134 DTEBSY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTEBCT≠≥ 157132 DTEBCT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0PKO≠≥ 157130 EN0PKO== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0ER1≠≥ 157126 EN0ER1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0PER≠≥ 157124 EN0PER== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0PKI≠≥ 157122 EN0PKI== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0ER2≠≥ 157120 EN0ER2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0MEM≠≥ 157116 EN0MEM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0TRY≠≥ 157114 EN0TRY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0BUF≠≥ 157110 EN0BUF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0IND≠≥ 157106 EN0IND== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡ENBCCF≠≥ 157104 ENBCCF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡COUN10≠≥ 157076 COUN10== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EN0DLY≠≥ 157056 EN0DLY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TO10Q≠≥ 157052 TO10Q== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡ENETQ≠≥ 157046 ENETQ== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FR10Q≠≥ 157042 FR10Q== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FREEQ≠≥ 157036 FREEQ== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡QMPRQS≠≥ 157034 QMPRQS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡ENIHAD≠≥ 157032 ENIHAD== $$BUF
≠.NLIST≡≠.IF≡≡BOOASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡BOOTSZ≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡BOOTBF≠≥ 152272 BOOTBF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡BOOTSA≠≥ 152266 BOOTSA== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡BOOTBG≠≥ 152262 BOOTBG== $$BUF
≠.NLIST≡≠.IF≡≡TELASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSSTAT≠≥ 152260 FSSTATE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSTPTR≠≥ 152256 FSTPTR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSTYPR≠≥ 152254 FSTYPR== $$BUF
≠.NLIST≡≤.BUFB≡≠.IIF≡≠.IIF≡≡FSRLEN≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSRBUF≠≥ 152242 FSRBUF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSRPTR≠≥ 152240 FSRPTR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSFLG≠≥ 152236 FSFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSCLKA≠≥ 152234 FSCLKA== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡FSRTIM≠≥ 152226 FSRTIM== $$BUF
≠.NLIST≡≠.IF≡≡BPTASB≡≡$$BUF≡≡$ILDCL≠≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SWMON≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 397
SBST11 PAL[KL,SYS] Page 5 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 152224 $SWMON== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡MONCTL≠≥ 152222 MONCTL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TENSWD≠≥ 152220 TENSWD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TENCLK≠≥ 152216 TENCLK== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PCMDFL≠≥ 152214 PCMDFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PCMDNF≠≥ 152212 PCMDNF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ITERA≠≥ 152210 $ITERA== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ENDCT≠≥ 152206 $ENDCT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$EOPCT≠≥ 152204 $EOPCT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ERRPC≠≥ 152202 $ERRPC== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ERTTL≠≥ 152200 $ERTTL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ERFLG≠≥ 152176 $ERFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$PASS≠≥ 152174 $PASS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$CMTAG≠≥ 152172 $CMTAG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DVBUF≠≥ 151172 DVBUF== $$BUF
≠.NLIST≡≡DVBUF≡≡VFUDAT≠≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡EXTBF≠≥ 151166 EXTBF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡NAMBF≠≥ 151160 NAMBF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DIRST4≠≥ 151156 DIRST4== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DIRST3≠≥ 151154 DIRST3== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DIRST2≠≥ 151152 DIRST2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DIRST1≠≥ 151150 DIRST1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DIRST0≠≥ 151146 DIRST0== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTEXT≠≥ 151144 DTEXT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTEXTS≠≥ 151136 DTEXTS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTLNGT≠≥ 151134 DTLNGTH== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTSTRT≠≥ 151132 DTSTRT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DVADR≠≥ 151130 DVADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DVCNT≠≥ 151126 DVCNT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DVDIRF≠≥ 151124 DVDIRF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CDADR≠≥ 151122 CDADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DIAFLG≠≥ 151120 DIAFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡RPEOF≠≥ 151116 RPEOF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡WRTBAK≠≥ 151110 WRTBAK== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$RPINF≠≥ 151104 $RPINFO== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡NAMRAD≠≥ 151076 NAMRAD== $$BUF
≠.NLIST≡≠.IF≡≡RPASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡REVCNT≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 398
SBST11 PAL[KL,SYS] Page 6 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 151074 REVCNT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡INTSW≠≥ 151072 INTSW== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$CKS11≠≥ 151070 $CKS11== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LTMP≠≥ 151066 LTMP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LBC≠≥ 151064 LBC== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TRYCTR≠≥ 151062 TRYCTR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTXCMD≠≥ 151060 DTXCMD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡WCSAV≠≥ 151056 WCSAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CASAV≠≥ 151054 CASAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DTBLK≠≥ 151052 DTBLK== $$BUF
≠.NLIST≡≠.IF≡≡RXASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDATAE≠≥ 151050 LDATAE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDATA≠≥ 150744 LDATA== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDADR≠≥ 150742 LDADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDCNT≠≥ 150740 LDCNT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDOCTF≠≥ 150736 LDOCTF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDCNTL≠≥ 150734 LDCNTL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDOVRD≠≥ 150732 LDOVRD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡LDZBLK≠≥ 150730 LDZBLK== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SRTFLG≠≥ 150726 SRTFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DEVLC≠≥ 150724 DEVLC== $$BUF
≠.NLIST≡≠.LIF≡≡MONASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡HLPPNT≠≥ 150722 HLPPNT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$INPTR≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 399
SBST11 PAL[KL,SYS] Page 7 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 150720 $INPTR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$INPTC≠≥ 150716 $INPTC== $$BUF
≠.NLIST≡≤.BUFB≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$INBUF≠≥ 150500 $INBUF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$OUTPC≠≥ 150476 $OUTPC== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$OUTPT≠≥ 150474 $OUTPT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$OUTPP≠≥ 150472 $OUTPP== $$BUF
≠.NLIST≡≤.BUFB≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$OUTBF≠≥ 150254 $OUTBF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TNPTR≠≥ 150252 $TNPTR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TNPTC≠≥ 150250 $TNPTC== $$BUF
≠.NLIST≡≤.BUFB≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TNBUF≠≥ 150032 $TNBUF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TNCHR≠≥ 150024 $TNCHR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TENTTY≠≥ 150022 TENTTY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TTYIN≠≥ 150020 $TTYIN== $$BUF
≠.NLIST≡≤.BUFB≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TTSAV≠≥ 150004 $TTSAV== $$BUF
≠.NLIST≡≠.IF≡≡MONASB≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$PRNTH≠≥ 150002 $PRNTH== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$PGWID≠≥ 150000 $PGWID== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TPLIN≠≥ 147776 $TPLIN== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TPLIT≠≥ 147774 $TPLIT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$XOFLG≠≥ 147772 $XOFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CTRLOF≠≥ 147770 CTRLOF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$EOLFL≠≥ 147766 $EOLFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TTLKF≠≥ 147764 $TTLKF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TILNWF≠≥ 147762 TILNWF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$FORCE≠≥ 147760 $FORCE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TTYFL≠≥ 147756 $TTYFL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$0FLG≠≥ 147754 $0FLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$NEG≠≥ 147752 $NEG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SVH≠≥ 147750 $SVH== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SVM≠≥ 147746 $SVM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TICHR≠≥ 147744 $TICHR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TOCHR≠≥ 147742 $TOCHR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DDTFLG≠≥ 147740 DDTFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$KONSP≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 400
SBST11 PAL[KL,SYS] Page 8 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 147736 $KONSP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡ALLFLG≠≥ 147734 ALLFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡RPTFLG≠≥ 147732 RPTFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡VERIFY≠≥ 147730 VERIFY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.EADR≠≥ 147726 .EADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ECADR≠≥ 147724 $ECADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$EDADR≠≥ 147722 $EDADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ADR≠≥ 147720 $ADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ADR1≠≥ 147716 $ADR1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DFRDA≠≥ 147710 .DFRDA== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.DPXAD≠≥ 147704 .DPXAD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡L10ADR≠≥ 147700 L10ADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TEMP0≠≥ 147672 $TEMP0== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TENRUN≠≥ 147670 TENRUN== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡MONMOD≠≥ 147666 MONMODE== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡MTTYOF≠≥ 147664 MTTYOF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TTYTI≠≥ 147662 $TTYTIM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡KASIM≠≥ 147660 KASIM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$PCSAV≠≥ 147656 $PCSAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$PSSAV≠≥ 147654 $PSSAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SPSAV≠≥ 147652 $SPSAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$R5SAV≠≥ 147650 $R5SAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$R4SAV≠≥ 147646 $R4SAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$R3SAV≠≥ 147644 $R3SAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$R2SAV≠≥ 147642 $R2SAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$R1SAV≠≥ 147640 $R1SAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$R0SAV≠≥ 147636 $R0SAV== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$EMADR≠ KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 401
SBST11 PAL[KL,SYS] Page 9 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ 147634 $EMADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SWTCH≠≥ 147632 $SWTCH== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$$SVSP≠≥ 147630 $$SVSP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TEMP≠≥ 147626 TEMP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡IFILEF≠≥ 147624 IFILEF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡IFINP≠≥ 147622 IFINP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡JFILEF≠≥ 147620 JFILEF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡JFINP≠≥ 147616 JFINP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡PRGRUN≠≥ 147614 PRGRUN== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡MEMPEF≠≥ 147612 MEMPEF== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.HCFLG≠≥ 147610 .HCFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡.HCADR≠≥ 147606 .HCADR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DDTTM1≠≥ 147604 DDTTM1== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DDTTM2≠≥ 147602 DDTTM2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$ECMD≠≥ 147574 $ECMD== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$SAV20≠≥ 147566 $SAV20== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡VRBFLG≠≥ 147564 VRBFLG== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡ZEROS≠≥ 147556 ZEROS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡VMADAT≠≥ 147550 VMADAT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡XXDAT≠≥ 147546 XXDAT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡MMDAT≠≥ 147540 MMDAT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡WREADY≠≥ 147532 WREADY== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SIGNL≠≥ 147530 SIGNL== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$BUFRC≠≥ 147514 $BUFRC== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SIGNL2≠≥ 147512 SIGNL2== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SIGNL3≠≥ 147510 SIGNL3== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡DDRAM≠≥ 147502 DDRAM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡RDRTMP≠≥ 147476 RDRTMP== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$DRAM≠≥ 147462 $DRAM== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$DDRMS≠≥ 147460 $DDRMS== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$STDAT≠≥ 147456 $STDAT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡KLCLKR≠≥ 147454 KLCLKR== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TENDAT≠≥ 147446 TENDAT== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡TENAC0≠≥ 147442 TENAC0== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡C10CW≠≥ 147434 C10CW== $$BUF
≠.NLIST≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≠.IIF≡≡$$BARG≠≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡CLKCNT≠≥ 147426 CLKCNT== $$BUF
≠.NLIST≡≠.IF≡≡FSCASB≡≠.IIF≡≡EPTREL≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡$TADSP≠≥ 147424 $TADSP== $$BUF
≠.NLIST≡≠.IIF≡≡SAILVR≡≤.BUFW≡≠.IIF≡≡$$BUF≡≠.IIF≡≡$$BARG≠≠.IIF≡≡$$BUF≡≡$$BARG≡≡$$BUF≠≠.NLIST≡≠.LIST≡≠.LIST≡≡$$BUF≡≡SWTDEP≠≥ 147422 SWTDEP== $$BUF
≠.NLIST≡≠.LIST≡≡$$BUF≡≡BUFCLR≠≥ 147422 BUFCLR==$$BUF
≥
≠.IF2≡≥ .IF2
≠.IFL≡≡$$BUF≡≡PATEND≡≥ 000114 .IFL $$BUF-PATEND
≥ .PRINT \BUFFER STORAGE OVERLAPS LITERAL STORAGE, FLUSH SOMETHING!
≥ \
≥ INFORM OVERLAP,\PATEND-$$BUF
≥ .IFF
≤INFORM≡≡$$BUF≡≡PATEND≡≥ INFORM FREE LITERAL/BUFFER SPACE,\$$BUF-PATEND
≠.IF≡≥ .IF P2
≠.PRINT≡≥ .PRINT \FREE LITERAL/BUFFER SPACE=114
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 402
SBST11 PAL[KL,SYS] Page 9.1 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥ \
≥ .ENDC
≥ .ENDC
≥ .ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 403
KLDCP PAL[KL,SYS] Page 5.11 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
≥
≠.END≡≡$ILOAD≡≥ 100010 .END $ILOAD ;initial startup in SUB11
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 404
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
ADH 000000 ERR11S 000002 DEXWD1 000006 EBUSPC 000020
PR0 000000 VBIT 000002 CLRMR 000006 INHPAG 000020
DLRDS 000000 BIT1 000002 QENBCC 000006 IOTVEC 000020
XEPT 000000 OPRSEL 000002 DLXBUF 000006 BIT04 000020
APR 000000 TCRNUM 000002 QENWC 000006 BPARER 000020
DLTDS 000000 DLRBUF 000002 CONSO 000007 BIT4 000020
STPCLK 000000 BIT01 000002 SETMR 000007 TBIT 000020
QCHN 000000 QSIZ 000002 BELL 000007 CDD 000020
RESVED 000000 DLDTR 000002 NBIT 000010 XON 000021
QNOPMS 000000 BLKO 000002 DLSTD 000010 CNTRLR 000022
BLKI 000000 DEXWD3 000002 BIT03 000010 TO11AD 000022
TEXTER 000000 QECHRQ 000002 PAG 000010 XOFF 000023
AC 000000 TO11ER 000002 $NB 000010 CNTRLT 000024
DLRCSR 000000 DATAO 000003 DIKL10 000010 TO10DT 000024
DLYCNT 000000 CNTRLC 000003 INTROF 000010 PWRVEC 000024
XR 000000 SECLK 000003 CLRRUN 000010 CNTRLU 000025
I 000000 QENPKT 000003 VEC03 000010 TO11DT 000026
NULL 000000 QENADR 000004 WEP 000010 ETB 000027
ADL 000000 BIT02 000004 RESVEC 000010 DIAG1 000030
TO10BM 000001 DEXDON 000004 MODDVC 000010 MSWCHR 000030
DVSASB 000001 BIT2 000004 BIT3 000010 CNTRLX 000030
MMPIE 000001 ZBIT 000004 TENAD1 000010 EMTVEC 000030
STRCLK 000001 DLRTS 000004 RM 000010 DIAG2 000032
DCSRT 000001 PI 000004 TAB 000011 CNTRLZ 000032
DATAI 000001 DTEMAX 000004 CNTRLI 000011 ALTMOD 000033
DLASB 000001 VEC02 000004 SETRUN 000011 STATUS 000034
BIT0 000001 TCRDAT 000004 CONBUT 000012 TRAPVE 000034
DTEDEF 000001 DLXCSR 000004 LF 000012 DIAG3 000036
TCASB 000001 INHCSH 000004 TENAD2 000012 PR1 000040
QECHRY 000001 ERRVEC 000004 CNTRLK 000013 INTRON 000040
TCDO 000001 EBUSPS 000004 VT 000013 DTESIZ 000040
CHAIN 000001 QREQ 000004 TRTVEC 000014 TXTINH 000040
DLBRK 000001 CECLK 000004 TCWDAT 000014 SPACE 000040
KLDCP 000001 CNTRLD 000004 IRLOAD 000014 D1011 000040
INTSON 000001 DLMAIN 000004 TO10BC 000014 BIT5 000040
DTEASB 000001 MMWWP 000004 CNTRLL 000014 DLDIE 000040
SYN 000001 DSEND 000004 CCA 000014 SCD 000040
KWASB 000001 DURE 000004 TBITVE 000014 BLANK 000040
CBIT 000001 DEXWD2 000004 BPTVEC 000014 BIT05 000040
DCOMST 000001 CONO 000004 FF 000014 NULSTP 000040
DLRE 000001 MMADDS 000005 DRLTCH 000015 LDBRR 000042
ERR11C 000001 CONI 000005 CR 000015 LDBRL 000043
BIT00 000001 QDTMSG 000005 TO11BC 000016 LDSEL 000044
CNTRLA 000001 DTESZS 000005 CNTRLO 000017 LDDIS 000045
NUPE 000002 BRCLK 000005 VEC04 000020 LDCHK1 000046
SSCLK 000002 QHDRSZ 000006 TO10AD 000020 LDCHK2 000047
CNUPE 000002 CONSZ 000006 DUPE 000020 LCRDAR 000051
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 405
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
LCRDAL 000052 DPBRX 000124 INT10S 000400 PMVER 003012
LCRAM5 000053 DPARX 000125 BIT8 000400 PTABLE 003020
LCRAM4 000054 DPADX 000126 BIT08 000400 RXCOPY 003020
COMMA 000054 DPAD 000127 TO10DB 000400 DTCOPY 003022
LCRAM3 000055 DPSC 000130 $STD 000440 WFILE 003024
LCRAM2 000056 DPSC1 000131 $DDT 000441 TAPT 003026
LCRAM1 000057 DPFE 000132 $STL 000442 DSKDIR 003030
SLASH 000057 DPFE1 000133 $STM 000443 REMOTE 003032
TKVEC 000060 DRAMAB 000133 $DTFLG 000444 BIT11 004000
LDRAM1 000060 BKSLH 000134 $DTCLK 000445 DLRA 004000
DLRIV 000060 DRJ1.4 000134 $DTTIM 000446 PRTOFF 004000
PULSE 000060 DRJ710 000135 $DTT11 000447 TCREV 004000
LDRAM2 000061 BKARW 000137 $DTF11 000450 ERRSTP 004000
LDRAM3 000062 PR3 000140 $DTCMD 000451 PNTLPT 004000
LDRJEV 000063 RCSPEC 000141 $DTSEQ 000452 INT11S 004000
DLTIV 000064 RCRAM4 000144 $DTOPR 000453 TCSELE 004000
TPVEC 000064 RCRAM3 000145 EN0BSZ 000454 DS04 004000
LDRJOD 000064 RCRAM2 000146 $DTCHR 000454 TO11DB 004000
DISIOJ 000065 RCRAM1 000147 $DTMTD 000455 MMADDM 007740
DISACF 000066 DPPC 000153 $DTMTI 000456 DLRDPE 010000
ENIOJA 000067 DPADB 000153 $DTSWR 000457 BIT12 010000
LDCHAN 000070 DPVMA 000157 $DTQMP 000460 RFMAD3 010000
LDMBXA 000071 DPVMHD 000157 HRLZI 000515 DEP 010000
LDAR 000077 DPERG 000167 HRRI 000541 RAMIS0 010000
BIT6 000100 RUBOUT 000177 DTEIV3 000760 TCILO 010000
DLTIE 000100 DLRD 000200 DTEIV2 000764 NOPNT 010000
DLRIE 000100 PR4 000200 DTEIV1 000770 ERR10C 010000
TO11 000100 TO11DN 000200 DTEIV0 000774 DLCD 010000
PR2 000100 DTE 000200 D11MPE 001000 DS03 010000
KWLIV 000100 DON11S 000200 BIT09 001000 TO11BM 020000
DON11C 000100 BIT07 000200 PERCLR 001000 BIT13 020000
READ0 000100 TO10 000200 BIT9 001000 DS02 020000
DRESET 000100 DFUNC 000200 TCDATM 001000 DLCTS 020000
TCIE 000100 DLTR 000200 DS06 001000 DLFE 020000
EBSEL 000100 PALERS 000200 LOOPER 001000 EXVIRT 020000
KWLKE 000100 BIT7 000200 HALTLP 001000 BYTE2 020000
BIT06 000100 TCRDY 000200 DING 002000 ERR10S 020000
RELIAB 000100 TC11 000214 TCBLKM 002000 TCMTE 020000
READ1 000101 PR5 000240 KLRUN 002000 TOTALS 020000
READ2 000102 JRST 000254 DLSRD 002000 RFMAD2 020000
READ3 000103 TA11 000260 DS05 002000 TO10ER 020000
DPFMA 000114 PR6 000300 DXWRD1 002000 UPECD 037000
MMLPIV 000114 PR7 000340 BIT10 002000 RSTART 040000
DPAR 000120 DLRDM 000377 INT11C 002000 CAB08 040000
DPBR 000121 DLTDM 000377 TOUTBF 003000 EDONES 040000
DPMQ 000122 ERSTOP 000400 PID 003004 DON10C 040000
DPFM 000123 DEX 000400 PDVER 003010 TCPAR 040000
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 406
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
XUPT 040000 TTCOCT 104010 RCRAM 104074 PLPT 104153
BIT14 040000 TTIDEC 104011 WWADR 104075 PLDBUF 104154
DLORE 040000 TTIYES 104012 MRESET 104076 R50UPK 104155
DLRI 040000 TTALTM 104013 TENSP 104077 DTINIT 104156
RFMAD1 040000 TTI36 104014 SM 104100 RPINIT 104157
ZSTOP 040000 TTIBRK 104015 EXCT 104101 DVDATA 104160
DS01 040000 TTISDL 104016 LODAR 104102 DTREAD 104161
USEVIR 060000 TTISDO 104017 EXAM 104103 RPREAD 104162
TCSOFT 063000 TTIS36 104020 EXAMT 104104 DVFRAM 104163
PHYS 100000 TTICRA 104021 DPOS 104105 DVWRD 104164
DLDSC 100000 TTITRM 104022 DPOST 104106 ASCR50 104165
ABORT 100000 TTBTRM 104023 DPOSVR 104107 RPLOAD 104166
MMERRF 100000 PNTAL 104024 DPOSVT 104110 RPFIND 104167
BIT15 100000 $PMSG 104025 D10MON 104111 RPLKUP 104170
SWSLFT 100000 $PMSGR 104026 D10ZRO 104112 RPRDFL 104171
PRGSRT 100000 PNTCHR 104027 DTEBAS 104113 RPWRFL 104172
TO10DN 100000 PNTNBR 104030 DFXCT 104114 RPWRIT 104173
DLERR 100000 PCRLF 104031 DFXCTT 104115 RPADDR 104174
DON10S 100000 PSPACE 104032 DFRD 104116 RPBASE 104175
RFMAD0 100000 PSLASH 104033 DFRDMV 104117 TENCHR 104176
INT10 100000 PCOMMA 104034 DFWRT 104120 PNTBAK 104177
TCERR 100000 PNTOCT 104035 DFWIR 104121 TTOCTE 104200
DS00 100000 PNTOCS 104036 DFSCLK 104122 TTERM 104201
$DIASX 101612 PNTDEC 104037 DFPC 104123 CLKPRM 104202
IFILX 101714 PNT18 104040 DFVMA 104124 MICNUL 104203
ALLEX1 102276 PNT22 104041 DFADB 104125 MICFIL 104204
$ALLMQ 102306 PNT23 104041 RDRAM 104126 DTWRT 104205
$ALLFM 102324 PNT36 104042 WDRAM 104127 NAMEXT 104206
$ALLAR 102414 PFORCE 104043 DRAMAD 104130 DTAFIL 104207
$ALARX 102430 PNORML 104044 BURST 104131 RPFILE 104210
$ALLAD 102464 PBELL 104045 PNTCPU 104132 DTRDFL 104211
$ALADX 102500 PNTODC 104046 PRGCMD 104133 DTWTFL 104212
$ALLBR 102526 PNTODT 104047 PNT36B 104134 DTBASE 104213
$ALBRX 102542 REGSAV 104050 ECLOK 104135 PNTCI 104214
$ALLPC 102642 REGRST 104051 ESYNC 104136 PNTRST 104215
$ALVMA 102760 CMPR36 104052 PNTADR 104137 PRGNPT 104216
$ALVMH 102776 SHIFTR 104053 DFRDT 104140 TTPINI 104217
$ALPCF 103024 SHIFTL 104054 DFWRTT 104141 TTILNW 104224
$ALLPI 103420 SETFLG 104055 PNTCRM 104142 TTICCL 104225
FATAL 104000 TDELAY 104056 PNTDRM 104143 DFLEGA 104226
ERRHLT 104001 SWITCH 104057 TTBACK 104144 PTAB 104227
PRGHLT 104002 SWTSAM 104060 TENSW 104145 RXFILE 104230
RUNLP 104003 EOP 104061 PROL36 104146 RXINIT 104231
TTILIN 104004 ERREOP 104062 SETMPH 104147 RXRDFL 104232
TTICHR 104005 EOPSET 104063 DFVMAH 104150 RXWTFL 104233
TTLOOK 104006 MULTPY 104072 PRINTT 104151 RXBASE 104234
TTIOCT 104007 WCRAM 104073 PTTY 104152 RXREAD 104235
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 407
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
RXWRT 104236 DTEADR 174400 $RPT 100456 .VMH 102774
RPERRO 104237 TCST 177340 $CMDER 100574 .ADB 103006
SIPNT 104466 TCCM 177342 $$CNTL 100602 .PCF 103022
.CSR 104646 TCCM1 177343 $$$CC 100624 PCF 103106
$$ST 106006 TCWC 177344 $KDCRE 100674 PCFTBL 103214
$$$ST 106204 TCBA 177346 $KDCEN 101140 .FE 103302
$TCX 112076 TCDT 177350 $DISPH 101142 $ALLFE 103304
DIARNL 112262 KWLKS 177546 .RPT 101410 .SC 103316
DIAEOF 112362 TTICSR 177560 .RPTX 101414 $ALLSC 103320
$P18X 117162 DLBA 177560 .RPTP 101422 FESCP 103330
$P23X 117166 TTIDBR 177562 $PRGNP 101444 .PI 103414
$$PEX2 117730 TTOCSR 177564 $PRGCM 101452 $ALPIG 103452
$$PSX2 117734 TTODBR 177566 $PRGXX 101456 $ALPIY 103462
$TILN1 120172 SWR 177570 PCMDE 101526 $ALPIX 103472
$TILN2 120222 STKLMT 177774 PCMDE1 101546 $ALPIH 103504
$$PEX4 122442 PS 177776 PCMDE3 101552 $ALPIO 103536
$EMTAE 123610 START 100000 PCMDE2 101572 .ALL 103550
$ALLEC 126274 $CNTLC 100004 $PCMDX 101606 $PNTCP 103600
$DDSIZ 127164 $ILOAD 100010 $TTICC 101636 $SP 103750
$$$NAM 131076 $CONSL 100014 IFILIN 101666 $RN 104000
$LLD2 132744 $TKS 100020 IFILX1 101724 $RNN 104002
$LRDIN 133200 $TKB 100022 JFILIN 101730 $RNX 104106
LD10VE 133252 $TPS 100024 IJFILX 101772 $DDTX 104112
$DTDI2 133636 $TPB 100026 .DFXCT 102014 $DDTER 104214
DAHLP 140316 $FSTKS 100030 .DFWRT 102032 $SI 104220
DAHLPD 140400 $FSTKB 100032 .DFX 102064 $DFLEG 104276
DADONE 140474 $FSTPS 100034 .FS 102070 .PL 104320
$$CLC 141110 $FSTPB 100036 $DFERR 102102 .PLX 104360
$$LITT 144720 $FSTRV 100040 .DFRD 102112 .SM 104364
$$ZZQ 145200 $FSTTV 100042 .DFDP 102236 .CI 104374
$$CLIT 147306 $CLKMD 100044 .DFDPC 102254 .CIF 104400
$$$FF 147306 $CLKHM 100046 ALLEXT 102262 .CF 104412
VFUDAT 151172 $CLKSE 100050 .MQ 102304 $$CI 104420
$ILDCL 152226 $CLKST 100052 .FM 102320 $$CF 104425
COREND 160000 $CLKTV 100054 $DPERR 102374 .XCT 104432
ENOWC 160020 TENMO 100056 .AR 102400 .XCT2 104540
ENOWA 160022 TDIAG 100064 .AD 102442 .XCT1 104544
ENOCSR 160024 TDDT 100070 .BR 102512 .XCTER 104566
ENODLY 160026 TLDR 100074 .ERG 102554 .CNSER 104576
ENIWC 160030 TMON 100100 $ALLEB 102570 .BU 104602
ENIWA 160032 EMTIMO 100104 .MRESE 102602 .CS 104632
ENICSR 160034 CONSL 100106 .DA 102610 .CCMN1 104704
ENIADR 160036 KONSL 100134 .DAX 102622 .CCMN 104710
MMLPBA 172100 $KONSL 100230 .PC 102626 .CSRER 104736
MMLPEA 172136 $$CONS 100332 PCVMAP 102714 .CR 104742
XORCR 174200 $KONS1 100364 .VM 102732 .PD 104774
XORSR 174202 $KONS2 100422 $DPER1 102770 $PEAR 105006
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 408
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$PEFM 105017 MTTYCF 107356 C10CER 111140 $JC 113232
$PECR 105033 $MC 107364 C10C4 111154 SRT11X 113242
$PEDR 105051 MTTYS 107406 C10XXX 111336 SRT11 113250
$PEFS 105067 TENCMD 107416 C10C5 111342 SRT10 113324
.PE 105102 CMD10T 107466 C10CR1 111544 $COMNT 113344
.MU 105232 C10DON 107526 C10C6 111550 ADRERR 113350
.MM 105240 C10DNX 107552 RDCLK 111600 $PARA 113356
.MMC 105242 TENCER 107566 TCUINT 111760 $CMDE 113364
.MMX 105276 TENDEA 107710 $TENSW 111762 COMNER 113370
.MT 105312 $$TDX 107726 $TENCH 112106 .RI 113374
.CE 105400 $ALSTA 107732 P10CMD 112144 $TP 113404
.CEP 105532 C10TO 107772 DIASEL 112156 $TW 113412
.AC 105544 C10TI 110020 DIAFND 112226 $TPW 113416
DATPAG 105770 C10TIX 110056 $DIAFX 112230 $TPWF 113430
$ST 105776 C10TIE 110100 DIANF 112234 $TF 113434
$STERR 106242 C10TIZ 110106 DIARD 112242 $DECN 113452
$STTB1 106246 C10PNT 110146 .SE 112402 $OCTN 113452
.CNERR 106272 C10X 110164 .EE 112450 $FILPL 113452
.DP 106276 C10SW 110170 .EB 112456 $PARAM 113452
.DPNX1 106314 C10SWT 110204 .EEB 112460 FSRINT 113456
.DPCOM 106316 C10SW1 110214 .ZE 112632 FSINT1 113476
$VBX 106332 C10SW2 110222 .DE 112652 FSXIT 113526
.DPCM1 106336 C10SW0 110226 .DB 112660 FSINT2 113534
.DPNX 106346 C10SWE 110270 .DEB 112662 FSINT3 113616
.DPS 106362 $$C1 110274 $$PARA 112742 FSINT4 113626
$TENRN 106366 $SW 110300 $$CMDE 112746 FSXITA 113714
$VB 106404 C10DDT 110344 $VERIF 112752 FSIN4R 113716
$VB1 106426 C10PRG 110406 $LDT 112766 FSIN4D 113734
$KA 106440 C10PT 110422 $LDE 112776 FSIN4E 113770
.MZ 106450 C10P2 110462 $LDR 113006 FSIN4W 114022
.EXM 106622 C10P1 110466 $LDB 113016 HANGUP 114032
.EXCOM 106666 C10X1 110472 $LDD 113026 HANGU1 114040
.EXMSP 106770 C10P3 110476 $PROG 113036 FSHNG1 114110
.EXMNX 107004 C10P4 110504 $PROG2 113042 FSINT5 114120
.EXMN1 107016 C10P5 110510 $PROG1 113046 FSIN5A 114142
$RUNLP 107030 C10KAS 110530 $JFILE 113064 FSTINT 114160
MTTYIN 107200 KASET 110540 $IFILE 113104 FSTYP 114200
MTTYI0 107212 C10CLK 110574 $IIX 113112 FSTYP1 114216
MTTYI1 107222 C10CPT 110610 $HELP 113132 FSTYP2 114244
C10DN1 107260 C10C0 110630 $HELP1 113144 FSCLKR 114254
C10DN2 107266 C10CX 110634 $DT 113150 FSMSG 114424
MTTYER 107276 C10C3 110640 $RXX 113176 FSLOSM 114462
MTTYOC 107302 C10BCR 110654 $DTX 113202 PWORD 114474
MTTYO 107324 C10C1 110660 $DTC 113206 $HU 114500
MTTYP 107342 C10CX1 110664 $GO 113212 $$ILOA 114522
MTTYX 107346 C10C2 110714 $$GO 113216 $SBRIN 114570
MTTYC 107350 C10COP 110742 LDSTRT 113226 NOPAR 115154
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 409
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$CMCLR 115156 $PNTOS 117374 $TI36C 122044 $DPOST 124234
$CKSUM 115174 $PNTO 117376 $MULTP 122060 $DPOS 124240
$EOP 115220 $PNTDE 117476 $TTIBR 122166 $DPOSX 124246
$EOPSE 115220 $$PEX1 117616 $$PEX5 122176 $DPSX1 124304
$ERREO 115220 $TTICH 117622 $TTSDL 122202 $EXAMT 124314
$PRGHL 115222 $TTIX1 117644 $TTSDX 122322 $EXAM 124322
$ERRHL 115232 $TTIX2 117652 $TTITR 122326 $EXAMX 124334
$PH2 115256 $TTLOO 117654 $TTBTR 122332 $EXDEP 124344
$PH1 115262 $TTALT 117702 $TTERM 122340 $$CLRF 125064
.HC 115466 $TTIYE 117746 TRMTAB 122400 $D10AD 125072
$PNTAL 115522 $PNTSP 117776 $TTCOC 122410 $EBPAR 125116
$PNTNB 115614 $TTBAC 120010 $TOCTE 122422 $DPSVT 125144
$PNTCH 115624 $SWITC 120026 $TTSDO 122434 $DPOSV 125150
$$PNTX 115630 $SWTSA 120040 $TTS36 122446 $DPVRY 125210
$PSPAC 115634 $PFORC 120046 $TICRA 122460 $DPVRX 125212
$PSLAS 115642 $PNORM 120054 $SHFTR 122474 $DPVRP 125220
$PCOMM 115650 $$PEX3 120060 $SHFTX 122506 $DPVRE 125232
$PTAB 115656 $TILRN 120064 $SHFTL 122512 $DPVRV 125242
$PLDBU 115664 $TILN3 120106 $$PMSR 122526 $CMP36 125316
$PNTBA 115770 $TTILN 120142 $$PMSG 122534 $10ADR 125352
$TTPIN 116006 $TTILI 120150 $PNTCI 122544 $SM 125400
$PNTRS 116022 $TILNX 120154 $DELAY 122564 $SMERR 125456
$PRINT 116040 $TIRUB 120374 .TD 122600 $SMTAB 125462
$PTTY 116174 $TICU 120442 $REGSA 122630 $XCT 125474
$PTTY1 116516 $TICR 120454 $REGRS 122644 $ECLOK 125544
$PTTY2 116532 $TIBEL 120462 $FATLE 122702 $TENSP 125616
$PTTYC 116546 $TIEXT 120464 $TIMOT 122712 CLKSTA 125746
$PTCO 116734 $TIALT 120506 $RESVD 122722 CLKINT 126054
$PCRLF 116742 $TIBKS 120520 $EOR 122730 $EC 126244
$PBELL 116750 $TICC 120524 $STUF 122754 $ECGET 126452
$PODT 116760 $TICL 120534 $NOTAS 123000 $PCRAM 126502
$PNTOD 116772 $TILF 120550 $EOR2 123004 $DCTPC 126522
$PODCD 117040 $TICO 120556 $FATAL 123014 $DCTP1 126526
$PADR 117046 $TICX 120570 $EMTRP 123024 $NEXT 126574
$$P23 117072 TILINC 120612 $EMTAD 123110 $END 126610
$PNT18 117114 TILINA 120632 $ESYNC 123610 $RC 126660
$PNT23 117130 $TIRDY 120670 $PWRDN 123616 $RCP 127010
$P23Y 117134 $TORDY 120776 $ILLUP 123624 $$ECA 127026
$P36B 117144 $TOOUT 121040 $PWRUP 123630 $DDNPR 127042
$PNT36 117154 $TTIOC 121074 $EXITE 124036 $DD 127046
$P36BX 117160 $$PEX6 121160 $SETFL 124046 $DRAMO 127210
$$PEX 117220 $$PEX7 121164 $EXITS 124056 $DDA 127434
$PRT36 117224 $TMINU 121170 $EXIT 124064 $DDB 127450
$P36MV 117306 $TTIDE 121232 MEMPE 124100 $EDNOA 127464
$PODMV 117326 $TTI36 121344 $D10ZR 124144 $EDODD 127470
$PROL3 117346 SHFT36 121766 $D10ZX 124200 $ED 127474
$PNTOC 117366 NEG36 122010 $D10MO 124204 $PDRAM 127600
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 410
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$DCNCL 127732 LDELVN 131776 $DTXF3 134610 $QUEUE 137502
$DC 127736 LD11DN 132230 DTSRA 134710 QMPINI 137542
$CRMD0 130062 LDBIN 132242 DTSRE 134726 $RLCB 137722
$FJ 130160 LDBIN1 132244 DTSRF 134750 $RQCB 140046
$FT 130174 LDBIN2 132302 $DTXF4 134756 $SAVAL 140200
$FAR 130200 LDBINE 132320 DTER 135000 $SAVRG 140242
$FAD 130210 $LDBNE 132324 DTERA 135014 $SAVVR 140266
$FBR 130224 LDBIN3 132330 DTERB 135034 ACTLD2 140312
$FMQ 130230 LJMP 132432 DTERC 135044 ACTDON 140474
$FFM 130232 LDDRAM 132452 DTHDER 135054 $$C2 140516
$FSCAD 130236 LDCZRO 132610 DTREV 135066 ACTLDC 140522
$FSC 130250 LDCRAM 132642 DTREVC 135074 ACTBCK 140530
$FFE 130252 LDTEN 133052 DATINT 135114 ACTLDF 140536
$FSH 130254 LDTENZ 133076 $ASCR5 135124 ACTERR 140542
$FNUM 130260 LDRDIN 133150 LDBOOT 135266 IFILEP 140560
$FVMA 130272 LD10VR 133246 LDBLD2 135404 DTEINI 140620
$FMEM 130276 LD10V 133312 LDBDAT 135410 $PAGDF 140722
$FCOND 130304 LD10ER 133332 LDBXFR 135460 $STJRS 140730
DVLOAD 130314 DEVFIL 133350 $DS 135474 $DTEBA 140736
DEFEXT 130644 DTFIL 133402 DSVER 135666 $DFRDT 140746
$NAMEX 130700 $DTAFI 133430 ENOINT 135676 $DFRD 140760
$$NAM 131106 DTAFL1 133432 SNDEN 136010 $DFXX 141000
DTRPLD 131124 $DTDI1 133654 SNDENR 136016 $DFTIM 141044
LLD1 131140 $DI 133726 ENIINT 136102 $DFTMX 141070
LLD2 131150 $DTDIR 133746 ENISET 136270 $ECTIM 141100
LLD3 131160 $DVFRA 133772 ENICOP 136314 $DFTM1 141104
LLD4 131170 $DVDAT 134032 DTEINT 136356 $DXCTT 141114
LLDONE 131244 DVEOF 134066 DTE10D 136444 $DFSCL 141130
LDPROC 131306 $DVWRD 134110 DTE11D 136516 $DFXCT 141144
LDPRO1 131376 $DTINI 134134 REQLST 136574 $$DFX1 141210
LDPRO2 131446 $$DVX 134142 T11MSE 136612 $DFXFS 141250
LDPRO3 131452 $NONXF 134146 $DTNOP 136634 $KLCK1 141266
LDCLR 131470 $R50UP 134170 $ECHRY 136634 $$DFXD 141302
LDCNV 131474 $$$DVX 134366 $11ECH 136642 $KLCK3 141302
LDOCT 131574 $DTRDF 134370 $11ETH 136660 $KLCK4 141336
LDERR 131602 $$DTXE 134376 $11ADR 136676 $KLCK2 141340
LDEOL 131606 $DTRFL 134402 $ENBCC 136740 FFDEP 141356
LDCKSM 131610 $$DTX 134434 QGIVE 136766 $DFWIR 141360
LDTYPE 131654 $$DTXC 134440 QGET 137006 $DFWRT 141400
LDLTR 131672 $DTWTF 134444 QMPCMD 137034 $DFRDM 141570
$$LD11 131701 $DTINF 134466 $99 137044 $DWRTT 141620
$$COR 131715 $DTBAS 134472 QMPRY1 137110 LLIST 141640
$$ACT 131722 $DTREA 134500 QMPCXT 137162 $MRESE 141656
$$RAM 131727 $DTWRT 134506 QMPRTY 137170 $WWADR 142122
$$TEN 131745 $DTXFR 134512 SND10 137216 WRLIST 142250
$LINER 131762 $DTXF1 134524 QINI 137370 $WCRAM 142254
LDDONE 131772 $DTXF2 134576 $QCLR 137466 $STRCH 142422
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 411
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$SPCMR 142506 R4 000004R BUFCLR 147422H $PCSAV 147656H
$SMRLS 142554 R5 000005R SWTDEP 147422H KASIM 147660H
$RCRAM 142564 SP 000006R $TADSP 147424H $TTYTI 147662H
$RDLST 143040 R6 000006R CLKCNT 147426H MTTYOF 147664H
$SQASH 143044 PC 000007R C10CW 147434H MONMOD 147666H
$MICNU 143132 RXASB 000000U TENAC0 147442H TENRUN 147670H
FLST 143212 PCKASB 000000U TENDAT 147446H $TEMP0 147672H
$MICFI 143220 MONASB 000000U KLCLKR 147454H L10ADR 147700H
$WDRAM 143270 UTLASB 000000U $STDAT 147456H .DPXAD 147704H
$RDRAM 143340 LPTASB 000000U $DDRMS 147460H .DFRDA 147710H
$DRAMA 143510 RPASB 000000U $DRAM 147462H $ADR1 147716H
WIRAR 143620 %%EOP 000000U RDRTMP 147476H $ADR 147720H
WIRAR1 143624 DVASB 000000U DDRAM 147502H $EDADR 147722H
DATCOM 143634 LPASB 000000U SIGNL3 147510H $ECADR 147724H
DATODD 143646 DTEBBD 000000U SIGNL2 147512H .EADR 147726H
DATEVE 143662 TAASB 000000U $BUFRC 147514H VERIFY 147730H
CON1 143674 FSCASB 000000U SIGNL 147530H RPTFLG 147732H
CON2 143716 BPTASB 000000U WREADY 147532H ALLFLG 147734H
$CLKPR 143732 DHASB 000000U MMDAT 147540H $KONSP 147736H
$BURST 143742 MCNVER 000000H XXDAT 147546H DDTFLG 147740H
$LODAR 144132 %%DDT 000001H VMADAT 147550H $TOCHR 147742H
$SETMP 144226 $$BARG 000001H ZEROS 147556H $TICHR 147744H
$STMTB 144256 CLKASB 000001H VRBFLG 147564H $SVM 147746H
$STMT1 144262 TELASB 000001H $SAV20 147566H $SVH 147750H
$MBPHS 144266 EPTREL 000001H $ECMD 147574H $NEG 147752H
$DFVMH 144432 BOOASB 000001H DDTTM2 147602H $0FLG 147754H
$DFPC 144440 %%QMP 000001H DDTTM1 147604H $TTYFL 147756H
$DFPC1 144444 PWLEN 000004H .HCADR 147606H $FORCE 147760H
$DFVMA 144456 SAILVR 000007H .HCFLG 147610H TILNWF 147762H
$DFADB 144464 DECVER 000010H MEMPEF 147612H $TTLKF 147764H
$VMPC1 144470 QENMSG 000010H PRGRUN 147614H $EOLFL 147766H
$VMPC 144476 LLISTL 000012H JFINP 147616H CTRLOF 147770H
$DTBL0 144636 FSRLEN 000012H JFILEF 147620H $XOFLG 147772H
$LF 144636 REQMAX 000016H IFINP 147622H $TPLIT 147774H
$CR 144637 CPUPR 000140H IFILEF 147624H $TPLIN 147776H
$BELL 144640 BOOTWD 000620H TEMP 147626H $PGWID 150000H
$DTBL1 144642 XMEMSZ 001000H $$SVSP 147630H $PRNTH 150002H
$LFTBL 144650 BOOTSZ 002260H $SWTCH 147632H $TTSAV 150004H
$CRTBL 144656 FREEAD 003000H $EMADR 147634H $TTYIN 150020H
$BELLT 144664 FREESZ 020000H $R0SAV 147636H TENTTY 150022H
$DTBL 144672 FREEND 023000H $R1SAV 147640H $TNCHR 150024H
$TBLL 144704 %DDTS 077766H $R2SAV 147642H $TNBUF 150032H
$$FF 144716 CONSOL 100000H $R3SAV 147644H $TNPTC 150250H
R0 000000R $RP 100574H $R4SAV 147646H $TNPTR 150252H
R1 000001R RPFIL 100574H $R5SAV 147650H $OUTBF 150254H
R2 000002R PATEND 147306H $SPSAV 147652H $OUTPP 150472H
R3 000003R $$BUF 147422H $PSSAV 147654H $OUTPT 150474H
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 412
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$OUTPC 150476H $PASS 152174H TIMADR 157144H .DIAG3 157356H
$INBUF 150500H $ERFLG 152176H TIMTMP 157152H $$STKM 157360H
$INPTC 150716H $ERTTL 152200H CLKFLG 157160H STACK 157776H
$INPTR 150720H $ERRPC 152202H KTIMBS 157162H FUQ 000000H
HLPPNT 150722H $EOPCT 152204H TIMBAS 157164H
DEVLC 150724H $ENDCT 152206H TIM11 157172H
SRTFLG 150726H $ITERA 152210H SEADR 157200H
LDZBLK 150730H PCMDNF 152212H PGOCTL 157202H
LDOVRD 150732H PCMDFL 152214H PGOADR 157204H
LDCNTL 150734H TENCLK 152216H TGOADR 157210H
LDOCTF 150736H TENSWD 152220H $MPHDF 157214H
LDCNT 150740H MONCTL 152222H $MPHMK 157216H
LDADR 150742H $SWMON 152224H $STODD 157220H
LDATA 150744H FSRTIM 152226H $$STJR 157222H
LDATAE 151050H FSCLKA 152234H $$SWR 157230H
DTBLK 151052H FSFLG 152236H $SWS10 157232H
CASAV 151054H FSRPTR 152240H SWS10 157240H
WCSAV 151056H FSRBUF 152242H CLKDFL 157246H
DTXCMD 151060H FSTYPR 152254H PAGDFL 157254H
TRYCTR 151062H FSTPTR 152256H PEBITS 157262H
LBC 151064H FSSTAT 152260H CLKPE 157264H
LTMP 151066H BOOTBG 152262H $BKFLG 157272H
$CKS11 151070H BOOTSA 152266H RPUNIT 157274H
INTSW 151072H BOOTBF 152272H DTUNIT 157276H
REVCNT 151074H ENIHAD 157032H RXUNIT 157300H
NAMRAD 151076H QMPRQS 157034H LPTYPE 157302H
$RPINF 151104H FREEQ 157036H LPTFLG 157304H
WRTBAK 151110H FR10Q 157042H FLOPPY 157306H
RPEOF 151116H ENETQ 157046H DEVTYP 157310H
DIAFLG 151120H TO10Q 157052H $PWRCN 157312H
CDADR 151122H EN0DLY 157056H $ILDSU 157314H
DVDIRF 151124H COUN10 157076H $ONETM 157316H
DVCNT 151126H ENBCCF 157104H .DELAY 157320H
DVADR 151130H EN0IND 157106H .DAT3 157322H
DTSTRT 151132H EN0BUF 157110H .DAT2 157324H
DTLNGT 151134H EN0TRY 157114H .DAT1 157326H
DTEXTS 151136H EN0MEM 157116H .TENA1 157330H
DTEXT 151144H EN0ER2 157120H .TENA2 157332H
DIRST0 151146H EN0PKI 157122H .BC10 157334H
DIRST1 151150H EN0PER 157124H .BC11 157336H
DIRST2 151152H EN0ER1 157126H .T10AD 157340H
DIRST3 151154H EN0PKO 157130H .T11AD 157342H
DIRST4 151156H DTEBCT 157132H .T10DT 157344H
NAMBF 151160H DTEBSY 157134H .T11DT 157346H
EXTBF 151166H T11DBF 157136H .DIAG1 157350H
DVBUF 151172H TMSFLG 157140H .DIAG2 157352H
$CMTAG 152172H TIMFLG 157142H .STDTE 157354H
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 02/16/82 17:00:01 Page 413
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
1.5 Words Average Instruction Length
20 Seconds Runtime