NEW
  AUTO 3,1
*--------------------------------------
            JMP WARM.DOS
            JMP PARSE.COMMAND
SCI.USER.CMD    JMP GP.RTS   USER COMMAND PARSER
            JMP ERROR.HANDLER
PRINT.ERROR JMP ERROR.PRINTER
ERROR.CODE  .HS 00
*--------------------------------
OUTVEC .DA $FDF0,$C100,$C200,$C300,$C400,$C500,$C600,$C700
INVEC  .DA $FD1B,$C100,$C200,$C300,$C400,$C500,$C600,$C700
*--------------------------------
VECOUT .HS F0FD
VECIN  .HS 1BFD
*--------------------------------
VDOSIO .DA 0,0      SAVE HARDWARE VECTOR DURING EXEC, WRITE
       .DA 0,0      VSYSIO
*--------------------------------
D.SLOT .HS 06
D.DRIV .HS 01
*--------------------------------
PREGA  .BS 1
PREGX  .BS 1
PREGY  .BS 1
*--------------------------------
F.TRACE             .BS 1  +=TRACE OFF, -=TRACE ON
STATE               .BS 1  0=IMMD, >0=DEFERRED
F.EXEC              .BS 1
F.READ              .BS 1
F.WRITE             .BS 1
F.PREFIX            .BS 1
DIR.FILE.READ.FLAG  .BS 1
*--------------------------------
       .HS 00
*--------------------------------
STRINGS.SPACE.COUNT    .BS 1
BUFFERED.WRITE.COUNT   .BS 1
COMMAND.LINE.LENGTH    .BS 1
PREVIOUS.CHAR          .BS 1
OPEN.FILE.COUNT        .BS 1
EXEC.FILE.CLOSING.FLAG .BS 1
CATALOG.LINE.STATE     .BS 1
*--------------------------------
EXTERNAL.COMMAND.HANDLER .BS 2
COMMAND.NAME.LENGTH      .BS 1
COMMAND.NUMBER           .BS 1
*--------------------------------
PBITS  .HS 0000
FBITS  .HS 0000
VAL.A  .HS 0000
VAL.B  .HS 000000
VAL.E  .HS 0000
VAL.L  .HS 0000
VAL.S  .HS 00
VAL.D  .HS 00
VAL.F  .HS 0000
VAL.R  .HS 0000
VAL.V  .HS 00
VAL.AT .HS 0000
VAL.T  .HS 00
VAL.LB .HS 00       PR# OR IN# VALUE
*--------------------------------
       .DA PATHNAME.ONE.BUFFER
       .DA PATHNAME.TWO.BUFFER
*--------------------------------
MLI.CALLER
       STA .2
       STX GP.SAVEX
       CMP #$CF
       BCC .1
       LDA #$CE
.1     TAX
       LDA MLI.PARM.PNTRS-$C0,X
       STA .3
       JSR GP.MLI
.2     .HS 00
.3     .DA *
       BCC .6
       LDX #0
.4     CMP MLI.ERROR.CODES,X
       BEQ .5
       INX
       CPX #19
       BCC .4
.5     LDA BI.ERROR.CODES,X 
***    SEC          (CARRY ALREADY SET)
.6     LDX #*-*
GP.SAVEX .EQ *-1
       ORA #0
GP.RTS RTS
*--------------------------------
       .HS 00       <<<SPARE>>>
*---CREATE PARMS-----------------
CREATE.PARMS
       .HS 07
       .DA PATHNAME.ONE.BUFFER
       .HS C3.00.0000.00.0000.0000
*---GET & SET PREFIX, DESTROY----
PREFIX.PARMS
       .HS 01
       .DA PATHNAME.ONE.BUFFER
*---RENAME-----------------------
RENAME.PARMS
       .HS 02
       .DA PATHNAME.ONE.BUFFER
       .DA PATHNAME.TWO.BUFFER
*---GET & SET FILE INFO----------
GET.SET.PARMS
       .HS 0A
       .DA PATHNAME.ONE.BUFFER
       .HS 00.00.0000
       .HS 00.0000.0000.0000.0000.0000
*---MISC-------------------------
MISC.PARMS
       .HS 02.00.0000
       .HS 00
*---OPEN PARMS-------------------
OPEN.PARMS
       .HS 03
       .DA PATHNAME.ONE.BUFFER
       .HS 0000.00
*---SET NEWLINE PARMS------------
NEWLINE.PARMS
       .HS 03.00.7F.0D
*---READ & WRITE PARMS-----------
READ.WRITE.PARMS
       .HS 04.00.0000.0000.0000
*---CLOSE & FLUSH PARMS----------
CLOSE.FLUSH.PARMS
       .HS 01.00
*--------------------------------
*   ADDRESSES OF MLI PARM LISTS FOR EACH CALL $C0-$D3
*      actual address is $BExx
*--------------------------------
MLI.PARM.PNTRS
       .DA #CREATE.PARMS      $C0--CREATE
       .DA #PREFIX.PARMS      $C1--DESTROY
       .DA #RENAME.PARMS      $C2--RENAME
       .DA #GET.SET.PARMS     $C3--SFI
       .DA #GET.SET.PARMS     $C4--GFI
       .DA #MISC.PARMS        $C5--ONLINE
       .DA #PREFIX.PARMS      $C6--SPFX
       .DA #PREFIX.PARMS      $C7--GPFX
       .DA #OPEN.PARMS        $C8--OPEN
       .DA #NEWLINE.PARMS     $C9--NEWLINE
       .DA #READ.WRITE.PARMS  $CA--READ
       .DA #READ.WRITE.PARMS  $CB--WRITE
       .DA #CLOSE.FLUSH.PARMS $CC--CLOSE
       .DA #CLOSE.FLUSH.PARMS $CD--FLUSH
       .DA #MISC.PARMS        $CE--SMARK
*      .DA #MISC.PARMS        $CF--GMARK
*      .DA #MISC.PARMS        $D0--SEOF
*      .DA #MISC.PARMS        $D1--GEOF
*      .DA #MISC.PARMS        $D2--SBUF
*      .DA #MISC.PARMS        $D3--GBUF
*--------------------------------
       .AS -/++++/
*--------------------------------
BUFFER.BASES     .HS 78.7C      LOWER/UPPER BUFFERS
EXEC.BUFFER.BASE .HS 74
*--------------------------------
       RTS          WAS GET BUFFER
       NOP
       NOP
       RTS          WAS RETURN BUFFER
       NOP
       NOP
       .HS 74       HIMEM PAGE
*--------------------------------------
MAN
SAVE usr/src/scmasm.31/sci.s.gp
LOAD usr/src/scmasm.31/scmasm.s
ASM
