cdc:nos2.source:opl871:chd
Table of Contents
CHD
Table Of Contents
- [00008] CHD - CHESS DISPLAY DRIVER.
- [00110] LCMA - LOAD AN 18 BIT CENTRAL MEMORY ADDRESS INTO
- [00128] SCMA - STORE AN 18 BIT CM ADDRESS.
- [00145] TCMA - TRANSFER THE CM ADDRESS IN (A1 - A1+1) TO
- [00204] MAIN ROUTINE.
- [00225] PAUSE - PAUSE FOR RELOCATION.
- [00292] FNC - PROCESS FUNCTION CODES.
- [00450] TFNC - TABLE OF FUNCTION CODES.
- [00482] ERR - ERROR IN KEYIN - SET ERROR FLAG.
- [00503] SFF - SET FLASH FLAG TO FLASH PIECE.
- [00513] SET - SET CLOCKS.
- [00538] STP - STOP CLOCKS.
- [00549] SCA - START CLOCK A.
- [00562] SCB - START CLOCK B.
- [00575] EPR - ENTER PRIORITY.
- [00595] ABT - ABORT JOB.
- [00602] DRP - DROP PP.
- [00609] SB0 - SET THE COMPLETE BIT IN THE STATUS WORD (BIT 0).
- [00632] RKE - READ KEYBOARD ENTRY.
- [00744] DKE - DISPLAY KEYBOARD ENTRY.
- [00770] DBD - DISPLAY CHESS BOARD.
- [00872] DHL - DISPLAY A HORIZONTAL LINE.
- [00889] DPC - DISPLAY PIECES.
- [00936] DOE - DISPLAY OUTPUT AND ERROR MESSAGES.
- [00965] DLM - DISPLAY LIMITS AND CURRENT TREE POSITION.
- [01024] DGC - DISPLAY GAME CLOCKS.
- [01036] DOS - DISPLAY OPTIONS AND GAME SCORE.
- [01126] DSS - DISPLAY SYSTEM STATUS.
- [01138] DPM - DISPLAY PERIPHERAL MEMORY.
- [01153] MDC - MODIFY CHANNEL INSTRUCTIONS.
- [01192] TCHS - TABLE OF CHANNEL INSTRUCTIONS.
- [01209] PFP - PROCESS FLASHING PIECE.
- [01245] SKE - STORE KEYBOARD BUFFER.
- [01294] UGC - UPDATE GAME CLOCKS.
- [01350] TUP - TIME IS UP FOR A PLAYER.
- [01384] ABS - CONVERT RELATIVE ADDRESS TO ABSOLUTE.
- [01408] CDD - CONVERT OCTAL TO DISPLAY CODED DECIMAL.
- [01474] PRS - PRESET. (WILL BE OVERLAID)
Source Code
- CHD.txt
- IDENT CHD,CHD
- PERIPH
- BASE MIXED
- SST RDS
- SYSCOM
- *COMMENT CHD - CHESS DISPLAY DRIVER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE CHD - CHESS DISPLAY DRIVER.
- SPACE 4
- *** AUTHOR:
- * K. E. GORLEN
- * VOGELBACK COMPUTING CENTER
- * NORTHWESTERN UNIVERSITY
- * 6400/6500/6600 SCOPE 3 03/20/69
- *** CONVERSION TO KRONOS -
- * G. R. MANSFIELD.
- * E. W. HOBBS. 70/03/06.
- SPACE 4
- ** COMMON DECKS.
- *CALL COMDMAC
- *CALL COMPMAC
- *CALL COMSCPS
- SPACE 4
- **** DIRECT STORAGE LOCATION ASSIGNMENTS.
- NC EQU 15 NUMBER OF CP-S (FOR *COMDSYS*)
- XC EQU 16 X-COORDINATE
- YC EQU 17 Y-COORDINATE
- CN EQU 20 - 24 CM WORD BUFFER
- CC EQU 25 CHARACTER COUNT
- KM EQU 26 MESSAGE ADDRESS
- CR EQU 27 CARRIAGE RETURN FLAG
- SW EQU 30 - 34 STATUS WORD
- WF EQU 35 WAITING FOR CPU FLAG
- LF EQU 36 LIMIT FLAG
- A.SW EQU 37 - 40 STATUS WORD ABSOLUTE ADDRESS
- A.TR EQU 41 - 42 ADDRESS OF TREE POSITION
- A.OP EQU 43 - 44 ADDRESS OF OPTION DISPLAY
- A.GS EQU 45 - 46 ADDRESS OF GAME SCORE DISPLAY
- * EQU 47
- WC EQU 57 KEYBOARD ENTRY WORD COUNT
- FT EQU 60 - 61 FIRST
- SC EQU 62 REAL TIME SECOND CLOCK
- GC EQU 63 GAME CLOCK STATUS
- OT EQU 64 - 65 OUT
- LM EQU 66 - 67 LIMIT
- SPACE 4
- ** ASSEMBLY CONSTANTS.
- NAME MICRO 1,, CHESS
- CH EQU CHDS DISPLAY CHANNEL
- CPF EQU 3 LOOP CYCLES/FLASH
- FPM EQU 6 FLASHES/MOVE
- DSCT EQU 20D DISPLAY CYCLE (MS)
- LOPT EQU 6 LENGTH OF OPTION LIST
- LSCR EQU 18D*4 LENGTH OF GAME SCORE (CM WORDS)
- LLIM EQU 8D LENGTH OF LIMIT LIST
- XLIM EQU 6000 LIMIT AND TREE COORDINATES
- YLIM EQU 7650
- XBRD EQU 6020 BOARD COORDINATES
- YBRD EQU 7120
- XOPT EQU 6000 OPTIONS COORDINATES
- YOPT EQU 7610
- XSCR EQU 6060 GAME SCORE COORDINATES
- YSCR EQU 7350
- XCLK EQU 6000 GAME CLOCK COORDINATES
- YCLK EQU 7440
- XNAM EQU 6070 PLAYER NAMES COORDINATES
- YNAM EQU 7520
- SPACE 4
- ** DISPLAY ENVIRONMENT TABLE POINTERS.
- P.PD EQU 1 PIECE DISPLAY BUFFER
- P.IM EQU 2 MESSAGE INPUT BUFFER
- P.EM EQU 3 ERROR MESSAGE BUFFER
- P.OM EQU 4 OUTPUT MESSAGE BUFFER
- P.LM EQU 5 LIMIT SETTING
- P.TR EQU 6 CURRENT POSITION IN TREE
- P.BD EQU 7 PACKED BOARD
- P.OP EQU 10 OPTION DISPLAY
- P.GS EQU 11 GAME SCORE DISPLAY
- P.NM EQU 12 PLAYER NAMES
- P.RO EQU 13 TEMPORARY ROLLOUT STORAGE
- SPACE 4
- ** FUNCTION MNEMONICS.
- F.DUM EQU 2 DUMMY FUNCTION
- F.AKL EQU 4 ACCEPT KEYBOARD LINE
- F.ERR EQU 6 DISPLAY ERROR MESSAGE
- F.FLA EQU 10 FLASH PIECE
- F.SET EQU 12 SET CLOCKS
- F.STP EQU 14 STOP CLOCKS
- F.SCA EQU 16 START CLOCK A
- F.SCB EQU 20 START CLOCK B
- F.EPR EQU 22 ENTER PRIORITY
- F.EFL EQU 24 ENTER FIELD LENGTH
- F.DRP EQU 26 DROP PP
- F.ABT EQU 30 KILL JOB
- ****
- LCMA TITLE MACROS
- ** LCMA - LOAD AN 18 BIT CENTRAL MEMORY ADDRESS INTO
- * THE A REGISTER.
- * THE HIGH ORDER BITS ARE IN BITS 0-5 OF (ADDR).
- * THE LOW ORDER BITS ARE IN (ADDR+1).
- * ADDR MAY BE EITHER A DIRECT OR MEMORY LOCATION.
- LCMA MACRO ADDR LOAD CM ADDRESS
- LOCAL N
- N SET 1
- IFGT ADDR,77,1
- N SET 2
- K MICRO N,1,*DM*
- LD_"K" ADDR
- SHN 14
- AD_"K" ADDR+1
- ENDM
- SPACE 4
- ** SCMA - STORE AN 18 BIT CM ADDRESS.
- * HIGH ORDER BITS IN (ADDR).
- * LOW ORDER BITS IN (ADDR+1).
- * ADDR MAY BE DIRECT OR MEMORY.
- SCMA MACRO ADDR
- LOCAL N
- N SET 1
- IFGT ADDR,77,1
- N SET 2
- K MICRO N,1,*DM*
- ST_"K" ADDR+1
- SHN -14
- ST_"K" ADDR
- ENDM
- SPACE 4
- ** TCMA - TRANSFER THE CM ADDRESS IN (A1 - A1+1) TO
- * (A2 - A2+1).
- TCMA MACRO A1,A2
- LOCAL N1,N2
- N1 SET 1
- N2 SET 1
- IFGT A1,77,1
- N1 SET 2
- IFGT A2,77,1
- N2 SET 2
- K1 MICRO N1,1,*DM*
- K2 MICRO N2,1,*DM*
- LD_"K1" A1
- ST_"K2" A2
- LD_"K1" A1+1
- ST_"K2" A2+1
- ENDM
- INDEX SPACE 4
- *** INDEX - GENERATE INDEXED TABLE.
- *
- *
- *NAME INDEX TYPE,ADDRESS
- * THIS MACRO IS INTENDED TO GENERATE TABLES WHICH ARE INDEXED
- * BY SYMBOLIC CONSTANTS.
- * IT HAS 3 CALLING SEQUENCES.
- * IF *NAME* IS PRESENT, THE FWA OF THE TABLE IS SET TO *NAME*
- * AND *TYPE* IS APPENDED AS A BIAS TO *TYPE* FOR ALL
- * SUBSEQUENT CALLS.
- *
- * IF *ADDRESS* IS MISSING, THE TABLE IS TERMINATED WITH AN
- * *ORG* TO THE END OF THE TABLE. THIS RESULTS IN ZERO ENTRIES
- * FOR UNDEFINED ENTRIES IN THE TABLE.
- *
- * OTHERWISE, A TABLE ENTRY IS MADE AT *INDEX* + *TYPE* OF
- * *ADDRESS*, WITH *TYPE* MODIFIED BY *TYPE* GIVEN IN THE
- * INITIALIZING CALL.
- *
- * USES SYMBOL NAME *INDEX*.
- * CALLS NONE.
- PURGMAC INDEX
- MACRO INDEX,A,B,C
- IFC NE,*A**
- A BSS 0
- .3 MICRO 1,, B
- .2 SET A
- ELSE 5
- ORG .2+B".3"
- IFC NE,*C**,2
- LOC B
- CON C
- BSS 0
- ENDM
- INDEX SPACE 4
- .3 MICRO 1,,
- CHD TITLE MAIN DISPLAY LOOP
- ** CHD - MAIN ROUTINE.
- ORG PPFW
- CHD RJM PRS PRESET
- CHD1 RJM PAUSE FOR RELOCATION
- RJM PFC PROCESS FUNCTION CODES
- RJM RKE READ KEYBOARD ENTRY
- RJM DKE DISPLAY KEYBOARD ENTRY
- RJM SKE STORE KEYBOARD ENTRY
- RJM DBD DISPLAY CHESS BOARD
- RJM DPC DISPLAY CHESS PIECES
- RJM DOE DISPLAY OUTPUT AND ERROR MESSAGES
- RJM DLM DISPLAY LIMITS AND TREE POSITION
- RJM DGC DISPLAY GAME CLOCKS
- RJM DOS DISPLAY OPTIONS AND GAME SCORE
- RJM PFP PROCESS FLASHING PIECE
- RJM UGC UPDATE GAME CLOCKS
- RJM DSS DISPLAY SYSTEM STATUS
- UJN CHD1 LOOP
- PAUSE TITLE PAUSE - PAUSE FOR RELOCATION
- ** PAUSE - PAUSE FOR RELOCATION.
- * UPDATE STATUS ADDRESS.
- * CHECK CONTROL POINT ERROR FLAG.
- * CHECK ROLLOUT FLAG - DROP WITH RECALL IF SET.
- * PROCESS DROP PP FUNCTION.
- * PROCESS KILL JOB FUNCTION.
- * PROCESS FIELD LENGTH REQUEST.
- PAUSE SUBR ENTRY/EXIT
- RJM PSS PAUSE FOR SYSTEM
- LCMA IR+3 UPDATE STATUS ADDRESS
- RJM ABS
- CRD SW READ STATUS WORD
- SCMA A.SW STORE ABSOLUTE ADDRESS OF STATUS
- LDD SW+4
- LMN F.DRP
- NJN PAUSE1 IF NOT DROP FUNCTION
- RJM SB0
- LJM DRP DROP PP
- PAUSE1 LMN F.ABT&F.DRP
- NJN PAUSE2 IF NOT KILL FUNCTION
- LJM ABT ABORT JOB
- PAUSE2 LDD CP
- ADN STSW
- CRD CM
- LDD CM+2
- LPN 1
- NJN PAUSE4 IF ROLLOUT SET
- LDD SW+4
- LMN F.EFL
- ZJN PAUSE3 IF FL REQUEST
- LJM PAUSEX RETURN
- PAUSE3 LDD FL
- SHN 6
- SCMA SW+2 RETURN CURRENT FL
- RJM SB0
- LJM PAUSEX RETURN
- PAUSE4 LDM CLKAO SAVE STATUS IN CENTRAL MEMORY
- STD CM
- LDM CLKBO
- STD CM+1
- LDD GC
- STD CM+2
- LDM UGCB
- STD CM+3
- LDM UGCE
- STD CM+4
- LCMA IR+3
- ADN P.RO
- RJM ABS
- CWD CM
- * DROP WITH RECALL.
- RJM DDS
- LDN ZERL CLEAR REQUEST BUFFER
- CRD CM
- LDD MA WRITE IR TO MESSAGE BUFFER
- CWD IR
- MONITOR RECM RECALL PP
- LJM PPR RETURN TO PP RESIDENT
- FNC TITLE FNC - FUNCTION CODE PROCESSOR
- ** FNC - PROCESS FUNCTION CODES.
- * READ OUTPUT MESSAGE.
- * READ CURRENT LIMIT SETTING.
- * UPDATE PIECE DISPLAY BUFFER POINTERS.
- * READ RANK LABELS AND FILE LABELS.
- * UPDATE POINTERS TO BOARD,OPTION,GAME SCORE,TREE.
- QUAL FNC
- FNC SUBR ENTRY/EXIT
- LDD SW+4 CHECK FUNCTION CODE
- LPN 1
- NJN FNCX RETURN IF COMPLETED
- LDM PFPA
- NJN FNCX RETURN IF *FLASH* SET
- LDD SW+4
- SHN -1
- ZJN FNCX
- STD YC
- SBN TFNCL+4
- MJN FNC1 IF LEGAL FUNCTION CODE
- LDC FNCA+CPON MESSAGE = *ILLEGAL FUNCTION CODE.*
- RJM DFM
- LJM ABT ABORT JOB
- FNC1 ADN 3
- PJN FNCX IF ENFL, DROP, KILL
- * SET BUFFER POINTERS.
- LDD A.SW
- SHN 14
- ADD A.SW+1
- ADN P.PD
- CRD CN
- TCMA CN+1,FT
- TCMA CN+3,LM
- LDD A.SW
- SHN 14
- ADD A.SW+1
- ADN P.OM
- CRD CN
- ADN P.TR-P.OM
- CRD CM
- ADN P.OP-P.TR
- CRD T6
- ADN P.GS-P.OP
- CRD T4
- ADN P.NM-P.GS
- CRD T2
- LCMA T5 READ PLAYER NAMES
- RJM ABS
- CRM DOSE,ON
- CRM DOSF,ON
- LCMA CN+3 READ OUTPUT MESSAGE
- RJM ABS
- CRM DOEB,TR
- TCMA CM+3,A.TR
- TCMA CM+1,A.OP
- TCMA T7,A.GS
- * READ LIMIT SETTING.
- LDN LLIM SET LENGTH OF LIMIT BUFFER
- STD T1
- LDD A.SW
- SHN 14
- ADD A.SW+1
- ADN P.LM
- CRD CM
- LCMA CM+3 READ LIMITS
- RJM ABS
- CRM BUF,T1
- LDN 0 SET INDEX
- STD T5
- STD LF CLEAR FLAG
- LDC BUF-1 SET BUFFER POINTER
- STD T6
- FNC2 LDN 5
- RAD T6 INCREMENT POINTER
- LDI T6 CHECK LIMIT
- NJN FNC3 IF NOT ZERO BYTE
- STM DLMC,T5 SET ZERO BYTE
- LDD T5
- SBN 2*6
- MJN FNC5 IF @ 6 LEVELS
- UJN FNC4
- FNC3 RJM CDD CONVERT TO DECIMAL DISPLAY CODE
- STM DLMC,T5 STORE
- LDN 2 INCREMENT INDEX
- RAD T5
- SBN 2*LLIM
- NJN FNC2 LOOP
- FNC4 LCN 0 SET FLAG
- STD LF
- * READ RANK LABELS.
- FNC5 LDN 8D SET NUMBER OF LABELS
- STD T1
- LDD A.SW READ POINTER TO LABELS
- SHN 14
- ADD A.SW+1
- ADN P.BD
- CRD CM
- LCMA CM+3 READ LABELS
- RJM ABS
- CRM BUF,T1
- LDC BUF+5*7 SET POINTER TO BUFFER
- STD T2
- FNC6 LDI T2 LOAD NEXT LABEL
- STM DBDE-1,T1 STORE
- LCN 5 DECREMENT POINTER
- RAD T2
- SOD T1 DECREMENT INDEX
- NJN FNC6 LOOP
- * READ FILE LABELS.
- LDD A.SW READ POINTER TO BOARD
- SHN 14
- ADD A.SW+1
- ADN P.BD
- CRD CM
- LCMA CM+3 READ LABELS
- ADN 8D
- RJM ABS
- CRM BUF,ON
- LDC BUF+4 SET POINTER TO LABELS
- STD CM
- LDC DBDD+12D SET POINTER TO LABEL BUFFER
- STD CM+1
- FNC7 LDI CM UNPACK LABELS
- LPN 77
- STI CM+1
- SOD CM+1
- LDI CM
- SCN 77
- STI CM+1
- LCN 2
- RAD CM+1
- SOD CM
- LMC BUF
- NJN FNC7 LOOP
- * PROCESS FUNCTION CODE.
- LDM TFNC-1,YC SET ADDRESS OF FUNCTION ROUTINE
- STM FNC8
- RJM ** EXECUTE
- FNC8 EQU *-1
- LJM FNCX RETURN
- FNCA DATA C*CHD - ILLEGAL FUNCTION CODE.*
- TFNC SPACE 4
- ** TFNC - TABLE OF FUNCTION CODES.
- TFNC INDEX /2-1
- INDEX F.DUM,SB0
- INDEX F.AKL,AKL
- INDEX F.ERR,ERR
- INDEX F.FLA,SFF
- INDEX F.SET,SET
- INDEX F.STP,STP
- INDEX F.SCA,SCA
- INDEX F.SCB,SCB
- INDEX F.EPR,EPR
- INDEX F.EFL
- TFNCL EQU *-TFNC
- QUAL
- PFC EQU /FNC/FNC
- AKL TITLE FUNCTION CODE PROCESSING SUBROUTINES
- ** AKL- ACCEPT KEYIN.
- *
- * CALLS SB0.
- AKL SUBR ENTRY/EXIT
- LDD KM
- NJN AKL1 IF MESSAGE SET
- STD CC RESET CHARACTER COUNT
- STD WC RESET WORD COUNT
- AKL1 RJM SB0 SET COMPLETE
- UJN AKLX RETURN
- ERR SPACE 4
- ** ERR - ERROR IN KEYIN - SET ERROR FLAG.
- *
- * CALLS ABS, SB0.
- ERR SUBR ENTRY/EXIT
- LDD A.SW
- SHN 14
- ADD A.SW+1
- ADN P.EM
- CRD CM
- LCMA CM+3
- RJM ABS
- CRM ERRA,TR
- LDC ERRA DISPLAY ERROR MESSAGE
- STD KM
- RJM SB0
- UJN ERRX RETURN
- ERRA BSSZ 3*5+1
- SFF SPACE 4
- ** SFF - SET FLASH FLAG TO FLASH PIECE.
- SFF SUBR ENTRY/EXIT
- LDN 0 STOP CLOCKS
- STD GC
- LDN 1 SET FLAG
- STM PFPA
- UJN SFFX
- SET SPACE 4
- ** SET - SET CLOCKS.
- *
- * CALLS CTD, SB0.
- SET SUBR ENTRY/EXIT
- LDD SW
- STM CLKAO SET OCTAL SECONDS
- RJM CTD
- STM UGCC SET MINUTES
- LDD CM
- STM UGCD SET DISPLAY SECONDS
- LDD SW+1 REPEAT FOR CLOCK B
- STM CLKBO
- RJM CTD
- STM UGCF
- LDD CM
- STM UGCG
- LDN 0 CLEAR TIME UP FLAGS
- STM UGCB
- STM UGCE
- STD GC STOP CLOCKS
- RJM SB0
- UJN SETX RETURN
- STP SPACE 4
- ** STP - STOP CLOCKS.
- *
- * CALLS SB0.
- STP SUBR ENTRY/EXIT
- LDN 0
- STD GC
- RJM SB0
- UJN STPX
- SCA SPACE 4
- ** SCA - START CLOCK A.
- *
- * CALLS SB0.
- SCA SUBR ENTRY/EXIT
- LDM CLKAO
- ZJN SCA1 IF TIME IS UP
- LDN 1
- STD GC
- SCA1 RJM SB0
- UJN SCAX
- SCB SPACE 4
- ** SCB - START CLOCK B.
- *
- * CALLS SB0.
- SCB SUBR ENTRY/EXIT
- LDM CLKBO
- ZJN SCB1 IF TIME IS UP
- LDN 2
- STD GC
- SCB1 RJM SB0
- UJN SCBX
- EPR SPACE 4
- ** EPR - ENTER PRIORITY.
- EPR1 LDN ZERL
- CRD CM
- LDN 17
- STD CM+4
- MONITOR SJCM
- EPR2 RJM SB0
- EPR SUBR ENTRY/EXIT
- LDD SW+3
- NJN EPR1
- LDD CP
- ADN JCIW
- CRD CM
- LDD CM
- STD SW+3
- UJN EPR2
- ABT SPACE 4
- ** ABT - ABORT JOB.
- ABT RJM DDS
- MONITOR ABTM
- LJM PPR
- DRP SPACE 4
- ** DRP - DROP PP.
- DRP RJM DDS
- DPP MONITOR DPPM
- LJM PPR
- SB0 SPACE 4
- ** SB0 - SET THE COMPLETE BIT IN THE STATUS WORD (BIT 0).
- SB0 SUBR ENTRY/EXIT
- LDD SW+4
- SCN 1
- ADN 1
- STD SW+4
- LDC 600D STORE CURRENT GAME CLOCK READINGS
- CLKAO EQU *-1
- STD SW
- LDC 600D
- CLKBO EQU *-1
- STD SW+1
- LDD A.SW WRITE CM STATUS WORD
- SHN 14
- ADD A.SW+1
- CWD SW
- MONITOR RCLM RECALL CENTRAL PROCESSOR
- UJN SB0X RETURN
- RKE TITLE RKE - READ KEYBOARD ENTRY
- *CALL COMPCHI
- RKE SPACE 4
- ** RKE - READ KEYBOARD ENTRY.
- *
- * CALLS DDS, RDS, HDC.
- RKE SUBR ENTRY/EXIT
- RKEA FNC 7020,CH SELECT KEYBOARD INPUT
- ACN CH
- IAN CH
- DCN CH
- ZJN RKE0.1 IF NO INPUT
- LMC 0
- RKEC EQU *-1
- ZJN RKEX IF SAME INPUT
- LMM RKEC STORE NEW INPUT
- RKE0.1 STM RKEC
- ZJN RKEX RETURN IF NO CHARACTER
- STD CM SAVE CHARACTER
- LMN 60
- NJN RKE2 IF NOT CARRIAGE RETURN (60B)
- LDD WC
- NJN RKE1 IF NOT EMPTY CARRIAGE RETURN
- LDC RKEB DISPLAY *REPEAT ENTRY.*
- STD KM
- UJN RKEX
- RKE1 LDN 1 SET CARRIAGE RETURN FLAG
- STD CR
- UJN RKEX RETURN
- RKE2 LMN 1R &60
- NJN RKE3 IF NOT RIGHT BLANK (55B)
- RJM DDS DROP DISPLAY
- RJM RDS REQUEST DISPLAY
- RJM MDC MODIFY CHANNEL INSTRUCTIONS
- UJN RKE4 RETURN
- RKE3 LMN 1R*&1R
- NJN RKE5 IF NOT (*)
- LDD CC
- NJN RKE5 IF NOT FIRST ENTRY
- RJM HDC HOLD DISPLAY CHANNEL
- RKE4 LJM RKEX RETURN
- RKE5 LDD CM
- LMN 61
- NJN RKE7 IF NOT BACKSPACE (61B)
- STD CR CLEAR CR FLAG
- STD WF CLEAR WAITING FOR CP FLAG
- STD KM CLEAR MESSAGE
- LDD CC
- ZJN RKE4 RETURN IF CHARACTER COUNT = 0
- SHN -1 FORM WORD COUNT
- STD WC
- SOD CC DECREMENT CHARACTER COUNT
- LPN 1 TEST SHIFT BIT
- ZJN RKE6
- LDM KBUF-1,WC CLEAR LAST CHARACTER
- SCN 77
- STM KBUF-1,WC
- RKE6 LJM RKE13
- RKE7 LMN 53&61
- NJN RKE8 IF NOT LEFT BLANK (53B)
- STD CR CLEAR CR FLAG
- STD WF CLEAR WAITING FOR CP FLAG
- STD KM CLEAR MESSAGE
- STD CC ZERO CHARACTER AND WORD COUNT
- STD WC
- LJM RKEX RETURN
- RKE8 LMN 62&53
- NJN RKE9 IF NOT SPACE (62B)
- LDN 1R CORRECT SPACE CODE
- STD CM
- UJN RKE10
- RKE9 LDD CM
- SBN 60
- MJN RKE10 IF LEGAL CHARACTER
- LJM RKEX RETURN
- RKE10 LDD CC
- SBN 40D
- PJN RKE11 IF \ 40 CHARACTERS
- AOD CC INCREMENT CHARACTER COUNT
- RKE11 LDD CC SET WORD COUNT
- ADN 1
- SHN -1
- STD WC
- LDD CC
- LPN 1
- ZJN RKE12 IF LOWER CHARACTER
- LDD CM STORE UPPER CHARACTER
- SHN 6
- STM KBUF-1,WC
- UJN RKE13
- RKE12 LDM KBUF-1,WC STORE LOWER CHARACTER
- SCN 77
- ADD CM
- STM KBUF-1,WC
- RKE13 LDC 7001 PRESET 32 CHARACTERS/LINE
- STM DKEA
- LDD CC
- SBN 31D
- MJN RKE14 IF < 30 CHARACTERS
- SOM DKEA SET 64 CHARACTERS/LINE
- RKE14 LJM RKEX RETURN
- RKEB DATA C*REPEAT ENTRY.*
- DKE TITLE DKE - DISPLAY KEYBOARD ENTRY
- ** DKE - DISPLAY KEYBOARD ENTRY.
- *
- * USES T7.
- DKE SUBR ENTRY/EXIT
- LDD WC
- ZJN DKEX RETURN IF NO ENTRY
- LDC 7001 SELECT LEFT SCREEN
- DKEA EQU *-1 SIZE FUNCTION CODE
- FAN CH
- ACN CH
- LDD WC DISPLAY ENTRY
- ADN 2
- STD T7
- OAM DKEB,CH
- DUP 3
- LDD T7
- OAM DKEB,CH
- ENDD
- DCN CH
- LJM DKEX RETURN
- DKEB DATA 6002,7002
- KBUF BSSZ 21D
- DBD TITLE LEFT SCREEN DISPLAYS
- ** DBD - DISPLAY CHESS BOARD.
- *
- * USES T5 - T7.
- *
- * CALLS DHL.
- DBD SUBR ENTRY/EXIT
- FNC 7001,CH SELECT LEFT SCREEN, 32 CHARACTERS/LINE
- ACN CH
- LDC YBRD SET Y-COORDINATE
- STD T7
- LDN 4 SET INDEX
- STD T5
- DBD1 LDD T7 OUTPUT Y-COORDINATE
- OAN CH
- RJM DHL DISPLAY A HORIZONTAL LINE
- LDN 5 INITIALIZE INDEX
- STD T6
- DBD2 LDN 10 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- LDC XBRD-4 OUTPUT X-COORDINATE
- OAN CH
- LDN DBDBL
- OAM DBDB,CH
- SOD T6 ADVANCE INDEX
- NJN DBD2 LOOP
- LDN 10 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- LDC XBRD-4
- OAN CH
- LDN DBDAL
- OAM DBDA,CH
- LDD T7 OUTPUT Y-COORDINATE
- OAN CH
- RJM DHL DISPLAY A HORIZONTAL LINE
- LDN 5 SET INDEX
- STD T6
- DBD3 LDN 10 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- LDC XBRD-4 OUTPUT X-COORDINATE
- OAN CH
- LDN DBDCL
- OAM DBDC,CH
- SOD T6 ADVANCE INDEX
- NJN DBD3 LOOP IF NOT DONE
- SOD T5
- ZJN DBD4 IF 8 RANKS DISPLAYED
- LDN 10 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- LDC XBRD-4 OUTPUT X-COORDINATE
- OAN CH
- LDN DBDAL
- OAM DBDA,CH
- LJM DBD1 LOOP
- DBD4 LDN 10 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- RJM DHL DISPLAY TOP HORIZONTAL LINE
- * DISPLAY FILE LABELS.
- LDN DBDDL
- OAM DBDD,CH
- * DISPLAY RANK LABELS.
- LDC YBRD+550 SET STARTING Y-COORDINATE
- STD T7
- LDN 0 INITIALIZE INDEX
- STD T6
- DBD5 LDC XBRD-20 STARTING X-COORDINATE
- OAN CH
- LDD T7 OUTPUT Y-COORDINATE
- OAN CH
- LDM DBDE,T6 DISPLAY NEXT LABEL
- OAN CH
- LCN 60 ADVANCE Y-COORDINATE
- RAD T7
- AOD T6 ADVANCE INDEX
- LMN 8D
- NJN DBD5 LOOP FOR 8 LABELS
- DCN CH
- LJM DBDX
- DBDA DATA H*I I I I I I I I I*
- DBDAL EQU *-DBDA
- DBDB DATA H*I I//I I//I I//I I//I*
- DBDBL EQU *-DBDB
- DBDC DATA H*I//I I//I I//I I//I I*
- DBDCL EQU *-DBDC
- DBDD CON XBRD+24
- CON YBRD-20
- BSSZ 11D FILE LABEL BUFFER
- DBDDL EQU *-DBDD
- DBDE BSSZ 8D
- DHL SPACE 4
- ** DHL - DISPLAY A HORIZONTAL LINE.
- DHL SUBR ENTRY/EXIT
- LDC XBRD DISPLAY LINE
- OAN CH
- LDN DHLAL
- OAM DHLA,CH
- LDC XBRD+10 DISPLAY SHIFTED LINE
- OAN CH
- LDN DHLAL
- OAM DHLA,CH
- UJN DHLX RETURN
- DHLA DATA H*------------------------*
- DHLAL EQU *-DHLA
- DPC SPACE 4
- ** DPC - DISPLAY PIECES.
- *
- * USES T6, T7, OT - OT+1.
- *
- * CALLS ABS.
- DPC SUBR ENTRY/EXIT
- LDD LM COMPUTE BUFFER LENGTH
- SBD FT
- SHN 14
- ADD LM+1
- SBD FT+1
- MJN DPCX RETURN IF NEGATIVE
- ZJN DPCX RETURN IF ZERO
- STD T7 SAVE BUFFER LENGTH
- LDC BUFL SET BUFFER LENGTH
- STD T6
- LCMA FT SET STARTING ADDRESS
- RJM ABS
- SCMA OT
- LCMA LM CHECK BUFFER LIMIT
- RJM ABS
- FNC 7010,CH SELECT LEFT SCREEN, DOT MODE
- ACN CH
- DPC1 LDC -BUFL
- RAD T7
- MJN DPC2 IF NOT A FULL PP BUFFER
- LCMA OT FILL PP BUFFER
- CRM BUF,T6 FILL PP BUFFER
- SCMA OT SET NEXT STARTING ADDRESS
- LDC BUFL*5 DISPLAY
- OAM BUF,CH
- UJN DPC1 LOOP
- DPC2 ADC BUFL COMPUTE WORDS LEFT
- ZJN DPC3 RETURN IF ZERO
- STD T6
- LCMA OT LOAD PP BUFFER
- CRM BUF,T6
- LDD T6 DISPLAY
- SHN 2
- ADD T6
- OAM BUF,CH
- DPC3 DCN CH
- LJM DPCX
- DOE SPACE 4
- ** DOE - DISPLAY OUTPUT AND ERROR MESSAGES.
- *
- * CALLS DPM.
- DOE1 DCN CH
- DOE SUBR ENTRY/EXIT
- FNC 7001,CH SELECT LEFT SCREEN, 32 CHARACTERS/LINE
- ACN CH
- DUP 3
- LDC DOEA
- RJM DPM
- ENDD
- LDD KM
- ZJN DOE1 EXIT IF NO MESSAGE
- DUP 3
- LDC 6000
- OAN CH
- LDC 7024
- OAN CH
- LDD KM
- RJM DPM
- ENDD
- LJM DOE1 RETURN
- DOEA DATA 6000,7050
- DOEB BSSZ 16D
- DLM TITLE RIGHT SCREEN DISPLAYS
- ** DLM - DISPLAY LIMITS AND CURRENT TREE POSITION.
- *
- * USES T6, T7.
- *
- * CALLS DPM, ABS, CDD.
- DLM SUBR ENTRY/EXIT
- FNC 7101,CH SELECT RIGHT SCREEN, 32 CHARACTERS/LINE
- ACN CH
- LDC XLIM OUTPUT INITIAL COORDINATES
- OAN CH
- LDC YLIM
- OAN CH
- LDD LF
- NJN DLM1 IF LIMIT FLAG SET
- LDN DLMAL DISPLAY *LIMITS-*
- OAM DLMA,CH
- DLM1 LDC DLMC DISPLAY LIMITS
- RJM DPM
- LDN LLIM SET WORD COUNT
- STD T6
- LCMA A.TR READ LIMITS
- RJM ABS
- CRM BUF,T6
- LDC BUF-1 SET POINTER
- STD T6
- LDN LLIM SET COUNTER
- STD T7 INITIALIZE INDEX
- LDC YLIM-20 OUTPUT STARTING COORDINATES
- OAN CH
- LDC XLIM
- OAN CH
- LDD LF
- NJN DLM3 IF LIMIT FLAG SET
- LDN DLMBL DISPLAY *NOW AT-*
- OAM DLMB,CH
- UJN DLM3
- DLM2 LDN 0 DISPLAY * *
- OAN CH
- DLM3 LDN 5 ADVANCE POINTER
- RAD T6
- LDI T6 LOAD LIMIT
- ZJN DLM4 EXIT ON ZERO BYTE
- RJM CDD CONVERT TO DISPLAY CODE
- OAN CH DISPLAY
- SOD T7 DECREMENT COUNTER
- NJN DLM2 LOOP
- DLM4 DCN CH
- LJM DLMX RETURN
- DLMA DATA C*LIMITS-*
- DLMAL EQU *-DLMA
- DLMB DATA C*NOW AT-*
- DLMBL EQU *-DLMB
- DLMC DIS 2*LLIM-1,
- DATA 0
- DGC SPACE 4
- ** DGC - DISPLAY GAME CLOCKS.
- DGC SUBR ENTRY/EXIT
- FNC 7102,CH SELECT RIGHT SCREEN, 16 CHARACTERS/LINE
- ACN CH
- DUP 4,2
- LDN UGCAL
- OAM UGCA,CH
- DCN CH
- UJN DGCX
- DOS SPACE 4
- ** DOS - DISPLAY OPTIONS AND GAME SCORE.
- *
- * USES T5 - T7.
- *
- * CALLS ABS.
- DOS SUBR ENTRY/EXIT
- FNC 7101,CH SELECT RIGHT SCREEN, 32 CHARACTERS/LINE
- ACN CH
- LDN DOSCL DISPLAY *OPTIONS *
- OAM DOSC,CH
- LDN DOSDL DISPLAY PLAYER NAMES
- OAM DOSD,CH
- DCN CH
- FNC 7100,CH SELECT RIGHT SCREEN, 64 CHARACTERS/LINE
- ACN CH
- LDN LOPT SET CM WORD COUNT
- STD T6
- LCMA A.OP READ OPTION LIST
- RJM ABS
- CRM BUF,T6
- LDC YOPT OUTPUT Y-COORDINATE
- STD T7
- OAN CH
- LDC BUF
- STM DOSA SET POINTER TO OPTION LIST
- STM DOSB SET POINTER TO SCORE
- DOS1 LDC XOPT+240 OUTPUT X-COORDINATE
- OAN CH
- DOS2 LDN 5 DISPLAY ONE CM WORD
- OAM **,CH
- DOSA EQU *-1
- OAN CH DISPLAY * *
- LDN 5 ADVANCE POINTER
- RAM DOSA
- SOD T6 DECREMENT WORD COUNT
- ZJN DOS3 IF DONE
- LMN 3 IF THREE WORDS COMPLETE
- NJN DOS2 LOOP FOR THREE WORDS
- LCN 12 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- UJN DOS1 LOOP FOR NEXT LINE
- * DISPLAY GAME SCORE.
- DOS3 LDC LSCR SET CM WORD COUNT
- STD T6
- SHN -1 SET INDEX
- STD T5
- LCMA A.GS READ GAME SCORE BUFFER
- RJM ABS
- CRM BUF,T6
- LDC YSCR OUTPUT Y-COORDINATE
- STD T7
- OAN CH
- DOS4 LDC XSCR OUTPUT X-COORDINATE
- OAN CH
- DOS5 LDN 2*5 DISPLAY TWO CM WORDS
- OAM **,CH
- DOSB EQU *-1
- LDC XSCR+300 ADVANCE X-COORDINATE
- OAN CH
- LDN 2*5 ADVANCE POINTER
- RAM DOSB
- SOD T5 ADVANCE INDEX
- ZJN DOS6 IF DONE
- LPN 1
- NJN DOS5 LOOP FOR NEXT WORD
- LCN 12 ADVANCE Y-COORDINATE
- RAD T7
- OAN CH
- UJN DOS4 LOOP FOR NEXT LINE
- DOS6 DCN CH
- LJM DOSX
- DOSC CON XOPT X-COORDINATE
- CON YOPT-10 Y-COORDINATE
- DATA C*OPTIONS *
- DOSCL EQU *-DOSC
- DOSD CON YNAM
- CON XNAM
- DOSE BSSZ 5
- CON XNAM+310
- DOSF BSSZ 5
- DOSDL EQU *-DOSD
- SYSDIS SPACE 4
- ** DSS - DISPLAY SYSTEM STATUS.
- *
- * CALLS SYS.
- DSS SUBR ENTRY/EXIT
- LDC 6000 SET X-COORDINATE
- STD XC
- RJM SYS
- DCN CH+40
- UJN DSSX
- DPM TITLE DISPLAY SUBROUTINES
- ** DPM - DISPLAY PERIPHERAL MEMORY.
- *
- * ENTRY (A) = FWA OF DISPLAY DATA.
- *
- * USES T0.
- DPM SUBR ENTRY/EXIT
- STD T0 SET START ADDRESS
- DPM1 LDI T0
- ZJN DPMX IF ZERO BYTE
- OAN CH
- AOD T0 ADVANCE POINTER
- UJN DPM1
- MDC SPACE 4
- ** MDC - MODIFY CHANNEL INSTRUCTIONS.
- *
- * EXIT CHANNEL INSTRUCTIONS MODIFIED.
- *
- * USES T1, T2, T3.
- MDC SUBR ENTRY/EXIT
- LDM /COMDDSP/DDSB CHECK ASSIGNED CHANNEL
- STD T3
- CHTE *
- LMN CH
- ZJN MDCX IF CHANNELS MODIFIED
- LDC TCHS MODIFY CHANNELS
- STD T1
- MDC1 LDI T1
- ZJN MDC2 IF CHANNEL TABLE MODIFICATION COMPLETE
- STD T2
- LDI T2
- SCN 77
- ADD T3
- STI T2
- AOD T1
- UJN MDC1 LOOP
- MDC2 LDC MDCA SET 1ST ADDRESS FOR BLIND MODIFICATION
- STD T1
- MDC3 AOD T1 ADVANCE ADDRESS
- LMC MDCB
- ZJN MDCX RETURN IF COMPLETE
- LDI T1 CHECK WORD
- LPC 7077
- LMC 7000+CH
- NJN MDC3 IF NOT 7XCH
- LDI T1 MODIFY CHANNEL
- SCN 77
- ADD T3
- STI T1
- UJN MDC3
- TCHS SPACE 4
- ** TCHS - TABLE OF CHANNEL INSTRUCTIONS.
- TCHS CHTB
- RSTC RESTORE CHANNEL INSTRUCTIONS
- SPACE 4
- ** COMMON DECKS.
- *
- MDCA BSS 0 FIRST ADDRESS FOR BLIND CHANNEL MOD
- *CALL COMDSYS
- *CALL COMDDSP
- MDCB BSS 0 LIMIT ADDRESS FOR BLIND CHANNEL MOD
- PFP TITLE PROCESS FLASHING PIECE
- ** PFP - PROCESS FLASHING PIECE.
- *
- * CALLS SB0.
- PFPD BSSZ 2 POINTER BUFFER
- PFP SUBR ENTRY/EXIT
- LDC **
- PFPA EQU *-1 FLASH STATUS FLAG
- ZJN PFPX
- SOM PFPB DECREMENT CYCLE COUNT
- NJN PFPX
- LDN CPF
- STM PFPB RESET CYCLE COUNT
- SOM PFPC DECREMENT FLASH COUNT
- MJN PFP2 IF FINISHED
- LPN 1 TOGGLE ON OR OFF
- NJN PFP1
- TCMA PFPD,LM SWITCH ON
- UJN PFPX RETURN
- PFP1 TCMA LM,PFPD SWITCH OFF
- TCMA SW+2,LM
- LJM PFPX RETURN
- PFP2 LDN FPM/2*2 RESET FLASHES/MOVE
- STM PFPC
- LDN 0
- STM PFPA CLEAR FLASH STATUS FLAG
- RJM SB0
- LJM PFPX RETURN
- PFPB CON CPF CYCLES/FLASH
- PFPC CON FPM/2*2 FLASHES /MOVE
- SKE TITLE SKE - STORE KEYBOARD ENTRY IN CM
- ** SKE - STORE KEYBOARD BUFFER.
- *
- * EXIT KEYBOARD BUFFER STORED IN CM WITH ZERO BYTE
- * APPENDED.
- *
- * USES T7, CM - CM+4.
- *
- * CALLS ABS, SB0.
- SKE SUBR ENTRY/EXIT
- LDD CR CHECK CARRIAGE RETURN FLAG
- ZJN SKEX RETURN IF NOT SET
- LDD SW+4
- ZJN SKE1 IF CP READY TO READ
- LDD WF CHECK WAITING FOR CP FLAG
- NJN SKEX IF PREVIOUSLY SET
- LDN 1 SET FLAG
- STD WF
- LDD KM SAVE CURRENT MESSAGE
- STM SKEA
- LDC SKEB DISPLAY *WAITING - CP BUSY.*
- STD KM
- UJN SKEX
- SKE1 STM KBUF,WC SET ZERO BYTE
- STD CR CLEAR CR FLAG
- STD WF CLEAR WAITING FLAG
- LDD KM
- LMC SKEB
- NJN SKE2 IF WAITING MESSAGE STILL UP
- LDC **
- SKEA EQU *-1 PREVIOUS MESSAGE ADDRESS
- STD KM
- SKE2 LDN 4 SET CONSTANT 4
- STD T7
- LDD A.SW READ INPUT MESSAGE BUFFER
- SHN 14
- ADD A.SW+1
- ADN P.IM
- CRD CM
- LCMA CM+3 WRITE BUFFER
- RJM ABS
- CWM KBUF,T7
- RJM SB0
- LJM SKEX RETURN
- SKEB DATA C*WAITING - CP BUSY.*
- UGC TITLE GAME CLOCKS
- ** UGC - UPDATE GAME CLOCKS.
- UGC SUBR ENTRY/EXIT
- LDD GC
- ZJN UGCX RETURN IF CLOCKS STOPPED
- LDC RTCL READ REAL TIME CLOCK
- CRD CM
- LDD CM+1
- SBD SC COMPARE CLOCKS
- ZJN UGCX RETURN IF SAME
- RAD SC RESET SECOND CLOCK
- LDD GC CHECK GAME CLOCKS
- SCN 1
- NJN UGC3 IF CLOCK B
- SOM CLKAO DECREMENT BY 1 SECOND
- NJN UGC2 IF NON-ZERO
- UGC1 RJM TUP
- UJN UGCX RETURN
- UGC2 RJM CTD CONVERT SECONDS TO DISPLAY CODE
- STM UGCC STORE MINUTES
- LDD CM
- STM UGCD STORE SECONDS
- LJM UGCX RETURN
- UGC3 SOM CLKBO DECREMENT BY ONE SECOND
- ZJN UGC1 IF TIME IS UP
- RJM CTD CONVERT SECONDS TO DISPLAY CODE
- STM UGCF STORE MINUTES
- LDD CM
- STM UGCG STORE SECONDS
- LJM UGCX RETURN
- UGCA CON XCLK
- CON YCLK
- UGCB CON 0
- UGCC CON 2R10
- CON XCLK+204
- UGCD CON 2R00
- UGCE CON 0
- UGCF CON 2R10
- CON XCLK+510
- UGCG CON 2R00
- CON YCLK+5
- CON XCLK+176
- CON 2R.
- CON XCLK+502
- CON 2R.
- CON YCLK+20
- CON XCLK+176
- CON 2R.
- CON XCLK+502
- CON 2R.
- UGCAL EQU *-UGCA
- TUP SPACE 4
- ** TUP - TIME IS UP FOR A PLAYER.
- TUP SUBR ENTRY/EXIT
- LDN 0 CLEAR STATUS
- CRD SW
- LDN 0 CLEAR OUTPUT MESSAGE
- STM DOEB
- LDD A.SW CLEAR INPUT MESSAGE
- SHN 14
- ADD A.SW+1
- ADN P.IM
- CRD CM
- LCMA CM+3
- RJM ABS
- CWD SW
- LDD GC CHECK GAME CLOCKS
- SCN 1
- NJN TUP1 IF CLOCK B
- LDC 2R
- STM UGCB FLAG CLOCK A
- LDC 2R00 SET SECONDS TO ZERO
- STM UGCD
- UJN TUP2
- TUP1 LDC 2R
- STM UGCE FLAG CLOCK B
- LDC 2R00 SET SECONDS TO ZERO
- STM UGCG
- TUP2 RJM AKL SET COMPLETE BIT AND CLEAR MESSAGES
- LDN 0 STOP CLOCKS
- STD GC
- LJM TUPX RETURN
- ABS TITLE CONVERSION ROUTINES
- ** ABS - CONVERT RELATIVE ADDRESS TO ABSOLUTE.
- *
- * ENTRY (A) = RELATIVE ADDRESS.
- *
- * EXIT (A) = ABSOLUTE ADDRESS IF IN RANGE.
- * ABORT IF ADDRESS OUT OF RANGE.
- ABS1 SHN 14
- ADD FL
- ADD RA
- SHN 6
- ABS SUBR ENTRY/EXIT
- SHN 14
- SBD FL
- SHN 6
- MJN ABS1 IF IN RANGE
- LDC ABSA+CPON MESSAGE = *POINTER OUT OF RANGE.*
- RJM DFM
- LJM ABT ABORT JOB
- ABSA DATA C*CHD - POINTER OUT OF RANGE.*
- CDD SPACE 4
- ** CDD - CONVERT OCTAL TO DISPLAY CODED DECIMAL.
- *
- * ENTRY (A) = OCTAL NUMBER TO BE CONVERTED.
- *
- * EXIT (A) = NUMBER IN DISPLAY CODED DECIMAL.
- *
- * USES T0, T1.
- CDD2 ADN 10D+1R0 CONVERT TO DISPLAY CODE
- SHN 14
- ADD T1
- SHN 6
- CDD SUBR ENTRY/EXIT
- STD T0 STORE THE NUMBER
- LDN 1R0 INITIALIZE TENS COUNTER
- STD T1
- CDD1 LCN 10D COUNT TENS
- RAD T0
- MJN CDD2 IF UNDERFLOW
- AOD T1 ADVANCE TENS COUNT
- UJN CDD1 LOOP
- CTD SPACE 4
- * CTD - CONVERT TIME TO DISPLAY CODED MINUTES AND SECONDS.
- *
- * ENTRY (A) = TIME IN OCTAL SECONDS.
- *
- * EXIT (A) = MINUTES IN DISPLAY CODED DECIMAL.
- * (CM) = SECONDS IN DISPLAY CODED DECIMAL.
- *
- * USES T2, T3.
- *
- * CALLS CDD.
- CTD2 ADN 60D FORM REMAINDER (SECONDS)
- RJM CDD CONVERT TO DISPLAY CODE
- STD CM STORE
- LDD T3
- RJM CDD CONVERT MINUTES TO DISPLAY CODE
- STD T3 SUPPRESS LEADING ZERO
- SHN -6
- SBN 1R0
- NJN CTD3
- LDD T3
- LPN 77
- STD T3
- CTD3 LDD T3
- CTD SUBR ENTRY/EXIT
- STD T2
- LDN 0 INITIALIZE
- STD T3
- CTD1 LCN 60D COUNT MINUTES
- RAD T2
- MJN CTD2 IF UNDERFLOW
- AOD T3 ADVANCE MINUTE COUNT
- UJN CTD1 LOOP
- SPACE 4,10
- DIS HERE *COMDSYS* *DISPLA* EXPANSION
- SPACE 4,10
- BUF EQU *
- L SET 7777-BUF
- BUFL EQU L/5 LENGTH OF PIECE DISPLAY BUFFER (CM WDS)
- PRS TITLE PRS - PRESET DRIVER
- ** PRS - PRESET. (WILL BE OVERLAID)
- *
- * EXIT (NC) = NUMBER OF CP-S.
- PRS SUBR ENTRY/EXIT
- CATD CHECK ACCESS TO DISPLAY CONSOLE
- * LDN 0
- STD WC INITIALIZE DIRECT CELLS
- STD CC
- STD CR
- STD GC
- STD KM CLEAR KEYBOARD MESSAGE
- LDC RTCL SET REAL TIME CLOCK
- CRD CM
- LDD CM+1 SET SECOND CLOCK
- STD SC
- RJM PAUSE
- LDN CMUR CLEAR CMU OPTION AVAILABLE BIT
- RJM ABS
- CRD CM
- LDD CM
- LPC 3777
- STD CM
- LDN CMUR
- RJM ABS
- CWD CM
- LDC PAUSE4 SET RETURN FROM HOLD ON A ROLLOUT FLAG
- STM /COMDDSP/ROFA
- LCMA IR+3 STATUS POINTER
- NJN PRS2 IF NON ZERO
- LJM ABT ABORT JOB
- PRS2 LDD A.SW READ PIECE DISPLAY BUFFER POINTERS
- SHN 14
- ADD A.SW+1
- ADN P.PD
- CRD CN
- TCMA CN+1,FT
- TCMA CN+3,LM
- LCMA FT
- RJM ABS
- LCMA LM
- RJM ABS
- LDD A.SW LOAD OTHER POINTERS
- SHN 14
- ADD A.SW+1
- ADN P.TR
- CRD CN
- ADN P.OP-P.TR
- CRD CM
- ADN P.GS-P.OP
- CRD T6
- ADN P.NM-P.GS
- CRD T4
- LCMA T7
- RJM ABS
- CRM DOSE,ON READ PLAYER NAMES
- CRM DOSF,ON
- TCMA CN+3,A.TR
- TCMA CM+3,A.OP
- TCMA CM+1,A.GS
- LDD IR+2
- ADC -7777
- ZJN PRS3 IF RECALLED
- LCN 0 SET RECALL PARAMETER
- STD IR+2
- MONITOR DCPM DROP CPU
- LDN 0 CLEAR (RA+1)
- CRD CM
- LDD RA
- SHN 6
- ADN 1
- CWD CM
- RJM SB0
- MONITOR RCPM REQUEST CPU
- RJM RDS REQUEST DISPLAY
- RJM MDC MODIFY CHANNEL INSTRUCTIONS
- LJM PRSX RETURN
- PRS3 LDD A.SW RESET CLOCKS
- SHN 14
- ADD A.SW+1
- ADN P.RO
- CRD CM
- LDD CM
- STM CLKAO
- RJM CTD
- STM UGCC
- LDD CM
- STM UGCD
- LDD CM+1
- STM CLKBO
- RJM CTD
- STM UGCF
- LDD CM
- STM UGCG
- LDD CM+2
- STD GC
- LDD CM+3
- STM UGCB
- LDD CM+4
- STM UGCE
- * READ OUTPUT MESSAGE.
- LDD A.SW READ POINTER
- SHN 14
- ADD A.SW+1
- ADN P.OM
- CRD CM
- LCMA CM+3
- RJM ABS
- CRM DOEB,TR
- * READ LIMITS.
- LDN LLIM SET WORD COUNT
- STD T1
- LDD A.SW READ POINTER
- SHN 14
- ADD A.SW+1
- ADN P.LM
- CRD CM
- LCMA CM+3 READ LIMITS
- RJM ABS
- CRM PRSA,T1
- LDN 0
- STD T5 SET INDEX
- STD LF CLEAR FLAG
- LDC PRSA-1 SET POINTER
- STD T6
- PRS4 LDN 5 ADVANCE POINTER
- RAD T6
- LDI T6 LOAD NEXT LIMIT
- NJN PRS5 IF NOT ZERO BYTE
- STM DLMC,T5 SET ZERO BYTE
- LDD T5
- SBN 2*6
- MJN PRS7 IF @ 6 LEVELS
- UJN PRS6
- PRS5 RJM CDD CONVERT TO DISPLAY CODE
- STM DLMC,T5
- LDN 2 ADVANCE INDEX
- RAD T5
- SBN 2*LLIM
- NJN PRS4 LOOP
- PRS6 LCN 0 SET FLAG
- STD LF
- * READ RANK LABELS.
- PRS7 LDN 8D SET LABEL COUNT
- STD T1
- LDD A.SW READ POINTER TO BOARD
- SHN 14
- ADD A.SW+1
- ADN P.BD
- CRD CM
- LCMA CM+3 READ LABELS
- RJM ABS
- CRM PRSA,T1
- LDC PRSA+5*7 SET POINTER TO BUFFER
- STD T2
- PRS8 LDI T2 LOAD NEXT LABEL
- STM DBDE-1,T1 STORE
- LCN 5 DECREMENT POINTER
- RAD T2
- SOD T1 DECREMENT INDEX
- NJN PRS8 LOOP
- * READ FILE LABELS.
- LDD A.SW READ POINTER TO BOARD
- SHN 14
- ADD A.SW+1
- ADN P.BD
- CRD CM
- LCMA CM+3 READ LABELS
- ADN 8D
- RJM ABS
- CRM PRSA,ON
- LDC PRSA+4 SET POINTER TO LABELS
- STD CM
- LDC DBDD+12D SET POINTER TO LABEL BUFFER
- STD CM+1
- PRS9 LDI CM UNPACK LABELS
- LPN 77
- STI CM+1
- SOD CM+1
- LDI CM
- SCN 77
- STI CM+1
- LCN 2
- RAD CM+1
- SOD CM
- LMC PRSA
- NJN PRS9 LOOP
- RJM RDS REQUEST DISPLAY
- RJM MDC MODIFY CHANNEL INSTRUCTIONS
- LDN NCPL SAVE NUMBER OF CP-S
- CRD CM
- AOD CM+1
- STD NC
- LJM PRSX RETURN
- PRSA BSS 0
- SPACE 4
- ** COMMON DECKS.
- *CALL COMPCUA
- SPACE 4
- END
cdc/nos2.source/opl871/chd.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator