



       NAM WL
***************************************************************
*      THE WIRELISTER PROGRAM CAN BE USED TO CREATE, MODIFY
*      AND ARRANGE A FILE OF INFORMATION CONSISTING OF
*      SIGNAL NAMES AND PIN COORDINATES FROM A PRINTED-
*      CIRCUIT BOARD.  THIS FILE CAN BE TESTED FOR ERRORS,
*      AND SUBSEQUENTLY PRINTED OUT IN A PARTICULAR FORMAT.
*      A TAPE CONTAINING THE DESIRED OUTPUT FORMAT IS
*      LOADED SEPARATELY AFTER THE MAIN PROGRAM.
*
*      THE FOLLOWING PRESUMES THE PROGRAM HAS BEEN LOADED,
*      AND THE LAST ITEM PRINTED WAS "WIRELISTER 1.1".
*
*      THE PROGRAM CONSISTS OF 6 POSSIBLE MODES OF OPERATION.
*      TO ENTER ANY MODE, TYPE A DOLLAR SIGN ($) FOLLOWED
*      BY THE LETTER.
*
*      $I - INITIALIZE THE FILE.  FILE IS ZEROED.
*           RESPONSE IS "CLEARED".
*      $A - ADD TO THE FILE.  RESPONSE IS "!" PROMPT.
*           A LINE OF TEXT MAY NOW BE ENTERED.
*           FORMAT: XXXXX AA BB
*              WHERE XXXXX = SIGNAL NAME (1-5 ALPHA-
*                            NUMERIC CHARACTERS)
*                       AA = FIRST PIN COORDINATE
*                            (1-2 CHARACTERS)
*                       BB = SECOND PIN COORDINATE
*                            (1-2 CHARACTERS)
*           IF A FORMAT ERROR OCCURS, THE MESSAGE
*           "FORMAT ERROR" WILL BE PRINTED.
*           IF THE USER NOTICES AN ERROR BEFORE
*           COMPLETING THE LINE OF TEXT, A SEMICOLON
*           (;) SHOULD BE TYPED TO ABORT THE LINE.
*           TO END THIS MODE, ENTER ANOTHER MODE COMMAND.
*      $D - DELETE FROM THE FILE.  RESPONSE IS "!".
*           THE TEXT ENTERED WILL BE DELETED.
*      $S - SEARCH THE FILE.  THE TEXT ENTERED WILL
*           BE SEARCHED FOR AND PRINTED.  THE "@" SIGN
*           MAY BE USED IN ANY POSITION TO INDICATE
*           A "DON'T CARE".
*      $T - TEST THE FILE.  TESTS FOR DOUBLY-DEFINED
*           (DBL DEF) AND SINGLE-PIN LISTINGS (UNTERM).
*      $P - PRINT THE FILE.  IF A SPECIAL FORMAT TAPE
*           HAS BEEN LOADED AFTER THE MAIN PROGRAM,
*           TYPE $P1.  IF NOT, TYPE $P0 AND THE FILE
*           WILL BE DUMPED IN THE INPUT FORMAT.
*
*      REV 1.1 - 8/25/78 - DLJ
***********************************************************
       PAGE
STACKT EQU $00FF TOP OF STACK
INCHNP EQU $F015 INPUT CHAR
OUTCH  EQU $F018 OUTPUT CHAR
PCRLF  EQU $F021 PRINT CR+LF
PDATA1 EQU $F027 PRINT STRING
LPP    EQU $47 LINES PER PAGE
       SPC 1
       ORG $0020
***    SCRATCH PAD AREA ***
P1     RMB 4
P2     RMB 4
TP1    RMB 4
TP2    RMB 4
TP3    RMB 4
TP4    RMB 4
NEXT   RMB 2
PGCNT  RMB 1
LNCNT  RMB 1
TFI    RMB 12
PHDR   RMB 51
TEMP1  RMB 2
TEMP2  RMB 2
EFLAG  RMB 1
FORM   RMB 1
       SPC 1
       ORG $0100
CPN    LDX P1
       LDAA 0,X
       LDAB 1,X
       LDX P2
       CMPA 0,X
       BNE CP1
       CMPB 1,X
       BNE CP1
       LDAA 2,X
       LDAB 3,X
       LDX P1
       CMPA 2,X
       BNE CP1
       CMPB 3,X
       BNE CP1
       LDAA 4,X
       LDX P2
       CMPA 4,X
       BNE CP1
       SEC
       RTS
       SPC 1
CP1    CLC
       RTS
       SPC 1
CPP    LDX P1+2
       LDAA 0,X
       LDAB 1,X
       LDX P2+2
       CMPA 0,X
       BNE CP1
       CMPB 1,X
       BNE CP1
       LDAA 2,X
       LDAB 3,X
       LDX P1+2
       CMPA 2,X
       BNE CP1
       EORB 3,X
       ANDB #$7F
       BNE CP1
       SEC
       RTS
       SPC 1
MTFX   STX TEMP1
       LDX #TFI
       STX TEMP2
MT1    LDX TEMP2
       LDAA 0,X
       INX
       CPX #TFI+9
       BEQ MT2
       STX TEMP2
       LDX TEMP1
       STAA 0,X
       INX
       STX TEMP1
       BRA MT1
       SPC 1
MT2    LDX TEMP1
       STAA 0,X
       RTS
       SPC 1
INC16  CLRA
       ADDB 1,X
       ADCA 0,X
       STAB 1,X
       STAA 0,X
       RTS
       SPC 1
PCON   JSR OUTCH PRINT CHARACTER
       DECB
       BNE PCON
       RTS
       SPC 1
PHEX   PSHA
       LDAA 0,X
       RORA
       RORA
       RORA
       RORA
       BSR PHEX1
       LDAA 0,X
       BSR PHEX1
       PULA
       RTS
       SPC 1
PHEX1  ANDA #$0F
       CMPA #$09
       BHI PHEX2
       ORAA #$30
PHEX3  JMP OUTCH PRINT CHARACTER
       SPC 1
PHEX2  ADDA #$37
       BRA PHEX3
       SPC 1
SP1Z   LDX #FIRST
       STX P1
       LDX #FIRST+5
       STX P1+2
       SEV
       RTS
       SPC 1
SP2T   LDX #TFI
       STX P2
       LDX #TFI+5
       STX P2+2
       RTS
       SPC 1
INA    STX TP1
       LDX 0,X
       CPX NEXT
       BEQ INA3
INA2   LDAA 0,X
       BMI INA1
       INX
       BRA INA2
       SPC 1
INA1   INX
       CPX NEXT
       BEQ INA3
       STX TP2
       LDX TP1
       LDAA TP2
       LDAB TP2+1
       STAA 0,X
       STAB 1,X
       STAA 2,X
       STAB 3,X
       INX
       INX
       LDAB #$05
       BSR INC16
       CLC
       RTS
       SPC 1
INA3   SEC
       RTS
       SPC 1
IPA    STX TP1
       LDX 0,X
       CPX NEXT
       BEQ INA3
       LDX TP1
       LDX 2,X
       LDAA 3,X
       BMI IPA1
       LDX TP1
       INX
       INX
       LDAB #$04
       JSR INC16
       CLC
       CLV
       RTS
       SPC 1
IPA1   INX
       INX
       INX
       INX
       CPX NEXT
       BEQ INA3
       LDX TP1
       LDAA 2,X
       LDAB 3,X
       STAA 0,X
       STAB 1,X
       LDAB #$04
       JSR INC16
       INX
       INX
       LDAB #$09
       JSR INC16
       CLC
       SEV
       RTS
       SPC 1
PCH    JMP OUTCH PRINT CHARACTER
       SPC 1
PF0    STX TEMP1
       LDX 0,X
       LDAA 0,X
       BSR PCH PRINT CHARACTER
       LDAA 1,X
       BSR PCH PRINT CHARACTER
       LDAA 2,X
       BSR PCH PRINT CHARACTER
       LDAA 3,X
       BSR PCH PRINT CHARACTER
       LDAA 4,X
       BSR PCH PRINT CHARACTER
       LDAA #$20
       BSR PCH PRINT CHARACTER
       LDX TEMP1
       INX
       INX
       LDX 0,X
       LDAA 0,X
       BSR PCH PRINT CHARACTER
       LDAA 1,X
       BSR PCH PRINT CHARACTER
       LDAA #$20
       BSR PCH PRINT CHARACTER
       LDAA 2,X
       BSR PCH PRINT CHARACTER
       LDAA 3,X
       ANDA #$7F CLR MSB BEFORE PRINTING
       BSR PCH PRINT CHARACTER
       JMP PCRLF
       SPC 1
LSEQ   LDX #P1
       JSR IPA
       BCS LS1
       BVS LS2
LS3    LDAA LNCNT
       CMPA #LPP
       BEQ LS4
       LDAA #1
       ADDA LNCNT
       DAA
       STAA LNCNT
       CLC
       RTS
       SPC 1
LS1    JMP MODP7
       SPC 1
LS2    LDAA LNCNT
       CMPA #LPP
       BEQ LS4
       LDAA #1
       ADDA LNCNT
       DAA
       STAA LNCNT
       JSR PCRLF
       BRA LS3
       SPC 1
LS4    SEC
       RTS
       SPC 1
RL     LDX #TFI-1
       LDAA #$20
RL1    INX
       STAA 0,X
       CPX #TFI+8
       BNE RL1
RL2    BSR RLS
       BCS RL2
       LDX #TFI
RL4    STAA 0,X
       CPX #TFI+5
       BEQ RL3
       INX
       BSR RLS
       BCC RL4
RL5    BSR RLS
       BCS RL5
       STAA TFI+6
       BSR RLS
       BCS RL6
       LDAB TFI+6
       STAB TFI+5
       STAA TFI+6
       BSR RLS
       BCC RL3
RL6    BSR RLS
       BCS RL6
       STAA TFI+8
       BSR RLS
       BCS RL7
       LDAB TFI+8
       STAB TFI+7
       STAA TFI+8
       BSR RLS
       BCC RL3
RL7    RTS
       SPC 1
RL3    JSR PCRLF
       LDX #RL8
       JSR PDATA1 PRINT STRING
       BRA RL
       SPC 1
RLS    JSR INCHNP INPUT CHARACTER
       CMPA #'$
       BEQ RLS1
       CMPA #';
       BEQ RLS2
       CMPA #$20
       BEQ RLS3
       CMPA #$0D
       BEQ RLS4
       CMPA #$0A
       BEQ RLS3
       CLC
       RTS
       SPC 1
RLS1   LDX #STACKT
       BRA RCON
       SPC 1
RLS2   PULA
       PULA
       LDAA #'!
       JSR OUTCH PRINT CHARACTER
       BRA RL
       SPC 1
RLS4   JSR PCRLF
RLS3   SEC
       RTS
       SPC 1
***    BEGINNING OF MAIN CONTROL PROGRAM ***
START  LDS #STACKT
       JSR PCRLF
       LDX #HEADER
       JSR PDATA1 PRINT STRING
       JSR PCRLF
CON    JSR INCHNP INPUT CHARACTER
       CMPA #'$
       BNE WHAT
RCON   JSR INCHNP INPUT CHARACTER
       CMPA #'I
       BEQ MODI
       CMPA #'A
       BNE TESTT
       JMP MODA
        SPC 1
TESTT  CMPA #'T
       BNE TESTP
       JMP MODT
       SPC 1
TESTP  CMPA #'P
       BNE TESTD
       JMP MODP
       SPC 1
TESTD  CMPA #'D
       BEQ MODD
       CMPA #'S
       BNE WHAT
       JMP MODS
       SPC 1
WHAT   LDX #HUH
       JSR PDATA1 PRINT STRING
       BRA CON
       SPC 1
MODI   LDX #FIRST
       STX NEXT
       CLRB
       LDAA #$55
MODI1  STAA 0,X
       CMPA 0,X
       BNE MODI2
       STAB 0,X
       INX
       BRA MODI1
       SPC 1
MODI2  LDX #MODI3
       JSR PDATA1 PRINT STRING
       BRA CON
       SPC 1
MODD   LDAA #'!
       JSR OUTCH PRINT CHARACTER
       JSR RL
       JSR SP1Z
       JSR SP2T
MODD1  JSR CPP
       BCC MODD2
       JSR CPN
       BCC MODD2
       LDX P1+2
       LDAA 3,X
       BPL MODD4
       LDX P1
       INX
       INX
       INX
       INX
       INX
       CPX P1+2
       BEQ MODD3
       LDX P1+2
       LDAA #$80
       DEX
       ORAA 0,X
       STAA 0,X
MODD4  LDX P1+2
MODD5  LDAA 4,X
       STAA 0,X
       INX
       CPX NEXT
       BNE MODD5
MODD9  DEX
       DEX
       DEX
       DEX
       STX NEXT
       BRA MODD
       SPC 1
MODD2  LDX #P1
       JSR IPA
       BCC MODD1
       JSR PCRLF
       LDX #MODD6
       JSR PDATA1 PRINT STRING
       BRA MODD
       SPC 1
MODD3  LDX P1
MODD7  LDAA 9,X
       STAA 0,X
       INX
       CPX NEXT
       BNE MODD7
       DEX
       DEX
       DEX
       DEX
       DEX
       BRA MODD9
       SPC 1
MODA   LDAA #'!
       JSR OUTCH PRINT CHARACTER
       JSR RL
       JSR SP1Z
       JSR SP2T
MODA1  JSR CPN
       BCC MODA3
       LDX NEXT
       LDAA #$55
       STAA 4,X
       CMPA 4,X
       BNE MODA2
       DEX
MODA4  LDAA 0,X
       STAA 4,X
       CPX P1+2
       BEQ MODA5
       DEX
       BRA MODA4
       SPC 1
MODA5  LDX P1
       JSR MTFX
       LDAB #4
       LDX #NEXT
       JSR INC16
       BRA MODA
       SPC 1
MODA3  LDX #P1
       JSR INA
       BCC MODA1
       LDX NEXT
       LDAA #$55
       STAA 9,X
       CMPA 9,X
       BNE MODA2
       LDAA TFI+8
       ORAA #$80
       STAA TFI+8
       LDX NEXT
       JSR MTFX
       LDAB #$09
       LDX #NEXT
       JSR INC16
       BRA MODA
       SPC 1
MODA2  JSR PCRLF
       LDX #MODA6
       JSR PDATA1 PRINT STRING
       JMP CON
       SPC 1
MODT   CLR EFLAG
       JSR SP1Z
MODT1  LDX P1+2
       LDAA 3,X
       BPL MODT2
       LDAA #$FF
       STAA EFLAG
       JSR PCRLF
       LDX #MODT3
       JSR PDATA1 PRINT STRING
       JSR PCRLF
       LDX #P1
       JSR PF0
MODT2  LDX P1
       STX P2
       LDX P1+2
       STX P2+2
       BRA MODT6
       SPC 1
MODT5  JSR CPP
       BCC MODT6
       LDAA #$FF
       STAA EFLAG
       JSR PCRLF
       LDX #MODT4
       JSR PDATA1 PRINT STRING
       JSR PCRLF
       LDX #P1
       JSR PF0
       LDX #P2
       JSR PF0
MODT6  LDX #P2
       JSR IPA
       BCC MODT5
       LDX #P1
       JSR IPA
       BCS MODT10
       BVS MODT1
       BRA MODT2
       SPC 1
MODT10 JSR PCRLF
       LDX #MODT7
       JSR PDATA1 PRINT STRING
       JSR PCRLF
       CLRA
       CMPA EFLAG
       BEQ MODT9
       JMP CON
       SPC 1
MODT9  JSR PCRLF
       LDX #MODT8
       JSR PDATA1 PRINT STRING
       JSR PCRLF
       JMP CON
       SPC 1
MODP   JSR INCHNP INPUT CHARACTER
       CMPA #'1
       BEQ MODP1
       CMPA #'0
       BEQ MODP1
       JMP WHAT
       SPC 1
MODP1  STAA FORM
       JSR PCRLF
       LDX #HEAD
       JSR PDATA1 PRINT STRING
       LDX #PHDR
MODP2  JSR INCHNP INPUT CHARACTER
       CMPA #$0D
       BEQ MODP3
       STAA 0,X
       INX
       CPX #PHDR+50
       BNE MODP2
MODP3  LDAA #$04
       STAA 0,X
       CLR PGCNT
       JSR SP1Z
MODP4  LDAA #1
       ADDA PGCNT
       DAA
       STAA PGCNT
       CLR LNCNT
       JSR PCRLF
       LDAA #$0A
       LDAB #11
       JSR PCON
       LDX #PHDR
       JSR PDATA1 PRINT STRING
       LDX #PAGE
       JSR PDATA1 PRINT STRING
       LDX #PGCNT
       JSR PHEX
       JSR PCRLF
       JSR PCRLF
       LDAA FORM
       CMPA #'0
       BEQ PP0
       LDX #DFAULT
       JSR PDATA1 PRINT STRING
       JMP START
       SPC 1
MODP7  JSR PCRLF
       LDX #ENDL
       JSR PDATA1 PRINT STRING
       JSR PCRLF
       JMP START
       SPC 1
PP0    LDAA #$0A
       LDAB #6
       JSR PCON
PP01   LDX #P1
       JSR PF0
       JSR LSEQ
       BCC PP01
       BRA MODP4
       SPC 1
MODS   LDAA #'!
       JSR OUTCH PRINT CHARACTER
       JSR RL
       JSR SP1Z
MODS4  LDX P1
       PC 1
MODS5  LDX P1+2
       STX TP3
       BRA MODS1
       SPC 1
DFAULT FCC /OUTPUT FORMAT NOT LOADED/
       FCB 4
RL8    FCC /  FORMAT ERROR !  /
       FCB 4
HEADER FCC /WIRELISTER 1.1/
       FCB 4
HUH    FCC /HUH?  /
       FCB 4
MODI3  FCC / CLEARED/
       FCB $0D,$0A,AREA OF RAM USED FOR
*      DATA STORAGE...
FIRST  EQU *
       SPC 1
       END START
