1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-24 11:22:36 +00:00
PDP-10.its/src/draw/lebel.200
2018-05-05 19:19:09 +02:00

638 lines
13 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SUBTTL LEBEL-INTEL I/O CARD
BEGIN LEBEL
;THE TRANSFER VECTOR
^LEBLTV:
JRST LCINIT ;INITIALIZE LETTER/NUMBER CONVERSION TABLES
JRST LOCOUT
MDPC,<
JRST CSLTLP
JRST SLTLN ;USE THE CANONICAL ONE
MD,<
JRST GTCONP
JRST CSLTLD
>;MD
>;MDPC
MWL,<
JRST WLOCOUT
JRST LOCPNC
JRST LOCPNW
JRST PRCNPN
JRST GETLOC
JRST PADPRT
JRST RAYDIP
JRST RAYCON
>;MWL
[ASCIZ/#LL#/]
MDPC,< [ASCIZ/P#-#/]
[ASCIZ/L#/]
>;MDPC
MWL,< [ASCIZ/L#/]
[ASCIZ/L/]
>;MWL
CHECK LEBLTV,LTVLEN
L2NSUB: BLOCK L2NLEN
N2LSUB: REPEAT N2LLEN, < "?"
>
EN2L__.
NNN__1
FOR I IN(A,B,C,D,E,F,H,J,K,L,M,N,P,R,S,T,U,V,W,X,Y,Z)
< L2N2L I,0
>
FOR I IN (G,I,O,Q)
< L2N2L I,1B0
>
N2LMAX__NNN-1
ORG EN2L
LCINIT: MOVE T,[L2NSUB,,L2N]
BLT T,L2N+L2NLEN+N2LLEN-1
MOVEI T,N2LMAX
MOVEM T,MAXN2L
POPJ P,
LOCOUT: LDB TTT,[POINT 6,A,23]
JUMPE TTT,CPOPJ ;NOTHING HERE, MEANS NOTHING AT ALL
MOVEI T,2
MOVEM T,NDIG
TRNN A,7777 ;CON?
JRST [ PUTBYT "P" ;YES
MOVEI T,(TTT)
JRST NPUTDEC ]
PUTBYT @N2L(TTT)
LDB T,[POINT 12,A,35] ;NO, PRINT NUMBER
JRST NPUTDEC
MDPC,<
;CALL IS LIKE GTSLTL EXCEPT:
;LAY,< CPOPJ1 RETURN MAY BE TAKEN ON TEXIST CHAR ALSO >
MD,<
GTCONP:
SETZM DESTIN
PUSHJ P,GETLOC
POPJ P,
JRST CPOPJ1
CAIE CHRREG,"-"
POPJ P,
HRRZM TT,DESTIN
GETNUM
JUMPE NUMREG,CPOPJ
CAILE NUMREG,7777
POPJ P,
IORM NUMREG,DESTIN
JRST CPOPJ2
>;MD
CSLTLP:
MD,<
PUSHJ P,CSLTOUT
CSLTLD: HLRZ A,A
PUSH P,A
TRZ A,7777
PUSHJ P,LOCOUT
POP P,A
PUTBYT "-"
>;MD
LDB T,[POINT 12,A,35]
MOVEI TTT,3
MOVEM TTT,NDIG
JRST NPUTDEC
>;MDPC
GETLOC: GETCH
MDPC,<
CAIN CHRREG,12
JRST CPOPJ1
>;MDPC
PUSHJ P,CHKLET
POPJ P,
HRLM CHRREG,(P)
GETNUM
JUMPE NUMREG,CPOPJ
CAILE NUMREG,7777
POPJ P,
HLRZ TT,(P)
CAIN TT,"P"
JRST [ LSH NUMREG,14
MOVEI TT,(NUMREG)
MDPC,< AOS (P) >
JRST CPOPJ1 ]
SKIPN TT,L2N-"A"(TT) ;CONVERT LETTER TO NUMBER
POPJ P,
LSH TT,14
TRO TT,(NUMREG)
MDPC,< AOS (P) >
JRST CPOPJ2
MWL,<
WLOCOUT:JRST LOCOUT
LOCPNC:
LOCPNW: PUSHJ P,LOCOUT
HLRZ A,A
PUTBYT "-"
PRCNPN: LDB T,[POINT 12,A,35]
RAYDP1: MOVEI TTT,3
MOVEM TTT,NDIG
JRST NPUTDEC
RAYCON: PUSHJ P,LOCOUT ;PRINTS CONNECTOR SPEC FOR RAYTHEON WIRE WRAP
PUTSTR [ASCIZ / /] ;TWO SPACES
HLRZ A,A
JRST PRCNPN
PADPRT: PUTSTR [ASCIZ / P/] ;MUST BE 3 CHARACTERS
MOVEI T,1(G)
JRST PUTDEC
RAYDIP: PUSH P,T ;PRINT DIP PIN SPEC FOR RAYTHEON WIRE WRAP
PUSHJ P,LOCOUT
PUTSTR [ASCIZ / /]
POP P,T
TRZE T,L1416
ADD A,[1,,0] ;14 PIN DIP IN 16 PIN SLOT
HLRZ T,A
JRST RAYDP1
>;MWL
BEND LEBEL
MWL,<
SUBTTL WIRE WRAP ROUTINES -- LEBEL/INTEL I/O BOARD
BEGIN WLEBEL
comment 
The two formats for the Lebel board are
dip pin spec: A#-#
The A must literally be there. The first # is the slot # and the second # is
the dip pin #.
______|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
| 11 17 23 35
| 12 | 6 | 6 | 12 |
|_______________________|___________|___________|_______________________|
| | | |
< | | | |----------->loc #
| | |
< | | |------------------------------>loc letter
| |
< | |------------------------------------------>dip pin #
|
< |----------------------------------------------------------->flags
connector pin spec: P#-#
The P must literally be there. The first # specfies the connector. (Connectors 1-8
are the scotch-flex connectors. Connector 9 is the edge connector.) The second
# is the pin #.
______|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
| 11 17 23 35
| 12 | 6 | 6 | 12 |
|_______________________|___________|___________|_______________________|
| | | |
< | | | |----------->pin #
| | |
< | | |------------------------------>connector #
| |
< | |------------------------------------------>not used
|
< |----------------------------------------------------------->flags

^^WEBLTV__. ;TRANSFER VECTOR FOR DOUBLE HEIGHT DEC BOARDS
-1 ;ISWW
JRST CPOPJ ;WWINIT
JRST MAPRC
JRST MAPPAD
JRST PINMAP
JRST PINBIT
JRST VGCON
JRST DISTPP ;POINT TO POINT WIRING
JRST FPWR
JRST FGND
JRST PGPRTM
JRST PGPRNT
JRST GNDCLR
JRST WAGGND
JRST GNDOUT
JRST VCCOUT
JRST RAYGEN
=10 ;NROWS (USED FOR UML ONLY)
=8 ;NCOLS (USED FOR UML ONLY)
0 ;NCLPRG (USED FOR UML ONLY)
=80 ;DIPSLT_NROWS*NCOLS (USED FOR UML ONLY)
SETPAD(=9) ;NPADS (USED FOR UML ONLY)
XWD -=50,0 ;PADLET (USED FOR UML ONLY)
XWD -2,1 ;PADPIN (USED FOR UML ONLY)
=10 ;FRACTN
=200*2 ;WRAPMG .200" INSULATION AROUND EACH POST
=1500 ;POSTMG .750" BARE WIRE AROUND EACH POST
CHECK WEBLTV,WTVLEN
COMMENT 
ALL CALCULATIONS DONE FROM PIN SIDE
(0,0) AT LOWER LEFT HAND CORNER SLOTS NUMBERED FROM 1-80
DIP SOCKETS ARE ARRANGED IN A 8X10 MATRIX (8 ROWS OF 10 DIPS)
HORIZONTAL SPACING: .500" VERTICAL SPACING: 1.000"
EACH DIP SOCKET IS 18 PINS (16 PINS FOR DIP 2 PINS FOR POWER AND GROUND)
DIP PINS 8 AND 9 ARE FACING THE BACKPLANE CONNECTOR FINGERS
GROUND AND POWER PINS ARE IN LINE AND OPPOSITE PINS 1 AND 16 RESPECTIVELY
THERE ARE 100 BACKPLANE CONNECTOR PINS AS WELL AS CONNECTOR PINS TO RECEIVE
8 SCOTCH-FLEX (R) CABLES AT THE OPPOSITE END OF THE BOARD. THE SCOTCH-FLEX
CONNECTORS ARE LABEL P1-P8 WHILE THE BACKPLANE CONNECTOR IS LABELED P9.

;DIP SOCKET GEOMETRY
XOFSET__=1000 ;(XOFSET,YOFSET) IS LOCATION OF A71(9)
YOFSET__=1000
XDIPSP__=500 ; .500" HORIZONTAL SPACING
YDIPSP__=1000 ;1.000" VERTICAL SPACING
XPINSP__=300 ; .300" HORIZONTAL SPACING BETWEEN PINS
YPINSP__=100 ; .100" VERTICAL SPACING BETWEEN PINS
;SCOTCH FLEX CONNECTOR GEOMETRY
PXOFST__=100 ;(PXOFST,PYOFST) IS LOCATION OF P5-14
PYOFST__=9200
PXSPAC__=1800 ;1.800" HORIZONTAL SPACING
PYSPAC__=300 ; .300" VERTICAL SPACING
PXPNSP__=100 ; .100" VERTICAL SPACING BETWEEN PINS
PYPNSP__=100 ; .100" HORIZONTAL SPACING BETWEEN PINS
;BACKPLANE CONNECTOR GEOMETRY
BXOFST__=0 ;(BXOFST,BYOFST) IS LOCATION OF P9-99
BYOFST__=300
BXPNSP__=125 ; .125" HORIZONTAL SPACING BETWEEN PINS
BYPNSP__=200 ; .200" VERTICAL SPACING BETWEEN PINS
;PIN LOCATION TABLES (INDEX BY PIN #)
;********************************************* DIP PINS
DEFINE XY(X,Y)
< X*XPINSP,,Y*YPINSP
>
PINTAB: XY(1,7) ;PIN 1
XY(1,6)
XY(1,5)
XY(1,4)
XY(1,3)
XY(1,2)
XY(1,1)
XY(1,0) ;PIN 8
XY(0,0) ;PIN 9
XY(0,1)
XY(0,2)
XY(0,3)
XY(0,4)
XY(0,5)
XY(0,6)
XY(0,7) ;PIN 16
;********************************************* DIP LOCATIONS
DEFINE XY(X,Y)
< <XOFSET+X*XDIPSP>,,<YOFSET+Y*YDIPSP>
>
DIPLOC:
FOR Y_ 7, 0, -1
<FOR X_ 0, =9, 1
< XY(X,Y)
>>
;********************************************* SCOTCH-FLEX PINS
DEFINE XY(X,Y)
< PXPNSP*X,,PYPNSP*Y
>
FLXPIN:
FOR Y_ 1, 0, -1
<FOR X_ 0, =12, 1
< XY(X,Y)
>>
;********************************************* SCOTCH-FLEX CONNECTORS
DEFINE XY(X,Y)
< <PXOFST+X*PXSPAC>,,<PYOFST+Y*PYSPAC>
>
FLXLOC:
FOR Y_ 1, 0, -1
<FOR X_ 0, 3, 1
< XY(X,Y)
>>
;********************************************* BACK PLANE CONNECTOR PINS
DEFINE XY(X,Y)
< <BXOFST+X*BXPNSP>,,<BYOFST+Y*BYPNSP>
>
BAKPIN:
FOR X_ =49, 0, -1
<FOR Y_ 0, 1, 1
< XY(X,Y)
>>
;TAKES A LOCATION IN A
; B # PINS ON DIP
;RETURN T X,,Y OF PIN
; TT PWR AND GND FLAGS
; TTT DETAB FOR DIP PIN, 0 FOR CONNECTOR PIN ( WE ALWAYS RETURN 0 BECAUSE
; WE ALWAYS DO POINT TO POINT WIRING)
;NON-SKIP DIP PIN ERROR
;SKIP CONNECTOR PIN ERROR
;DOUBLE SKIP SUCCESS
MAPIT: JUMPL A,CONMAP ;IS IT A CONNECTOR PIN?
LDB TT,LOW12 ;GET LOC NUMBER
JUMPE TT,CPOPJ ;0 IS A NO,NO
CAMLE TT,DIPSLT ;THATS TOO BIG
POPJ P,
MOVE T,DIPLOC-1(TT) ;PUT XY IN T
LDB TT,[POINT 6,A,17] ;GET THE PIN #
TLNE A,MAPPWR!MAPGND ;POWER OR GROUND PIN?
JRST PINPGP
CAIE B,=14 ;I KNOW WHICH WAY 14 PIN DIPS GO IN TOO!
JRST MAPIT0 ;SIXTEEN DIP
ADDI TT,1 ;YES, FUDGE PIN # BY 1
;I THINK I STILL NEED THIS!
ADD A,[1,,0] ;ALSO RETURN CORRECTED PIN # FOR DSTCLC
TLO A,PLUS1 ;AND INDICATE IT IS A PLUS 1 VERSION
MAPIT0: ADD T,PINTAB-1(TT) ;ADD EXTRA XY FOR PIN
SETZB TT,TTT ;NO AUTOMATIC GND/PWR, AND NO DETAB WITH POINT TO POINT
JRST CPOPJ2
;FIND CARD POWER OR GROUND FOR DIP
PINPGP: JUMPN TT,CPOPJ ;PIN FIELD BETTER HAD BE CLEAR
ADDI T,=8*YPINSP ;BOTH GET THIS
TLNN A,MAPPWR ;POWER?
JRST [ ADD T,[XPINSP,,0] ;YES, IT IS OVER THIS MUCH
MOVSI TT,GND ;NO, RETURN GND BIT
SETZ TTT, ;AT END
JRST CPOPJ2]
MOVSI TT,PWR
SETZ TTT,
JRST CPOPJ2
;HERE TO RETURN LOCATION OF CONNECTOR PIN
CONMAP: AOS (P) ;TAKE CONNECTOR PIN RETURN
LDB T,B6AT23 ;GET PIN GROUP
JUMPE T,CPOPJ ;CHECK LEGAL GROUP
CAILE T,=9 ;LEGAL?
POPJ P,
LDB TT,LOW12 ;GET PIN #
JUMPLE TT,CPOPJ
CAIN T,=9 ;SCOTCH-FLEX CONNECTOR?
JRST CONBAC ;NO, BACK PLANE CONNECTOR
MOVE T,FLXLOC-1(T) ;GET LOCATION OF CONNECTOR
CAILE TT,=26 ;ONLY 26 PINS PER CONNECTOR
POPJ P,
ADD T,FLXPIN-1(TT) ;LOC OF THIS PIN
SETZB TTT,TT
JRST CPOPJ1 ;CONNECTOR PIN RETURN
CONBAC: CAILE TT,=100 ;HERE FOR BACK PLANE CONNECTOR
POPJ P, ;ILLEGAL
MOVE T,BAKPIN-1(TT) ;LOCATION OF BACK PLANE CONNECTOR
SETZB TTT,TT
JRST CPOPJ1
VGCON: POPJ P, ;NO CONNECTOR GROUND PINS
;TAKES UML ROW,,COLUMN IN T AND RETURNS DIP LOCATION IN T
; NON-SKIP RETURN ERROR
; SKIP RETURN FOR HAPPINESS
MAPRC: TDNE T,[777700,,770000]
POPJ P,
HLRZ TT,T
CAMLE TT,NROWS
POPJ P,
HRRZ T,T
CAMLE T,NCOLS
POPJ P,
SUBI T,1 ;WE GOT ROW IN TT, COL IN T
IMUL T,NROWS
SUB TT,NROWS ;RESULT SHOULD BE NEGATIVE
SUB T,TT
ADDI T,1+<1=12> ;ADD ONE AND TURN ON THAT EXTRA BIT
JRST CPOPJ1
MAPPAD: LSH T,13
IORI T,(TT)
LSH T,1
ADDI T,(TTT)
POPJ P,
PINBIT: PUSHJ P,MAPIT
JFCL
SETZ TT,
POPJ P,
PINMAP: PUSHJ P,MAPIT
JRST PINERR
JRST CONERR
JRST CPOPJ1
CONERR: PUTBYT "P" ;PRINT FORM P#-#
LDB T,B6AT23
PUSHJ P,NUMPNT ;CONNECTOR #
OUTCHR ["-"]
LDB T,LOW12
PUSHJ P,NUMPNT ;PIN #
CONER1: OUTSTR [ASCIZ / MAPPING ERROR
/]
POPJ P,
PINERR: LDB T,B6AT23 ;FORM A#(#)
OUTCHR N2L(T)
LDB T,LOW12 ;SLOT #
PUSHJ P,NUMPNT
OUTCHR["("]
LDB T,[POINT 6,A,17] ;PIN #
LSTNUM: PUSHJ P,NUMPNT
OUTCHR [")"]
JRST CONER1
FPWR: JUMPL A,FPWRC
TLZ A,77!PLUS1!PLUS2 ;CLEAR PIN FIELD
TLO A,MAPPWR
POPJ P,
FPWRC: LDB T,B6AT23 ;GET CONNECTOR
CAIGE T,=9 ;SCOTCH FLEX?
JRST [ MOVE A,FLXCRD(T)
TLO A,MAPPWR
POPJ P,]
PUSH P,B
PUSH P,C
PUSH P,G ;SAVE ALL THOSE AC'S
PUSH P,W
PUSH P,[MAPPWR,,0]
FGPCON: MOVE W,GPCAND ;GET THE GROUND PIN CANDIDATES
PUSH P,A ;SAVE THIS PIN
PUSH P,[300000,,0] ;A VERY LARGE # (BEST DISTANCE SO FAR)
PUSH P,[0] ;BEST PIN SO FAR
FGPCLP: MOVE A,-2(P) ;THE CONNECTOR PIN
MOVE C,(W) ;THE CARD PIN TO TRY
IOR C,-3(P) ;WILL BE MAPPWR OR MAPGND
PUSHJ P,DISTPP ;CALCULATE THE DISTANCE
JUMPE G,[JRST 4,.] ;ZERO DISTANCE IS AN ERROR
CAML G,-1(P) ;IS THIS ONE BETTER?
JRST FGPCL1 ;NO, TRY NEXT
MOVEM G,-1(P) ;BEST SO FAR
MOVE C,(W)
MOVEM C,(P) ;PIN
FGPCL1: AOBJN W,FGPCLP ;TRY NEXT CANDIDATE
MOVE A,(P) ;THE CLOSEST CARD PIN
IOR A,-3(P) ;SET MAPPWR OR MAPGND
SUB P,[4,,4]
POP P,W
POP P,G
POP P,C
POP P,B
POPJ P,
FGND: JUMPL A,FCGND ;FOR GROUND FOR CONNECTOR PIN
TLZ A,77!PLUS1!PLUS2
TLO A,MAPGND
POPJ P,
FCGND: LDB T,B6AT23 ;GET CONNECTOR #
CAIGE T,=9 ;IS IT AN EDGE CONNECTOR
JRST [ MOVE A,FLXCRD(T)
TLO A,MAPGND
POPJ P,]
PUSH P,B
PUSH P,C
PUSH P,G
PUSH P,W
PUSH P,[MAPGND,,0]
JRST FGPCON
RADIX =10
GPCANP: FOR A  (1,2,3,4,5,6,7,8,9,10)
< <112>!A
>
RADIX 8
GPCAND: GPCANP-.,,GPCANP ;AOBJN POINTER TO GPCANP
;TABLE INDEXED BY SCOTCH FLEX CONNECTOR, GIVES NEAREST CARD POWER AND GROUND
FLXCRD: 0 ;0
10001 ;1
10003 ;2
10008 ;3
10011 ;4
10002 ;5
10004 ;6
10007 ;7
10012 ;8
;PGPRTM AND PGPRNT PRINT OUT PIN SPECIFICATION FOR WIRE LIST
PGPRTM: SETOM PMINUS#
CAIA
PGPRNT: SETZM PMINUS
JUMPL A,PGCPNT ;JUMP FOR CONNECTOR
LDB T,B6AT23 ;LETTER PART OF SLOT LOCATION
PUTBYT @N2L(T)
LDB T,[POINT 12,A,35]
PUSHJ P,DECOUT ;SLOT #
PUTBYT "("
TLNN A,MAPPWR!MAPGND
JRST NPGPNT
TLNN A,MAPPWR
SKIPA T,["G"]
MOVEI T,"V"
PUTBYT @T
PGPN1: PUTBYT ")"
POPJ P,
NPGPNT: LDB T,B6AT17 ;PIN #
SKIPN PMINUS
JRST NPGPN1
TLNE A,PLUS1
JRST [ PUSHJ P,DECOUT
PUTBYT "-"
JRST PGPN1]
NPGPN1: TLNE A,PLUS1
SUBI T,1 ;SUBTRACT 1 FOR 14 PIN DIP #
PUSHJ P,DECOUT
TLNE A,PLUS1
PUTBYT "+"
TLNE A,PLUS2
PUTSTR [ASCIZ /+2??????????/]
JRST PGPN1
;PRINTS CONNECTOR PIN
PGCPNT: PUTBYT "P"
LDB T,B6AT23 ;CONNECTOR #
PUSHJ P,DECOUT
PUTBYT "-"
LDB T,LOW12 ;SLOT
JRST DECOUT
RAYGEN: JUMPL A,RAYRP1
TLNN A,MAPPWR!MAPGND ;ONLY GROUND AND POWER CAN BE GENERATED
JRST RAYRP0
PUTBYT "A"
MOVEI T,2
MOVEM T,NDIG
LDB T,LOW12 ;SLOT #
PUSHJ P,NDECOUT
PUTSTR [ASCIZ / /]
PUTSTR [ASCIZ /00/]
MOVEI T,"V"
TLNN A,MAPPWR
MOVEI T,"G"
PUTBYT (T)
POPJ P,
RAYRP0: LDB T,B6AT23 ;LETTER PART OF SLOT
PUTBYT @N2L(T)
MOVEI T,2
MOVEM T,NDIG
LDB T,LOW12 ;SLOT #
PUSHJ P,NDECOUT
PUTSTR [ASCIZ / /]
MOVEI T,3
MOVEM T,NDIG
LDB T,B6AT17
JRST NDECOUT
RAYRP1: OUTSTR [ASCIZ /CONNECTOR BECAME GENERATED PIN
/]
JRST ERRET
FOR NAME (GNDCLR,WAGGND,GNDOUT,VCCOUT)
<NAME: OUTSTR [ASCIZ /NAME NOT IMPLEMENTED FOR THE LEBEL BOARD
/]
JRST ERRET
>
BEND WLEBEL
>;MWL