mirror of
https://github.com/PDP-10/its.git
synced 2026-03-27 02:24:15 +00:00
1216 lines
26 KiB
Plaintext
1216 lines
26 KiB
Plaintext
SUBTTL LG411 & LG434 -- PLUGS INTO DEC STYLE BACKPLANE
|
||
BEGIN LG411
|
||
|
||
;TRANSFER VECTOR
|
||
|
||
^LG411V: JRST LCI411 ;FOR LG411
|
||
JRST LOCOUT
|
||
MDPC,<
|
||
JRST CSLTLP
|
||
JRST GTSLTL
|
||
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/CONNECTOR PIN ((#LL#)LL# OR (#LL#)"J"#-#)?/]
|
||
[ASCIZ/DIP LOCATION ((#LL#)"Z"#?/]
|
||
>;MDPC
|
||
MWL,< [ASCIZ/DIP LOCATION "Z"#?/]
|
||
[ASCIZ/CONNECTOR LOC (L OR "J"#)?/]
|
||
>;MWL
|
||
|
||
CHECK LG411V,LTVLEN
|
||
|
||
^LG434V: JRST LCI434 ;FOR LG434
|
||
JRST LOCOUT
|
||
MDPC,<
|
||
JRST CSLTLP
|
||
JRST GTSLTL
|
||
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/CONNECTOR PIN ((#LL#)LL# OR (#LL#)"J"#-#)?/]
|
||
[ASCIZ/DIP LOCATION ((#LL#)"Z"#?/]
|
||
>;MDPC
|
||
MWL,< [ASCIZ/DIP LOCATION "Z"#?/]
|
||
[ASCIZ/CONNECTOR LOC (L OR "J"#)?/]
|
||
>;MWL
|
||
|
||
CHECK LG434V,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
|
||
|
||
STORAGE(IMPURE)
|
||
|
||
^PARAMS__.
|
||
^LGPADS: 0 ;NUMBER OF FAT FINGER PADS (MODULE HEIGHT)
|
||
^LGPADL: "A" ;BIGGEST LETTER
|
||
^LGSCOT: 0 ;NUMBER OF "SCOTCHFLEX" CONNECTORS
|
||
MWL,<
|
||
^LGDIPL: @. ;POINTER TO DIPLOC TABLE
|
||
^LGFLXT: @. ;POINTER TO FLXTYP TABLE
|
||
^LGFLXL: @. ;POINTER TO FLXLOC TABLE
|
||
^LGFLXC: @. ;POINTER TO FLXCRD TABLE
|
||
^LGEDGC: @. ;POINTER TO EDGCRD TABLE
|
||
>;MWL
|
||
^PARAMX__.-PARAMS
|
||
|
||
STORAGE(PURE)
|
||
|
||
^PAR411: 4 ;NPADS
|
||
"D" ;BIGGEST PAD LETTER
|
||
7 ;# SCOTCH CONNS
|
||
MWL,<
|
||
0,,DIPLOC-1(TT) ;ACCESS LOCATION FOR DIPSOCKET
|
||
0,,@FLXTYP-1(TT) ;ACCESS PIN OFFSET FOR RIGHT SCOTCH CONN
|
||
0,,FLXLOC-1(TT) ;ACCESS LOCATION FOR SCOTCH CONN
|
||
0,,FLXCRD-1(T) ;ACCESS DIP FOR NEAREST GND/PWR FOR SCOTCH CONN
|
||
0,,EDGCRD-1(T) ;ACCESS " " " " EDGE CONN
|
||
>;MWL
|
||
|
||
CHECK PAR411,PARAMX
|
||
|
||
^PAR434: 2 ;LGPADS
|
||
"B" ;LGPADLETTER
|
||
6 ;LGSCOTCH
|
||
MWL,<
|
||
0,,DIPLOD-1(TT) ;LGDIPL
|
||
0,,@FLXTYQ-1(TT) ;LGFLXT
|
||
0,,FLXLOD-1(TT) ;LGFLXL
|
||
0,,FLXCRE-1(T) ;LGFLXC
|
||
0,,EDGCRE-1(T) ;LGEDGC
|
||
>;MWL
|
||
|
||
CHECK PAR434,PARAMX
|
||
|
||
LCI411: SKIPA T,[PAR411,,PARAMS]
|
||
LCI434: MOVE T,[PAR434,,PARAMS]
|
||
BLT T,PARAMS+PARAMX-1 ;BLT IN THE LOCAL VARS FOR LG411/LG434
|
||
|
||
LCINIT: MOVE T,[L2NSUB,,L2N] ;BLT PNTR
|
||
BLT T,L2N+L2NLEN+N2LLEN-1 ;BLT IN THOSE LETTER-NUMBER CONVERSION TABLES
|
||
MOVEI T,N2LMAX
|
||
MOVEM T,MAXN2L ;BIGGEST # WE CAN CHANGE TO A LETTER
|
||
POPJ P,
|
||
|
||
|
||
|
||
;ARGUEMENT IN A, BASHES T
|
||
;FORMAT OF ARG:
|
||
;BITS
|
||
; 18 23 24 29 30 35
|
||
; /-----------------------\ IF N IS NON-ZERO THIS IS A DIP SLOT, K IS AN ARBITRARY LETTER,
|
||
; | | | AND N IS THE 3 DIGIT SLOT #. OTHERWISE THIS IS A CONNECTOR
|
||
; | K | N | LOC FORM: IF K IS GREATER THAN OR EQUAL TO 10 AND NOT THE CODE
|
||
; | | | FOR U, THEN THIS REPRESENTS A SCOTCH-FLEX BODY, AND IS PRINTED
|
||
; \-----------------------/ AS "J" FOLLOWED BY THE NUMBER K-10. IF IT IS THE CODE FOR U,
|
||
;THEN IT IS THE WILD CONNECTOR BODY AND IS PRINTED AS "U". OTHERWISE, IT IS THE EDGE FINGER
|
||
;PADDLE LETTER AND IS PRINTED AS THE LETTER IT CONVERTS TO.
|
||
|
||
MWL,<
|
||
WLOCOUT:
|
||
DEC,< TRNE T,BWILD ;IF IT'S WILD
|
||
PUTBYT WLDCHR >;DEC ;SAY IT'S WILD
|
||
>;MWL
|
||
LOCOUT: LDB T,[POINT 6,A,23] ;HIGH SIXBIT BYTE IN THE LOW HALF
|
||
JUMPE T,CPOPJ ;IF NOTHING THERE, NOTHING
|
||
TRNN A,7777 ;CHECK FOR CONNECTOR LOC TYPE
|
||
JRST [DEC,< CAME T,L2N+"U"-"A"> ;CONN LOC, IS IT "U"?
|
||
CAIGE T,10 ; OR A LLN TYPE?
|
||
JRST [ PUTBYT @N2L(T) ;YES, CONVERT TO ASCII AND PRINT
|
||
POPJ P,]
|
||
PUTBYT "J" ;NO, ITS A JN-N TYPE, PRINT A J
|
||
PUTBYT "0"-10(T) ;AND THE EXCESS OVER 10 AS THE FIRST N, PRINT IT
|
||
POPJ P,]
|
||
PUTBYT @N2L(T) ;DIP LOC, PRINT THE LETTER HE USED JUST FOR LAUGHS
|
||
MOVEI T,3 ;110 DIP SLOTS MAKES FOR 3 DIGIT SLOT NUMBERS
|
||
MOVEM T,NDIG ;TELL THE DECIMAL PRINT ROUTINE ABOUT IT
|
||
LDB T,[POINT 12,A,35] ;GET THE SLOT #
|
||
JRST NPUTDEC ;GO PRINT IT
|
||
|
||
|
||
MDPC,<
|
||
GTSLTL: PUSHJ P,SLTLN
|
||
POPJ P,
|
||
JRST CPOPJ1
|
||
MOVE NUMREG,"Z"-"A"+L2N
|
||
DPB NUMREG,[POINT 6,DESTIN,23]
|
||
JRST CPOPJ2
|
||
>;MDPC
|
||
;CSLTLP, CSLTLD
|
||
;TAKES ARG IN A, BASHES A AND T
|
||
;ARG FORMAT
|
||
;BITS
|
||
; 0 5 6 11 12 17 18 21 22 26 27 29 30 35
|
||
; /-------------------------------------------------\
|
||
; | | F | D | | | | |
|
||
; | C |---------------| B | R | H | S |
|
||
; | | N | | | | |
|
||
; \-------------------------------------------------/
|
||
;
|
||
;LOCPNC, LOCPNW
|
||
;ARGS IN A AND T, BASHES BOTH
|
||
;ARG IN A FORMAT
|
||
;BITS
|
||
; 0 5 6 11 12 17 18 23 24 35
|
||
; /-----------------------------------------------\
|
||
; | | F | D | | |
|
||
; | C |---------------| C | 0 |
|
||
; | | N | | |
|
||
; \-----------------------------------------------/
|
||
;ARG IN T NOT USED IN LOCPNC, AHS BWILD BIT IN RIGHT HALF
|
||
;
|
||
;PPCNPN
|
||
;ARG IN A, BASHES A AND T
|
||
;ARG FORMAT
|
||
;BITS
|
||
; 0 17 18 23 24 35
|
||
; /-----------------------------------------------\
|
||
; | | | F | D |
|
||
; | X | C |---------------|
|
||
; | | | N |
|
||
; \-----------------------------------------------/
|
||
;
|
||
;X IS A "DON'T CARE" FIELD
|
||
;B IS BAY NUMBER
|
||
;R IS RACK LETTER, ENCODED
|
||
;H IS BOARD HIGTH MINUS ONE
|
||
;S IS SLOT NUMBER
|
||
;IF THE ABOVE ARE NOT PROVIDED, IT IS AS A GROUP. H IS ALWAYS 3 FOR AN LG411 OTHERWISE
|
||
;C IS THE CONNECTOR BODY SPECIFIER, AND DETERMINES HOW THE REMAINING BITS ARE INTERPERTED
|
||
;IF C IS THE CODE FOR U, THE FORM IS "U" FOLLOWED BY THE VALUE OF N AS A NUMBER, WITH THE
|
||
; 4000 BIT FORCED TO ZERO (THIS BIT SHOULD ALWAYS BE SET IN THIS FORM. (U#)
|
||
;IF C IS THE CODE FOR A, B, C OR D, THAT LETTER IS PRINTED FOLLOWED BY THE LETTER FOR WHICH
|
||
; F IS THE CODE, FOLLOWED BY THE VALUE OF D (D SHOULD ALWAYS BE 1 OR 2 IN THIS FORM
|
||
; (LL#)
|
||
;IF C IS GREATER THAN OR EQUAL TO 10 (OCTAL) AND IS NOT THE CODE FOR U, THIS IS A J#-# FORM
|
||
;WHERE THE J AND THE - ARE LITERALS. THE FIRST # IS THE EXCESS OF 10 WHICH C IS AND THE
|
||
;SECOND # IS N
|
||
;
|
||
;CSLTLP TRIES TO PRINT BAY, RACK, SLOT IF IN D, CSLTLD NEVER DOES
|
||
|
||
MWL,<
|
||
LOCPNW:
|
||
DEC,< TRNE T,BWILD ;IF IT'S WILD
|
||
PUTBYT WLDCHR >;DEC SAY IT'S WILD
|
||
LOCPNC: PUSHJ P,LOCOUT ;PRINT THE CONNECTOR BODY LOCATION
|
||
MOVS A,A ;PREPARE TO FALL THROUGH TO PRCNPN
|
||
>;MWL
|
||
MDPC,<
|
||
CSLTLP:
|
||
MD,< CAML A,[050000,,0] ;IS IT A EDGECONNECTOR PIN?
|
||
JRST [ TRNE A,-1 ;NO, DOES BRS EXIST?
|
||
PUSHJ P,SLTOUT ;YES, PRINT IT LIKE FOR A DIP
|
||
JRST CSLTLD] ;GO PRINT JACK, PIN
|
||
PUSHJ P,CSLTOUT ;YES, PRINT BAY RACK SLOT FOR EDGE FINGER
|
||
CSLTLD:
|
||
>;MD
|
||
HLRZ A,A ;FLUSH BRS
|
||
PUSH P,A ;SAVE A CLEAN COPY
|
||
ANDI A,770000 ;MAKE WILD PIN FORMAT
|
||
PUSHJ P,LOCOUT ;SO THAT LOCOUT WILL PRINT IT LIKE A CONN LOC
|
||
POP P,A >;MDPC ;GET "ALL" THE BITS BACK
|
||
MWL,<
|
||
HRRZS T,A ;COPY INTO T, CLEAR SOME CRUD
|
||
CAIGE T,10000
|
||
JRST [ TRNN T,7700
|
||
JRST CSLSFX
|
||
JRST CSLLDP] >;MWL
|
||
CAIGE T,100000 ;J OR U FORM
|
||
JRST CSLLDP ;NO DO LLN (LIKE PADDLES, MAN)
|
||
CSLSFX:
|
||
DEC,< LSH A,-=12
|
||
CAME A,L2N+"U"-"A">;DEC U FORM
|
||
PUTBYT "-"
|
||
CSSFX1: ANDI T,7777 ;MASK TO THE LAST NUMBER PART
|
||
CAIG T,=26
|
||
JRST PUTDEC ;GO PRINT IT
|
||
POPJ P,
|
||
|
||
PRCNPN: HRRZS T,A
|
||
CAIGE T,10000
|
||
TRNE T,7700
|
||
CAIL T,100000
|
||
JRST CSSFX1
|
||
CSLLDP: LDB T,[POINT 6,A,29] ;GET SECOND LETTER
|
||
PUTBYT @N2L(T) ;CONVERT TO ASCII AND PRINT
|
||
MOVE T,A ;COPY TO T FOR PUTDEC
|
||
ANDI T,77 ;MASK TO TRAILING #
|
||
JRST PUTDEC ;GO PRINT IT
|
||
MDPC,<
|
||
MD,<
|
||
;READS CONNECTOR PIN SPEC IN THE FORM THAT CSLTLP PRINTS IT IN EXCEPT WITH HALVS SWOPPED,
|
||
;AS SHOWN BELOW. BASHES NUMREG AND CHRREG. RETURNS ANSWER IN DESTIN.
|
||
;0 SKIP ERROR, 1 SKIP ONLY CR OR STARTS WITH "THERE EXISTS"
|
||
;2 SKIPS WIN BUT NO BRS, 3 SKIPS WIN AND BRS.
|
||
;MUST EXIT WITH A 12 IN CHRREG TO REALLY WIN.
|
||
;BITS
|
||
; 0 3 4 8 9 11 12 17 18 23 24 29 30 35
|
||
; /-------------------------------------------------\
|
||
; | | | | | | F | D |
|
||
; | B | R | H | S | C |---------------|
|
||
; | | | | | | N |
|
||
; \-------------------------------------------------/
|
||
;
|
||
GTCONP: SETZM DESTIN ;CLEAR ALL FIELDS
|
||
GETNUM ;GET FIRST STUFF
|
||
LAY,< CAIE CHRREG,TEXIST> ;IF TERMINATOR WAS THERE EXISTS OR
|
||
CAIN CHRREG,12 ;IF TERMINATOR WAS LINEFEED
|
||
JUMPE NUMREG,CPOPJ1 ;AND NO NUMBER, TAKE 1 SKIP EXIT
|
||
JUMPE NUMREG,NOBRS ;BRS STARTS WITH A #
|
||
CAIG NUMREG,17 ;IF NUMBER TOO BIG FOR FIELD
|
||
PUSHJ P,CHKLET ; OR TERM ISN'T A LETTER
|
||
POPJ P, ;LOSE
|
||
SKIPGE CHRREG,L2N-"A"(CHRREG) ;YES, CONVERT AND IS IT A GOOD LETTER
|
||
POPJ P, ;NO, LOSE
|
||
DPB NUMREG,[POINT 4,DESTIN,3] ;BAY
|
||
DPB CHRREG,[POINT 5,DESTIN,8] ;RACK
|
||
GETNUM ;NEXT STUFF
|
||
JUMPN NUMREG,GOTSLT ;IF #, IS SLOT #
|
||
PUSHJ P,CHKLET ;TERMINATOR A LETTER?
|
||
POPJ P, ;LOSE
|
||
SKIPGE CHRREG,L2N-"A"(CHRREG) ;CONVERT AND TEST SECOND L
|
||
POPJ P, ;BAD SECOND L
|
||
LDB NUMREG,[POINT 5,DESTIN,8] ;GET BACK FIRST L
|
||
SUBI CHRREG,-1(NUMREG) ;FIGURE BOARD HIGTH - 1 +1
|
||
CAME CHRREG,LGPADS ;WHICH MUST BE 2 (LG434) OR 4 (LG411)
|
||
POPJ P, ;WRONG HIGTH, LOSE
|
||
GETNUM ;GET NEXT STUFF
|
||
JUMPE NUMREG,CPOPJ ;NLL REQUIRES FOLLOWING N
|
||
GOTSLT: CAILE NUMREG,77 ;SLOT # SHOULD FIT THE FIELD
|
||
POPJ P, ;DOSEN'T, LOSE
|
||
DPB NUMREG,[POINT 6,DESTIN,17] ;SLOT
|
||
MOVE NUMREG,LGPADS ;THIS BOARD IS (1 OR 3) +1 HIGH
|
||
SOS NUMREG
|
||
DPB NUMREG,[POINT 3,DESTIN,11] ;HIGTH
|
||
NOBRS: PUSHJ P,CHKLET ;LETTER?
|
||
POPJ P, ;LOSE, ALL CPIN SPECS BEGIN WITH A LETTER
|
||
CAIN CHRREG,"J" ;IS IT A J?
|
||
JRST SCOTCH ;YES, GO DO SCOTCH FLEX TYPE INPUT
|
||
DEC,< CAIN CHRREG,"U" ;IS IT A U?
|
||
JRST UCONN >;DEC ;YES, DO SPECIAL INPUT FORMAT
|
||
CAMLE CHRREG,LGPADL ;ELSE IT MUST BE A OR B (OR C OR D FOR LG411)
|
||
POPJ P, ;IT'S NOT, LOSE
|
||
SUBI CHRREG,"A"-1 ;CONVERT IT
|
||
DPB CHRREG,[POINT 6,DESTIN,23] ;PUT IT TO BED
|
||
GETNUM ;NEXT
|
||
JUMPN NUMREG,CPOPJ ;N IS NOT THE SECOND OF LLN
|
||
PUSHJ P,CHKLET ;A LETTER?
|
||
POPJ P, ;NO, LOSE
|
||
SKIPGE CHRREG,L2N-"A"(CHRREG) ;CONVERT, CHECK GIOQ
|
||
POPJ P, ;LOSE
|
||
DPB CHRREG,[POINT 6,DESTIN,29] ;PUT AWAY
|
||
GETNUM
|
||
JUMPE NUMREG,CPOPJ ;THERE MUST BE A #
|
||
CAIG NUMREG,2 ;NUMBER MUST BE 1 OR 2
|
||
CAIE CHRREG,12 ;TERMINATOR MUST BE <CRLF>
|
||
POPJ P, ;LOSE
|
||
DPB NUMREG,[POINT 6,DESTIN,35] ;PUT AWAY
|
||
GTCNPE: HRROI NUMREG,0 ;-1,,0
|
||
TDNE NUMREG,DESTIN ;DID WE GET BRS?
|
||
AOS (P) ;YES, EXTRA SKIP
|
||
JRST CPOPJ2 ;A WINNER!
|
||
|
||
SCOTCH: GETNUM ;NEXT STUFF
|
||
JUMPE NUMREG,CPOPJ ;NUMBER MUST BE THERE
|
||
CAMG NUMREG,LGSCOT ;NUMBER MUST BE 1 THRU 6 OR 7
|
||
CAIE CHRREG,"-" ;TERMINATOR MUST BE -
|
||
POPJ P, ;LOSE
|
||
ADDI NUMREG,10 ;CONVERT TO SPECIAL CODE
|
||
DPB NUMREG,[POINT 6,DESTIN,23] ;PUT AWAY
|
||
GETNUM
|
||
JUMPE NUMREG,CPOPJ ;NUMBER MUST BE THERE
|
||
CAIG NUMREG,=26 ;MUST BE 1 THRU 26.
|
||
CAIE CHRREG,12 ;TERMINATOR MUST BE END OF LINE
|
||
POPJ P, ;LOSE
|
||
DEC,<
|
||
DEPL12:>;DEC
|
||
DPB NUMREG,[POINT 12,DESTIN,35] ;PUT AWAY
|
||
JRST GTCNPE ;WINNER, BUT GO SEE HOW BIG OF A ONE
|
||
|
||
DEC,<
|
||
UCONN: MOVE CHRREG,L2N+"U"-"A" ;GET U CODE
|
||
DPB CHRREG,[POINT 6,DESTIN,23] ;PUT AWAY
|
||
GETNUM
|
||
JUMPE NUMREG,CPOPJ ;# MUST BE THERE
|
||
CAIG NUMREG,3777 ; MUST BE 1 THRU 3777
|
||
CAIE CHRREG,12 ;TERM MUST BE <CRLF>
|
||
POPJ P, ;LOSE
|
||
IORI NUMREG,4000 ;SET MAGIC BIT
|
||
JRST DEPL12 >;DEC ;PUT AWAY AND WIN
|
||
>;MD
|
||
>;MDPC
|
||
MWL,<
|
||
;ARG IN G IS 0 THROUGH # OF PADDLES + # OF JACKS - 1, AND
|
||
;IS AN INDEX INTO THEM IN SOME RANDOM ORDER TO GET THEM PRINTED. BASHES NOTHING.
|
||
PADPRT: TRNN G,777774 ;EDGE FINGER?
|
||
JRST [ PUTBYT 40 ;YES
|
||
PUTBYT "A"(G) ;PRINT PADDLE
|
||
PUTBYT 40 ;MUST BE THREE CHARACTERS, OR AT LEAST USED TO
|
||
POPJ P,] ;DONE
|
||
PUTBYT "J" ;NO, SCORCH-FLACKS, J# FORM, PRINT THE J
|
||
PUTBYT "0"-3(G) ;PRINT THE # AFTER ADJUSTING FOR THE OFFSET OF 3
|
||
PUTBYT 40 ;MUST BE THREE CHARACTERS, OR AT LEAST USED TO MUST BE
|
||
POPJ P, ;DONE
|
||
|
||
;READS DIP LOC OR CONNECTOR BODY LOC INTO TT IN FORM THAT LOCOUT PRINTS.
|
||
;ALSO BASHES NUMREG AND CHRREG
|
||
GETLOC: SETZ TT, ;SO ALL THE FEILDS ARE CLEAN
|
||
GETCH
|
||
PUSHJ P,CHKLET ;A LETTER
|
||
POPJ P, ;SORRY, HAS TO BE A LETTER
|
||
CAIN CHRREG,"J" ;A J FORM?
|
||
JRST SCARCH ;YEP, GO TO IT
|
||
DEC,< CAIN CHRREG,"U" ;A WILD ONE?
|
||
JRST [ MOVE TT,L2N+"U"-"A" ;YEP, GET A CODED U
|
||
LSH TT,=12 ;PUT IT IN POSITION
|
||
GETCH ;JUST TO CHECK TERMINATOR
|
||
JRST SCARC1] >;DEC GO ACTUALLY CHECK IT
|
||
SKIPGE TT,L2N-"A"(CHRREG) ;CONVERT AND CHECK GIOQ
|
||
POPJ P, ;I'M SORRY, YOU DIDN'T BEAT THE REAPER
|
||
GETNUM
|
||
CAIE CHRREG,12 ;RIGHT TERMINATOR?
|
||
POPJ P, ;NO, LOSE
|
||
LSH TT,=12 ;PUT LETTER CODE IN ITS PLACE
|
||
JUMPE NUMREG,CPOPJ1 ;NO NUMBER IS CONNECTOR LOC
|
||
DPB NUMREG,[POINT 12,TT,35] ;PUT NUMBER AWAY
|
||
JRST CPOPJ2 ;NUMBER MEANS DIP SLOT
|
||
|
||
SCARCH: GETNUM
|
||
JUMPE NUMREG,CPOPJ ;HAVE TO HAVE A NUMBER
|
||
ADDI NUMREG,10 ;ENCODE THE #
|
||
DPB NUMREG,[POINT 6,TT,23] ;PUT IT IN ITS PLACE
|
||
DEC,<
|
||
SCARC1: >;DEC
|
||
CAIN CHRREG,12 ;IS THE TERMINATOR <CRLF>?
|
||
AOS (P) ;YES, TURN THE FOLLOWING POPJ INTO A POPJ1
|
||
POPJ P, ;DONE
|
||
|
||
;RAYDIP
|
||
;ARGS IN A AND T, BASHES BOTH.
|
||
;PRINTS DIP SLOT # AS 3 DIGITS, THEN 2 SPACES, THEN PIN # AS 2 DIGITS.
|
||
;TOTAL OF 7 COLUMNS.
|
||
;ARG IN A FORMAT
|
||
;BITS
|
||
; 0 17 18 23 24 35
|
||
; /-----------------------------------------------\
|
||
; ! PIN # ! X ! SLOT # !
|
||
; \-----------------------------------------------/
|
||
;T HAS L1416 BIT IN THE RIGHT HALF.
|
||
;
|
||
RAYDIP: PUSH P,T ;SAVE FOR LATER
|
||
PUSHJ P,RAYLOC ;TRANSFORM FOR MANY PINNED DIPS
|
||
MOVEI T,3 ;RAY FORMAT FOR DIP LOC IS JUST 3 DIGIT #
|
||
MOVEM T,NDIG ;ARRANGE TO PRINT IT THAT WAY
|
||
LDB T,[POINT 12,A,35] ;GET THE DIP LOC #
|
||
PUSHJ P,NPUTDEC ;AND PRINT IT
|
||
PUTSTR [ASCIZ / /] ;GET TO THE PIN# COLUMN
|
||
MOVEI T,2 ;PIN #S ARE 2 DIGITS
|
||
MOVEM T,NDIG ;ARRANGE TO PRINT THEM SO
|
||
LDB T,[POINT 6,A,17] ;GET THE PIN #
|
||
POP P,A ;GET THAT FLAG WORD BACK
|
||
TRNE A,L1416 ;IS IT A 14 PIN DIP IN A 16 PIN SLOT
|
||
AOJA T,NPUTDEC ;YES, REAL PIN # IS LOGICAL PIN # + 1, AND PRINT IT
|
||
JRST NPUTDEC ;NO, JUST GO PRINT THE PIN #
|
||
|
||
|
||
RAYLOC: CAIN B,=14 ;14 PIN DIP?
|
||
JRST RAY14 ;YUP
|
||
TRNE T,L1416 ;NOBODY ELSE SHOULD HAVE THIS BIT ON!
|
||
JSP TTT,RAYERR ;UGH
|
||
CAIN B,=16 ;16 PIN DIP?
|
||
JRST RAY16 ;YES
|
||
ITS,<
|
||
CAIN B,=24 ;24 PIN DIP?
|
||
JRST RAY24 ;YES
|
||
CAIN B,=28
|
||
JRST RAY28
|
||
CAIN B,=40
|
||
JRST RAY40
|
||
>;ITS
|
||
JSP TTT,RAYERR ;NO, ERROR!!
|
||
|
||
RAY14: TRNN T,L1416 ;BETTER HAVE THE ADD 1 TO PIN BIT ON!
|
||
JSP TTT,RAYERR
|
||
|
||
RAY16: POPJ P,
|
||
|
||
ITS,<
|
||
RAY24: LDB T,[POINT 6,A,17] ;PIN NUMBER OF CHIP
|
||
CAIG T,=24
|
||
JUMPN T,RAY24A
|
||
JSP TTT,RAYERR
|
||
|
||
RAY24A: HLRE T,MAP24-1(T) ;SLOT OFFSET FOR THIS PIN
|
||
LDB TT,[POINT 12,A,35]
|
||
ADD TT,T
|
||
DPB TT,[POINT 12,A,35]
|
||
HLRZ T,A ;PIN NUMBER
|
||
MOVE T,MAP24-1(T) ;MAP THE PIN NUMBER TO NEW VALUE
|
||
DPB T,[POINT 6,A,17]
|
||
POPJ P,
|
||
|
||
RAY28: LDB T,[POINT 6,A,17] ;PIN NUMBER OF CHIP
|
||
CAIG T,=28
|
||
JUMPN T,RAY28A
|
||
JSP TTT,RAYERR
|
||
|
||
RAY28A: HLRE T,MAP28-1(T) ;SLOT OFFSET FOR THIS PIN
|
||
LDB TT,[POINT 12,A,35]
|
||
ADD TT,T
|
||
DPB TT,[POINT 12,A,35]
|
||
HLRZ T,A ;PIN NUMBER
|
||
MOVE T,MAP28-1(T) ;MAP THE PIN NUMBER TO NEW VALUE
|
||
DPB T,[POINT 6,A,17]
|
||
POPJ P,
|
||
|
||
RAY40: LDB T,[POINT 6,A,17] ;PIN NUMBER OF CHIP
|
||
CAIG T,=40
|
||
JUMPN T,RAY40A
|
||
JSP TTT,RAYERR
|
||
|
||
RAY40A: HLRE T,MAP40-1(T) ;SLOT OFFSET FOR THIS PIN
|
||
LDB TT,[POINT 12,A,35]
|
||
ADD TT,T
|
||
DPB TT,[POINT 12,A,35]
|
||
HLRZ T,A ;PIN NUMBER
|
||
MOVE T,MAP40-1(T) ;MAP THE PIN NUMBER TO NEW VALUE
|
||
DPB T,[POINT 6,A,17]
|
||
POPJ P,
|
||
|
||
RAYERR: OUTSTR [ASCIZ /RAYTHEON DECK CONVERSION ERROR!
|
||
/]
|
||
JRST ERRET
|
||
|
||
RADIX =10
|
||
DEFINE MAP(SLOT,PIN)
|
||
< -<SLOT-1>,,PIN
|
||
>
|
||
|
||
MAP24: MAP(1,15) ;1
|
||
MAP(1,14) ;2
|
||
MAP(1,13) ;3
|
||
MAP(1,2) ;4
|
||
MAP(1,3) ;5
|
||
MAP(2,15) ;6
|
||
MAP(2,14) ;7
|
||
MAP(2,3) ;8
|
||
MAP(2,2) ;9
|
||
MAP(2,4) ;10
|
||
MAP(3,15) ;11
|
||
MAP(3,14) ;12
|
||
MAP(3,4) ;13
|
||
MAP(3,11) ;14
|
||
MAP(3,12) ;15
|
||
MAP(2,6) ;16
|
||
MAP(2,5) ;17
|
||
MAP(2,12) ;18
|
||
MAP(2,11) ;19
|
||
MAP(2,13) ;20
|
||
MAP(1,6) ;21
|
||
MAP(1,5) ;22
|
||
MAP(1,12) ;23
|
||
MAP(1,11) ;24
|
||
CHECK MAP24,=24
|
||
|
||
MAP28: MAP(1,15) ;1
|
||
MAP(1,14) ;2
|
||
MAP(1,13) ;3
|
||
MAP(1,2) ;4
|
||
MAP(1,3) ;5
|
||
MAP(2,15) ;6
|
||
MAP(2,14) ;7
|
||
MAP(2,3) ;8
|
||
MAP(2,2) ;9
|
||
MAP(2,4) ;10
|
||
MAP(3,15) ;11
|
||
MAP(3,14) ;12
|
||
MAP(3,3) ;13
|
||
MAP(3,2) ;14
|
||
|
||
MAP(3,6) ;15
|
||
MAP(3,5) ;16
|
||
MAP(3,4) ;17
|
||
MAP(3,11) ;18
|
||
MAP(3,12) ;19
|
||
MAP(2,6) ;20
|
||
MAP(2,5) ;21
|
||
MAP(2,12) ;22
|
||
MAP(2,11) ;23
|
||
MAP(2,13) ;24
|
||
MAP(1,6) ;25
|
||
MAP(1,5) ;26
|
||
MAP(1,12) ;27
|
||
MAP(1,11) ;28
|
||
CHECK MAP28,=28
|
||
|
||
MAP40: MAP(1,15) ;1
|
||
MAP(1,14) ;2
|
||
MAP(1,4) ;3
|
||
MAP(1,2) ;4
|
||
MAP(1,3) ;5
|
||
MAP(2,15) ;6
|
||
MAP(2,14) ;7
|
||
MAP(2,4) ;8
|
||
MAP(2,2) ;9
|
||
MAP(2,3) ;10
|
||
MAP(3,15) ;11
|
||
MAP(3,14) ;12
|
||
MAP(3,4) ;13
|
||
MAP(3,2) ;14
|
||
MAP(3,3) ;15
|
||
MAP(4,15) ;16
|
||
MAP(4,14) ;17
|
||
MAP(4,4) ;18
|
||
MAP(4,2) ;19
|
||
MAP(4,3) ;20
|
||
|
||
MAP(4,5) ;21
|
||
MAP(4,6) ;22
|
||
MAP(4,13) ;23
|
||
MAP(4,12) ;24
|
||
MAP(4,11) ;25
|
||
MAP(3,5) ;26
|
||
MAP(3,6) ;27
|
||
MAP(3,13) ;28
|
||
MAP(3,12) ;29
|
||
MAP(3,11) ;30
|
||
MAP(2,5) ;31
|
||
MAP(2,6) ;32
|
||
MAP(2,13) ;33
|
||
MAP(2,12) ;34
|
||
MAP(2,11) ;35
|
||
MAP(1,5) ;36
|
||
MAP(1,6) ;37
|
||
MAP(1,13) ;38
|
||
MAP(1,12) ;39
|
||
MAP(1,11) ;40
|
||
CHECK MAP40,=40
|
||
|
||
RADIX 8
|
||
>;ITS
|
||
|
||
;RAYCON
|
||
;ARG IN A, BASHES A AND T
|
||
;PRINTS "JN MM" WHERE N IS JACK # (ONE DIGIT) AND MM IS 2 DIGIT PIN #
|
||
;OR PRINTS "KI L" WHERE K IS PADDLE LETTER, L IS FINGER LETTER, AND I IS THE 1 DIGITSIDE OF CARD #.
|
||
;I8 COLUMNS EITHER WAY.
|
||
;ARG FORMAT IS THE SAME AS FOR PPCNPN, BUT FUNNINESS ABOUT WHICH HALF.
|
||
;
|
||
RAYCON: LDB T,[POINT 6,A,23] ;GET THE BODY LOC PART
|
||
CAIG T,4 ;EDGE FINGER TYPE?
|
||
JRST [ PUTBYT "A"-1(T) ;YES, PRINT PADDLE LETTER
|
||
LDB T,[POINT 6,A,17]
|
||
PUSHJ P,PUTDEC
|
||
PUTSTR [ASCIZ / /]
|
||
LDB T,[POINT 6,A,11]
|
||
PUTBYT @N2L(T)
|
||
POPJ P,] ; AND DONE
|
||
PUTSTR [ASCIZ /J/] ;MUST BE SCOTCH-FLEX JACK, PRINT INVARIANT PART
|
||
PUTBYT "0"-10(T) ;PRINT JACK #. (ENCODING IS BY ADDING 10 TO THE VALUE OF THE DIGIT
|
||
PUTSTR [ASCIZ / /] ;GET TO THE PIN NUMBER FIELD
|
||
MOVEI T,2 ;PIN #S ARE 2 DIGITS
|
||
MOVEM T,NDIG ;ARRANGE TO PRINT THEM SO
|
||
HLRZ T,A ;PUT PIN # IN THE RIGHT AC
|
||
ANDI T,7777 ;MASK OFF EXTRAENOUS CRUD
|
||
JRST NPUTDEC ;AND PRINT IT
|
||
>;MWL
|
||
BEND LG411
|
||
|
||
MWL,<
|
||
SUBTTL WIRE WRAP ROUTINES -- LG411 & LG434
|
||
BEGIN WLG411
|
||
|
||
|
||
^^WLG411_.
|
||
|
||
-1 ;ISWW
|
||
JRST WIN411 ;WWINIT
|
||
JRST MAPRC
|
||
JRST MAPPAD
|
||
JRST PINMAP
|
||
JRST PINBIT
|
||
JRST CPOPJ ;VGCON NOT WRITTEN YET
|
||
JRST DISTPP ;POINT TO POINT DISTANCE
|
||
JRST FPWR
|
||
JRST FGND
|
||
JRST PGPRTM
|
||
JRST PGPRNT
|
||
JRST GNDCLR
|
||
JRST WAGGND
|
||
JRST GNDOUT
|
||
JRST VCCOUT
|
||
JRST RAYGEN
|
||
=6 ;NROWS
|
||
=19 ;NCOLS
|
||
=0 ;NCLPRG
|
||
=110 ;DIPSLT, NOT = NROWS*NCOLS BECAUSE FIRST ROW NOT FULL
|
||
SETPAD(=11) ;NPADS
|
||
-=18,,1 ;PADLET
|
||
-=2,,1 ;PADPIN
|
||
=10 ;FRACTN
|
||
=200*2 ;0.2" INSULATION AROUND EACH POST
|
||
=750*2 ;0.75" BARE WIRE AROUND EACH POST
|
||
|
||
CHECK WLG411,WTVLEN
|
||
|
||
^^WLG434_.
|
||
|
||
-1 ;ISWW
|
||
JRST WIN434 ;WWINIT
|
||
JRST MAPRC
|
||
JRST MAPPAD
|
||
JRST PINMAP
|
||
JRST PINBIT
|
||
JRST CPOPJ ;VGCON NOT WRITTEN YET
|
||
JRST DISTPP ;POINT TO POINT DISTANCE
|
||
JRST FPWR
|
||
JRST FGND
|
||
JRST PGPRTM
|
||
JRST PGPRNT
|
||
JRST GNDCLR
|
||
JRST WAGGND
|
||
JRST GNDOUT
|
||
JRST VCCOUT
|
||
JRST RAYGEN
|
||
=6 ;NROWS
|
||
=9 ;NCOLS
|
||
=0 ;NCLPRG
|
||
=50 ;DIPSLT, NOT = NROWS*NCOLS BECAUSE FIRST ROW NOT FULL
|
||
SETPAD(=5) ;NPADS
|
||
-=18,,1 ;PADLET
|
||
-=2,,1 ;PADPIN
|
||
=10 ;FRACTN
|
||
=200*2 ;0.2" INSULATION AROUND EACH POST
|
||
=750*2 ;0.75" BARE WIRE AROUND EACH POST
|
||
|
||
CHECK WLG434,WTVLEN
|
||
|
||
WIN411: SKIPA T,[PAR411,,PARAMS]
|
||
WIN434: MOVE T,[PAR434,,PARAMS]
|
||
BLT T,PARAMS+PARAMX-1 ;BLT IN PARAM SET FOR LG411 OR LG434
|
||
POPJ P,
|
||
|
||
PINTAB: FOR Y_=700,0,-=100
|
||
< =300,,Y
|
||
>
|
||
FOR Y_0,=700,=100
|
||
< 0,,Y
|
||
>
|
||
|
||
XPINSP__ =300 ; .300" DIP PIN HORIZONTAL SPACING
|
||
YPINSP__ =100 ; .100" DIP PIN VERTICAL SPACING
|
||
XDIPSP_=500
|
||
YDIPSP_=1000
|
||
XDIPOR_=400
|
||
YDIPOR_=700
|
||
|
||
^DIPLOC: FOR X_=14,0,-1
|
||
< X*XDIPSP+XDIPOR,,5*YDIPSP+YDIPOR
|
||
>
|
||
FOR Y_4,0,-1
|
||
< FOR X_=18,0,-1
|
||
< X*XDIPSP+XDIPOR,,Y*YDIPSP+YDIPOR
|
||
>
|
||
>
|
||
|
||
; DIP LOCS FOR LG434
|
||
|
||
^DIPLOD: FOR X_4,=8,1
|
||
< X*XDIPSP+XDIPOR,,5*YDIPSP+YDIPOR
|
||
>
|
||
FOR Y_4,0,-1
|
||
< FOR X_0,=8,1
|
||
< X*XDIPSP+XDIPOR,,Y*YDIPSP+YDIPOR
|
||
>
|
||
>
|
||
|
||
; VERT FLX CONN FOR LG434 (REVERSED FROM LG411)
|
||
|
||
VFLXPP: FOR X_0,100,100
|
||
< FOR Y_0,1200,100
|
||
< X,,Y
|
||
>
|
||
>
|
||
|
||
; VERT FLX CONN FOR LG411
|
||
|
||
VFLXPN: FOR X_=100,0,-=100
|
||
< FOR Y_=1200,0,-=100
|
||
< X,,Y
|
||
>
|
||
>
|
||
|
||
HFLXPN: FOR Y_=100,0,-=100
|
||
< FOR X_0,=1200,=100
|
||
< X,,Y
|
||
>
|
||
>
|
||
|
||
; SCOTCHFLEX LOCATIONS, LG411
|
||
|
||
^FLXLOC:=9600,,=5900
|
||
=9200,,=5900
|
||
=8800,,=5900
|
||
=8400,,=5900
|
||
=8000,,=5900
|
||
=5900,,=7000
|
||
=3000,,=7000
|
||
|
||
; SCOTCHFLEX CONNECTOR LOCATIONS FOR LG434
|
||
|
||
^FLXLOD: 0,,=5900
|
||
=400,,=5900
|
||
=800,,=5900
|
||
=1200,,=5900
|
||
=1600,,=5900
|
||
=3100,,=7000
|
||
|
||
; POINTERS TO SCOTCHFLEX COORDS FOR LG411
|
||
|
||
^FLXTYP:FOR X_1,5,1
|
||
< VFLXPN-1(T)
|
||
>
|
||
FOR X_6,7,1
|
||
< HFLXPN-1(T)
|
||
>
|
||
|
||
; POINTERS TO FLXPRINT PIN COORDS FOR LG434
|
||
|
||
^FLXTYQ:FOR X_0,4
|
||
< VFLXPP(T)
|
||
>
|
||
HFLXPN+5(T) ;J6
|
||
|
||
PADLOC: =100,,=200
|
||
=2800,,=200
|
||
=5400,,=200
|
||
=8100,,=200
|
||
|
||
PADPIN: FOR X1_0,=1400,=700
|
||
< FOR X_0,=500,=100
|
||
< X1+X,,0
|
||
>
|
||
>
|
||
MAPIT: JUMPL A,CONMAP
|
||
LDB TT,LOW12
|
||
JUMPE TT,CPOPJ
|
||
CAMLE TT,DIPSLT
|
||
POPJ P,
|
||
MOVE T,@LGDIPL ;DIPLOC\DIPLOD-1(TT)
|
||
LDB TT,B6AT17
|
||
TLNE A,MAPPWR!MAPGND ;WANT POWER OR GROUND?
|
||
JRST PINPGP ;YES, RETURN FIX IT UP
|
||
CAIN B,=16 ;16 PIN DIP?
|
||
JRST MAPIT0 ;NO, DON'T NEED TO FUTZ AROUND
|
||
ITS,<
|
||
CAIN B,=24 ;24 PIN CHIP?
|
||
JRST MAP24P
|
||
CAIN B,=28
|
||
JRST MAP28P
|
||
CAIN B,=40
|
||
JRST MAP40P
|
||
>;ITS
|
||
CAIE B,=14 ;14 PIN CHIP?
|
||
POPJ P, ;??? I GIVE UP
|
||
ADDI TT,1
|
||
ADD A,[1,,0]
|
||
TLO A,PLUS1
|
||
MAPIT0: ADD T,PINTAB-1(TT) ;ADD EXTRA XY FOR PIN
|
||
SETZB TT,TTT ;FLUSH AWAY THOSE GOODIES
|
||
JRST CPOPJ2
|
||
|
||
ITS,<
|
||
;I WOULDN'T WISH THIS ON . . .
|
||
|
||
MAP24P: ADD T,M24PIN-1(TT) ;ADD X,Y OFFSET FOR 24 PIN CHIPS (GIVES SOCKET PIN #)
|
||
SETZB TT,TTT
|
||
JRST CPOPJ2
|
||
|
||
MAP28P: ADD T,M28PIN-1(TT) ;ADD X,Y OFFSET FOR 28 PIN CHIPS (GIVES SOCKET PIN #)
|
||
SETZB TT,TTT
|
||
JRST CPOPJ2
|
||
|
||
MAP40P: ADD T,M40PIN-1(TT) ;ADD X,Y OFFSET FOR 40 PIN CHIPS (GIVES SOCKET PIN #)
|
||
SETZB TT,TTT
|
||
JRST CPOPJ2
|
||
|
||
RADIX =10
|
||
|
||
DEFINE LP(SLOT,PIN)
|
||
< <SLOT-1>*XDIPSP,,<8-PIN>*YPINSP
|
||
>
|
||
|
||
DEFINE RP(SLOT,PIN)
|
||
< XPINSP+<SLOT-1>*XDIPSP,,<PIN-9>*YPINSP
|
||
>
|
||
|
||
M24PIN: RP(1,15) ;1
|
||
RP(1,14) ;2
|
||
RP(1,13) ;3
|
||
LP(1,2) ;4
|
||
LP(1,3) ;5
|
||
RP(2,15) ;6
|
||
RP(2,14) ;7
|
||
LP(2,3) ;8
|
||
LP(2,2) ;9
|
||
LP(2,4) ;10
|
||
RP(3,15) ;11
|
||
RP(3,14) ;12
|
||
LP(3,4) ;13
|
||
RP(3,11) ;14
|
||
RP(3,12) ;15
|
||
LP(2,6) ;16
|
||
LP(2,5) ;17
|
||
RP(2,12) ;18
|
||
RP(2,11) ;19
|
||
RP(2,13) ;20
|
||
LP(1,6) ;21
|
||
LP(1,5) ;22
|
||
RP(1,12) ;23
|
||
RP(1,11) ;24
|
||
CHECK M24PIN,=24
|
||
|
||
M28PIN: RP(1,15) ;1
|
||
RP(1,14) ;2
|
||
RP(1,13) ;3
|
||
LP(1,2) ;4
|
||
LP(1,3) ;5
|
||
RP(2,15) ;6
|
||
RP(2,14) ;7
|
||
LP(2,3) ;8
|
||
LP(2,2) ;9
|
||
LP(2,4) ;10
|
||
RP(3,15) ;11
|
||
RP(3,14) ;12
|
||
LP(3,3) ;13
|
||
LP(3,2) ;14
|
||
|
||
LP(3,6) ;15
|
||
LP(3,5) ;16
|
||
LP(3,4) ;17
|
||
RP(3,11) ;18
|
||
RP(3,12) ;19
|
||
LP(2,6) ;20
|
||
LP(2,5) ;21
|
||
RP(2,12) ;22
|
||
RP(2,11) ;23
|
||
RP(2,13) ;24
|
||
LP(1,6) ;25
|
||
LP(1,5) ;26
|
||
RP(1,12) ;27
|
||
RP(1,11) ;28
|
||
CHECK M28PIN,=28
|
||
|
||
M40PIN: RP(1,15) ;1
|
||
RP(1,14) ;2
|
||
LP(1,4) ;3
|
||
LP(1,2) ;4
|
||
LP(1,3) ;5
|
||
RP(2,15) ;6
|
||
RP(2,14) ;7
|
||
LP(2,4) ;8
|
||
LP(2,2) ;9
|
||
LP(2,3) ;10
|
||
RP(3,15) ;11
|
||
RP(3,14) ;12
|
||
LP(3,4) ;13
|
||
LP(3,2) ;14
|
||
LP(3,3) ;15
|
||
RP(4,15) ;16
|
||
RP(4,14) ;17
|
||
LP(4,4) ;18
|
||
LP(4,2) ;19
|
||
LP(4,3) ;20
|
||
|
||
LP(4,5) ;21
|
||
LP(4,6) ;22
|
||
RP(4,13) ;23
|
||
RP(4,12) ;24
|
||
RP(4,11) ;25
|
||
LP(3,5) ;26
|
||
LP(3,6) ;27
|
||
RP(3,13) ;28
|
||
RP(3,12) ;29
|
||
RP(3,11) ;30
|
||
LP(2,5) ;31
|
||
LP(2,6) ;32
|
||
RP(2,13) ;33
|
||
RP(2,12) ;34
|
||
RP(2,11) ;35
|
||
LP(1,5) ;36
|
||
LP(1,6) ;37
|
||
RP(1,13) ;38
|
||
RP(1,12) ;39
|
||
RP(1,11) ;40
|
||
CHECK M40PIN,=40
|
||
|
||
RADIX 8
|
||
>;ITS
|
||
PINPGP: JUMPN TT,CPOPJ
|
||
SETZ TTT,
|
||
TLNN A,MAPPWR
|
||
JRST [ ADD T,[=300,,=800]
|
||
MOVSI TT,GND
|
||
JRST CPOPJ2]
|
||
ADDI T,=800
|
||
MOVSI TT,PWR
|
||
JRST CPOPJ2
|
||
|
||
CONMAP: AOS (P)
|
||
LDB TT,B6AT23
|
||
JUMPE TT,CPOPJ
|
||
CAMG TT,LGPADS ;4 OR 2 FOR LG411 \ LG434
|
||
JRST [ LDB T,[POINT 6,A,29]
|
||
JUMPE T,CPOPJ
|
||
CAILE T,=18
|
||
POPJ P,
|
||
MOVE T,PADPIN-1(T)
|
||
ADD T,PADLOC-1(TT)
|
||
LDB TT,[POINT 6,A,35]
|
||
CAIN TT,1
|
||
JRST CNMPWN
|
||
CAIE TT,2
|
||
POPJ P,
|
||
ADDI T,=200
|
||
JRST CNMPWN]
|
||
SUBI TT,10 ;OFFSET FOR SKOTCH CONNECTORS
|
||
SKIPL TT
|
||
CAMLE TT,LGSCOT ;LG411=7, LG434=6
|
||
POPJ P,
|
||
LDB T,LOW12
|
||
JUMPE T,CPOPJ
|
||
CAILE T,=26 ;PINS ON SKOTCH CONNECTOR
|
||
POPJ P,
|
||
MOVE T,@LGFLXT ;@FLXTYP\FLXTYQ-1(TT)
|
||
ADD T,@LGFLXL ;FLXLOC\FLXLOD-1(TT)
|
||
CNMPWN: SETZB TT,TTT
|
||
JRST CPOPJ1
|
||
PINBIT: PUSHJ P,MAPIT
|
||
TDZA TT,TT
|
||
SETZ TT,
|
||
POPJ P,
|
||
|
||
PINMAP: PUSHJ P,MAPIT
|
||
JRST PINERR
|
||
JRST CONERR
|
||
JRST CPOPJ1
|
||
|
||
PINERR: PUSH P,A
|
||
TLZ A,777700
|
||
PUSHJ P,LOCPIN
|
||
JRST CPNER1
|
||
|
||
CONERR: PUSH P,A
|
||
HRL A,A
|
||
TRZ A,7777
|
||
PUSHJ P,LOCPNC
|
||
CPNER1: OUTSTR [ASCIZ/ MAPING ERROR.
|
||
/]
|
||
POP P,A
|
||
POPJ P,
|
||
MAPRC: HLRZ TT,T
|
||
CAMG TT,NROWS
|
||
SKIPG TT
|
||
POPJ P,
|
||
HRRE T,T
|
||
CAMG T,NCOLS
|
||
SOSGE T
|
||
POPJ P,
|
||
IMUL TT,NCOLS
|
||
SUB TT,T
|
||
SUBI TT,4
|
||
CAMG TT,DIPSLT
|
||
SKIPG T,TT
|
||
POPJ P,
|
||
MOVE TT,"Z"-"A"+L2N
|
||
DPB TT,[POINT 6,T,23]
|
||
JRST CPOPJ1
|
||
FPWR: JUMPL A,FPWRC
|
||
TLZ A,77!PLUS1!PLUS2
|
||
TLO A,MAPPWR
|
||
POPJ P,
|
||
|
||
FPWRC: LDB T,B6AT23
|
||
CAMG T,LGPADS ;LG411=4, LG434=2
|
||
JRST [ JUMPE T,[ OUTSTR [ASCIZ/PAHRGH!!
|
||
/]
|
||
JRST ERRET]
|
||
MOVE A,@LGEDGC ;EDGCRD\EDGCRE-1(T)
|
||
TLO A,MAPPWR
|
||
POPJ P,]
|
||
SUBI T,10
|
||
SKIPL T
|
||
CAMLE T,LGSCOT ;7\6
|
||
JRST [OUTSTR [ASCIZ/PARGLE!!
|
||
/]
|
||
JRST ERRET]
|
||
MOVE A,@LGFLXC ;FLXCRD\FLXCRE-1(T)
|
||
TLO A,MAPPWR
|
||
ADDI T,10 ;IN CASE SOME ONE EXPECTS IT
|
||
POPJ P,
|
||
|
||
FGND: JUMPL A,FGNDC
|
||
TLZ A,77!PLUS1!PLUS2
|
||
TLO A,MAPGND
|
||
POPJ P,
|
||
|
||
FGNDC: LDB T,B6AT23
|
||
CAMG T,LGPADS
|
||
JRST [ JUMPE T,[ OUTSTR [ASCIZ/GAHRGH!!
|
||
/]
|
||
JRST ERRET]
|
||
MOVE A,@LGEDGC ;EDGCRD\EDGCRE-1(T)
|
||
TLO A,MAPGND
|
||
POPJ P,]
|
||
SUBI T,10
|
||
CAMLE T,LGSCOT
|
||
JRST [ OUTSTR [ASCIZ/GARGLE!!
|
||
/]
|
||
JRST ERRET]
|
||
MOVE A,@LGFLXC ;FLXCRD\FLXCRE-1(T)
|
||
TLO A,MAPGND
|
||
ADDI T,10
|
||
POPJ P,
|
||
|
||
;NEAREST SOCKET FOR GND/PWR LG411
|
||
|
||
^FLXCRD:FOR N IN(=16,=17,=17,=18,=19,=3,=9)
|
||
< <<"Z"-"A"+1-4>=12>!N
|
||
>
|
||
|
||
^EDGCRD:FOR N IN(=109,=104,=98,=93)
|
||
< <<"Z"-"A"+1-4>=12>!N
|
||
>
|
||
|
||
;NEAREST SOCKET FOR GND/PWR LG434
|
||
|
||
^FLXCRE:FOR N IN(=6,=7,=7,=8,=9,=3)
|
||
< <<"Z"-"A"+1-4>=12>!N
|
||
>
|
||
|
||
^EDGCRE:FOR N IN(=43,=49)
|
||
< <<"Z"-"A"+1-4>=12>!N
|
||
>
|
||
PGPRNT: TDZA TT,TT
|
||
PGPRTM: MOVNI TT,1
|
||
JUMPL A,PGCPNT
|
||
PUSH P,TT ;NOTE - TT CLOBBERED IN DECOUT
|
||
PUTBYT "Z"
|
||
LDB T,LOW12
|
||
PUSHJ P,DECOUT
|
||
PUTBYT "("
|
||
TLNN A,MAPPWR!MAPGND
|
||
JRST NPGPNT
|
||
POP P,TT ;UN DO STAK
|
||
MOVEI T,"G"
|
||
TLNN A,MAPGND
|
||
MOVEI T,"V"
|
||
PUTBYT (T)
|
||
PGPN1: PUTBYT ")"
|
||
POPJ P,
|
||
|
||
PGCPNT: PUSH P,A
|
||
HRL A,A
|
||
TRZ A,7777
|
||
PUSHJ P,LOCPNC
|
||
POP P,A
|
||
POPJ P,
|
||
|
||
NPGPNT: LDB T,B6AT17
|
||
SKIPE (P) ;WHERE TT GOT STORED
|
||
JRST NPGPN1
|
||
TLNE A,PLUS1
|
||
SUBI T,1
|
||
NPGPN1: TLNE A,PLUS2
|
||
PUTSTR [ASCIZ/BURP!!/]
|
||
PUSHJ P,DECOUT
|
||
POP P,TT ;NOW REALLY NEED IT
|
||
TLNE A,PLUS1
|
||
PUTBYT @1+[ "-"
|
||
"+"](TT)
|
||
JRST PGPN1
|
||
RAYGEN: JUMPL A,RAYRP1
|
||
TLNN A,MAPPWR!MAPGND
|
||
JRST RAYDIP
|
||
MOVEI T,3
|
||
MOVEM T,NDIG
|
||
LDB T,LOW12
|
||
PUSHJ P,NDECOUT
|
||
PUTSTR [ASCIZ/ 0/]
|
||
MOVEI T,"V"
|
||
TLNN A,MAPPWR
|
||
MOVEI T,"G"
|
||
PUTBYT (T)
|
||
POPJ P,
|
||
|
||
RAYRP1: OUTSTR [ASCIZ/CONNECTOR BECAME GENERATED PIN.
|
||
/]
|
||
JRST ERRET
|
||
MAPPAD: JUMPE T,[ HRREI T,1(F)
|
||
PUSHJ P,MAPPA1
|
||
ANDCMI T,770000
|
||
POPJ P,]
|
||
MAPPA1: CAMG T,LGPADS ;4\2
|
||
JRST [ LSH T,6
|
||
IORI T,(TT)
|
||
LSH T,6
|
||
IORI T,(TTT)
|
||
POPJ P,]
|
||
ADDI T,10
|
||
SUB T,LGPADS
|
||
LSH T,=11
|
||
CAILE TT,0
|
||
IORI T,-1(TT)
|
||
LSH T,1
|
||
ADDI T,(TTT)
|
||
POPJ P,
|
||
|
||
FOR NAME IN(GNDCLR,WAGGND,GNDOUT,VCCOUT)
|
||
<NAME: OUTSTR [ASCIZ/NAME IS NOT IMPLEMENTED FOR THE AUGAT LG411 BOARD.
|
||
/]
|
||
JRST ERRET
|
||
>
|
||
|
||
BEND WLG411
|
||
>;MWL
|
||
|