home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / hard.hdv / HARD / PROJECT / SOURCE / DIR.SC2 < prev    next >
Encoding:
Text File  |  1992-11-02  |  5.5 KB  |  218 lines  |  [04] ASCII Text (0x0000)

  1. ;=======================================
  2. ;DIRECTORY NAVIGATOR
  3. ;
  4. ;
  5. APTR     EQU       $EB       ;POINTER FOR PRINTING TEXT
  6. ;
  7. ;===========================        
  8. ;DRAWSCRN: SET UP SCREEN LAYOUT
  9. ;===========================
  10. DRAWSCRN LDX       #$00
  11.          LDY       #$00
  12.          JSR       MOVETO    ;MOVE TO 0,0
  13.          LDA       DIRBUFR+4
  14.          AND       #$F0
  15.          CMP       #$E0
  16.          BEQ       PRSUB
  17.          LDA       #>VOLTIT  ;PRINT TITLE FOR VOL OR SUB DIR
  18.          LDY       #<VOLTIT
  19.          JSR       PRINT
  20.          CLV
  21.          BVC       PRDIR
  22. PRSUB    LDA       #>SUBTIT
  23.          LDY       #<SUBTIT
  24.          JSR       PRINT        
  25. PRDIR    LDA       #>PATHNAME          ;PRINT PATHNAME BUFFER
  26.          LDY       #<PATHNAME
  27.          JSR       PRINT
  28.          LDX       #$00                ;PRINT BAR ON LINE 1
  29.          LDY       #$01
  30.          JSR       MOVETO
  31.          JSR       PRINTBAR
  32.          LDA       #$00                ;INITIALIZE HPOS & VPOS TO 0,2
  33.          STA       HPOS
  34.          LDA       #$02
  35.          STA       VPOS
  36.          RTS
  37. ;
  38. ;
  39. VOLTIT   DFB       9
  40.          ASC       'VOL DIR: '
  41. SUBTIT   DFB       9
  42.          ASC       'SUB DIR: '
  43. ;        
  44. ;MOVETO SUBROUTINE - USES X,Y AS COORDINATES TO POSITION CURSOR
  45. MOVETO   LDA       #$8D      ;PRINT CR FIRST
  46.          JSR       $FDED
  47.          STX       0036
  48.          STY       0037
  49.          JSR       $FC22     ;CALL VTAB SUBROUTINE TO POSITION CURSOR
  50.          RTS
  51. ;
  52. ; PRINT SUBROUTINE- GIVEN ADDRESS POINTER IN A,Y, WHERE FIRST BYTE = LENGTH
  53. PRINT    STA       APTR
  54.          STY       APTR+1
  55.          STX       XSAVE
  56.          LDY       #$00
  57.          LDA       (APTR),Y
  58.          TAX
  59. PRINT0   INY
  60.          LDA       (APTR),Y
  61.          ORA       #$80      ;PRINT WITH NORMAL TEXT
  62.          JSR       $FDED
  63.          DEX
  64.          BNE       PRINT0
  65.          LDX       XSAVE     ;RESTORE REGISTERS
  66.          LDY       APTR+1
  67.          LDA       APTR       
  68.          RTS
  69. ;
  70. PRINTBAR LDA       #'='      ;PRINT BAR LINE OF 80 = SIGNS
  71.          LDX       #80
  72. PRNTBAR0 JSR       $FDED
  73.          DEX
  74.          BNE       PRNTBAR0
  75.          RTS
  76. ;
  77. ;
  78. ;FORMAT DATA IN OUR FILE BUFFER AND DISPLAY ON SCREEN
  79. ;==================================================
  80. FORMDATA LDA       #19       ;STORE LENGTH BYTE OF 19 CHARS TO DISPLAY
  81.          JSR       STORBYTE  
  82.          LDY       #$00      ;GET LENGTH OF NAME
  83.          LDA       (TEMP),Y
  84.          AND       #$0F
  85.          STA       NAMELEN
  86. ;
  87.          LDY       #$1E      ;GET ACCESS BYTE
  88.          LDA       (TEMP),Y
  89.          AND       #$C2      ;LOOK FOR WRITE, DESTROY, RENAME ACCESS
  90.          BEQ       LOCKED
  91.          LDA       #' '
  92.          CLV
  93.          BVC       UNLOCKED
  94. LOCKED   LDA       #'*'
  95. UNLOCKED JSR       STORBYTE
  96.          LDY       #$01
  97. GETNAME  LDA       (TEMP),Y
  98.          CPY       NAMELEN
  99.          BCC       ORIT
  100.          BEQ       ORIT
  101.          LDA       #$A0
  102. ORIT     ORA       #$80
  103.          JSR       STORBYTE
  104.          INY
  105.          CPY       #$10
  106.          BNE       GETNAME
  107. ;
  108.          LDX       #$00
  109. GETTYPE  LDY       #$10      ;GET FILE TYPE
  110.          LDA       (TEMP),Y
  111.          CMP       FTYPES,X
  112.          BEQ       GOTTYPE
  113.          INX
  114.          INX
  115.          INX
  116.          INX
  117.          LDA       FTYPES,X
  118.          BEQ       NOTYPE
  119.          BNE       GETTYPE
  120. ;
  121. GOTTYPE  INX
  122.          LDA       FTYPES,X
  123.          JSR       STORBYTE
  124.          INX
  125.          LDA       FTYPES,X
  126.          JSR       STORBYTE
  127.          INX
  128.          LDA       FTYPES,X
  129.          JSR       STORBYTE
  130.          CLV
  131.          BVC       DODATE
  132. ;
  133. NOTYPE   LDA       #'$'
  134.          JSR       STORBYTE
  135.          LDY       #$10
  136.          LDA       (TEMP),Y
  137.          JSR       NIBBLES
  138.          CLV
  139.          BVC       DODATE
  140. ;
  141. ;
  142. NIBBLES  PHA                 ;PUT BOTH HEX NIBBLES INTO FILE
  143.          LSR       A                    ;STORE HEX VALUE IN FILE
  144.          LSR       A                    ;CLONED CODE FROM $FDDA
  145.          LSR       A
  146.          LSR       A
  147.          JSR       FIRSTNIB
  148.          PLA
  149.          AND       #$0F
  150. FIRSTNIB ORA       #$B0
  151.          CMP       #$BA
  152.          BCC       NOTBIG
  153.          ADC       #$06
  154. NOTBIG   JSR       STORBYTE
  155.          RTS                
  156. ;
  157. ;
  158. DODATE   LDY       #$19
  159.          JSR       DODATE0
  160.          LDY       #$22
  161.          JSR       DODATE0
  162. ;
  163. ; NOW STICK IN THE EOF AND AUXTYPE
  164.          LDA       #'$'
  165.          JSR       STORBYTE
  166.          LDY       #$17
  167.          LDA       (TEMP),Y
  168.          JSR       NIBBLES
  169.          DEY
  170.          LDA       (TEMP),Y
  171.          JSR       NIBBLES
  172.          DEY
  173.          LDA       (TEMP),Y
  174.          JSR       NIBBLES
  175. ;
  176.          LDA       #'$'
  177.          JSR       STORBYTE
  178.          LDY       #$20
  179.          LDA       (TEMP),Y
  180.          JSR       NIBBLES
  181.          DEY
  182.          LDA       (TEMP),Y
  183.          JSR       NIBBLES
  184. ;
  185. ;
  186. ; PRINT THE FILE NAME ON SCREEN
  187. ;=================================
  188.          LDX       HPOS
  189.          CPX       #$80      ;IF SCREEN FULL, DON'T PRINT
  190.          BEQ       DONE
  191.          LDY       VPOS
  192.          JSR       MOVETO
  193.          SEC
  194.          LDA       FPTR      ;SUBTRACT 48 TO GET TO STRING TO BE PRINTED
  195.          SBC       #$30
  196.          TAX
  197.          LDA       FPTR+1
  198.          SBC       #$00
  199.          TAY
  200.          TXA
  201.          JSR       PRINT
  202. ;
  203.          INC       VPOS      ;MOVE TO NEXT SPOT ON SCREEN
  204.          LDA       VPOS
  205.          CMP       #22
  206.          BNE       DONE
  207.          LDA       #$02      ;IF AT BOTTOM OF COLUMN, MOVE TO TOP OF NEXT
  208.          STA       VPOS
  209.          LDA       HPOS
  210.          CLC
  211.          ADC       #20
  212.          STA       HPOS
  213. ;
  214. DONE     RTS
  215. ;
  216. ;==================================================
  217.                     CHN DIR.SC3
  218.