mirror of
https://github.com/PDP-10/its.git
synced 2026-03-07 19:40:48 +00:00
715 lines
16 KiB
Plaintext
715 lines
16 KiB
Plaintext
;<WIRELIST>MPG216.FAI.9, 15-NOV-75 19:03:46, EDIT BY HELLIWELL
|
||
.ADD(ALLLOCS,MPG216,LM216V)
|
||
MDWL,<
|
||
.ADD(ALLWW,MPG216,M216TV)
|
||
>;MDWL
|
||
;Note! These .ADD's must be outside of block structure
|
||
|
||
BEGIN MPG216
|
||
|
||
;THE TRANSFER VECTOR FOR THE AUGAT 8136 PG216-180 BOARD
|
||
|
||
^LM216V:
|
||
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 CPOPJ ;LOCFUK - FIXUP OLD NOMEN
|
||
>;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#/] ;WIRELISTER BODY CUE
|
||
[ASCIZ/#LJ#/] ;WIRELISTER CONNECTOR BODY CUE
|
||
>;MWL
|
||
CHECK LM216V,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
|
||
|
||
%CNPPNL__<POINT 3,,20>-=18 ;PANEL NUMBER (MUST BE SAME AS DIP)
|
||
%CNPG__<POINT 3,,23>-=18 ;CONN GROUP ( " " )
|
||
%CNPJK__<POINT 1,,26>-=18 ;CONNECTOR JACK BIT
|
||
%CONP__<POINT 9,,35>-=18 ;CONNECTOR PIN # (AND JACK NUMBER <PINS 1-2*26>)
|
||
GPINS__400 ;NOMEN FOR "G" PINS ON BOARD STARTS AT 400
|
||
; 401 IS "G1", ETC.
|
||
MXPNL__5 ;max number of panels wrappable at once
|
||
NGRPS__6 ;PG216-180 HAS 6 GROUPS
|
||
GRPCOL__5 ;# COLS IN GROUP
|
||
GRPROW__6 ;# ROWS IN GROUP
|
||
GRPDIP__GRPROW*GRPCOL ;# DIPS IN GROUP
|
||
MXCNP1__=40 ;MAX # CONNECTOR PINS FOR J1
|
||
MXCNP2__=50 ;MAX # CONNECTOR PINS FOR J2
|
||
J1TO2__2 ;J1 IS OFFSET 2 PINS TO RIGHT OF J2
|
||
|
||
JACKSZ: MXCNP1
|
||
MXCNP2
|
||
|
||
|
||
;The 8136-PG216 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-X8136-PG216 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
|
||
|
||
______|_____|_____|_____|_____|_____|
|
||
| 20 23 26 35
|
||
| 3 | 3 | | | 9 |
|
||
|_____|_____|___|_|_________________|
|
||
| | | |
|
||
< | | | |------------>PIN
|
||
| | |
|
||
| | |-------------------JACK 01, 12
|
||
| |
|
||
< | |--------------------------># GROUP
|
||
|
|
||
< |-------------------------------># PANEL
|
||
|
||
|
||
|
||
|
||
|
||
LCINIT: MOVE T,[L2NSUB,,L2N]
|
||
BLT T,L2N+L2NLEN+N2LLEN-1
|
||
MOVEI T,N2LMAX
|
||
MOVEM T,MAXN2L
|
||
POPJ P,
|
||
|
||
PRNLOC: JUMPE A,CPOPJ
|
||
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,[%CNPPNL,,A] ;PANEL NUMBER
|
||
PUSHJ P,PUTDEC ;PANEL #
|
||
LDB T,[%CNPG,,A] ;GROUP LETTER
|
||
PUTBYT @N2L(T) ;CONVERT TO LETTER AND PRINT
|
||
PUTBYT "J"
|
||
LDB T,[%CNPJK,,A]
|
||
AOS T
|
||
PUSHJ P,PUTDEC
|
||
MOVEI TT,"-"
|
||
POPJ P,
|
||
|
||
PRNPIN: LDB T,[%%PINN,,A]
|
||
JUMPL A,PRNPN1
|
||
CAIGE T,GPINS
|
||
JRST PRNPN1
|
||
SUBI T,GPINS
|
||
PUTBYT "G"
|
||
SKIPA TT,[1]
|
||
PRNPN1:
|
||
MWL,<
|
||
MOVEI TT,2
|
||
MOVEM TT,NDIG
|
||
JRST NPUTDEC
|
||
>;MWL
|
||
MDPC,< JRST PUTDEC
|
||
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,=20 ;BOARD HAS 20 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
|
||
;Slots are numbered right to left, so offset is subtracted
|
||
SUB TTT,C ;DOES OFFSET OVERFLOW GROUP?
|
||
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: PUSH P,A
|
||
MOVEI A,[[ASCIZ /#L#./]
|
||
0]
|
||
PUSHJ P,LNPARS
|
||
JRST GTSL0
|
||
JRST GTSL1
|
||
SETZ TT,
|
||
PUSHJ P,GATLOC
|
||
JRST GTSL0
|
||
CAIE CHRREG,"@"
|
||
JRST GTSL2
|
||
PUSH P,TT
|
||
GETNUM
|
||
POP P,TT
|
||
JUMPE NUMREG,GTSL0
|
||
DPB NUMREG,[%DIPOF,,TT]
|
||
GTSL2: MOVEM TT,DESTIN
|
||
AOS -1(P)
|
||
GTSL1: AOS -1(P)
|
||
GTSL0: POP P,A
|
||
POPJ P,
|
||
|
||
GATLOC: SKIPE A,ARG1
|
||
CAILE A,MXPNL
|
||
POPJ P,
|
||
DPB A,[%DIPPNL,,TT]
|
||
SKIPE A,ARG2
|
||
CAILE A,NGRPS
|
||
POPJ P,
|
||
DPB A,[%DIPG,,TT]
|
||
SKIPE A,ARG3
|
||
CAILE A,GRPDIP
|
||
POPJ P,
|
||
DPB A,[%DIPS,,TT]
|
||
JRST CPOPJ1
|
||
|
||
MD,<
|
||
GTCONP: SETZM DESTIN
|
||
PUSH P,A
|
||
MOVEI A,[[ASCIZ /#LJ#-#/]
|
||
0]
|
||
PUSHJ P,LNPARS
|
||
JRST GTCON0
|
||
JRST GTCON1 ;NULL INPUT
|
||
PUSHJ P,GATCON
|
||
JRST GTCON0
|
||
MOVE A,ARG4
|
||
ADDI A,JACKSZ-1(A)
|
||
EXCH A,ARG6
|
||
CAMLE A,@ARG6
|
||
JRST GTCON0
|
||
DPB A,[%CONP,,TT]
|
||
HRRZM TT,DESTIN ;LH IS B-R-S, 0 FOR THIS BOARD
|
||
AOS -1(P)
|
||
GTCON1: AOS -1(P)
|
||
GTCON0: POP P,A
|
||
POPJ P,
|
||
>;MD
|
||
|
||
GATCON: SETZ TT,
|
||
SKIPE A,ARG1
|
||
CAILE A,MXPNL
|
||
POPJ P,
|
||
DPB A,[%CNPPNL,,TT]
|
||
SKIPE A,ARG2
|
||
CAILE A,NGRPS
|
||
POPJ P,
|
||
DPB A,[%CNPG,,TT]
|
||
SKIPE A,ARG4
|
||
CAILE A,2
|
||
POPJ P,
|
||
SOS A
|
||
DPB A,[%CNPJK,,TT]
|
||
TLO TT,MAPCON
|
||
JRST CPOPJ1
|
||
|
||
MWL,<
|
||
|
||
GETLOC: MOVEI A,[[ASCIZ /#L#/]
|
||
[ASCIZ /#L#@#/]
|
||
[ASCIZ /#LJ#/]
|
||
0]
|
||
PUSHJ P,LNPARSE
|
||
POPJ P,
|
||
POPJ P,
|
||
CAIN A,2
|
||
JRST GATCON
|
||
SETZ TT,
|
||
MOVE T,ARG5
|
||
CAIN A,1 ;THE OFFSET CASE
|
||
DPB T,[%DIPOF,,TT]
|
||
JRST GATLOC
|
||
|
||
RAYDIP: TLNN A,MAPSOC
|
||
PUSHJ P,FUCKUP
|
||
PUSHJ P,PRNLOC
|
||
LDB T,[%%PINN,,A] ;DIP PIN NUMBER
|
||
CAIL T,GPINS
|
||
JRST RAYDP1
|
||
PUTSTR [ASCIZ / /] ;3 SPACES
|
||
MOVEI TTT,2
|
||
MOVEM TTT,NDIG
|
||
JRST NPUTDEC
|
||
|
||
RAYDP1: SUBI T,GPINS
|
||
PUTSTR [ASCIZ / /] ;2 SPACES
|
||
CAIGE T,=10
|
||
PUTBYT 40
|
||
PUTBYT "G"
|
||
JRST PUTDEC
|
||
|
||
FOR NAME IN (AUGDIP:,CPARTP:,CONGIN:,SEQLOC:)
|
||
<NOTYET(NAME)
|
||
>
|
||
>;MWL
|
||
|
||
CPNSEP: LDB TT,[%CONP,,T]
|
||
MOVEI TTT,0
|
||
DPB TTT,[%CONP,,T]
|
||
POPJ P,
|
||
|
||
CPNMER: SKIPN T
|
||
SKIPE TT
|
||
JRST CPNMR1
|
||
MOVEI TT,1 ;T,TT=0 MEANS INITIALIZE TO FIRST
|
||
DPB TT,[%CNPG,,T] ;JACK STARTS OUT AT ZERO, NO INITIALIZATION
|
||
DPB TT,[%CNPPNL,,T]
|
||
CPNMR1: LDB TTT,[%CNPJK,,T]
|
||
CAMG TT,JACKSZ(TTT)
|
||
JRST CNPMR1
|
||
MOVEI TT,1 ;CARRY INTO JACK, FROM PIN#
|
||
AOS TTT
|
||
DPB TTT,[%CNPJK,,T]
|
||
CAIGE TTT,2
|
||
JRST CNPMR1
|
||
LDB TTT,[%CNPG,,T]
|
||
AOS TTT
|
||
DPB TTT,[%CNPG,,T]
|
||
CAIGE TTT,NGRPS
|
||
JRST CNPMR1
|
||
MOVEI TTT,1
|
||
DPB TTT,[%CNPG,,T]
|
||
LDB TTT,[%CNPPNL,,T]
|
||
AOS TTT
|
||
DPB TTT,[%CNPPNL,,T]
|
||
CNPMR1: DPB TT,[%CONP,,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 PG216'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__=8100 ;8.100" VERTICAL SPACING BETWEEN PANELS
|
||
GXOFST__=2700 ;2.700" GROUP HORIZONTAL SPACING
|
||
XDIPSP__ =500 ; .500" DIP HORIZONTAL SPACING
|
||
YDIPSP__=1100 ;1.100" DIP VERTICAL SPACING
|
||
XPINSP__ =300 ; .300" DIP PIN HORIZONTAL SPACING
|
||
YPINSP__ =100 ; .100" DIP PIN VERTICAL SPACING
|
||
GNDXOF__ =100 ; .100" X OFFSET FOR TWP GROUND PINS
|
||
BRDGND__=10 ; PIN 10 IS DEDICATED GROUND
|
||
BRDPWR__=20 ; PIN 20 IS DEDICATED POWER
|
||
;CONNECTORS
|
||
JXOFST__ =0 ; .000" X OFFSET FOR JACKS
|
||
JYOFST__=6700 ;6.700" 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
|
||
|
||
|
||
^^M216TV__. ;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*GRPDIP*NGRPS ;DIPSLT_NROWS*NCOLS (USED FOR UML ONLY)
|
||
SETPAD(MXPNL*NGRPS*2) ;NPADS (USED FOR UML ONLY)
|
||
XWD -MXCNP2,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 M216TV,WTVLEN
|
||
|
||
;TABLES FOR MAPIT
|
||
|
||
;**************************************** DIP PINS
|
||
|
||
DEFINE XY(X,Y)
|
||
< X*XPINSP,,Y*YPINSP
|
||
>
|
||
|
||
PINTAB:
|
||
FOR Y_9, 0, -1
|
||
< XY(0,Y) ;first col of pins is on left (DIP side)
|
||
>
|
||
FOR Y_0, 9, 1
|
||
< XY(1,Y) ;2nd col is on right, +X is to right
|
||
>
|
||
;**************************************** DIP LOCATIONS
|
||
|
||
DEFINE XY(X,Y)
|
||
< X*XDIPSP,,Y*YDIPSP
|
||
>
|
||
|
||
DIPLOC:
|
||
FOR Y_<GRPROW-1>, 0, -1
|
||
<FOR X_<GRPCOL-1>, 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, <MXCNP2/2-1>, 1
|
||
< XY(X,Y)
|
||
>>
|
||
MAPIT: JUMPL A,CONMAP
|
||
PUSHJ P,MAPLOC ;MAP DIP LOCN
|
||
POPJ P, ;BAD LOCN
|
||
LDB TTT,[%%PINN,,A] ;PIN #
|
||
CAIL TTT,GPINS ;WANT POWER OR GROUND?
|
||
JRST PINPGP ;YES, RETURN FIX IT UP
|
||
MAPIT0: ADD T,PINTAB-1(TTT) ;ADD EXTRA XY FOR PIN
|
||
SETZ TT,
|
||
CAIN TTT,BRDGND
|
||
MOVSI TT,GND
|
||
CAIN TTT,BRDPWR
|
||
MOVE TT,[PWR,,=500] ;+5.00 VOLTS
|
||
SETZ TTT, ;FLUSH AWAY THOSE GOODIES
|
||
JRST CPOPJ1
|
||
|
||
; TWP GROUND PINS FOR SOCKET
|
||
|
||
PINPGP: ADD T,PINTAB-GPINS-1(TTT)
|
||
ADD T,[GNDXOF,,] ;EXTRA TWP GND PINS ARE .1 TO RIGHT
|
||
MOVSI TT,GND
|
||
PINPG1: SETZ TTT,
|
||
JRST CPOPJ1
|
||
|
||
;Convert PIN-SPEC in A into DIP X,Y locn (T)
|
||
;Y IS + UP
|
||
;X IS + RIGHT (FROM DIP SIDE)
|
||
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 ;TTT gets <MXPNL-panel>, make 1 on top
|
||
IMULI TTT,PNLOFT ;VERTICAL OFFSET OF PANEL
|
||
LDB TT,[%DIPG,,A] ;GROUP LETTER
|
||
LDB T,[%DIPS,,A] ;DIP #
|
||
JUMPE T,CPOPJ
|
||
CAILE T,GRPDIP ;TOO MANY DIPS FOR SLOT
|
||
POPJ P,
|
||
MOVE T,DIPLOC-1(T) ;XY OF DIP SLOT
|
||
IMULI TT,GXOFST ;X FUDGE FOR GROUP, group A to left
|
||
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 TTT,[%CNPPNL,,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,[%CNPG,,A] ;GROUP LETTER
|
||
IMULI TT,GXOFST ;X FUDGE FOR GROUP
|
||
HRLI TTT,-GXOFST(TT)
|
||
LDB TT,[%CNPJK,,A]
|
||
ADDI TTT,JYOFST ;VERT OFFSET TO J2
|
||
SKIPG TT
|
||
ADDI TTT,JYOFS1 ; OFFSET TO J1
|
||
LDB T,[%%PINN,,A]
|
||
JUMPE T,CPOPJ
|
||
JUMPE TT,[CAILE T,MXCNP1 ;MAKE J1 CORRESPOND TO J2'S 50 PINS
|
||
POPJ P,
|
||
CAILE T,MXCNP1/2 ;IN BOTTOM ROW?
|
||
ADDI T,<MXCNP2-MXCNP1>/2 ;J2'S BOTTOM ROW STARTS +5 PINS W.R.T. J1
|
||
ADDI T,J1TO2 ;AND J1 IS DISPLACED 2 PINS RIGHT
|
||
JRST .+1]
|
||
CAILE T,MXCNP2
|
||
POPJ P,
|
||
SETZ TT,
|
||
CAILE T,MXCNP2/2 ;BOTTOM ROW IS GND
|
||
MOVSI TT,GND
|
||
MOVE T,FLXPIN-1(T) ;X,Y OF PIN
|
||
ADD T,TTT
|
||
SETZ TTT,
|
||
JRST CPOPJ1
|
||
|
||
PAKSIZ: SKIPE ILLPAK(B)
|
||
POPJ P,
|
||
;Check if package sticks outside of a single group
|
||
LDB T,[%DIPS,,A] ;STARTING DIP SLOT
|
||
SOS T
|
||
IDIVI T,GRPCOL ;DIP ROW, DIP COL #
|
||
SUB T,PAKHGT(B)
|
||
SUB TT,PAKWID(B) ;HORIZONTAL EXTENT OF ADAPTOR
|
||
JUMPL T,CPOPJ
|
||
JUMPL TT,CPOPJ
|
||
CAIGE T,GRPROW
|
||
CAIL TT,GRPCOL ;MUST BE WITHIN GROUP HORIZONTALLY
|
||
POPJ P,
|
||
JRST PAKDIM
|
||
|
||
;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
|
||
|
||
;T = UML-ROW-#,,UML-COL-#
|
||
COMMENT
|
||
Map of the UML page printout
|
||
UML COL
|
||
1 2 ... NCOLS
|
||
UML ROW ------------------------------
|
||
1 F26 F21 ... F1
|
||
2 F27 F22 ... F2
|
||
...
|
||
5 F30 F25 ... F5
|
||
|
||
6 E26 E21 ... E1
|
||
...
|
||
NCLPRP
|
||
|
||
|
||
|
||
|
||
MAPRC: HLRZ TT,T ;(1,1) IS DIP IN UPPER LEFT HAND CORNER
|
||
SOJL TT,CPOPJ
|
||
CAML TT,NROWS ;MAX # ROWS (FOR PRINTOUT OF ALL PANELS)
|
||
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]
|
||
;UML row = F(panel-#, group, col-within-group)
|
||
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#
|
||
MOVNS TT
|
||
ADDI TT,NGRPS ;GROUP F IS FIRST
|
||
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: SOS T ;STARTS AT 1 PANEL#*NGRPS+GROUP+JACK
|
||
LDB TTT,[POINT 1,T,35] ;THE JACK BIT
|
||
CAMLE TT,JACKSZ(TTT)
|
||
JRST [ SETZ T,
|
||
POPJ P,]
|
||
MOVSI TTT,MAPCON(TT) ;PIN# IN LH
|
||
DPB T,[%CNPJK,,TTT]
|
||
LSH T,-1
|
||
IDIVI T,NGRPS
|
||
AOS TT
|
||
DPB TT,[%CNPG,,TTT]
|
||
AOS T
|
||
DPB T,[%CNPPNL,,TTT]
|
||
MOVE T,TTT
|
||
POPJ P,
|
||
|
||
FPWR: CAIE B,=500 ;+5.00V??
|
||
JRST FPWRE
|
||
LDB T,[%%PINN,,A]
|
||
MOVEI B,BRDPWR
|
||
DPB B,[%%PINN,,A]
|
||
TLO A,MAPSOC
|
||
JUMPL A,FPWRC
|
||
POPJ P,
|
||
|
||
FPWRE: SETZ A,
|
||
POPJ P,
|
||
|
||
FPWRC: LDB TT,[%CNPJK,,A] ;J1 OR J2?
|
||
JUMPN TT,FPWRC1 ;J2
|
||
CAILE T,MXCNP1/2 ;SECOND ROW J1?
|
||
ADDI T,<MXCNP2-MXCNP1>/2 ;YES, ADJUST TO NUMBERING OF 2ND ROW J2
|
||
ADDI T,J1TO2
|
||
FPWRC1: CAILE T,MXCNP2 ;LEGAL?
|
||
JRST FPWRE
|
||
SOS T
|
||
IDIVI T,MXCNP2/2 ;TREAT ROW 2 AS ROW 1
|
||
DEFINE FOO(N,SLOT)
|
||
<REPEAT N,<SLOT>>
|
||
MOVE T,(T)[ FOO(3,1) ;1-3
|
||
FOO(5,2) ;4-8
|
||
FOO(5,3) ;9-13
|
||
FOO(5,4) ;14-18
|
||
FOO(7,5)] ;19-25
|
||
DPB T,[%DIPS,,A]
|
||
SETZ T,
|
||
DPB T,[%DIPOF,,A]
|
||
POPJ P,
|
||
|
||
FGND: JUMPL A,FGNDC
|
||
MOVEI B,BRDGND
|
||
DPB B,[%%PINN,,A]
|
||
TLO A,MAPSOC
|
||
POPJ P,
|
||
|
||
FGNDC: LDB TT,[%CNPJK,,A]
|
||
HRRZ TT,JACKSZ(TT)
|
||
ASH TT,-1
|
||
LDB T,[%%PINN,,A]
|
||
CAMG T,TT
|
||
ADD T,TT
|
||
DPB T,[%%PINN,,A]
|
||
TLO A,MAPSOC
|
||
POPJ P,
|
||
|
||
FOR NAME (GNDCLR:,WAGGND:,GNDOUT:,VCCOUT:)
|
||
<NOTYET(NAME)
|
||
>
|
||
>;MWL
|
||
>;MDWL
|
||
BEND MPG216
|