;***************************************************************************;
;                                                                           ;
;                                  SETVUE                                   ;
;                   Sets up INI.VUE initialization files                    ;
;                                                                           ;
;***************************************************************************;
;Copyright (C) 1988 by UltraSoft Corporation.  All Rights Reserved.
;
;1.0(100) 22-Jan-88

       VMAJOR=1
       VMINOR=0
       VSUB=0
       VEDIT=100.
       VWHO=0

       SEARCH  SYS
       SEARCH  SYSSYM

       MEM=A5

       .OFINI
       .OFDEF  FILE,D.DDB
       .OFDEF  EXT,2
       .OFSIZ  MEMSIZ

DEFINE  DEPACK  ADDR
       SUB     #4,SP
       MOV     SP,A2
       LEA     A1,ADDR
       UNPACK
       CLRB    @A2
       TTYL    @SP
       ADD     #4,SP
       ENDM

START:  PHDR    -1,,PH$REE!PH$REU
       GETIMP  MEMSIZ,MEM
CMDLIN: BYP
       LIN
       JEQ     HELP
       LEA     A1,EXT(MEM)
       PACK
SCAN:   LEA     A0,EXTLST
10$:    TSTW    @A0
       JEQ     BADEXT
       CMMW    @A0,EXT(MEM)
       BEQ     FOUND
       ADD     #4,A0
       BR      10$

FOUND:  LEA     A2,SPEC
       FSPEC   FILE(MEM),VUE
       INIT    FILE(MEM)
       LOOKUP  FILE(MEM)
       BNE     10$
       DSKDEL  FILE(MEM)
10$:    OPENO   FILE(MEM)
       CLR     D7
       LEA     A1,EXTLST
       ADDW    2(A0),A1
20$:    MOVB    (A1)+,D1
       BEQ     30$
       TTY
       FILOTB  FILE(MEM)
       BR      20$
30$:    CLOSE   FILE(MEM)
       EXIT

BADEXT: TYPECR  ?That extension is not supported
       CRLF
HELP:   TYPECR  The SETVUE command creates an INI.VUE file for you.  Enter SETVUE followed by
       TYPECR  one of the following file extensions:
       CRLF
       LEA     A0,EXTLST
       CLR     D0
10$:    INC     D0
       CMP     D0,#9.
       BLOS    20$
       CRLF
       MOV     #1,D0
20$:    TAB
       DEPACK  @A0
       ADD     #4,A0
       TSTW    @A0
       BNE     10$
       CRLF
       EXIT

DEFINE  EXT     A
       WORD    [A]
       WORD    A-EXTLST
       ENDM

DEFINE  LINE    TEXT
       ASCII   "TEXT"
       BYTE    15,12
       ENDM

EXTLST:
       EXT     BAS
       EXT     C
       EXT     DDL
       EXT     FOR
       EXT     INI
       EXT     M68
       EXT     MOD
       EXT     MNU
       EXT     PAS
       EXT     TXT
       0

BAS:    LINE    <;AlphaBASIC>
       LINE    DEFAULT=BAS
       LINE    COLUMN=ON
       LINE    START=EDIT
       LINE    GO=COMPIL %/M/N$
       BYTE    0

C:      LINE    <;AlphaC>
       LINE    COLUMN=ON
       LINE    DEFAULT=C
       LINE    GO=CC %$
       LINE    MODEM=ON
       LINE    START=EDIT
       BYTE    0

DDL:    LINE    <;DDL (ANDI)>
       LINE    COLUMN=ON
       LINE    DEFAULT=DDL
       LINE    GO=DDL %$
       LINE    MODEM=ON
       LINE    START=EDIT
       BYTE    0

FOR:    LINE    <;AlphaFORTRAN>
       LINE    COLUMN=ON
       LINE    DEFAULT=FOR
       LINE    GO=F77 %$
       LINE    MODEM=ON
       BYTE    0

INI:    LINE    <;System Initialization File>
       LINE    DEFAULT=INI
       LINE    COLUMN=ON
       LINE    START=COMMAND
       LINE    MODEM=ON
       LINE    GO=BOOT %$
       BYTE    0

M68:    LINE    <;M68 Assembler>
       LINE    DEFAULT=M68
       LINE    COLUMN=ON
       LINE    START=COMMAND
       LINE    ENTRY=ON
       LINE    GO=M68 %$
       BYTE    0

MOD:    LINE    <;Modula-2>
       LINE    COLUMN=ON
       LINE    DEFAULT=MOD
       LINE    GO=MODULA %$
       LINE    INDENT=ON
       LINE    MODEM=ON
       BYTE    0

MNU:    LINE    <;UltraMenu>
       LINE    DEFAULT=MNS
       LINE    COLUMN=ON
       LINE    MODEM=ON
       LINE    GO=MNUCOM %$
       BYTE    0

PAS:    LINE    <;AlphaPascal>
       LINE    COLUMN=ON
       LINE    DEFAULT=PAS
       LINE    GO=PC %$
       LINE    INDENT=ON
       LINE    MODEM=ON
       BYTE    0

TXT:    LINE    DEFAULT=TXT
       LINE    COLUMN=ON
       LINE    MODEM=ON
       LINE    TEXT=ON
       LINE    WRAP=ON
       BYTE    0

SPEC:   ASCIZ   /INI.VUE/
       EVEN

       END