mirror of
https://github.com/PDP-10/its.git
synced 2026-02-05 16:14:50 +00:00
686 lines
16 KiB
Plaintext
686 lines
16 KiB
Plaintext
;<WIRELIST>MPG21.FAI.9, 15-NOV-75 19:03:46, EDIT BY HELLIWELL
|
||
.ADD(ALLLOCS,MPG21,LMP21V)
|
||
.ADD(ALLLOCS,PG21,LMP21V)
|
||
|
||
MDWL,<
|
||
.ADD(ALLWW,MPG21,MP21TV)
|
||
.ADD(ALLWW,PG21,MP21TV)
|
||
>;MDWL
|
||
;Note! These .ADD's must be outside of block structure
|
||
|
||
BEGIN MPG21
|
||
|
||
;THE TRANSFER VECTOR FOR THE AUGUAT 8136 PG21-180 BOARD
|
||
|
||
^LMP21V:
|
||
JRST LCINIT ;BOARD INITIALIZATION
|
||
JRST QUPIN ;CHECKS FOR WILD CONNECTOR BODIES
|
||
JRST $SLTOUT ;PRINTS CARD LOC (B-R-S)
|
||
JRST $GETSLT ;READS CARD LOC (B-R-S)
|
||
JRST PRNLOC ;PRINTS SOCKET, DIP, OR CONNECTOR LOC
|
||
JRST PRNPIN ;PRINTS SOCKET, DIP, OR CONNECTOR PIN
|
||
JRST CPNSEP ;SEPARATE CONNECTORS LOC/PIN PARTS FROM 18 BIT FORM
|
||
JRST CPNMER ;MERGE CONN LOC/PIN PARTS BACK
|
||
JRST CPNMAP ;MAP CARD LOC, CPIN-LOC INTO BACKPANEL PIN LOC
|
||
MDWL,< JRST MAPOST > ;CONVERT FROM DIP-LOC/PIN TO POST
|
||
|
||
MDPC,<
|
||
JRST GTSLTL ;READS (B-R-S) AND BODY LOCN
|
||
MD,<
|
||
JRST GTCONP ;READS (B-R-S) AND CONNECTOR PIN
|
||
JRST LOCFUK ;PATCHUP OLD VERSIONS
|
||
>;MD
|
||
>;MDPC
|
||
|
||
MWL,<
|
||
JRST GETLOC ;READS EITHER DIP LOC, OR CONNECTOR LOC
|
||
JRST RAYDIP ;PRINTS DIP, OR CONNECTOR LOC IN FORTRAN FORM
|
||
JRST CPARTP ; (PRINT EDGE PIN TO PARTITION FILE)
|
||
JRST SEQLOC ;TESTS FOR BODY LOCS BEING SEQUENTIAL
|
||
JRST CONGIN ;GENERATE NEXT INVENTED PIN TO REPLACE "U" PINS
|
||
JRST $GTSLTT ;GETSLT, BUT WITH FIRST CHAR IN CHRREG
|
||
JRST AUGDIP
|
||
>;MWL
|
||
[ASCIZ/ #LL#/] ;CUE FOR BOARD SLOT
|
||
[ASCIZ/ #/] ;CUE FOR BOARD PIN
|
||
MDPC,< [ASCIZ/ #LJ#-#/] ;CUE FOR CONNECTOR PIN
|
||
[ASCIZ/ #L#(@#)/] ;CUE FOR BODY LOC
|
||
[ASCID/1A01/] ;PROTOTYPE FOR BODY LOC
|
||
>;MDPC
|
||
MWL,< [ASCIZ/#L#(@#) or #LJ#/] ;WIRELISTER BODY CUE
|
||
[ASCIZ/#LJ#/] ;WIRELISTER CONNECTOR BODY CUE
|
||
>;MWL
|
||
CHECK LMP21V,LTVLEN
|
||
|
||
L2NSUB: BLOCK L2NLEN
|
||
N2LSUB: REPEAT N2LLEN, < "?"
|
||
>
|
||
EN2L__.
|
||
|
||
NNN__1
|
||
FOR I IN(A,B,C,D,E,F)
|
||
< L2N2L I,0
|
||
>
|
||
FOR I IN (G,I,O,Q)
|
||
< L2N2L I,1B0
|
||
>
|
||
|
||
N2LMAX__NNN-1
|
||
|
||
ORG EN2L
|
||
|
||
;SOME BYTE POINTERS FOR EXTRACTING FIELDS
|
||
|
||
%DIPPNL__<POINT 3,,20>-=18 ;PANEL NUMBER
|
||
%DIPG__<POINT 3,,23>-=18 ;DIP GROUP
|
||
%DIPS__<POINT 6,,29>-=18 ;DIP SLOT
|
||
%DIPOF__<POINT 6,,35>-=18 ;DIP OFFSET
|
||
;NOTE - Old format MPG21's have no offset, but the DIP slot was <POINT 12,,35>
|
||
|
||
%CONP__<POINT 12,,35>-=18 ;CONNECTOR PIN # (AND JACK NUMBER <PINS 1-2*26>)
|
||
%CNPG__<POINT 5,,22>-=18 ;<PANEL-1>*NGRPS+GROUP
|
||
%CNJK__<POINT 1,,23>-=18 ;CONNECTOR JACK BIT
|
||
|
||
MXPNL__5 ;max number of panels wrappable at once
|
||
NGRPS__6 ;PG21-180 HAS 6 GROUPS
|
||
GRPCOL__5 ;# COLS IN GROUP
|
||
GRPROW__6 ;# ROWS IN GROUP
|
||
MAXDIP__GRPROW*GRPCOL ;# DIPS IN GROUP
|
||
MAXCNP__=26
|
||
|
||
;The 8136-PG21 consists of 180 dip slots, organized into
|
||
;6 groups of 30 dips each.
|
||
;The groups are labeled A-F, with group A to left
|
||
;Withhin a group, slots are numbered:
|
||
; 5 4 3 2 1
|
||
; 10 9 .... 6
|
||
; 15 .... 11
|
||
; 20 .... 16
|
||
; 25 .... 21
|
||
; 30 .... 26
|
||
|
||
;(All coordinates are from DIP side, assuming Scotchflex conns
|
||
; are at the top)
|
||
|
||
COMMENT
|
||
|
||
AUGAT-8136-PG21 CONNECTOR PIN FORMAT PRINTS AS #LJ#(#)
|
||
WHERE L IS THE GROUP. THE J IS LITERAL. THE FIRST DIGIT IS THE PANEL
|
||
AND THE SECOND IS THE JACK. PIN IS LAST
|
||
|
||
______|_____|_____|_____|_____|_____|
|
||
| 2223 35
|
||
| 5 |1| 12 |
|
||
|_____ ___|_|_______________________|
|
||
| | |
|
||
< | | |------------>PIN
|
||
| |
|
||
< | |------------------------->JACK 01, 12
|
||
|
|
||
< |-------------------------------># <PANEL-1>*NGRPS+GROUP
|
||
|
||
|
||
|
||
;VARIOUS FIXUP ROUTINES
|
||
MD,<
|
||
;T = LOCATION FOR BODY
|
||
;(TT= RDVER .LT. 27)
|
||
|
||
LOCFUK: CAIL TT,27 ;OLD VERSIONS HAVE DIFFERENT
|
||
POPJ P,
|
||
MOVE TT,NOMTYP ;GAD, THIS IS BLETCHEROUS
|
||
CAIN TT,PGNOM
|
||
JRST [ MOVEI TT,1 ;PATCH UP PG21'S TO LOOK LIKE 1 OF MPG21
|
||
DPB TT,[%DIPPNL,,T]
|
||
JRST .+1]
|
||
LDB TT,[POINT 12,T,35] ;CONVERT MPG21'S LOC TO LOC/OFFSET
|
||
DPB TT,[%DIPS,,T]
|
||
SETZ TT,
|
||
DPB TT,[%DIPOF,,T]
|
||
POPJ P,
|
||
>;MD
|
||
|
||
LCINIT: MOVE T,[L2NSUB,,L2N]
|
||
BLT T,L2N+L2NLEN+N2LLEN-1
|
||
MOVEI T,N2LMAX
|
||
MOVEM T,MAXN2L
|
||
POPJ P,
|
||
|
||
PRNLOC: JUMPL A,CNLOC
|
||
LDB TT,[%DIPG,,A]
|
||
LDB T,[%DIPPNL,,A] ;PANEL NUMBER
|
||
IOR TT,T
|
||
JUMPE TT,CPOPJ ;BOTH BANEL AND GROUP NULL?
|
||
PUSHJ P,PUTDEC ;PANEL #
|
||
LDB T,[%DIPG,,A] ;GROUP LETTER
|
||
PUTBYT @N2L(T) ;CONVERT TO LETTER AND PRINT
|
||
MOVEI T,2 ;SETUP FOR 2 DIGIT NUMBER PRINT
|
||
MOVEM T,NDIG
|
||
LDB T,[%DIPS,,A] ;SLOT NUMBER WITHIN GROUP
|
||
PUSHJ P,NPUTDEC ;PRINT IT OUT
|
||
MOVEI T,2 ;SETUP FOR 2 DIGIT NUMBER PRINT
|
||
MOVEM T,NDIG
|
||
LDB T,[%DIPOF,,A] ;ANY SLOT OFFSET?
|
||
JUMPE T,PRNLC1
|
||
PUTBYT "@"
|
||
MWL,< PUSHJ P,NPUTDEC >
|
||
MDPC,< PUSHJ P,PUTDEC >
|
||
PRNLC1: MOVEI TT,"-"
|
||
POPJ P,
|
||
|
||
CNLOC: LDB T,[%CNPG,,A]
|
||
JUMPE T,CPOPJ
|
||
PUSH P,T+1
|
||
SOS T
|
||
IDIVI T,NGRPS
|
||
AOS T+1
|
||
EXCH T+1,(P)
|
||
AOS T
|
||
PUSHJ P,PUTDEC ;PANEL NUMBER
|
||
POP P,T
|
||
PUTBYT @N2L(T) ;GROUP LETTER
|
||
PUTBYT "J"
|
||
LDB T,[%CNJK,,A]
|
||
AOS T
|
||
PUSHJ P,PUTDEC
|
||
MOVEI TT,"-"
|
||
POPJ P,
|
||
|
||
PRNPIN: TLNE A,MAPPWR!MAPGND
|
||
JRST [ MOVEI T,"G"
|
||
TLNN A,MAPGND
|
||
MOVEI T,"V"
|
||
PUTBYT (T)
|
||
POPJ P,]
|
||
LDB T,[%%PINN,,A]
|
||
MWL,< MOVEI TT,2
|
||
MOVEM TT,NDIG
|
||
JRST NPUTDEC
|
||
>
|
||
MDPC,< JRST PUTDEC >
|
||
|
||
;CONVERT PIN-SPEC TO POST-SPEC
|
||
;MAPOST (DWL) - CONVERT FROM DIP-LOC,PIN# TO SOCKET-LOC, PIN#
|
||
;A = MBIT+PIN#,,LOC
|
||
;B = PACKAGE
|
||
;Skips if can map, with MAPSOC set.
|
||
; Possibly MAPPWR or MAPGND if V or G posts on board
|
||
;A = New MBIT+PIN#,,LOC
|
||
;B = FLAGS,,PIN CHANGE
|
||
; %MPLOC ;LOC WAS CHANGED
|
||
; %MPPIN ;PIN WAS CHANGED, DIFFERENCE IN RH (TO CHECK FOR +1)
|
||
; %MPPL1 ;PIN NUMBER CHANGED BY 1 (KLUDGE)
|
||
|
||
MDWL,<
|
||
MAPOST: TLNN A,CRDPIN ;SHOULDN'T BE ON
|
||
TLOE A,MAPSOC
|
||
OUTSTR [ASCIZ /PIN ALREADY MAPPED TO POST???
|
||
/]
|
||
JUMPL A,[SETZ B, ;CONNECTOR, NO CHANGE
|
||
JRST CPOPJ1]
|
||
PUSH P,C
|
||
PUSH P,D
|
||
PUSH P,A
|
||
LDB D,[%DIPOF,,A] ;OFFSET FIELD WITHIN SOCKET
|
||
LDB A,[%%PINN,,A]
|
||
JUMPE A,MAPOS1
|
||
MOVEI C,=16 ;BOARD HAS 16 PIN SOCKETS
|
||
PUSHJ P,MAPPER
|
||
JRST MAPOSX
|
||
LDB T,[%DIPS,,(P)] ;NOW OFFSET SLOT
|
||
MOVEI TT,-1(T)
|
||
IDIVI TT,GRPCOL ;TTT GETS COL WITHIN ROW, TT ROW
|
||
SUB TTT,C ;DOES OFFSET OVERFLOW GROUP?
|
||
SKIPL TTT
|
||
CAIL TTT,GRPCOL
|
||
JRST MAPOSX
|
||
SUB T,C ;Column offset
|
||
ADD TT,D ;DOES OFFSET OVERFLOW GROUP?
|
||
CAIL TT,GRPROW
|
||
JRST MAPOSX
|
||
IMULI D,GRPCOL
|
||
ADD T,D
|
||
DPB T,[%DIPS,,(P)]
|
||
MAPOS1: SETZ T,
|
||
DPB T,[%DIPOF,,(P)] ;WITHIN SOCKET OFFSET GOES AWAY
|
||
DPB A,[%%PINN,,(P)]
|
||
AOS -3(P)
|
||
MAPOSX: POP P,A
|
||
POP P,D
|
||
POP P,C
|
||
POPJ P,
|
||
>;MDWL
|
||
|
||
GTSLTL: SETZM DESTIN
|
||
GETNUM ;GET PANEL NUMBER
|
||
CAILE NUMREG,MXPNL ;MAX PANELS IN ONE ASSEMBLY
|
||
POPJ P,
|
||
DPB NUMREG,[%DIPPNL,,DESTIN] ;STORE AS PANEL NUMBER
|
||
CAIN CHRREG,12 ;END OF LINE?
|
||
JUMPE NUMREG,CPOPJ1 ;YES, AND NULL NUMBER, JUST RETURN
|
||
JUMPE NUMREG,CPOPJ ;OTHERWISE ZERO IS IN ERROR
|
||
PUSHJ P,CHKLET ;LETTER TYPED NEXT?
|
||
POPJ P, ;NO, ERROR
|
||
SKIPG D,L2N(CHRREG) ;GET NUMBER CORRESPONDING TO LETTER
|
||
POPJ P, ;NON-EX OR GIOQ!!
|
||
CAILE D,NGRPS ;LEGAL GROUP LETTER?
|
||
POPJ P,
|
||
DPB D,[%DIPG,,DESTIN] ;DEPOSIT AS GROUP LETTER
|
||
GETNUM ;GET NEXT NUMBER
|
||
JUMPE NUMREG,CPOPJ ;ZERO, ERROR
|
||
CAILE NUMREG,=30 ;EXCEEDS MAX SLOT NUMBER WITHIN GROUP?
|
||
POPJ P, ;YES
|
||
DPB NUMREG,[%DIPS,,DESTIN] ;DEPOSIT AS SLOT NUMBER
|
||
CAIE CHRREG,"@" ;ANY SLOT OFFSET?
|
||
JRST CPOPJ2 ;RETURN HAPPINESS
|
||
GETNUM
|
||
DPB NUMREG,[%DIPOF,,DESTIN]
|
||
JRST CPOPJ2
|
||
|
||
MD,<
|
||
GTCONP: SETZM DESTIN
|
||
GETNUM
|
||
LAY,< CAIE CHRREG,TEXIST >
|
||
CAIN CHRREG,12
|
||
JUMPE NUMREG,CPOPJ1 ;CARRIAGE RETURN ONLY
|
||
JUMPE NUMREG,CPOPJ ;ERROR IF NO NUMBER
|
||
CAILE NUMREG,MXPNL ;MAX PANELS
|
||
POPJ P, ;ERROR OTHERWISE
|
||
SOS NUMREG
|
||
IMULI NUMREG,NGRPS
|
||
MOVEM NUMREG,DESTIN
|
||
PUSHJ P,CHKLET ;CHECK FOR LETTER
|
||
POPJ P, ;BAD LETTER, ERROR
|
||
SKIPN CHRREG,L2N(CHRREG)
|
||
POPJ P,
|
||
ADD CHRREG,DESTIN
|
||
SETZM DESTIN
|
||
DPB CHRREG,[POINT 5,DESTIN,22]
|
||
GETNUM
|
||
JUMPN NUMREG,CPOPJ ;BETTER NOT BE A NUMBER HERE
|
||
CAIE CHRREG,"J" ;AND LETTER BETTER BE J
|
||
POPJ P,
|
||
GETNUM
|
||
JUMPE NUMREG,CPOPJ ;BETTER BE A NUMBER HERE
|
||
CAIN CHRREG,"-" ;TERMINATED BY A -
|
||
CAILE NUMREG,2 ;AND LESS THAN OR EQUAL TO 2
|
||
POPJ P,
|
||
SOS NUMREG
|
||
DPB NUMREG,[POINT 1,DESTIN,23] ;TEMP STORAGE FOR CONNECTOR NUMBER
|
||
GETNUM
|
||
JUMPE NUMREG,CPOPJ ;BETTER BE A NON ZERO NUMBER
|
||
CAILE NUMREG,MAXCNP ;LESS THAN 27
|
||
POPJ P,
|
||
DPB NUMREG,[POINT 12,DESTIN,35]
|
||
CAIE CHRREG,12 ;TERMINATION HAD BETTER BE HERE AND EOL
|
||
POPJ P,
|
||
JRST CPOPJ2 ;ALL'S WELL THAT ENDS WELL
|
||
>;MD
|
||
|
||
MWL,<
|
||
|
||
GETLOC: GETNUM
|
||
JUMPE NUMREG,CPOPJ ;NON ZERO NUMBER
|
||
CAILE NUMREG,MXPNL ;PANEL # MAX
|
||
POPJ P,
|
||
LSH NUMREG,=15 ;INTO LEFT 3 BITS OF RIGHT HALF
|
||
HRLM NUMREG,(P) ;INTO LH OF PDL
|
||
PUSHJ P,CHKLET
|
||
POPJ P, ;NOT A LETTER
|
||
SKIPN CHRREG,L2N(CHRREG)
|
||
POPJ P,
|
||
DPB CHRREG,[POINT 3,(P),5] ;DEPOSIT GROUP LETTER INTO LH OF PDL
|
||
GETNUM
|
||
JUMPN NUMREG,[ CAILE NUMREG,=30 ;HERE FOR DIP LOC
|
||
POPJ P, ;ONLY 30 DIP SLOTS PER GROUP
|
||
HLRZ TT,(P)
|
||
DPB NUMREG,[%DIPS,,TT]
|
||
CAIE CHRREG,"@"
|
||
JRST CPOPJ1
|
||
HRLM TT,(P)
|
||
GETNUM
|
||
HLRZ TT,(P)
|
||
DPB NUMREG,[%DIPOF,,TT]
|
||
JRST CPOPJ1]
|
||
LDB NUMREG,[POINT 3,(P),2]
|
||
SOS NUMREG
|
||
IMULI NUMREG,NGRPS
|
||
LDB TT,[POINT 3,(P),5]
|
||
ADD NUMREG,TT
|
||
DPB NUMREG,[POINT 5,(P),4]
|
||
PUSHJ P,CHKLET ;HERE TO DO CONNECTOR PIN
|
||
POPJ P,
|
||
CAIE CHRREG,"J"
|
||
POPJ P,
|
||
GETNUM
|
||
JUMPE NUMREG,CPOPJ
|
||
CAILE NUMREG,2 ;CHECK FOR LEGAL JACK #
|
||
POPJ P,
|
||
SOS NUMREG
|
||
DPB NUMREG,[POINT 1,(P),5] ;DEPOSIT CONNECTOR NUMBER INTO RH OF LH OF PDL
|
||
HLRZ TT,(P)
|
||
TRZ TT,7777
|
||
TLO TT,MAPCON ;SIGNAL AS CONNECTOR
|
||
JRST CPOPJ1
|
||
|
||
RAYDIP: TLNN A,MAPSOC
|
||
PUSHJ P,FUCKUP
|
||
PUSHJ P,PRNLOC
|
||
PUTSTR [ASCIZ / /] ;3 SPACES
|
||
TLNE A,MAPPWR!MAPGND
|
||
JRST RAYDP1
|
||
LDB T,[%%PINN,,A] ;DIP PIN NUMBER
|
||
MOVEI TTT,2
|
||
MOVEM TTT,NDIG
|
||
JRST NPUTDEC
|
||
|
||
RAYDP1: PUTBYT "0"
|
||
MOVEI T,"G"
|
||
TLNN A,MAPGND
|
||
MOVEI T,"V"
|
||
PUTBYT (T)
|
||
POPJ P,
|
||
|
||
NOTYET(AUGDIP:,CPARTP:,CPARTP:,SEQLOC:)
|
||
>;MWL
|
||
|
||
CPNSEP: MOVE TT,T
|
||
TRZ T,7777
|
||
ANDI TT,7777
|
||
POPJ P,
|
||
|
||
CPNMER: SKIPN T
|
||
SKIPE TT
|
||
CAIA
|
||
MOVEI TT,1 ;T,TT=0 MEANS INITIALIZE TO FIRST
|
||
CAILE TT,MAXCNP ;CARRY INTO JACK, FROM PIN#
|
||
JRST [ ADDI T,10000
|
||
MOVEI TT,1
|
||
JRST .+1]
|
||
DPB TT,[001200,,T]
|
||
POPJ P,
|
||
|
||
|
||
QUPIN: SETZ A, ;NO RULE NUMBER
|
||
POPJ P, ;AND IT'S NOT WILD!!
|
||
|
||
NOTYET(CPNMAP:)
|
||
|
||
MDWL,<
|
||
MWL,<
|
||
SUBTTL WIRE WRAP ROUTINES -- MULTIPLE PG21'S
|
||
|
||
comment
|
||
|
||
All calculations are done from the dip side.
|
||
|
||
(0,0) at lower left hand corner in left handed coordinate system.
|
||
Dip sockets are arranged in 5x6 groups. These 30 dip groups come
|
||
in pairs. Each group comes with a pair of Scotch Flex(R) connectors
|
||
labeled "J1" and "J2". There can be up to 6 30 dip groups on one
|
||
board. The horizontal spacing between groups is 2.700".
|
||
|
||
There are 5 panels, vertically arranged. The vertical spacing
|
||
is 7.500".
|
||
|
||
5A30(8) is at (0,0). 5AJ2-26 is at (500,6100). 5AJ1-26 is at (500,6400).
|
||
|
||
It follows that 5B30(8) is at (2700,0)
|
||
|
||
|
||
UMLCOL__GRPROW ;UML INTERCHANGES ROWS AND COLUMNS
|
||
UMLROW__GRPCOL
|
||
PNLOFT__=7500 ;7.500" VERTICAL SPACING BETWEEN PANELS
|
||
GXOFST__=2700 ;2.700" GROUP HORIZONTAL SPACING
|
||
XDIPSP__ =500 ; .500" DIP HORIZONTAL SPACING
|
||
YDIPSP__=1000 ;1.000" DIP VERTICAL SPACING
|
||
XPINSP__ =300 ; .300" DIP PIN HORIZONTAL SPACING
|
||
YPINSP__ =100 ; .100" DIP PIN VERTICAL SPACING
|
||
PXOFST__ =300 ; .300" X OFFSET FOR POWER PIN
|
||
PYOFST__ =800 ; .800" Y OFFSET FOR POWER AND GROUND PINS
|
||
JXOFST__ =500 ; .500" X OFFSET FOR JACKS
|
||
JYOFST__=6100 ;6.100" Y OFFSET FOR J2
|
||
JYOFS1__ =300 ; .300" Y OFFSET FROM J2 TO J1
|
||
PXPNSP__ =100 ; .100" CONNECTOR PIN VERTICAL SPACING
|
||
PYPNSP__ =100 ; .100" CONNECTOR PIN HORIZONTAL SPACING
|
||
|
||
|
||
^^MP21TV__. ;TRANSFER VECTOR FOR DOUBLE HEIGHT DEC BOARDS
|
||
|
||
|
||
-1 ;FLAGS IF WIRE WRAP OR PC BOARD
|
||
JRST CPOPJ ;THE INIT ROUTINE
|
||
JRST MAPRC ;MAP ROW/COLS INTO GENERATED LOCS
|
||
JRST MAPPAD ;MAP PADDLE/LETTER/SIDE INTO CONN LOCS
|
||
JRST DISTPP ;DISTANCE CALC ROUTINE
|
||
JRST FPWR ;FIND A POST WITH POWER
|
||
JRST FGND ;FIND A POST WITH GND
|
||
JRST MAPIT ;CONVERT POST INTO X,Y,BITS
|
||
JRST PAKSIZ ;FIND DIMENSION OF DIP OUTLINE
|
||
JRST GNDCLR ;?
|
||
JRST WAGGND ;?
|
||
JRST GNDOUT ;?
|
||
JRST VCCOUT ;?
|
||
|
||
MXPNL*UMLROW*NGRPS ;NROWS (USED FOR UML ONLY)
|
||
UMLCOL ;NCOLS (USED FOR UML ONLY)
|
||
UMLCOL ;NCLPRG (USED FOR UML ONLY)
|
||
UMLROW*2 ;NRWPRP (USED FOR UML ONLY)
|
||
MXPNL*MAXDIP*NGRPS ;DIPSLT_NROWS*NCOLS (USED FOR UML ONLY)
|
||
SETPAD(MXPNL*NGRPS*2) ;NPADS (USED FOR UML ONLY)
|
||
XWD -MAXCNP,1 ;PADLET (USED FOR UML ONLY)
|
||
XWD -1,0 ;PADPIN (USED FOR UML ONLY)
|
||
=10 ;FRACTN
|
||
=200*2 ;WRAPMG .200" INSULATION AROUND EACH POST
|
||
=1500 ;POSTMG .750" BARE WIRE AROUND EACH POST
|
||
0 ;NEXTR
|
||
CHECK MP21TV,WTVLEN
|
||
|
||
;TABLES FOR MAPIT
|
||
|
||
;**************************************** DIP PINS
|
||
|
||
DEFINE XY(X,Y)
|
||
< X*XPINSP,,Y*YPINSP
|
||
>
|
||
|
||
PINTAB:
|
||
FOR Y_7, 0, -1
|
||
< XY(1,Y)
|
||
>
|
||
FOR Y_0, 7, 1
|
||
< XY(0,Y)
|
||
>
|
||
;**************************************** DIP LOCATIONS
|
||
|
||
DEFINE XY(X,Y)
|
||
< X*XDIPSP,,Y*YDIPSP
|
||
>
|
||
|
||
DIPLOC:
|
||
FOR Y_5, 0, -1
|
||
<FOR X_4, 0, -1
|
||
< XY(X,Y)
|
||
>>
|
||
;**************************************** SCOTCH-FLEX PINS
|
||
|
||
DEFINE XY(X,Y)
|
||
< X*PXPNSP,,Y*PYPNSP
|
||
>
|
||
|
||
FLXPIN:
|
||
FOR Y_1, 0, -1
|
||
<FOR X_0, =12, 1
|
||
< XY(X,Y)
|
||
>>
|
||
MAPIT: JUMPL A,CONMAP
|
||
PUSHJ P,MAPLOC ;MAP DIP LOCN
|
||
POPJ P, ;BAD LOCN
|
||
LDB TT,[%%PINN,,A] ;PIN #
|
||
TLNE A,MAPPWR!MAPGND ;WANT POWER OR GROUND?
|
||
JRST PINPGP ;YES, RETURN FIX IT UP
|
||
MAPIT0: ADD T,PINTAB-1(TT) ;ADD EXTRA XY FOR PIN
|
||
SETZB TT,TTT ;FLUSH AWAY THOSE GOODIES
|
||
JRST CPOPJ1
|
||
|
||
;POWER AND GROUND PIN FOR DIP
|
||
|
||
PINPGP: JUMPN TT,CPOPJ ;THE PIN # SHOULD BE ZERO
|
||
ADDI T,PYOFST ;FIX THE Y
|
||
TLNN A,MAPPWR
|
||
JRST [ MOVSI TT,GND ;HE WANTS GND
|
||
JRST PINPG1]
|
||
ADD T,[PXOFST,,0] ;HE WANTS PWR
|
||
MOVSI TT,PWR
|
||
PINPG1: SETZ TTT,
|
||
JRST CPOPJ1
|
||
|
||
;Convert PIN-SPEC in A into DIP X,Y locn (T)
|
||
MAPLOC: LDB TTT,[%DIPPNL,,A] ;GET PANEL NUMBER
|
||
JUMPE TTT,CPOPJ ;LOSER
|
||
MOVEI TT,MXPNL ;MAX NUMBER OF PANELS
|
||
CAILE TTT,MXPNL ;TOO BIG
|
||
POPJ P,
|
||
SUBM TT,TTT
|
||
IMULI TTT,PNLOFT ;VERTICAL OFFSET OF PANEL
|
||
LDB TT,[%DIPG,,A] ;GROUP LETTER
|
||
LDB T,[%DIPS,,A] ;DIP #
|
||
JUMPE T,CPOPJ
|
||
CAILE T,MAXDIP ;TOO MANY DIPS FOR SLOT
|
||
POPJ P,
|
||
MOVE T,DIPLOC-1(T) ;XY OF DIP SLOT
|
||
IMULI TT,GXOFST ;X FUDGE FOR GROUP
|
||
MOVSI TT,-GXOFST(TT)
|
||
ADD T,TT ;LOCATION OF DIP ON BOARD
|
||
ADD T,TTT ;ADD IN PANEL OFFSET
|
||
JRST CPOPJ1
|
||
|
||
;HERE FOR CONNECTOR PINS
|
||
|
||
CONMAP: LDB TT,[%CNPG,,A] ;PANEL AND GROUP NUMBER
|
||
JUMPE TT,CPOPJ ;ILLEGAL PANEL NO
|
||
PUSH P,TT+1
|
||
SOS TT
|
||
IDIVI TT,NGRPS
|
||
CAIL TT,MXPNL
|
||
JRST [ POP P,TT+1
|
||
POPJ P,] ;TOO BIG A PANEL NUMBER
|
||
MOVEI T,MXPNL-1
|
||
SUBM T,TT ;0 FOR PANEL <MXPNL>
|
||
IMULI TT,PNLOFT ;OFFSET BETWEEN PANELS
|
||
MOVE T,TT+1
|
||
POP P,TT+1
|
||
IMULI T,GXOFST
|
||
HRLZ T,T ;XY OF GROUP
|
||
ADD T,[JXOFST,,JYOFST] ;LOC OF J2
|
||
ADD T,TT ;ADD IN PANEL OFFSET
|
||
LDB TT,[%CNJK,,A]
|
||
SKIPG TT
|
||
ADDI T,JYOFS1 ;ADD OFFSET FOR JACK 1
|
||
LDB TT,[%%PINN,,A] ;PIN #
|
||
JUMPE TT,CPOPJ
|
||
CAILE TT,MAXCNP ;REASONABLE # OF PINS
|
||
POPJ P,
|
||
ADD T,FLXPIN-1(TT)
|
||
SETZB TT,TTT
|
||
JRST CPOPJ1
|
||
|
||
PAKSIZ: SKIPE ILLPAK(B) ;THIS PACKAGE KNOWN TO BOARD?
|
||
POPJ P,
|
||
LDB T,[%DIPS,,A] ;STARTING DIP SLOT
|
||
SOS T
|
||
IDIVI T,GRPCOL ;T row with 0 on top, TT column with 0 to right
|
||
SUB T,PAKHGT(B) ;Vertical extent-1
|
||
SUB TT,PAKWID(B) ;Horizontal extent-1
|
||
JUMPL T,CPOPJ
|
||
JUMPL TT,CPOPJ
|
||
CAIGE T,GRPROW
|
||
CAIL TT,GRPCOL ;MUST BE WITHIN GROUP HORIZONTALLY
|
||
POPJ P,
|
||
JRST PAKDIM ;GET PACKAGE DIMENSIONS
|
||
|
||
;Define illegal package types in this board
|
||
ILLPAK: BLOCK NPACK
|
||
FOR @' I IN (22,24,36,40,48,64)
|
||
<ORG ILLPAK+K.'I -1
|
||
>
|
||
ORG ILLPAK+NPACK
|
||
|
||
MAPRC: HLRZ TT,T ;(1,1) IS DIP IN UPPER LEFT HAND CORNER
|
||
SOJL TT,CPOPJ
|
||
CAML TT,NROWS
|
||
POPJ P,
|
||
HRRZS T ;ROW IN TT, COL IN T
|
||
SOJL T,CPOPJ
|
||
CAML T,NCOLS ;(0,0) IS NOW IN UPPER LEFT
|
||
POPJ P,
|
||
PUSH P,[0]
|
||
IDIVI TT,NGRPS*GRPCOL ;BREAK INTO PANEL#,COL WITHIN PANEL
|
||
ADDI TT,1
|
||
DPB TT,[%DIPPNL,,(P)]
|
||
MOVE TT,TTT
|
||
IDIVI TT,GRPCOL ;BREAK INTO GROUP#,COL#
|
||
ADDI TT,1
|
||
DPB TT,[%DIPG,,(P)]
|
||
MOVNS T ;LAST UML COL CORRESPONDS TO FIRST DIP ROW
|
||
MOVEI T,UMLCOL-1(T)
|
||
IMULI T,UMLROW ;DIPSLOTS COUNT BY UMLROWS, THEN UMLCOLS
|
||
ADDI T,1(TTT)
|
||
DPB T,[%DIPS,,(P)]
|
||
POP P,T
|
||
JRST CPOPJ1
|
||
|
||
MAPPAD: MOVE TTT,T ;JACK #, STARTING AT 1
|
||
SETZ T,
|
||
CAIG TT,MAXCNP ;PIN #
|
||
CAILE TTT,<MXPNL>*NGRPS*2 ;2 JACKS PER GROUP
|
||
POPJ P,
|
||
SOS TTT
|
||
DPB TTT,[%CNJK,,T]
|
||
ASH TTT,-1
|
||
AOS TTT
|
||
DPB TTT,[%CNPG,,T]
|
||
DPB TT,[%%PINN,,T]
|
||
TLO T,MAPCON
|
||
POPJ P,
|
||
|
||
|
||
FPWR: CAIE B,=500 ;NOT +5.00V??
|
||
JRST [ SETZ A,
|
||
POPJ P,]
|
||
TLO A,MAPPWR!MAPSOC ;MAKE IT "V" PIN
|
||
JUMPL A,FPWRC ;CONNECTOR?
|
||
TLZ A,$$PINN
|
||
POPJ P,
|
||
|
||
FGND: TLO A,MAPGND!MAPSOC ;MAKE IT "G" PIN
|
||
JUMPL A,FGNDC
|
||
TLZ A,$$PINN
|
||
POPJ P,
|
||
|
||
FPWRC: ;FIND DIP SLOT CLOSEST TO CONN PIN
|
||
FGNDC: LDB T,[%CNPG,,A]
|
||
SOS T
|
||
IDIVI T,NGRPS
|
||
AOS T
|
||
AOS TT
|
||
TRZ A,-1
|
||
DPB T,[%DIPPNL,,A] ;GET THE RIGHT PANEL,GROUP
|
||
DPB TT,[%DIPG,,A]
|
||
LDB T,[%%PINN,,A]
|
||
SOS T
|
||
IDIVI T,=13
|
||
MOVE T,[ REPEAT 4,<2>
|
||
REPEAT 5,<3>
|
||
REPEAT 4,<4>](TT)
|
||
DPB T,[%DIPS,,A]
|
||
TLZ A,$$PINN
|
||
POPJ P,
|
||
|
||
FOR NAME (GNDCLR:,WAGGND:,GNDOUT:,VCCOUT:)
|
||
<NOTYET(NAME)
|
||
>
|
||
>;MWL
|
||
>;MDWL
|
||
BEND MPG21
|