home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol044 / fmap4.asm < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  10.1 KB  |  700 lines

  1. ;
  2. ;    MAJOR REVISION OF FMAP3 BY:
  3. ;        RICHARD GOLDBERG
  4. ;        LAWRENCEVILLE, NJ
  5. ;        (609) 896-0241
  6. ;
  7. ;    1. UNLIMITED NUMBER OF DIRECTORY ENTRIES
  8. ;    2. COMMAND LINE OPTIONS ARE:
  9. ;        M - CREATES NAMES.SUB FILE SUITABLE FOR USE WITH
  10. ;            THE MODEM PROGRAM IN THE FORMAT OF:
  11. ;            $1 $2 $3FILENAME.TYP
  12. ;        P - CREATES NAMES.SUB FILE SUITABLE FOR USE WITH
  13. ;            PIP IN THE FORMAT OF:
  14. ;            $1 $2FILENAME.TYP$3
  15. ;        N - CREATES NAMES.SUB FILE WHICH CONTAINS REQUESTED
  16. ;            FILENAMES.
  17. ;        F - CREATES NAMES.SUB FILE WHICH CONTAINS ALL FILENAMES
  18. ;            ON DISK FOLLOWED BY ";" AND USER NUMBER.
  19. ;        U - LIST ALL FILENAMES ON DISK ON THE CONSOLE
  20. ;    3. PROGRAM WILL AUTOMATICALLY LIST ALL FCB INFORMATION
  21. ;        ON THE CONSOLE. TO INHIBIT THIS LISTING USE OPTION
  22. ;        "N" IN CONJUCTION WITH ONE OF THE OPTIONS LISTED ABOVE.
  23. ;    4. THE SOURCE DRIVE WILL BE THE DEFAULT DRIVE UNLESS THE 
  24. ;        REQUESTED FILENAME IS PRECEDED BY A DRIVE ID.
  25. ;    5. THE OUTPUT DRIVE WILL BE THE DEFAULT DRIVE UNLESS THE 
  26. ;        OPTIONS ARE PRECEDED BY A DRIVE ID.
  27. ;    6. EXAMPLES:
  28. ;        FMAP4 *.ASM MN   CREATES NAMES.SUB FILE OF ALL ".ASM"
  29. ;                 FILES FOR THE CURRENT USER WITH NO
  30. ;                 CONSOLE LISTING.
  31. ;        FMAP4 C:*.* B:F  CREATES NAMES.SUB FILE ON DRIVE B: OF
  32. ;                 ALL THE FILES ON DRIVE C: AND LISTS
  33. ;                 ALL OF THE FCB INFO ON THE CONSOLE.
  34. ;        FMAP4            LISTS ALL OF THE FCB INFO ON THE CONSOLE
  35. ;                 OF ALL THE FILES IN THE CURRENT USER
  36. ;                 ON THE CURRENT DRIVE.
  37. ;
  38.     ORG    0100H
  39. BDOS    EQU    05H
  40. FCB    EQU    5CH
  41. ;
  42.     JMP    START
  43. ;
  44.     DB    '(FMAP 08/03/81)'
  45. ;
  46. START:    LXI    H,0
  47.     DAD    SP
  48.     SHLD    STACK
  49.     LXI    SP,STACK
  50.     LXI    H,FCB+1    ;CHECK IF FILENAME WAS GIVEN
  51.     MOV    A,M
  52.     CPI    ' '
  53.     JNZ    FILEG
  54.     MVI    B,11    ;FILL NAME AND TYPE WITH '?'
  55. FILL:    MVI    M,'?'
  56.     INX    H
  57.     DCR    B
  58.     JNZ    FILL
  59. FILEG:    LDA    FCB+16    ;2ND UNIT PARAM.
  60.     ORA    A
  61.     JZ    NODEST
  62.     STA    MYFCB    ;CHG OUTPUT DRIVE
  63. NODEST:    LDA    FCB+17
  64.     MOV    C,A    ;OPTION IN C
  65.     CPI    ' '
  66.     JZ    NOOPT    ;NO OPTION GIVEN
  67.     LXI    H,OPTION ;POINT TO TABLE OF OPTIONS
  68.     MOV    A,M    ;A=NUMBER OF OPTIONS
  69.     INX    H
  70.     MOV    B,A
  71.     MVI    D,1    ;COUNTER
  72. OPLOOP:    MOV    A,M
  73.     CMP    C    ;RIGHT OPTION?
  74.     JZ    FOUND
  75.     INX    H
  76.     INR    D
  77.     DCR    B
  78.     JNZ    OPLOOP
  79.     CALL    ERXIT
  80.     DB    '++ILLEGAL OPTION$'
  81.  
  82. FOUND:    MOV    A,D
  83.     STA    OPTNUM    ;SAVE OPTION NUMBER
  84.     XRA    A
  85.     STA    FILESW
  86. NOOPT:    MVI    C,25    ;FIND LOGGED DISK
  87.     CALL    BDOS
  88.     STA    CDSK
  89.     LDA    FCB
  90.     ORA    A
  91.     JNZ    FSPEC2    ;NO DRIVE SPEC'D
  92.     LDA    CDSK
  93.     INR    A
  94. FSPEC2:    DCR    A    ;ADJ FOR INPUT RNG
  95.     MOV    E,A
  96.     MVI    C,14    ;SELECT DRIVE WANTED
  97.     CALL    BDOS
  98.     LDA    FCB+18    ;GET SECONDARY OPTION
  99.     CPI    'N'    ;NO LISTING ON CONSOLE?
  100.     JNZ    FSPEC3
  101.     LXI    H,CONSW
  102.     DCR    M    ;MAKE NON-ZERO
  103. FSPEC3:    LXI    H,FCB
  104.     MVI    M,0
  105.     LDA    OPTNUM
  106.     CPI    4    ;"M", "P" OR "N" OPTION?
  107.     JC    FSPEC4
  108.     MVI    M,'?'    ;MATCH ALL ENTRIES
  109.     LXI    H,ALLUSR
  110.     DCR    M    ;MAKE NON-ZERO
  111.     CPI    4    ;"F" OPTION?
  112.     JZ    FSPEC4
  113.     XRA    A
  114.     STA    OPTNUM
  115. FSPEC4:    MVI    C,27    ;GET ALLOC VECT
  116.     CALL    BDOS
  117.     SHLD    ALLADR    ;SAVE ALLOC PNTR.
  118.     MVI    C,12    ;FIND REVISION
  119.     CALL    BDOS
  120.     ORA    A
  121.     JZ    OLDCPM    ;BEFORE 2.0 USE DFLTS
  122.     MVI    C,32    ;GET USER NUMBER
  123.     MVI     E,0FFH
  124.     CALL    BDOS
  125.     STA    USER    ;SAVE IN MEMORY
  126.     MVI    C,31    ;GET DPB ADDRESS
  127.     CALL    BDOS
  128.     INX    H
  129.     INX    H
  130.     INX    H
  131.     MOV    A,M    ;GET BLM
  132.     INR    A    ;MAKE SECTORS/BLOCK
  133.     RRC
  134.     RRC
  135.     RRC        ;DIVIDE BY 8 FOR KB/BLK
  136.     ANI    1FH
  137.     STA    BLKSIZ    ;SIZE IN KBYTES
  138.     INX    H
  139.     MOV    A,M    ;EXTENT MASK
  140.     STA    EXTMSK
  141.     LDA    BLKSIZ    ;RESTORE SIZE
  142.     INX    H
  143.     MOV    E,M
  144.     INX    H
  145.     MOV    D,M    ;DSM
  146.     XCHG        ;TOTAL BLOCK COUNT
  147.     SHLD    BLKCNT
  148.     XCHG
  149.     INX    H
  150.     MOV    E,M    ;DRM
  151.     INX    H
  152.     MOV    D,M
  153.     INX    D
  154.     XCHG
  155.     SHLD    DIR
  156. ;
  157. OLDCPM:    LHLD    DIR    ;# OF DIRECTORY ENTRIES
  158.     LXI    D,ORDER
  159.     XCHG
  160.     DAD    D
  161.     DAD    D
  162.     SHLD    TABLE    ;STARTING ADDR OF FCB TABLE
  163.     SHLD    NEXTT
  164.     MVI    C,17    ;SRCH FIRST
  165.     LXI    D,FCB
  166.     CALL    BDOS
  167.     INR    A
  168.     PUSH    PSW
  169.     LXI    D,TTL
  170.     CALL    WRCON
  171.     CALL    CR
  172.     POP    PSW
  173.     JMP    SOME
  174. ;
  175. TTL:    DB    'FILENAME TYP U EX RC -----EXTENT-----'
  176.     DB    'VER. 1.0 08/03/81$'
  177. MORDIR:    MVI    C,12H
  178.     LXI    D,FCB
  179.     CALL    BDOS
  180.     INR    A
  181.     JZ    SPRINT
  182. SOME:    DCR    A
  183.     ANI    3
  184.     ADD    A
  185.     ADD    A
  186.     ADD    A
  187.     ADD    A
  188.     ADD    A
  189.     LXI    H,80H
  190.     ADD    L
  191.     MOV    L,A
  192.     MOV    C,M    ;SAVE USER
  193.     LDA    ALLUSR
  194.     ORA    A    ;"U" OR "F" OPTION
  195.     JNZ    SOME1
  196.     LDA    USER    ;GET CURRENT USER #
  197.     CMP    C    ;IS FILE IN CURRENT USER?
  198.     JNZ    MORDIR
  199. SOME1:    MVI    A,0E5H    ;CHECK FOR DELETED FILES
  200.     CMP    C
  201.     JZ    MORDIR
  202.     INX    H
  203.     XCHG
  204.     LHLD    NEXTT
  205.     MVI    B,11    ; NAME
  206. TMOVE1:    LDAX    D
  207.     ANI    7FH
  208.     MOV    M,A
  209.     INX    D
  210.     INX    H
  211.     DCR    B
  212.     JNZ    TMOVE1
  213.     MOV    M,C    ;USER
  214.     INX    H
  215.     MVI    B,20    ;OTHER BYTES
  216. TMOVE2:    LDAX    D
  217.     MOV    M,A
  218.     INX    D
  219.     INX    H
  220.     DCR    B
  221.     JNZ    TMOVE2
  222.     SHLD    NEXTT
  223.     LHLD    COUNT
  224.     INX    H
  225.     SHLD    COUNT
  226.     JMP    MORDIR
  227. ;
  228. SPRINT:    LHLD    COUNT
  229.     SHLD    OCOUNT
  230.     SHLD    SCOUNT
  231.     MOV    A,H
  232.     ORA    L
  233.     JZ    DFEXIT
  234.     LHLD    TABLE
  235.     XCHG
  236.     LXI    H,ORDER
  237.     LXI    B,32
  238. BLDORD:    MOV    M,E
  239.     INX    H
  240.     MOV    M,D
  241.     INX    H
  242.     XCHG
  243.     DAD    B
  244.     XCHG
  245.     PUSH    H
  246.     LHLD    OCOUNT
  247.     DCX    H
  248.     SHLD    OCOUNT
  249.     MOV    A,H
  250.     ORA    L
  251.     POP    H
  252.     JNZ    BLDORD
  253.     LHLD    COUNT
  254.     DCX    H
  255.     MOV    A,H
  256.     ORA    L
  257.     JZ    DONE
  258. SORT:    XRA    A
  259.     STA    SWITCH
  260.     LHLD    SCOUNT
  261.     DCX    H
  262.     SHLD    TEMP
  263.     SHLD    SCOUNT
  264.     MOV    A,H
  265.     ORA    L
  266.     JZ    DONE
  267.     LXI    H,ORDER
  268. SORTLP:    CALL    COMPR
  269.     CM    SWAP
  270.     INX    H
  271.     INX    H
  272.     PUSH    H
  273.     LHLD    TEMP
  274.     DCX    H
  275.     SHLD    TEMP
  276.     MOV    A,H
  277.     ORA    L
  278.     POP    H
  279.     JNZ    SORTLP
  280.     LDA    SWITCH
  281.     ORA    A
  282.     JNZ    SORT
  283. DONE:    LXI    H,ORDER
  284.     SHLD    NEXTT
  285.     LDA    CDSK
  286.     MOV    E,A
  287.     MVI    C,14    ;SEL DSK
  288.     CALL    BDOS    ;ORIG DRIVE
  289.     LDA    OPTNUM
  290.     ORA    A
  291.     JZ    ENTRY
  292.     LXI    D,MYFCB
  293.     MVI    C,13H
  294.     CALL    BDOS
  295.     LXI    D,MYFCB
  296.     MVI    C,16H
  297.     CALL    BDOS
  298.     INR    A
  299.     JNZ    ENTRY
  300.     CALL    ERXIT
  301.     DB    '++FILE MAKE ERROR$'
  302. ENTRY:    MVI    C,11    ;CONS STAT
  303.     CALL    BDOS
  304.     DCR    A
  305.     JZ    ABORT
  306.     LHLD    NEXTT
  307.     MOV    E,M
  308.     INX    H
  309.     MOV    D,M    ;DE=ADDR OF ENTRY
  310.     INX    H
  311.     SHLD    NEXTT
  312.     LXI    H,11    ;USER OFFSET
  313.     DAD    D
  314.     MOV    A,M    ;USER BYTE
  315.     ADI    90H
  316.     DAA
  317.     ACI    40H
  318.     DAA
  319.     MOV    M,A    ;NOW ASCII
  320.     INX    H
  321.     MOV    B,M    ;EXTENT NUMBER
  322.     LDA    EXTMSK
  323.     CMP    B
  324.     JP    ENTRY2    ;SKIP IF EXTMSK >= EXTENT #
  325.     MVI    A,0FFH
  326.     STA    FILESW
  327. ENTRY2:    XCHG
  328.     JMP    PTONE3
  329. ;
  330. PTONE3:    PUSH    H
  331.     LDA    OPTNUM    ;GET OPTION NUMBER
  332.     ORA    A
  333.     JZ    PTONE4
  334.     CPI    3    ;OPTION F?
  335.     JNC    PTONE4
  336.     PUSH    PSW
  337.     MVI    B,5
  338.     LXI    H,FMSG1
  339.     CALL    FTYPE    ;OUTPUT "$1 $2" TO FILE
  340.     POP    PSW
  341.     DCR    A    ;OPTION M?
  342.     JNZ    PTONE4    ;NO, THEN SKIP NEXT PART
  343.     MVI    A,' '
  344.     CALL    FILCHS    ;OUTPUT BLANK
  345.     LXI    H,FMSG2
  346.     MVI    B,2
  347.     CALL    FTYPE    ;OUTPUT "$3" TO FILE
  348. PTONE4:    POP    H
  349.     MVI    B,8
  350.     CALL    TYPEIT
  351.     CALL    PERIOD
  352.     MVI    B,3
  353.     CALL    TYPEIT
  354.     LDA    OPTNUM    ;GET OPTION #
  355.     CPI    2    ;OPTION "P"?
  356.     JNZ    PTONE5    ;NO, THEN SKIP THIS
  357.     PUSH    H
  358.     PUSH    PSW
  359.     LXI    H,FMSG2
  360.     MVI    B,2
  361.     CALL    FTYPE    ;OUTPUT "$3" TO FILE
  362.     POP    PSW
  363.     POP    H
  364. PTONE5:    CPI    4    ;OPTION "F"
  365.     CNZ    FILECR
  366.     CALL    SEMIC
  367.     MVI    B,1
  368.     CALL    TYPEIT
  369.     CALL    FILECR
  370.     CALL    SPACE
  371.     MOV    A,M
  372.     CALL    XOB
  373.     INX    H
  374.     INX    H
  375.     INX    H
  376.     MOV    A,M
  377.     CALL    XOB
  378.     INX    H
  379.     LXI    B,1000H ;BYTES & SPACE FLG
  380. EXTLP:    LDA    BLKCNT+1
  381.     ORA    A    ;CHECK IF GROUP # IS 1 OR 2 BYTES
  382.     JZ    EXT1
  383.     DCR    B
  384.     MOV    E,M    ;SAVE LOW ORDER BYTE
  385.     INX    H
  386.     MOV    A,M
  387.     CALL    XO    ;PRINT HIGH ORDER BYTE
  388.     MOV    A,E
  389.     JMP    EXT2
  390. EXT1:    MOV    A,M
  391. EXT2:    CALL    XOB    ;PRINT BYTE AND BLANK
  392. NXCLUS:    INX    H
  393.     DCR    B
  394.     JNZ    EXTLP
  395.     PUSH    H
  396.     LHLD    NFILE
  397.     INX    H
  398.     SHLD    NFILE
  399.     CALL    CR
  400.     XRA    A
  401.     STA    FILESW
  402. NX1:    LHLD    COUNT
  403.     DCX    H
  404.     SHLD    COUNT
  405.     MOV    A,H
  406.     ORA    L
  407.     POP    H
  408.     JNZ    ENTRY
  409. ;
  410. DFEXIT:    MVI    A,0FFH
  411.     STA    FILESW
  412.     INR    A
  413.     STA    CONSW
  414.     LHLD    BLKCNT
  415.     INX    H
  416.     MOV    D,H
  417.     MOV    E,L    ;TOTAL COUNTER IN DE
  418.     PUSH    H    ;LEFT COUNTER ON STK
  419.     LHLD    ALLADR
  420. LP3:    MVI    B,8    ;BIT COUNT
  421.     MOV    A,M    ;ALLOC BYTE
  422.     XTHL        ;SAVE PTR,GET LEFT CNT
  423. LP2:    RLC        ;BIT TO CY
  424.     JNC    LP1    ;UNUSED BLK
  425.     DCX    H    ;COUNT OFF
  426. LP1:    DCX    D    ;DECR TOTAL
  427.     MOV    C,A
  428.     MOV    A,D
  429.     ORA    E
  430.     JZ    CNTDUN    ;FINISHED SCAN
  431.     MOV    A,C    ;RESTORE
  432.     DCR    B
  433.     JNZ    LP2
  434.     XTHL
  435.     INX    H    ;STEP TBL PTR
  436.     JMP    LP3
  437. ;
  438. CNTDUN:    XCHG        ;COUNT IN DE
  439.     POP    H    ;CLEAR UP STACK
  440.     LDA    BLKSIZ
  441.     CALL    MPY8    ;CALC IN KB
  442.     CALL    OUTNUM
  443.     MVI    B,11
  444.     LXI    H,ROOM1
  445.     CALL    TYPEIT
  446.     CALL    FILECR
  447.     CALL    CR
  448.     LHLD    NFILE
  449.     CALL    OUTNUM
  450.     LXI    D,NMSG
  451.     CALL    WRCON
  452.     LDA    OPTNUM
  453.     ORA    A
  454.     JZ    EXIT
  455.     XRA    A
  456.     STA    FILESW
  457.     MVI    A,1AH
  458.     CALL    FILCHR
  459.     CALL    WRSEC
  460.     LXI    D,MYFCB
  461.     MVI    C,10H
  462.     CALL    BDOS
  463.     JMP    EXIT
  464. ;
  465. NMSG:    DB    ' DIRECT. ENTRIES USED$'
  466. ;
  467. DIVIDE:    XRA    A
  468.     MVI    B,10H
  469. DIV01:    DAD    H
  470.     RAL
  471.     CMP    C
  472.     JC    DIV02
  473.     SUB    C
  474.     INX    H
  475. DIV02:    DCR    B
  476.     JNZ    DIV01
  477.     RET
  478. ;
  479. MPY8:    LXI    H,0
  480. MPY81:    ORA    A
  481.     RZ
  482.     RAR
  483.     JNC    MPY01
  484.     DAD    D
  485. MPY01:    XCHG
  486.     DAD    H
  487.     XCHG
  488.     JMP    MPY81
  489. ;
  490. OUTNUM:    MVI    D,0
  491.     MVI    C,10    ;RADIX
  492. OUTN01:    CALL    DIVIDE
  493.     PUSH    PSW
  494.     INR    D
  495.     MOV    A,H
  496.     ORA    L
  497.     JNZ    OUTN01
  498.     MOV    B,D
  499. OUTN02:    POP    PSW
  500.     CALL    NIBBL
  501.     DCR    B
  502.     JNZ    OUTN02
  503.     RET
  504. ;
  505. XOB:    CALL    XO
  506.     JMP    SPACE
  507. ;
  508. XO:    PUSH    PSW
  509.     RAR
  510.     RAR
  511.     RAR
  512.     RAR
  513.     CALL    NIBBL
  514.     POP    PSW
  515. ;
  516. NIBBL:    ANI    0FH
  517.     ADI    90H
  518.     DAA
  519.     ACI    40H
  520.     DAA
  521.     JMP    FILC
  522. ;
  523. TYPE:    PUSH    B
  524.     PUSH    D
  525.     PUSH    H
  526.     MOV    E,A
  527.     MVI    C,2
  528.     LDA    CONSW
  529.     ORA    A
  530.     CZ    BDOS
  531.     POP    H
  532.     POP    D
  533.     POP    B
  534.     RET
  535. ;
  536. WRCON:    LDA    CONSW
  537.     ORA    A
  538.     RNZ
  539.     MVI    C,9
  540.     JMP    BDOS
  541. ;
  542. TYPEIT:    MOV    A,M
  543.     CALL    FILCHR
  544.     CALL    TYPE
  545.     INX    H
  546.     DCR    B
  547.     JNZ    TYPEIT
  548.     RET
  549. ;
  550. FTYPE:    MOV    A,M
  551.     CALL    FILCHS
  552.     INX    H
  553.     DCR    B
  554.     JNZ    FTYPE
  555.     RET
  556. ;
  557. SPACE:    MVI    A,' '    ;20H
  558.     JMP    TYPE
  559. ;
  560. SPACF:    MVI    A,' '    ;20H
  561. FILC:    CALL    FILCHS
  562.     JMP    TYPE
  563. ;
  564. CR:    MVI    A,0DH
  565.     MVI    C,2
  566.     CALL    TYPE
  567.     MVI    A,0AH
  568.     JMP    TYPE
  569. ;
  570. TEMP:    DS    2
  571. ;
  572. ERXIT:    POP    D
  573.     MVI    C,9
  574.     JMP    CALLB
  575. ;
  576. ABORT:    MVI    C,1
  577. CALLB:    CALL    BDOS
  578. EXIT:    LHLD    STACK
  579.     SPHL
  580.     RET
  581. ;
  582. FILCHR:    CPI    ' '    ;20H
  583.     RZ
  584. FILCHS:    PUSH    PSW
  585.     LDA    FILESW
  586.     ORA    A
  587.     JNZ    NOFILE
  588.     POP    PSW
  589.     PUSH    PSW
  590.     PUSH    H
  591.     LHLD    BUFAD
  592.     MOV    M,A
  593.     INX    H
  594.     SHLD    BUFAD
  595.     MOV    A,H
  596.     DCR    A
  597.     CZ    WRSEC
  598.     POP    H
  599. NOFILE:    POP    PSW
  600.     RET
  601. ;
  602. WRSEC:    PUSH    B
  603.     PUSH    D
  604.     LXI    D,MYFCB
  605.     MVI    C,15H
  606.     CALL    BDOS
  607.     ORA    A
  608.     JZ    WROK
  609.     CALL    ERXIT
  610.     DB    '++WRITE ERROR$'
  611. WROK:    LXI    H,80H
  612.     SHLD    BUFAD
  613.     POP    D
  614.     POP    B
  615.     RET
  616. ;
  617. PERIOD:    MVI    A,'.'    ;2EH
  618. CHCOM:    CALL    FILCHR
  619.     JMP    SPACE
  620. ;
  621. SEMIC:    MVI    A,';'
  622.     JMP    CHCOM
  623. ;
  624. FILECR:    MVI    A,0DH
  625.     CALL    FILCHR
  626.     MVI    A,0AH
  627.     CALL    FILCHR
  628.     MVI    A,0FFH
  629.     STA    FILESW
  630.     RET
  631. ;
  632. COMPR:    PUSH    H
  633.     MOV    E,M
  634.     INX    H
  635.     MOV    D,M
  636.     INX    H
  637.     MOV    C,M
  638.     INX    H
  639.     MOV    B,M
  640.     XCHG
  641. CMPLP:    LDAX    B
  642.     CMP    M
  643.     INX    H
  644.     INX    B
  645.     JZ    CMPLP
  646.     POP    H
  647.     RET
  648. ;
  649. SWAP:    MVI    A,1
  650.     STA    SWITCH
  651.     MOV    C,M
  652.     INX    H
  653.     PUSH    H
  654.     MOV    B,M
  655.     INX    H
  656.     MOV    E,M
  657.     MOV    M,C
  658.     INX    H
  659.     MOV    D,M
  660.     MOV    M,B
  661.     POP    H
  662.     MOV    M,D
  663.     DCX    H
  664.     MOV    M,E
  665.     RET
  666. ;
  667.     DS    30
  668. STACK:    DS    2
  669. NFILE:    DW    0
  670. ALLADR:    DW    0    ;ALLOC VECT PTR
  671. BLKCNT:    DW    0
  672. BLKSIZ:    DB    1    ;1.4 DEFAULT
  673. TABLE:    DW    0
  674. NEXTT:    DW    0
  675. COUNT:    DW    0
  676. EXTMSK:    DB    0    ;1.4 DEFAULT
  677. DIR:    DW    64    ;1.4 DEFAULT
  678. USER:    DB    0    ;1.4 DEFAULT
  679. ALLUSR:    DB    0
  680. ROOM1:    DB    'K REMAINING'
  681. SCOUNT:    DW    0
  682. OCOUNT:    DW    0
  683. CDSK:    DB    0
  684. SWITCH:    DB    0
  685. FILESW:    DB    0FFH
  686. CONSW:    DB    0
  687. OPTNUM:    DB    0
  688. OPTION:    DB    5,'MPNFU'
  689. FMSG1:    DB    '$1 $2'
  690. FMSG2:    DB    '$3'
  691. BUFAD:    DW    80H
  692. MYFCB:    DB    0    ;DEFAULT DRIVE
  693.     DB    'NAMES   SUB'
  694.     DB    0
  695.     DS    19
  696.     DB    0
  697. ORDER    EQU    $
  698.  
  699.     END
  700.