1
0
mirror of synced 2026-01-12 00:42:51 +00:00
kenrector.sigma-cpv-kit/cpcp-patchit-email.txt
2022-11-01 20:30:04 -07:00

1551 lines
57 KiB
Plaintext

In response to my query about non-boot patches, patches that get applied after the sysem is up. Following Keith's response
is a copy of the patchit patches on system cpcp.tap.
I don't know how this feature worked. Assemble this and run it after boot?
****************************************************************************************
From Keith Calkins, 7/22/22
There should also be a PATCHCI file which would be compressed input which these SI updates modify in typical CP-V update style. You can
copy that via C PATCHCI(C) to LP(K) (I always like line numbers on my list listings, especially if "updates" are being applied! I see
you were able to use ME for TY which I found interesting. I would not have guessed that would work!)
There should be 6 words, 3 double words, 1 double word of 64 bits for each COC at that hardwire location.
We want to avoid SYSTEM A style COC since that had a non-standard COC (GSP COC) which used RDs for output... instead of I/O
writes---it had no MIOP interface.
Any luck with the esc Q??? That would verify if it is a COC issue or a LOGON/ON 0/etc issue. Are our COC interrupts working?
60/61 would be for the first COC, but if you are on the second it would be 62/63 and if you are on the second COC and don't have
those interrupts enabled/implemented... You can check if they are active by looking at the XPSD target location to see if
something has been saved... I'm thinking MEA05 was COC#0 and MEA06 was COC#1 (using the formal 0 indexing instead of informal
1 indexing).
Are characters getting in...there is a COC ring buffer where data is supposed to come in one character at a time as halfwords,
one byte is the character, the other byte the line number, one separate ring buffer for each COC. I don't remember right off
which is the "first" byte of the halfword, character/line number, but that would be documented in the COC manual. I put "first"
in quotes since I was rather upset to see simh try to define Sigma instruction format using non-Sigma bit numbering
(big vs little Endian)---almost generated some updates to correct that---that is just wrong/confusing to do!
***************************************************************************************
PCL HERE
<COPY PATCHCI(C) TO ME
CPCO SET 0 A/B CPCN + 5.2MB,NO CP 04/91=>
CPCP SET 1 A/B CPCO +3RD PUB,- 1.2MB 10/91=>
* KEEP LINE NUMBERS (IOCOUNT)
ASECT
DO1 CPCO
LOC X'27D2'+578 MPATCH+578
DO1 CPCP
LOC X'28DE'+578 MPACH+578
PATCHLOC EQU $
* **********************************
HANDLERS EQU X'8E00' THESE MUST BE SET BY HAND
SPECHK EQU X'8EDC' AS THEY ARE IN UMOV
*
A SET X'A' SIGMA 9 SINCE 12/85
B SET X'B' SIGMA 9 SINCE 12/84
C SET X'C' SIGMA 9 SINCE 05/86
*
SYSTEM SET A "ACADEMIC"
*SYSTEM SET B "ADMINISTRATIVE" AND EXTERNAL
*SYSTEM SET C MAINTENANCE AND DEVELOPMENT
* SEE BELOW NSCOC/COMSYS
*
POTAPE SET 0 SET TO 1 FOR PO TAPE VERSION
AUTOBAUD SET 0 EXCLUDE OBS AUTOBAUD MODEM CODE
* INCLUDES NSCOC BUT SETS COC TYPE
DO1 POTAPE
SYSTEM SET A
NSCOC SET 0 INCLUDE GSP COC SUPPORT
DO1 SYSTEM=A
NSCOC SET 1 DO ONLY IF ON SYSTEM A
*
COMSYS SET 3 3 FOR SYSTEM AC/AB
DO1 SYSTEM=B
COMSYS SET 2 2 FOR SYSTEM AB - HIGHER INTERRUPTS
PAGE
CSECT 0
SYSTEM SIG7
SYSTEM BPM
SYSTEM UTS FOR LOAD/STORE
STARTPATCH CNAME
PROC
HERE SET $
ADDRESS CSECT 0
DATA 0
DMASKS CSECT 0
DATA 0
USECT HERE
MASKFLG SET 0
MASKCOUNT SET 0
PEND
PATCHAT CNAME
PROC
DELTA SET $-HERE
HERE SET $
LAST SET AF
DO DELTA
MASKCOUNT SET MASKCOUNT+1
USECT ADDRESS
DATA LAST(1)
USECT DMASKS
DO1 NUM(AF)=1
DATA -1
DO NUM(AF)~=1
DATA AF(2)
DO1 AF(2)~=-1
MASKFLG SET 1
FIN
LAST(1) SET LAST(1)+1
FIN
USECT HERE
PEND
PAGE
REF F:BD
*
REF WRTF,RDF,TIME,T:RCE,JX:CMAP,JBUPVP,CBB5,CLRBBUF
REF CPOS,MODE4,MODE2,MODE4INIT,MXFPL,MODE3
REF TTYOUT,SSTD,SSTDLC,SAPL,SAPLLC
REF MPATCH,MODE,MODE5,COD:HWL
REF SL:BPRIO,SL:RATOR,SL:AIRM,SL:RAMR,SH:RBSUM
REF MM,NEWQ,MSG3
REF SL:ETS,SL:EPS
REF YFFFF,DISCCU,Y08,Y04,Y02
REF DCTSIZ,DCT1,DCT2,DCT3,DCT4,DCT5,DCT8,DCT9
REF DCT12,DCT16,DCT17,DCT18
REF IOSCU,S:OUIS,S:OUAIS
REF M3,M8,M6,MASKS,TABLES
REF XF,M7
REF IOQ,IOQ5,IOQ7,IOQ8,IOQ10
REF COCOEL,COCIPL,COCIPC,COCOP,CO:OUTRS
REF COC,COCTERM,COCITV,COCOTV,COCBUF,COCOC
REF UH:FLG,PLB:USR,SCHED,C:IDLE,S:CLOCK4
REF MX:PPUT,U:MISC,UB:PRIO
REF LB:UN,LNOL,EOMTIME
REF CH:DRT,DRTHEN,PM,SB:RQ
REF S:FPPC,UB:PCT,UX:JIT,SB:SET:
REF COD:LPC,CO:RCVON,CO:XDATA
REF SAVCBD,SC1900
REF RE:ENT,FILCFU
REF RA,SYSVERS
REF CSEHAND:,CSE$9:9
REF T:GJOBSTRT,CO:AIL,UB:ACP,HGP
REF PFSR:
DO1 0 CPCM RAD STUFF
REF M:FREE#GRAN,M:SWAPD
REF AVRTBLSIZ,ANSFLGS
REF PRTCU,PRTOUT
REF TB:MAX,TB:SZ,TB:FLGS,OB:BTX,OB:OTX,OB:GTX
REF SH:LNM,SB:LTY,STB:TYP,SYMX,SNDDX
REF SWAPIN,S:FPPH,JPPH,S:ISUN,UH:AJIT,JAJITVP,FPMC
REF CO:RCVDOFF,COCOR,E:CUB,SL:UB,STOB,STOBO,UB:US
REF WRTD,COOP,J:BASE,SCDEVTYP XP STUFF
REF KBTCU,Y4,POWROFF,ERRLOG
REF :BIG
REF SB:ROMX,SB:RODF,T:INITJOB,SB:SWP:
REF NSPT,GRAN
REF DISKAB
REF IORT
* SYSTEM DEPENDANT
* REF NB31TO0,TSTACK,X10,X80,X20
*MAGTAPE EQU X'92C8' ** SYSGEN DEPENDENT TSIO
*MAGTAPE EQU X'9400' ** SYSGEN DEPENDENT DPSIO+CRDOCU
MAGTAPE EQU X'93AA' ** SYSGEN DEPENDENT DPSIO,-CP
*MTAP EQU X'907E' ** SYSGEN DEPENDENT
*MTAP EQU X'909E' ** SYSGEN DEPENDENT CRDOCU
MTAP EQU X'9048' ** SYSGEN DEPENDENT DPSIO,-CP
COMLIST EQU KBTCU+X'97'
EXITIS EQU MAGTAPE+X'8B'
EXITFOL EQU MAGTAPE+X'83'
REF UMOVPTCH
PAGE
LIST,1 1
START M:OPEN F:BD,(FILE,'MODE4INIT',':SYS'),(IN),;
(ERR,BDERR),(ABN,BDERR)
M:READ F:BD,(BUF,L00#03),(SIZE,156),;
(BTD,0),(WAIT)
M:READ F:BD,(BUF,CODHWL),(SIZE,024),;
(BTD,0),(WAIT)
M:CLOSE F:BD,(SAVE)
BDERR M:SYS
BCR,8 MONOK
M:TYPE (MESS,NOPRIV)
M:EXIT
NOPRIV TEXTC 'INSUFFICIENT PRIVILEGE'
MONOK CI,10 NEWQ
BE GOODMON
M:PRINT (MESS,BADMON)
M:XXX
BADMON TEXTC 'PROGRAM LOADED WITH WRONG MONITOR'
GOODMON EQU,0 $
LI,3 LASTPTCH
CI,3 MX:PPUT+7+:BIG+:BIG+:BIG+:BIG+:BIG+:BIG+:BIG+:BIG
BL SIZOK
M:PRINT (MESS,TOOMNY)
M:XXX
TOOMNY TEXTC 'TOO MANY PATCHES FOR AVAILABLE PATCH SPACE'
WTOPN DATA X'6D000027' ENABLE
M:WAIT 0
SIZOK EQU,0 $
LH,1 X'2B' GET SYSTEM DESIGNATION
AND,1 =X'F' => A,B,C
CI,1 SYSTEM
DO POTAPE=0
BE SYSOK
M:PRINT (MESS,WRNGSYS)
M:XXX
WRNGSYS TEXTC 'PATCHIT RUNNING ON WRONG SYSTEM'
FIN
SYSOK EQU,0 $
LI,10 -1
LI,11 -1
LI,12 -1
LI,13 -1
LI,14 -1
LI,15 -1
LCI 6
STM,10 X'1A'
CAL1,6 #GJOB0 9DIAG
CAL1,6 #GJOB1 LMMON
LI,1 15 ** SYSGEN DEPENDANT (PAGES TO MAP)
LI,2 X'8000' FIRST REAL PAGE TO MAP
LI,3 X'18000' WHERE TO PUT IT
M:FVP *3 FREE THE PAGE
M:CVM *2,*3 PUT IT IN THE MAP HERE
AI,2 X'200'
AI,3 X'200' GET THE NEXT PAGE
BDR,1 $-4 GET ALL SEVEN PAGES
LI,5 MASKCOUNT
CI,5 BITCOUNT
BNE ERROR
LI,3 PATCHCOUNT
DATA X'6D000037' DISABLE
LI,2 2
LB,2 SB:RQ,2 WAIT TIL NO OPEN CLOSE USERS
BNE WTOPN
LW,2 PATCHES,3
STW,2 PATCH$-1,3
BDR,3 $-2
*
LI,5 MASKCOUNT
LDNXTP LW,3 DMASKS,5
LW,2 PBITS,5
LW,6 ADDRESS,5
CI,6 X'8000'
BL $+2 => NO NOT IN UMOV
AI,6 X'10000' YES PATCH UMOV OR SUSPTERM+
STS,2 *6
BDR,5 LDNXTP GO LOAD THE NEXT PATCH
*
LI,5 LNOL-1 NUMBER OF LINES
CHKLN LB,3 LB:UN,5
BNE NXTLN CHECK IF ANYBODY IS HOME
LB,3 MODE4INIT,5
BNE NXTLN WAS IT AN AUTOBAUD LINE?
LH,3 EOMTIME,5
BNE NXTLN
LB,3 MODE2,5
CI,3 X'20' SPACE INSERTION???
BNE NXTLN
OR,3 =X'80' SET LOGGING OFF
STB,3 MODE2,5
NXTLN AI,5 -1
BGE CHKLN
DATA X'6C003002' RESET COC INIT FLAG => INIT IT
DO 0 ENABLED 1/17/89 KGC (PERHAPS A LITTLE LATE)
DATA X'6C003012' THIS SEEMS APPROPRIATE-KGC 87/05/01
FIN
DO POTAPE=1&NSCOC=1
LH,1 X'2B' GET SYSTEM DESIGNATION
AND,1 =X'F' => A,B,C
CI,1 X'A' SYSTEM A
BE $+2
STW,1 COC:TYPE SET TO XEROX COC FOR SYSTEM B,C
FIN
DO 0
LI,3 X'BAD1'
MTW,0 M:FREE#GRAN+1
BG NORAD
RADLP LI,3 X'BAD2'
DATA X'4E0002F1' TDV,0 X'2F1'
STCF 4
BCS,4 NORAD
BCR,8 GORAD IF NOT SPINNING IGNORE
LI,1 1000
BDR,1 $
B RADLP
*
* WE'LL ASSUME THAT IT IS UNWRITE-PROTECTED!
*
DO SYSTEM=A
GORAD LI,1 X'520' 1/2 A RAD
ELSE
GORAD LI,1 X'A40' FULL RAD
FIN
AWM,1 M:FREE#GRAN+1 ADD IT
LI,3 X'BEEF'
FIN
NORAD EQU,0 $
DATA X'6D000027' ENABLE
LI,1 X'C00'*(COMSYS&1)+X'300'*(0~=(COMSYS&2))
* FOR T64,T65 AND/OR T66,T67
DATA X'6D101202' WD,1 .1202
DO 0
CI,3 X'BEEF'
BE RADOPEN
CI,3 X'BAD1'
BE RADAOPEN
CI,3 X'BAD2'
BE RADNOIO
M:XXX ABORT
RADOPEN M:TYPE (MESS,#RADOPEN)
M:EXIT
RADAOPEN M:TYPE (MESS,#RADAOPEN)
M:EXIT
RADNOIO M:TYPE (MESS,#RADNOIO)
M:SNAP 'CC IN R4',(0,0)
M:XXX
#RADOPEN TEXTC 'SECOND RAD HAS BEEN OPENED'
#RADAOPEN TEXTC 'SECOND RAD IS ALREADY OPEN'
#RADNOIO TEXTC 'NO IO POSSIBLE TO SECOND RAD'
FIN
EXIT M:EXIT
#GJOB0 DATA X'06000000'
TEXTC '9DIAG'
#GJOB1 DATA X'06000000'
TEXTC 'LMMON'
ERROR DATA X'6D000027' ENABLE WE'RE IN TROUBLE ANYWAY
M:TYPE (MESS,ERRMESS)
M:XXX
ERRMESS TEXTC 'ERROR IN PATCHES... ABORTING'
PAGE
PATCHES EQU $-1
LOC PATCHLOC
PATCH$ EQU,0 $
PAGE
LIST,0 1
***********************************************************************
*
* PATCHES TO COC ROUTINES
*
* GENERAL COC PATCHES
* CRT BS SP BS ON RUBOUT
* VARY OUTPUT BUFFERS BASED ON SPEED
* HARDWIRE TIMEOUT FEATURE
* 7E-40,1B-00 CRASH FIX
*
***********************************************************************
* COC+X'296'
DMBS LC MODE4,2 RUBOUT ON SCREENS
BCR,8 COC+X'29A'
LI,5 8 BACKSPACE
BAL,9 COC+X'617'
LI,5 ' ' SPACE
BAL,9 COC+X'617'
LI,5 8 BACKSPACE
MTB,12 CPOS,2
B COC+X'29B'
* COC+X'54F'
CALCBUF LB,5 MODE4,2 VARY OUTPUT BLOCKED BASED ON SPEED
AND,5 M3 GET LINE SPEED
AI,5 6
MI,5 14
SW,9 5 REPLACED INSTRUCTION
BLZ COC+X'557'
B COC+X'551'
* COC+X'7BA'
HWLOGOFF EQU,0 $
LB,6 LB:UN,7 ALLOW LOGON WITH OUT HARDWIRE
BE HWLNRET
LB,6 MODE4INIT,7 CHECK IF AUTOBUAD
BE HWLNRET ALWAYS TIMEOUT PHONE LINES
DO SYSTEM=B
LW,6 TIME GET THE HOUR AND MINUTE
CW,6 STIME 06:30 AM (WAS 7 'TIL 4/02/87 KGC
* WAS 8 'TIL 4/16/86 KGC
* MODIFIED FOR BILL CASH,JIM MASSENA
BL HWLGGO BEFORE 06:30 SO TIMEOUT -FOR RWC)
CW,6 ETIME 17:29 (5:29 PM)
* WAS 17:00 'TIL 7/30/86 (KEN R. ONLY ASKED FOR 1/2H)
* WAS 18:00 'TIL 4/2/87 SEE ABOVE
BL COC+X'7AF' DONT TIMEOUT 06:30-17:29
FIN
HWLGGO LB,6 XLNLIST HARDWIRED LINE TIMEOUT FEATURE
CB,7 XLNLIST,6 EXCEPTIONAL LINES
BE COC+X'7AF' RETURN AS IF HW OR SS2
BDR,6 $-2 CHECK ALL EXCEPTIONS
HWLNRET LB,6 LB:UN,7
B COC+X'7BB'
DO SYSTEM=B
STIME DATA '0630' 06:30 AM
ETIME DATA '1729' 17:29 ( 05:29 PM)
FIN
* ALWAYS PUT SYSTEM LINES AS FIRST 4!
* FOR ON 0 LOGGING ON PRIVILEGE
DO SYSTEM=A
XLNLIST DATA X'090A3506' 8 LINES CSKC,CSCT,CSDH,
DATA X'0E460B10' CSRK,CSBB,SCDB,SCAM,
DATA X'474D0000' CSPC,CSSS
FIN
*
DO SYSTEM=B
XLNLIST DATA X'0A192416' 10 LINES CSKC,CSCT,HP 1,
DATA X'28002648' CSXB,CS00,DRBB,COLD,
DATA X'45216F00' COCM,CARM,BC 0
FIN
*
* COC+X'79C'
STS1B LB,11 UB:ACP,6 WE WILL NOT REPORT AN E:OFF EVENT
BNE STS1B00 IF NO CMD PROCESSOR AND
LB,11 UB:PCT,6 PAGE CNT = 1[+:BIG]
CI,11 1+:BIG
BE COC+X'7A0' THIS SHOULD PREVENT RIDDLED CORE
STS1B00 LI,6 X'E' E:OFF AND SC 1B-00'S ETC....
B COC+X'79D'
* COC+X'7C8'
SETWAIT BNE COC+X'7A0'
LB,6 MODE4INIT,7
BNE COC+X'7C9'
LI,6 4
STB,6 COCTERM,7
B COC+X'7C9'
*T:RCE+X'F'
LOGSYS LI,1 4+(SYSTEM=B) 4 SYSTEM LINES COME FIRST!!
CB,7 XLNLIST,1 ALLOW SYSTEM LINES ON WHEN ON 0
BE T:RCE+X'12' ONLY SYSTEM LINES
BDR,1 $-2
LW,1 S:OUIS (REPLACED INSRUCTION)
B T:RCE+X'10'
DO 0 CPCM
*T:RCE+X'13'
SHIFTSWAP EQU,0 $
LW,15 S:OUAIS (REPLACED INSTRUCTION)
SLS,15 1 DOUBLE IT SO 0 SWAP GRANULE LESS LIKELY
B T:RCE+X'14' RETURN
FIN
PAGE
***********************************************************************
*
* DIABLO 1200 BAUD PROTOCOL
* DIN1200
* D12BRK
* DOUT1200
* D12FC
*
***********************************************************************
* COC+X'42'
* 1200 BAUD DIABLO (ACK/ETX PROTOCOL) INPUT
DIN1200 LI,7 COC+X'43'
BCR,8 $+2
LI,7 COC+X'1B'
LC MODE3,2
BCS,4 XONXOFFINP
LC MODE4,2
BCR,4 *7
CI,5 6 IS IT ACK
BE $+5
CI,5 X'86' ACK W/ PARITY
BE $+3
LC MODE2,2
BCR,8 COC+X'43' NOT AN ACK AND LINE CONNECTED
DOOUT LB,7 MODE5,2
AI,7 78
CI,7 156
BLE $+2
LI,7 156
STB,7 MODE5,2
CI,7 78
BNE COC+X'1B' COUNTER UPDATED ALL DONE WITH CHAR
LD,4 COD:LPC,3 CONVERT LOGICAL LINE TO PHYSICAL
LW,7 2
SW,7 4 PHYS LINE #
* NEW CODE TO OUTPUT CORRECT CHARACTER INSTEAD OF NULL AFTER XON OR ACK
* THIS CODE DUPLICATES MUCH CODE IN COC (SEE COCOP IN COC LINE 1906)
* BUT UNFORTUNATELY WE CANNOT BRANCH TO THOSE ROUTINES BECAUSE
* THEY BRANCH TO PLACES APPROPIATE ONLY IF ENTERED FROM A COC OUTPUT
* INTERRUPT AND WE ARE HERE SERVICING AN INPUT INTERRUPT
LB,11 COCOC,2 OUTPUT COUNT
BEZ COC+X'1B' NOTHING TO OUTPUT
LH,4 COCOR,2 OUTPUT REMOVAL POINTER
BEZ DOOUT20 CHECK FOR LINE DISCONNECT
* THAT MAY NOT BE NECESSARY HERE... BUT UNTIL MY PATCH SPACE RUNS LOW
* I'LL LEAVE IT IN
* ( I JUST GOT AN ACK OR XON... HOW CAN MY LINE BE OFF???)
LB,5 COCBUF,4 CHAR TO OUTPUT
MTB,-1 COCOC,2
AI,11 -2
BLZ COC+X'3CF' SCREECH 13
BEZ DOOUT40 LAST CHARACTER SO RELEASE BUF
AI,4 1
CI,4 X'F'
BANZ DOOUT50
AI,4 -1
DOOUT40 BAL,6 COC+X'42A' RELEASE THE BUFFER
DOOUT50 STH,4 COCOR,2
LW,6 7 PHYS LINE #
SLS,5 8
OR,6 5 MERGE CHAR + LINE IN R6
EXU CO:XDATA,3 TRANSMIT IT
CW,11 SL:UB UNBLOCK USER TIME?
BNE COC+X'1B'
DOOUT54 LB,6 LB:UN,2 USER NUMBER
LB,6 UB:US,6 USER STATE
AI,6 -STOBO
BEZ DOOUT57
AI,6 STOBO-STOB
BNEZ COC+X'1B' NOT STOB OR STOBO
DOOUT57 LI,6 E:CUB
B COC+X'6D' REPORT EVENT
DOOUT20 STB,4 COCOC,2 ZERO OUTPUT COUNT
LC MODE2,2
BCR,8 COC+X'1B' LINE NOT REPORTED OFF
EXU CO:RCVDOFF,3 HANG UP LINE
EXU CO:RCVON,3
B DOOUT54 CHECK FOR UNBLOCK
XONXOFFINP EQU $
LC MODE2,2
BCS,8 DOOUT LINE-OFF FAKE AN X-ON
LI,7 X'7D'
AND,7 5
CI,7 X'11' XON OR XOFF
BNE COC+X'43' NORMAL INPUT PROCESSING
*XON OR XOFF HAS COME IN
CI,5 2
BAZ DOOUT IT WAS XON-START OUTPUT
XOFF LI,7 1
CB,7 MODE5,2
BGE COC+X'1B'
STB,7 MODE5,2 SET FLAG XOFF HAS COME
B COC+X'1B'
* COC+X'801'
* COC+X'38'
D12BRK LC MODE4,2
BCR,4 COC+X'11C'
LI,7 156 RESET MODE5 COUNT
LB,5 MODE5,2 GET PREVIOUS COUNT
STB,7 MODE5,2
BNE COC+X'11C' WASNT DOWN TO ZERO
LD,5 COD:LPC,3 CONVERT LOGICAL TO PHYSICAL LINE
LCW,5 5
AW,5 2
XW,6 5 (ARRG)
EXU CO:XDATA,3 RESTART OUTPUT
XW,6 5
B COC+X'11C'
* COC+X'3AE'
* 1200 BAUD DIABLO (ACK/ETX PROTOCOL) OUTPUT
DOUT1200 BE COC+X'3F1' REPLACED INSTRUCTION
LC MODE3,2
BCS,4 XONXOFFOUT OUR SPECIAL MODE FOR ESC-P
LC MODE4,2
BCR,4 COC+X'3AF' NOT SPECIAL MODE
MTB,0 MODE5,2 CHECK REM OUTPUT COUNT
BLE COC+X'3FB' CLEAR SCANNER AND HOLD FOR NOW
MTB,-1 MODE5,2 DECREMENT COUNTER
BE XMETX
LB,6 MODE5,2
LB,5 COCBUF,4
CI,6 81 ONE BUFFER REMAINING?
BGE COC+X'3B0'
CI,6 78
BL LBUFF
BE XMETX
CKESC CI,5 X'1B'
BNE COC+X'3B0'
AI,6 -3
BGZ $+2
LI,6 0
STB,6 MODE5,2
XMETX LI,5 3 XMIT AN ETX
B COC+X'3D7'
LBUFF CI,6 3
BGE COC+X'3B0'
B CKESC
XONXOFFOUT EQU $
LB,5 MODE5,2
CI,5 1
BG COC+X'3AF' FLAG IN MODE5 SAYS NO XOFF-OUTPUT IT
LI,5 0
STB,5 MODE5,2 0 MEANS THERE IS OUTPUT WAITING
B COC+X'3FB' CLEAR SCANNER AND HOLD TIL XON COMES
* COC+X'65C'
D12FC LC MODE3,2
BCS,4 XONXOFFFC XON-XOFF MODE IN EFFECT
LC MODE4,2
BCR,4 COC+X'688'
MTB,0 MODE5,2 READY TO BLOCK?
BE D12BF BLOCK-- BUFFER CHARACTER
LI,4 -1 CONVERT LOGICAL TO PHYSICAL + COC
AI,4 1
CLM,2 COD:LPC,4
BCS,9 $-2
LD,6 COD:LPC,4
LCW,6 6
AW,6 2
MTB,-1 MODE5,2
LB,7 MODE5,2
BE ETXB
CI,7 78
BE ETXB
CI,5 X'1B'
BNE COC+X'688' SEND NORMAL
B $+2 BUFFER THE CHAR
ETXB AI,6 X'300' LINE # + ETX**8
EXU CO:XDATA,4
D12BF MTB,1 COCOC,2
B COC+X'663'
XONXOFFFC EQU $
LB,6 MODE5,2
CI,6 1
BG COC+X'688' NO XOFF SO OUTPUT THE CHARACTER
LI,6 0 SO WE KNOW WE TRIED
STB,6 MODE5,2
B D12BF BUFFER THE CHARACTER
*
TERMTYPE LC MODE4INIT,2 CHECK D12 BIT
BCS,4 COC+X'3F5' RETURN WITHOUT RESETTING TYPE
STB,4 COCTERM,2 RESET TERM TYPE TO 0 (REPLACE INST)
B COC+X'3F5'
TERMTYPE1 LC MODE4INIT,7 CHECK D12 BIT
BCS,4 COC+X'79C' RETURN WITHOUT RESETTING TYPE
STB,11 COCTERM,7 RESET TERM TYPE TO 0 (REPLACE INST)
B COC+X'79C'
PAGE
***********************************************************************
*
* GSP LIU SUPPORT AND AUTOBAUD
*
***********************************************************************
* COC+X'7E3'
CLR12 LI,4 -1 LOGICAL LINE TO PHYSICAL + COC
* GSP 8/3/89 AND 10/19/89, BUT COC TYPE CRASHES "1B-00" RIDDLED CORE
* STB,4 MODE5,7 ALLOW STOB ESC P TO OUTPUT
AI,4 1
CLM,7 COD:LPC,4
BCS,9 $-2
LD,13 COD:LPC,4
LCW,13 13
AW,13 7
XW,13 6
EXU CO:XDATA,4
XW,13 6
B COC+X'7E7'
* COC+X'801'
ONINIT LB,6 MODE4INIT,2 GSP LIU LINE INITIALIZATION
DO AUTOBAUD
BNE MINT2+1
CI,4 COC+X'D2' AUTOBAUD
BE COC+X'1B'
LB,6 COCTERM,2
CI,6 3
BLE MINT2
LI,6 X'2A' 300 BAUD
BAL,4 MINTSP-1
LB,6 MODE2,2
OR,6 X10
STB,6 MODE2,2
B COC+X'7A0'
MINT2 LB,6 MODE4,2
FIN
STB,6 MODE4,2
MINTSP SLS,6 13 LINE SPEED INFO
CI,4 COC+X'D2' CALLED FROM BREAK?
BNE $+2
LW,5 3 GET COC # (FROM 3 IF FROM BREAK)
MTB,0 TYPE,5 CHECK IF VARIABLE SPEED ALLOWED
BE 0,4 VARIABLE SPEED ONLY AS PER TABLE
CI,6 X'E000'
BAZ $+2 110 BAUD - 2 STOP BITS
AI,6 X'200'
AW,6 2 NEEDS TO BE PHYSICAL LINE ON COC
AND,6 KGCTRASH THIS IS THE QUICKEST WAY (KLUDGE)
EXU COC:SPD,5 SET LINE SPEED
B 0,4
KGCTRASH DATA X'E23F' SPEED BITS,STOP BIT,LINE # ONLY
COC:SPD DATA X'6D603006' SET LINE SPEED COC 0
DATA X'6D603016' SET LINE SPEED COC 1
DATA X'6D603026' SET LINE SPEED COC 2
DO1 SYSTEM=A
TYPE DATA X'01010000' VARIABLE SPEED ON COCS 0 AND 1
DO1 SYSTEM=B
TYPE DATA X'01000000' VARIABLE SPEED ON COC 0
* COC+X'822'
INITSPD EQU,0 $
LD,4 COD:LPC,3 **** KGC 4/5/85 2ND COC ****
AW,4 7 **** KGC 4/5/85 2ND COC ****
LB,6 MODE4,4 **** KGC 4/5/85 2ND COC ****
LW,2 4 **** KGC 4/5/85 2ND COC ****
LW,5 3
BAL,4 MINTSP
LW,6 7 REPLACED INSTRUCTION
B COC+X'823'
DO AUTOBAUD
ASTS DATA X'067C0C7E'
DATA X'66502A00'
TERMS DATA X'00030003'
DATA X'02030200'
MODES DATA X'00282829'
DATA X'292A2A00'
* COC+X'14F'
ASTERS LB,4 ASTS GSP LIU AUTOBAUD CALCULATION
CB,5 ASTS,4
BE $+3
BDR,4 $-2
B COC+X'1B'
LB,5 TERMS,4
STB,5 COCTERM,2
LB,5 MODES,4
STB,5 MODE4,2
LI,4 X'20'
STB,4 MODE2,2
B COC+X'1B'
FIN
* COC+X'794'
TRONIFOFF BCS,1 COC+X'7BA' REPLACE INSTRUCTION
BCR,2 COC+X'795'
XW,7 10 (ARRG)
EXU CO:RCVON,5 TURN RECEIVER ON
XW,7 10
STW,2 COCIPL SAVE AS PARITY ERROR
B COC+X'795'
PAGE
***********************************************************************
*
* GSP COC SUPPORT
*
***********************************************************************
* COC
DO NSCOC
*COC:TYPE DATA,1 X'10',X'10',0,0 COC TYPE (STANDARD OR NONSTANDARD)
COC:TYPE DATA,1 X'10',0,0,0 COC TYPE (STANDARD OR NONSTANDARD)
COC:RDC DATA X'6C503001' RD,5 X'3001' READ CHAR COC 0
DATA X'6C503011' RD,5 X'3011' READ CHAR COC 1
*COC:RDS DATA X'6C003000' RD,0 X'3000' CHECK SCANNER COC 0
* DATA X'6C003010' RD,0 X'3010' CHECK SCANNER COC 1
COC:RDT DATA X'6C003006' RD,0 X'3006' INITIALIZE COC 0
DATA X'6C003016' RD,0 X'3016' INITIALIZE COC 1
COC:RDU DATA X'6C003004' RD,0 X'3004' STATUS COC 0
DATA X'6C003014' RD,0 X'3014' STATUS COC 1
GSPCOC LC COC:TYPE,3 IS COC STANDARD?
BCS,1 GSPCOC1 => NO, MUST BE GSPCOC
DATA X'CDF0000F' TIO,D4 *D4 (REPLACEMENT INSTR)
B COC+X'1F' RETURN
GSPCOC1 EXU COC:RDC,3 RD TO GET CHARACTER
BCS,2 COC+X'24' NOT THIS COC
LW,7 6
SAS,7 -1
STH,5 *4,7
B COC+X'2A'
GSPCOCI LC COC:TYPE,3 IS THIS A STANDARD COC?
BCS,1 GSPCOC5 => NO, MUST BE A GSPCOC
DATA X'CC000005' SIO,0 *5 (REPLACEMENT INSTR)
B COC+X'80D' RETURN FOR STD COC
GSPCOC5 LCI 0
EXU COC:RDU,3 RD TO SEE IF THERE
B COC+X'80E' RETURN
COCWDTO AND,1 MASKS+X'26' XFF00 GET JUST COC BITS
CI,1 X'3000'
BNE *15 NOT COC
LB,1 TABLES+X'146' CSED$PSD
AI,1 X'80' SET CC1
STB,1 TABLES+X'146' CSED$PSD
B *15 RETURN WITH CC1 SET (REPLACEMENT)
GSPCOCT LC COC:TYPE,5
BCS,1 GSPCOCS
DATA X'4D0E0000' TIO,0 0,7 (REPLACEMENT)
B COC+X'78A'
GSPCOCS EXU COC:RDU,5
BCS,8 COC+X'7CC' COC NOT THERE
BCR,1 COC+X'78C' OK
EXU COC:RDT,5 INITIALIZE IT
B COC+X'7CE' GO FINISH INITIALIZATION
DRBCSE STW,15 TABLES+X'167' CSED$LINK
LI,0 0 REPLACEMENT
B CSEHAND:+X'EF'
*
* COCOP+1
COCERR LW,2 7 SAVE THE LINE #
EXU CO:OUTRS,3 READ THE LINE # AGAIN
CW,2 7 IS IT THE SAME?
BNE COCERR1 => NO, GO RECORD IT
AND,7 M6 REPLACEMENT INSTRUCTION
B COCOP+2 PROCEED
COCERR1 MTW,1 COCIPC
STW,2 COCIPL
B COCOP+X'61'
FIN
LIST 0
* MM+X'A4'
MMCHK BG MM+X'B3' REPLACE PATCHED INSTRUCTION
CI,4 1 FROM M:CVM?
BNE MM+X'A5' NO => GIVE IT TO 'EM
CI,8 X'30' PRIV B0 OK
BGE MM+X'A5'
CI,6 X'41' TOPROOT
BG NOG
CI,8 X'20'+X'10' ALLOW A0(B0) TO READ MONITOR
BGE MM+X'A5'
* CI,6 3 PAGE 3? -- CO:RING
* BE NOG
CI,6 7 PAGE 6+ -- COCBUF
BL CKPV
CI,6 8 PAGE 7+
BLE NOG
CI,6 X'16' THIS PATCH?
BE NOG
CKPV CI,8 X'10'+X'20' PRIV 90(B0) NOT CERTAIN PAGES
BGE MM+X'A5'
LW,4 MXFPL+1
CW,4 MMDAT
BE NOG
LC MXFPL+1
BCR,2 NOG
LI,4 6336
AH,4 MXFPL+5
BE NOG+1
AI,4 1010782 WHERE?
BE NOG+1
NOG LI,6 0 GIVE 'EM PAGE 0
LI,4 1 REPLACE CVM FLG
B MM+X'A5'
MMDAT DATA 633652691
LIST 1
*CLRBBUF+X'1A'
PPCHK EQU,0 $
LI,11 FPMC
LI,1 X'4A'
STORE,11 JX:CMAP,1
B CBB5+X'F'
* IOQ+X'4D4'
KIIOP CI,12 X'2000' INTER-OP REQUESTED?
BAZ KIIOP1 NO RESUME NORMAL HANDLING
LB,8 DCT5,1
OR,8 X20 SET INTEROP BIT
STB,8 DCT5,1
KIIOP1 DATA X'6D000027' ENABLE
B IOQ+X'4D5'
PAGE
***********************************************************************
*
* SCHED
*
***********************************************************************
* SCHED+X'233',X'235',X'23C',X'246'
BATIO CI,15 X'100' IS IT BATCH?
BAZ SCHED+X'216' NO GO TO STIOCC
B SCHED+X'215' GIVE BATCH IOC PRIORITY EQUAL TO OL
* SCHED+X'182'
NOBEX BANZ SCHED+X'44' REPLACE INSTRUCTION
LC X'8C48' J:EXTENT
BCR,2 SCHED+X'183' NOT IN EXIT CONTROL- ALLOW BREAKS
CI,15 X'40' ALLOW DELTA EXITS
BAZ SCHED+X'44' IGNORE IF NOT DELTA
B SCHED+X'183' DELTA IN CONTROL - ALLOW BREAKS
* SCHED+X'481'
DSOPNCLS LH,5 UH:FLG,4
CI,5 8 OPEN CLS USER
BANZ SCHED+X'478' YES -- DONT OUTSWAP HIM
B SCHED+X'482'
* SCHED+X'2E4'
OPCSUB LW,5 4 SAVE HEAD
OPCS1 LH,15 UH:FLG,5 GET HIS FLAGS
CI,15 X'100' BATCH?
BANZ OPCS2 YES
LW,4 5 ONLINE OR GHOST SAVE UN
OPCS2 LW,5 U:MISC,5 FOLLOW FLINKS
AND,5 M8
BNE OPCS1
LH,15 UH:FLG,4 REPLACE INSTRUCTION
B SCHED+X'2E5'
* SCHED+X'2BB'
RQBLNK STB,4 UB:PRIO,2
LI,2 0
B SCHED+X'2BC'
* SCHED+X'480'
STOB96 CI,2 X'E' STOB
BNE SCHED+X'48E'
LOAD,5 UX:JIT,4
SLS,5 11
AI,5 X'B7' POINT TO LINE NO. IN JIT
LB,5 0,5
LC MODE3,5 CHECK XON/XOFF KGC 02/19/85
BCS,4 SCHED+X'48E' DONT HOLD XON/XOFF PROTOCOL
LB,5 MODE4,5
CI,5 X'40' DONT HOLD D12
BANZ SCHED+X'48E'
AND,5 M3 STRIP GARBAGE
CI,5 6 4800 BAUD
BL SCHED+X'48E' UNDER 4800 DONT HOLD
B SCHED+X'478' TRY SOMEONE ELSE
PAGE
***********************************************************************
*
* FILE I/O
* EXTRANEOUS EOF REMOVAL
* EOD FILE INTEGRETY INSERTION AND CHECKING
*
***********************************************************************
* WRTF+X'16D'
NXTKEY AW,3 14,6 AW,3 IMT,6 REPLACE NOPED INST
REMEOF CI,3 12 FIRST KEY ON GRAN? (MIDIS IS 12)
BLE WRTF+X'165' YES-- EOF ON PREV GRAN ALREADY GONE
LI,0 X'1FFFF' MASK FOR ADDRESS
AND,0 1,6 GET CFU ADDRESS
CI,0 FILCFU
BLE WRTF+X'165' => YES, SKIP REM EOF
XFD AI,3 -3 POINT TO EOF ALSO DATA FOR AND
LB,0 X'9600',3 GET FLAGS
AND,0 XFD REM EOF NOTE: XFD IS INSTRUCTN
STB,0 X'9600',3 9600 IS BUFF2
AI,3 3
B WRTF+X'165'
* WRTF+X'437' - EODPUT
* WRTF+X'469' - EODCK
EODDATA DATA X'E0DE0D0'
PBEOD DATA 0
PVEOD DATA 0
EODPUT LI,2 X'7FC'
AND,2 3
BE SAVCBD
SLS,2 -2
LW,1 EODDATA
STW,1 X'9400',2 BUFF1
B SAVCBD
EODCK LI,4 X'7FC'
AND,4 3
BE WRTF+X'41A'
SLS,4 -2
LW,4 X'9400',4
BE NOEOD THIS IS UNEXPLAINED
*8/3/89 GSP SCSI 12/88 OS WRITES SHORT SECTORS SEE RDF+X'1C7'
* REPLACE LW,2 .C WITH LI,2 .800
CW,4 EODDATA
BE WRTF+X'41A'
LW,1 1,6 LW,1 CFU,6
LW,3 3,1 GET GAVAL
BNE EODPRV
MTW,1 PBEOD PUBLIC ERROR CNT
B WRTF+X'452'
EODPRV EQU,0 $
STW,3 PVGAVL
STW,1 PVCFU
LW,3 4,1
STW,3 PVCCBD
LI,3 0
STW,3 3,1
MTW,1 PVEOD PRIVATE PACK FILE ERROR CNT
B WRTF+X'452'
PCF DATA 0
PGV DATA 0
PCCB DATA 0
NOEOD LW,4 1,6
STW,4 PCF
STW,3 PCCB
LW,4 4,4
STW,4 PGV
B WRTF+X'41A'
PVCFU DATA 0
PVGAVL DATA 0
PVCCBD DATA 0
PAGE
***********************************************************************
*
* MISCELLANEOUS
*
***********************************************************************
DO 0 CPCM
* PFSR:+X'72'
NO2RAD LH,5 DCT1,5 REPLACEMENT INSTRUCTION
CI,5 X'2F1' IS THIS THE SECOND RAD?
BNE PFSR:+X'73' => NO CONTINUE
MTW,0 M:FREE#GRAN+1 IS THIS RAD IN USE?
BLE PFSR:+X'77' => NO
B PFSR:+X'73' YES IT IS
FIN
* PFSR:+X'76'
PFSRHIO HIO,0 *5 GSP 10/30/85
B PFSR:+X'73'
PFSRTYP DATA X'20020000'
PFSRLOG LW,8 PFSRTYP TYPE AND LENGTH FOR POWERON ERRLOG
LI,6 8 POINTER TO MSG
AW,6 Y4 FLAG FOR ERRLOG NOT TO CALL IOQ
LW,10 POWROFF
BAL,5 ERRLOG
B PFSR:+X'8D'
* PM+X'5A'
RESP90 LI,3 13
SH,1 CH:DRT+1,3
AH,1 DRTHEN,3
BE PM+X'72'
B PM+X'5B'
PAGE INTER-SYSTEM COMMUNICATIONS
***********************************************************************
*
* INTER-SYSTEM COMMUNICATIONS
*
***********************************************************************
DO COMSYS~=0
TRAP64 EQU UMOVPTCH+0
TRAP65 EQU UMOVPTCH+1
TRAP66 EQU UMOVPTCH+2
TRAP67 EQU UMOVPTCH+3
BOUND 8
DO COMSYS&1
T64PSD DATA 0,0,TRAP64,7**24 TRAP INHIBITED
T65PSD DATA 0,0,TRAP65,7**24 TRAP INHIBITED
FIN
DO (COMSYS&2)~=0
T66PSD DATA 0,0,TRAP66,7**24 TRAP INHIBITED
T67PSD DATA 0,0,TRAP67,7**24 TRAP INHIBITED
FIN
FIN
INTARM LI,5 X'C00'*(COMSYS&1)+X'300'*(0~=(COMSYS&2))
* FOR T64,T65 AND/OR T66,T67
STW,5 CO:AIL
B COC+X'807' RETURN
**********************************************************************
*
* BINARY WRITE TO XP
*
**********************************************************************
* WRTD+.3A B WRTLP (LW,1 Y08)
WRTLP LB,1 *5,1 GET TB:FLGS FROM SCB
CI,1 8 BINARY ALLOWED FLAG
BAZ WRTLPX
LI,1 X'20000'
CW,1 0,6 MODE (BINARY) BIT IN DCB
BAZ WRTLPX NOT BINARY
AND,8 RCCN4MSK CLEAR 4 BIT IN RCC (BYTE 0 SR1)
OR,8 Y02
WRTLPX LW,1 Y08 REPLACE INSTRUCTION
B WRTD+X'3B'
RCCN4MSK DATA X'FBFFFFFF'
XPINTCH CW,8 Y04
BANZ WRTD+X'6F'
* NO VFC OR PAGE COUNT IF BINARY
B *4
XPNOCMP LW,4 *J:BASE
CI,4 X'2000' BIN MODE IN DCB
BAZ NOTBIN
LW,4 SCDEVTYP,5 BIN ALLOWED IN CBP (FROM TB:FLGS)
CI,4 X'800'
BAZ NOTBIN
LW,3 J:BASE+3
B COOP+X'94'
NOTBIN CI,3 1 REPLACE PATCHED INSTRUCTION
B COOP+X'C6'
* RDF+X'871'
JOURNAL EQU,0 $ KGC 08/11/86 0 REC JOURNALS (COLDBOOT)
* BGE RDF+X'859' (REPLACED INST WAS BGE SEQ00)
MTW,0 5,1 CHECK IF TDA IS ZERO
BNE RDF+X'859' DON'T TOUCH UNLESS IT WAS
MTW,0 X'9400' CHECK BLINK
BNE TESTEND IT MIGHT BE REAL!!!
LW,12 X'9402' BUFF1+2
CW,12 NEMPTYFL IS IT AN NORMAL EMPTY FILE?
BE RDF+X'859' (ASSUMING FIT, ETC)
LC X'9454' GET THAT PESKY CONTROL WORD
BCR,4 RDF+X'859' NOT INITIAL
* B RDF+X'875' IT MIGHT BE REAL!!!
TESTEND MTW,0 X'9401' CHECK FLINK
BNE RDF+X'875' MIGHT GET 7502 ERROR-BUT WHO CARES
LI,12 X'FFFF'
AND,12 X'9402' EXTRACT LAST CONTROL WORD
CW,3 12
BL RDF+X'875' GOOD
B RDF+X'859' DONE - EOF!
NEMPTYFL DATA X'00000054' MAGIC POINTER PAST CONSEC FIT
GSPRDFSRD LI,1 X'1FFFF' RDF LINE 303 (GETCFU)
AND,1 1,6 RDF LINE 304 CFU,DCB
CI,1 FILCFU RDF LINE 308/1642
* THIS TEST MAY BE OPTION, BUT WHO KNOWS (11/10/89)
BLE RDF+X'440' RDF LINE 309/1643
BAL,0 RDF+X'7A' ESTABBUF
B RDF+X'440' ERROR RETURN
LI,14 X'3E0' RDF LINE 1584 BUF2MSK
AND,14 9,6 RDF LINE 1585
BE RDF+X'440' RDF LINE 1586
B RDF+X'404' RDF LINE 1587 RETURN
*
* A READ AHEAD PROBLEM FOUND!
*
RAPATCH EQU,0 $
BE RA+X'66' (REPLACED INSTRUCTION)
LW,3 0 SWITCH TO DESIRED VOL #
B RA+X'62'
LASTPTCH EQU,0 $
LOC $$
PATCHCOUNT EQU $-PATCHES-1
PAGE
STARTPATCH
PBITS EQU $-1
PAGE
TEXT 'AUCC' 0
TEXT 'HPPR' 1
TEXT 'FMII' 2
TEXT 'V100' 3
TEXT 'T920' 4
* TEXT 'DTMS' 5 DTMS
TEXT 'AUCC' 5
DATA 0 6 FOR CLT
DATA 0 7
DATA 0 8
DATA 0 9
DATA 0 A
DATA 0 B
DATA 0 C
DATA 0 D
DATA 0 E
DATA 0 F
PATCHAT X'70'
CI,0 X'C0' WAS X'A0' (GHOST INIT)
PATCHAT T:INITJOB+2
***********************************************************************
*
* BINARY WRITE TO XP
*
***********************************************************************
B WRTLP
PATCHAT WRTD+X'3A'
BAL,4 XPINTCH
PATCHAT WRTD+X'54'
B XPNOCMP
PATCHAT COOP+X'C5'
LI,1 X'49' (SPACE) WAS LI,1 X'4A' (JDE)
PATCHAT WRTD+X'A2' 12/16/87 KGC (FROM GSP)
DO SYSTEM=B
DATA X'02000000'
PATCHAT MM+X'54'
FIN
***********************************************************************
*
* COC
*
***********************************************************************
AI,8 2 => 2 PRE-HEADING LINES
PATCHAT COC+X'6FD' WAS AI,8 5 (6 LINES)
*
AI,8 -3 => 2 POST-HEADING LINES
PATCHAT COC+X'732' WAS AI,8 -6 (5 LINES)
*
B HWLOGOFF HARDWIRED LINE LOGOFF FEATURE
BNE COC+X'7D6' REPLACED IFS IN REVERSE ORDER
DATA X'6C000000' RD,0 0
LW,8 8
BCS,5 COC+X'7AF' SS2 OR HARDWIRED LINE
PATCHAT COC+X'7BA'
DO NSCOC
B COCERR
ELSE
AND,7 M6 REPLACEMENT INSTRUCTION
FIN
PATCHAT COCOP+1
*
DO NSCOC
B GSPCOC
ELSE
DATA X'CDF0000F' TIO,15 *15
FIN
PATCHAT COC+X'1E'
*
DO NSCOC
B GSPCOCI
ELSE
DATA X'CC000005' SIO,0 *5
FIN
PATCHAT COC+X'80C'
*
DO NSCOC
B GSPCOCT
ELSE
DATA X'4D0E0000' TIO,0 0,7
FIN
PATCHAT COC+X'789'
*
DO NSCOC
B COCWDTO
ELSE
B *15
FIN
PATCHAT CSE$9:9+13
* WAS CSE$9:7+9 UNDER CPCF (SIGMA 7) WITH DO AROUND PATCHAT
* ONLY. THUS CPCG (SIGMA 9 SMALL?) WAS BAD.
* PROBABLY DROPPED ENTIRELY AFTER CPCI 9/16/85
* THUS BOTH THIS AND THE NEXT PATCH WERE RUINED IF
* CPCF WAS NOT SELECTED.
* FIXED KGC 2/23/89.
*
DO NSCOC
B DRBCSE
ELSE
LI,0 0
FIN
PATCHAT CSEHAND:+X'EE'
*
DO NSCOC
NOP 1
ELSE
STW,15 TABLES+X'167'
FIN
PATCHAT CSEHAND:+X'112'
*
B STS1B
PATCHAT COC+X'79C'
B INTARM
PATCHAT COC+X'806'
B PPCHK CLEAR UP 6B-00 PROBLEM
PATCHAT CLRBBUF+X'1A' CLEAR UP 6B-00 PROBLEM
B LOGSYS
PATCHAT T:RCE+X'F' ALLOW SYSTEM LINES WHEN ON 0
DO 0 CPCM
B SHIFTSWAP INCREASE SWAP SPACE FOR NO USERS
PATCHAT T:RCE+X'13'
FIN
NOP 2 DISABLE ESC-P MODE
PATCHAT COC+X'112'
B COC+X'25C'
PATCHAT COC+X'257'
B *15
PATCHAT COC+X'35D'
NOP 3 ALLOW XON/XOFF ECHO ON ESC E
PATCHAT COC+X'35A' GSP 12/17/84
NOP 4
PATCHAT COC+X'619'
NOP 5
PATCHAT COC+X'6A0' END DISABLE ESC-P MODE PATCHES
***********************************************************************
*
* INTER-SYSTEM COMMUNICATIONS
*
***********************************************************************
DO COMSYS&1
DATA X'0F800000'+T64PSD
DATA X'0F800000'+T65PSD
ELSE
DATA X'33000000' MTW,0 0 (DUMMY INTERRUPT)
DATA X'33000000' MTW,0 0 (DUMMY INTERRUPT)
FIN
PATCHAT X'64'
*
DO (COMSYS&2)~=0
DATA X'0F800000'+T66PSD
DATA X'0F800000'+T67PSD
ELSE
DATA X'33000000' MTW,0 0 (DUMMY INTERRUPT)
DATA X'33000000' MTW,0 0 (DUMMY INTERRUPT)
FIN
PATCHAT X'66'
***********************************************************************
* BAL,11 IORT+X'36B' REMOVE CP MIN REC PATCH
* PATCHAT WRTD+X'15A' SC 1900--SEE S/W LOG 91/01/28
DO CPCO
DATA X'00800000' CHANGE 9TA80 TO 9TAF0 TO 9TA80
PATCHAT DCT1+2,X'FFFF0000' *** SYSGEN DEPT
DATA 'TA80' CHANGE 9TA80 TO 9TAF0 TO 9TA80
PATCHAT DCT16+9 *** SYSGEN DEPT
DO SYSTEM=A
DATA X'00000081' CHANGE 9TA81 TO 9TAF1 TO 9TA81
PATCHAT DCT1+2,X'FFFF' *** SYSGEN DEPT
DATA 'TA81' CHANGE 9TA81 TO 9TAF1 TO 9TA81
PATCHAT DCT16+11 *** SYSGEN DEPT
FIN
FIN
* DATA X'5B000000' LISTING,OUT,BIN,COMP,VFC
* PATCHAT TB:FLGS+5,X'FF000000' HP
DO 0 CPCM
DATA X'C000' SET INPUT ON PP
PATCHAT DCT3,X'DF00' DCT INDEX = 2, BUT LEAVE PART BIT
DATA X'38' SET INPUT ON PP
PATCHAT TB:FLGS,X'FF' OH:NM INDEX = 3
FIN
DO SYSTEM=B|SYSTEM=A
DATA X'030000' CHANGE TIMEOUT FOR BELO-BOX DISK
PATCHAT DISKAB+01,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+02,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+03,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+04,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+05,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+06,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+07,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+08,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+09,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+10,X'FF0000'
DATA X'030000'
PATCHAT DISKAB+11,X'FF0000'
FIN
DO 0 CPCM
PPHAND SET UMOVPTCH+12
DATA PPHAND
PATCHAT DCT8+2 *** SYSGEN DEPENDANT
DATA PRTCU
PATCHAT DCT9+2 *** SYSGEN DEPENDANT
FIN
***********************************************************************
*
* HANDLERS
*
***********************************************************************
CI,2 AVRTBLSIZ DISC NOT ANS
BL HANDLERS+X'FFC' **SYSGEN** DEPENDANT
PATCHAT HANDLERS+X'13D'
LC ANSFLGS,2 REPLACED INSTRUCTION
BCR,8 HANDLERS+X'13F' DITTO
LI,2 1 FIX ANS ON 1ST TAPE
B HANDLERS+X'141'
PATCHAT HANDLERS+X'FFC' **SYSGEN** DEPENDANT
*
DO SYSTEM=0 GSP
BCS,9 IOQ+X'419' ELIMINATES SC 19-00 FOR NON MPOOL
ELSE
BCS,9 SC1900
FIN
PATCHAT IOQ+X'416' COMMAND CHAIN LIST (IE GSP VOC)
* GSP TAPE ERROR HANDLER PATCH
DATA X'5C000000' NEW VALUE, OLD VALUE = X'83000000'
PATCHAT MAGTAPE+X'A7',X'FF000000'
DATA X'83000000' NEW VALUE, OLD VALUE = X'5C000000'
PATCHAT MAGTAPE+X'A9',X'FF000000'
DATA X'01' NEW VALUE, OLD VALUE = X'19'
PATCHAT MAGTAPE+X'CC',X'FF'
DATA X'01' NEW VALUE, OLD VALUE = X'1F'
PATCHAT MAGTAPE+X'D2',X'FF'
LB,8 IOQ10,3 WAS CI,7 10
SW,7 8 BLE MTAP+X'22'
AI,7 10 (MAXERASE) LI,7 10
PATCHAT MTAP+X'1F'
***********************************************************************
*
* MISCELLANEOUS
*
***********************************************************************
DO 0 CPCM
DATA X'2F1' FIX M:SWAPD+1
PATCHAT M:SWAPD+1 FROM 2F0
DATA X'2F1' PUT THE SECOND RAD BACK AT 2F1
PATCHAT DCT1+3,X'FFFF' ***** SYSGEN DEPENDANT *****
DATA 'CCF1'
PATCHAT DCT16+15 ***** SYSGEN DEPENDENT *****
DATA X'0003' PUT CR BACK WHERE IT BELONGS
PATCHAT DCT1+1,X'FFFF' ***** SYSGEN DEPENDENT *****
DATA 'RA03'
PATCHAT DCT16+7 ***** SYSGEN DEPENDENT *****
FIN
BCS,12 PFSRHIO HIO IF RAD WONT COME READY
PATCHAT PFSR:+X'76'
B PFSRLOG LOG POWER FAILSAFES
PATCHAT PFSR:+X'8C'
B RAPATCH PRIVATE VOLUME READ-AHEAD
PATCHAT RA+X'61'
DO 0 CPCM
B NO2RAD GO CHECK FOR SECOND RAD ON SYSTEM
PATCHAT PFSR:+X'72'
FIN
***********************************************************************
*
* SCHEDULING
*
***********************************************************************
B NOBEX
PATCHAT SCHED+X'182'
BE BATIO
PATCHAT SCHED+X'233'
B BATIO
PATCHAT SCHED+X'23C'
B BATIO
PATCHAT SCHED+X'246'
BE BATIO
PATCHAT SCHED+X'235'
DATA X'29090A1A'
PATCHAT COC+X'872'
***********************************************************************
*
* FILE I/O
*
***********************************************************************
BAL,0 EODPUT
PATCHAT WRTF+X'437'
B EODCK
PATCHAT WRTF+X'469'
DATA X'20581287'
PATCHAT SB:SET:+4
BG STOB96
PATCHAT SCHED+X'480'
CI,3 8 SET MAX GHOST I/O IN PROG
PATCHAT IOQ+X'1F'
B RESP90
PATCHAT PM+X'5A'
B REMEOF
STH,3 *6,2
PATCHAT WRTF+X'164'
BE WRTF+X'16E'
PATCHAT WRTF+X'169'
BGE NXTKEY
PATCHAT WRTF+X'16D'
AI,0 0 SPEED UP HOT CODE
PATCHAT RDF+X'36A'
B JOURNAL EMPTY JOURNAL FILES (COLDBOOTS)
PATCHAT RDF+X'871'
* GSP 10/17/89 CASE OF OLD TDA, ETC--CLUSTERED READ/WRITES
BE GSPRDFSRD SPEED UP SHARED KEYED READ/WRITE
PATCHAT RDF+X'403' RDF LINE 1586
PAGE
***********************************************************************
*
* SCHED
*
***********************************************************************
* 8/3/89 WAS CI,7 2 - GSP SEE SB:SWP:
CI,7 3 DONT SWAP STI IF NO INSWAP
BL SCHED+X'472'
PATCHAT SCHED+X'46C'
*8/3/89
DATA X'00121316' SW,SQA,STI
DATA X'0C0E1418' SC10,STOB,SQR,SQFI
PATCHAT SB:SWP: KICK OUT SQA (WAS LAST)
B RQBLNK
PATCHAT SCHED+X'2BB'
B OPCSUB
PATCHAT SCHED+X'2E4'
B DSOPNCLS
PATCHAT SCHED+X'481'
BE D12FC
PATCHAT COC+X'65C'
B KIIOP
PATCHAT IOQ+X'4D4'
AI,2 -4 OPEN CLOSE BOOST OF 4
PATCHAT SCHED+X'1C6'
PATCHAT SCHED+X'396'
DATA 0
PATCHAT SL:EPS
DATA 0
PATCHAT SL:ETS
STW,2 COCOEL
PATCHAT COC+X'3FA' SAVE OUTPUT INT ERR LINE
B TRONIFOFF
PATCHAT COC+X'794'
LI,7 D12BRK
PATCHAT COC+X'38'
DO AUTOBAUD
BE ASTERS
PATCHAT COC+X'14F'
FIN
B SETWAIT
PATCHAT COC+X'7C8'
BCR,1 COC+X'7D4'
PATCHAT COC+X'7B0' TIME OUT HW LINES IN LOGON
DATA X'F2482B7F' INCLUDE ATTN INT AS ERROR
PATCHAT HANDLERS+X'1D5'
DATA X'1800' VECTOR TO DOSENSE BRANCH AFTER REST
PATCHAT HANDLERS+X'1D8',X'FF00'
DATA X'B3000000'
DATA X'04800000' NEW RESTORE CDW
PATCHAT HANDLERS+X'1CA' RESTORE CDW
PAGE
***********************************************************************
*
* MISCELLANEOUS
*
***********************************************************************
B MMCHK
PATCHAT MM+X'A4'
*
DATA 5 READ AHEAD DOES NOT WORK RIGHT YET
PATCHAT SL:AIRM GEN PUTS 0 HERE
DATA 8 ON MULTIVOLUME PRIVATE PACK
PATCHAT SL:RAMR AND 13 HERE
* DATA 200 SH:RBSUM BTCO
* PATCHAT SH:RBSUM,X'FFFF'
CODHWL DATA X'FFFFFFFF',X'FFFFFFFF'
DATA 0,0 WILL BE READ IN FROM FILE
DATA 0,0 THAT THIRD COC
PATCHAT COD:HWL
B DIN1200
PATCHAT COC+X'42'
B DOUT1200
PATCHAT COC+X'3AE'
LI,6 158
STB,6 MODE5,2
B ONINIT
PATCHAT COC+X'801'
B INITSPD
PATCHAT COC+X'822'
B CALCBUF
PATCHAT COC+X'54F'
L00#03 DATA X'87878787',X'87878787'
L08#0F DATA X'87878787',X'87878787'
L10#17 DATA X'8282022A',X'87878787'
L18#1F DATA X'84444444',X'87878787'
L20#27 DATA X'02020206',X'87878787'
L28#2F DATA X'2A2A2A2A',X'2A2A2A2A'
L30#37 DATA X'2A2A2A2A',X'2A2A2A2A'
L38#3F DATA X'2A2A2A2A',X'2A2A2A2A'
* 2ND COC
L40#47 DATA X'87878787',X'87878787'
L48#4F DATA X'87878787',X'87878787'
L50#57 DATA X'87878787',X'87878787'
L58#5F DATA X'87878787',X'87878787'
L60#67 DATA X'87878787',X'87878787'
L68#6F DATA X'87878787',X'87878787'
L70#77 DATA X'87878787',X'87878787'
L78#7F DATA X'87878787',X'87878787'
* 3RD COC
L80#87 DATA X'87878787',X'87878787'
L88#8F DATA X'87878787',X'87878787'
L90#97 DATA X'87878787',X'87878787'
PATCHAT MODE4INIT
MTB,1 CPOS,2 SLIGHT PROBLEM WITH BS EDIT MODE
B COC+X'295' BS EDIT MODE => BS <=> DELETE
PATCHAT COC+X'27D'
B COC+X'521' APL MATRIX INVERT 87/05/21
PATCHAT COC+X'51D' GO RO MURUB IF MUBS/ESC O
BE DMBS
PATCHAT COC+X'296'
DATA X'0C000000'
PATCHAT TTYOUT+44,X'FF000000'
DATA X'31'
PATCHAT TTYOUT-2,X'FF'
CI,4 1
BGE COC+X'9D'
CI,5 X'7D'
BL COC+X'9D'
NOP 6
NOP 7
PATCHAT COC+X'96'
B TERMTYPE RETAIN SAME TERM TYPE IF D12
PATCHAT COC+X'3F4'
B TERMTYPE1 RETAIN SAME TERM TYPE IF D12
PATCHAT COC+X'79B'
LB,4 MODE4,7
AND,4 XF
STB,4 MODE4,7
B CLR12
PATCHAT COC+X'7E3'
DATA SSTDLC
PATCHAT COCITV+1,X'FFFF'
DATA SSTD
PATCHAT COCOTV+1,X'FFFF'
DATA SAPLLC
PATCHAT COCITV,X'FFFF'
DATA SAPL
PATCHAT COCOTV,X'FFFF'
BITCOUNT EQU $-PBITS-1
END START