home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / USCX / DOSUT-09.ZIP / COTITL.ASM < prev    next >
Assembly Source File  |  1984-11-01  |  2KB  |  89 lines

  1.     TITLE    COTITL    - Diskette Contents List - Get Title
  2.     SUBTTL    Version    1.1 - July 1984
  3.     PAGE    81,132
  4. ;
  5. CODE    SEGMENT    BYTE PUBLIC 'CODE'
  6.     ASSUME    CS:CODE,DS:CODE
  7. ;
  8.     EXTRN    VERS:BYTE
  9. ;
  10.     PUBLIC    TITLX,FREE
  11. LSRCH    DB    '*.*',0
  12. LB3    DB    'Label:'
  13. TPRMT    DB    13,10,'Enter Title: $'
  14. TBUF    DB    37,0            ;Input buffer for user title
  15.     DB    37 DUP (?)
  16. TITLX    DB    39 DUP (' ')        ;Title line
  17. LB1    DB    7 DUP (' ')
  18. LB2    DB    13 DUP (' ')        ;Label field
  19.     DB    'Free: '
  20. FREE    DB    9 DUP (' ')        ;Formatted free    space in title line
  21. MONTH    DB    '  /'            ;Date fields in    title line
  22. DAY    DB    '  /'
  23. YEAR    DB    '  ',0            ;End of    title
  24. ;
  25.     PUBLIC    GETTTL
  26. GETTTL    PROC    NEAR
  27.     MOV    DI,OFFSET TITLX
  28.     MOV    CX,59
  29.     MOV    AL,' '
  30.     REP    STOSB            ;Clear title line
  31.     MOV    DX,OFFSET TPRMT
  32.     MOV    AH,9
  33.     INT    21H            ;Prompt    for title
  34.     MOV    DX,OFFSET TBUF
  35.     MOV    AH,0AH
  36.     INT    21H            ;Get user title
  37.     MOV    CL,TBUF+1        ;Load length
  38.     XOR    CH,CH
  39.     MOV    SI,OFFSET TBUF+2
  40.     MOV    DI,OFFSET TITLX
  41.     REP    MOVSB            ;Move user title to title line
  42.     MOV    AH,2AH
  43.     INT    21H            ;Get date
  44.     SUB    CX,1900            ;Convert to two    digit year
  45.     MOV    DI,OFFSET YEAR
  46.     MOV    AL,CL
  47.     CALL    DECMAL            ;Fill in month/day/year
  48.     MOV    DI,OFFSET MONTH
  49.     MOV    AL,DH            ;  for title line
  50.     CALL    DECMAL
  51.     MOV    DI,OFFSET DAY
  52.     MOV    AL,DL
  53.     CALL    DECMAL
  54.     CMP    VERS,3            ;See if    Version    3 or later
  55.     JB    TDNE            ;No, so    skip label
  56.     MOV    DX,OFFSET LSRCH        ;Check directory for label
  57.     MOV    AH,4EH
  58.     MOV    CX,8
  59.     INT    21H
  60.     JC    TDNE            ;No label
  61.     MOV    SI,OFFSET LB3        ;Move in "Label:"
  62.     MOV    DI,OFFSET LB1
  63.     MOV    CX,6
  64.     REP    MOVSB
  65.     MOV    SI,9EH            ;Move in diskette label
  66.     MOV    DI,OFFSET LB2
  67.     MOV    CX,11
  68. LBLP:    LODSB
  69.     OR    AL,AL
  70.     JZ    TDNE            ;Label terminates with null
  71.     CMP    AL,'.'
  72.     JE    LBLP            ;DOS insists on    punctuation
  73.     STOSB
  74.     LOOP    LBLP
  75. TDNE:    RET
  76. GETTTL    ENDP
  77. ;
  78. DECMAL    PROC    NEAR            ;Converts AL to    two decimal
  79.     AAM                ;  digits and stores at    SI
  80.     OR    AX,'00'
  81.     XCHG    AL,AH
  82.     STOSW                ;Save in image
  83.     RET
  84. DECMAL    ENDP
  85. ;
  86. CODE    ENDS
  87. ;
  88.     END
  89.