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

  1. ;=======================================
  2. ;DIRECTORY NAVIGATOR
  3. ;
  4. ;
  5. YEAR     DFB       $00
  6. MONTHDY  DFB       $00
  7. ;
  8. ; SUBROUTINES
  9. ;
  10. DODATE0  LDA       (TEMP),Y
  11.          STA       YEAR
  12.          DEY
  13.          LDA       (TEMP),Y
  14.          STA       MONTHDY
  15. ;
  16.          LDA       YEAR
  17.          LSR       A
  18.          JSR       HEXIT
  19.          LDA       #'-'
  20.          JSR       STORBYTE
  21. ;
  22.          LDA       YEAR
  23.          LSR       A
  24.          LDA       MONTHDY
  25.          ROR       A
  26.          LSR       A
  27.          LSR       A
  28.          LSR       A
  29.          LSR       A
  30.          JSR       HEXIT
  31.          LDA       #'-'
  32.          JSR       STORBYTE
  33. ;
  34.          LDA       MONTHDY
  35.          AND       #$1F
  36.          JSR       HEXIT
  37.          RTS
  38. ;
  39. HEXIT    STA       $50
  40.          LDA       #$00
  41.          STA       $51
  42.          JSR       HEXDEC
  43.          LDA       DEC4
  44.          JSR       STORBYTE
  45.          LDA       DEC5
  46.          JSR       STORBYTE
  47.          RTS
  48. ;
  49. ;==================================================
  50. ;CONVERTS HEX TO DECIMAL (DON'T ASK ME HOW!)
  51. ;==================================================
  52. HEXDEC              PHA
  53.                     TXA
  54.                     PHA
  55.                     TYA
  56.                     PHA
  57.                     LDA   #$0A
  58.                     STA   $53
  59.                     LDY   #$04
  60. HEXDEC0             LDX   #$10
  61.                     LDA   #$00
  62.                     STA   $52
  63.                     CLC   
  64. HEXDEC1             ROL   $50
  65.                     ROL   $51
  66.                     ROL   $52
  67.                     DEX   
  68.                     BMI   HEXDEC2
  69.                     LDA   $52
  70.                     SEC   
  71.                     SBC   $53
  72.                     BCC   HEXDEC1
  73.                     STA   $52
  74.                     BCS   HEXDEC1
  75. HEXDEC2             CLC   
  76.                     ROR   $52
  77.                     LDA   $52
  78.                     ORA   #$B0
  79.                     STA   DEC1,Y
  80.                     DEY   
  81.                     BPL   HEXDEC0
  82.                     PLA
  83.                     TAX
  84.                     PLA
  85.                     TAY
  86.                     PLA
  87.                     RTS   
  88. DEC1                DFB $B0
  89. DEC2                DFB $B0
  90. DEC3                DFB $B0
  91. DEC4                DFB $B0
  92. DEC5                DFB $B0
  93. ;=======================================
  94. ;DIRECTORY NAVIGATOR
  95. ;
  96. ;
  97. USERKEYS LDA       #$00
  98.          STA       FNUMBER   ;START WITH FIRST FILE
  99.          JSR       HIGHLITE
  100. ;
  101. KEYLOOP  LDA       #$00
  102.          STA       RUNFLAG
  103.          STA       EXITFLAG
  104. KEYLOOP1 LDA       $C000
  105.          BPL       KEYLOOP1
  106.          LDA       $C010
  107.          AND       #$7F
  108.          STA       USERKEY
  109. ;
  110.          JSR       ACTION
  111. ;
  112.          LDA       EXITFLAG
  113.          BEQ       CHKRUN
  114.          LDX       #00                ;***** FINAL EXIT ROUTINE
  115.          LDY       #23
  116.          JSR       MOVETO
  117.          RTS                
  118. ;
  119. CHKRUN   LDA       RUNFLAG
  120.          BEQ       KEYLOOP             ;IF NO RESTART, GET NEXT KEY
  121.          JMP       MAINLINE            ;RESTARTS PROGRAM IF REQUESTED
  122. ;
  123. ;
  124. INVALKY  RTS
  125. ;
  126. ACTION   LDX       #$FF
  127. NXTKEY   INX
  128.          LDA       KEYTABL,X
  129.          BEQ       INVALKY             ;IF INVALID KEY GET ANOTHER
  130.          AND       #$7F
  131.          CMP       USERKEY
  132.          BNE       NXTKEY
  133. ;
  134.          STX       KEYPOS              ;GOT A VALID KEY
  135.          TXA
  136.          ASL       A                   ;LOOK UP ADRS OF ACTION ROUTINE
  137.          TAX
  138.          LDA       ACTIONS,X
  139.          STA       ACTJMP+1
  140.          INX
  141.          LDA       ACTIONS,X
  142.          STA       ACTJMP+2
  143. ACTJMP   JMP       TESTRTS             ;JUMP TO IT
  144. TESTRTS  RTS
  145. ;
  146. ;
  147. ;GET ADRS OF FILE ENTRY IN OUR FILE TABLE
  148. GETFADRS LDA       #$00
  149.          STA       FPTR
  150.          STA       FPTR+1
  151.          LDX       FNUMBER             ;MULTIPLY FNUMBER BY $30
  152.          BEQ       ADDBASE             ;FILE#0, OFFSET = 0
  153. ;
  154. ADD48    CLC
  155.          LDA       FPTR
  156.          ADC       #$30
  157.          STA       FPTR
  158.          LDA       FPTR+1
  159.          ADC       #$00
  160.          STA       FPTR+1
  161.          DEX
  162.          BNE       ADD48
  163. ;
  164. ADDBASE  CLC
  165.          LDA       FPTR
  166.          ADC       #>FILBUFR
  167.          STA       FPTR
  168.          LDA       FPTR+1
  169.          ADC       #<FILBUFR
  170.          STA       FPTR+1
  171.          RTS
  172. ;
  173. ;GET THE SCREEN POSITION FOR THIS FILE #
  174. SCRNADRS LDA       #$00
  175.          STA       HPOS
  176.          STA       VPOS
  177.          LDA       FNUMBER
  178.          TAX
  179. DIV20    CPX       #20       ;IF X<20
  180.          BCC       SETVERT
  181.          TXA
  182.          SEC                 ;SUB 20 FROM X
  183.          SBC       #20
  184.          TAX
  185.          CLC                 ;ADD 20 TO HPOS
  186.          LDA       HPOS
  187.          ADC       #20
  188.          STA       HPOS
  189.          CLV
  190.          BVC       DIV20
  191. SETVERT  TXA
  192.          CLC
  193.          ADC       #02
  194.          STA       VPOS
  195.          RTS
  196. ;
  197. INVERSE  EQU       $0F
  198. NORMAL   EQU       $0E
  199. ;
  200. HIGHLITE JSR       GETFADRS
  201.          JSR       SCRNADRS
  202.          LDX       HPOS
  203.          LDY       VPOS
  204.          JSR       MOVETO
  205.          LDA       #INVERSE
  206.          JSR       $FDED
  207.          LDA       FPTR
  208.          LDY       FPTR+1
  209.          JSR       PRINT
  210.          LDA       #NORMAL
  211.          JSR       $FDED
  212.          JSR       PRNTINFO
  213.          RTS
  214. ;
  215. LOLITE   JSR       GETFADRS
  216.          JSR       SCRNADRS
  217.          LDX       HPOS
  218.          LDY       VPOS
  219.          JSR       MOVETO
  220.          LDA       FPTR
  221.          LDY       FPTR+1
  222.          JSR       PRINT
  223.          RTS
  224. ;
  225. PRNTINFO LDX       #$00      ;PRINT FILE INFO ON LINE 22
  226.          LDY       #22 
  227.          JSR       MOVETO
  228.          LDX       #$00      ;X IS POINTER TO INFOSTR
  229.          LDY       #19      ;Y IS POINTER TO FILE INFO
  230. INFOLOOP LDA       INFOSTR,X
  231.          CMP       #'*'
  232.          BNE       PRNTCHAR
  233.          INY
  234.          LDA       (FPTR),Y
  235. PRNTCHAR JSR       $FDED
  236.          INX
  237.          CPX       INFOLEN
  238.          BNE       INFOLOOP
  239.          RTS
  240. ;
  241. INFOLEN  DFB       54
  242. INFOSTR  ASC       'CRT: ********  MOD: ********  EOF: *******  AUX: *****'
  243. ;
  244.          CHN       DIR.SC4
  245.