home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-02 | 5.5 KB | 218 lines | [04] ASCII Text (0x0000) |
- ;=======================================
- ;DIRECTORY NAVIGATOR
- ;
- ;
- APTR EQU $EB ;POINTER FOR PRINTING TEXT
- ;
- ;===========================
- ;DRAWSCRN: SET UP SCREEN LAYOUT
- ;===========================
- DRAWSCRN LDX #$00
- LDY #$00
- JSR MOVETO ;MOVE TO 0,0
- LDA DIRBUFR+4
- AND #$F0
- CMP #$E0
- BEQ PRSUB
- LDA #>VOLTIT ;PRINT TITLE FOR VOL OR SUB DIR
- LDY #<VOLTIT
- JSR PRINT
- CLV
- BVC PRDIR
- PRSUB LDA #>SUBTIT
- LDY #<SUBTIT
- JSR PRINT
- PRDIR LDA #>PATHNAME ;PRINT PATHNAME BUFFER
- LDY #<PATHNAME
- JSR PRINT
- LDX #$00 ;PRINT BAR ON LINE 1
- LDY #$01
- JSR MOVETO
- JSR PRINTBAR
- LDA #$00 ;INITIALIZE HPOS & VPOS TO 0,2
- STA HPOS
- LDA #$02
- STA VPOS
- RTS
- ;
- ;
- VOLTIT DFB 9
- ASC 'VOL DIR: '
- SUBTIT DFB 9
- ASC 'SUB DIR: '
- ;
- ;MOVETO SUBROUTINE - USES X,Y AS COORDINATES TO POSITION CURSOR
- MOVETO LDA #$8D ;PRINT CR FIRST
- JSR $FDED
- STX 0036
- STY 0037
- JSR $FC22 ;CALL VTAB SUBROUTINE TO POSITION CURSOR
- RTS
- ;
- ; PRINT SUBROUTINE- GIVEN ADDRESS POINTER IN A,Y, WHERE FIRST BYTE = LENGTH
- PRINT STA APTR
- STY APTR+1
- STX XSAVE
- LDY #$00
- LDA (APTR),Y
- TAX
- PRINT0 INY
- LDA (APTR),Y
- ORA #$80 ;PRINT WITH NORMAL TEXT
- JSR $FDED
- DEX
- BNE PRINT0
- LDX XSAVE ;RESTORE REGISTERS
- LDY APTR+1
- LDA APTR
- RTS
- ;
- PRINTBAR LDA #'=' ;PRINT BAR LINE OF 80 = SIGNS
- LDX #80
- PRNTBAR0 JSR $FDED
- DEX
- BNE PRNTBAR0
- RTS
- ;
- ;
- ;FORMAT DATA IN OUR FILE BUFFER AND DISPLAY ON SCREEN
- ;==================================================
- FORMDATA LDA #19 ;STORE LENGTH BYTE OF 19 CHARS TO DISPLAY
- JSR STORBYTE
- LDY #$00 ;GET LENGTH OF NAME
- LDA (TEMP),Y
- AND #$0F
- STA NAMELEN
- ;
- LDY #$1E ;GET ACCESS BYTE
- LDA (TEMP),Y
- AND #$C2 ;LOOK FOR WRITE, DESTROY, RENAME ACCESS
- BEQ LOCKED
- LDA #' '
- CLV
- BVC UNLOCKED
- LOCKED LDA #'*'
- UNLOCKED JSR STORBYTE
- LDY #$01
- GETNAME LDA (TEMP),Y
- CPY NAMELEN
- BCC ORIT
- BEQ ORIT
- LDA #$A0
- ORIT ORA #$80
- JSR STORBYTE
- INY
- CPY #$10
- BNE GETNAME
- ;
- LDX #$00
- GETTYPE LDY #$10 ;GET FILE TYPE
- LDA (TEMP),Y
- CMP FTYPES,X
- BEQ GOTTYPE
- INX
- INX
- INX
- INX
- LDA FTYPES,X
- BEQ NOTYPE
- BNE GETTYPE
- ;
- GOTTYPE INX
- LDA FTYPES,X
- JSR STORBYTE
- INX
- LDA FTYPES,X
- JSR STORBYTE
- INX
- LDA FTYPES,X
- JSR STORBYTE
- CLV
- BVC DODATE
- ;
- NOTYPE LDA #'$'
- JSR STORBYTE
- LDY #$10
- LDA (TEMP),Y
- JSR NIBBLES
- CLV
- BVC DODATE
- ;
- ;
- NIBBLES PHA ;PUT BOTH HEX NIBBLES INTO FILE
- LSR A ;STORE HEX VALUE IN FILE
- LSR A ;CLONED CODE FROM $FDDA
- LSR A
- LSR A
- JSR FIRSTNIB
- PLA
- AND #$0F
- FIRSTNIB ORA #$B0
- CMP #$BA
- BCC NOTBIG
- ADC #$06
- NOTBIG JSR STORBYTE
- RTS
- ;
- ;
- DODATE LDY #$19
- JSR DODATE0
- LDY #$22
- JSR DODATE0
- ;
- ; NOW STICK IN THE EOF AND AUXTYPE
- LDA #'$'
- JSR STORBYTE
- LDY #$17
- LDA (TEMP),Y
- JSR NIBBLES
- DEY
- LDA (TEMP),Y
- JSR NIBBLES
- DEY
- LDA (TEMP),Y
- JSR NIBBLES
- ;
- LDA #'$'
- JSR STORBYTE
- LDY #$20
- LDA (TEMP),Y
- JSR NIBBLES
- DEY
- LDA (TEMP),Y
- JSR NIBBLES
- ;
- ;
- ; PRINT THE FILE NAME ON SCREEN
- ;=================================
- LDX HPOS
- CPX #$80 ;IF SCREEN FULL, DON'T PRINT
- BEQ DONE
- LDY VPOS
- JSR MOVETO
- SEC
- LDA FPTR ;SUBTRACT 48 TO GET TO STRING TO BE PRINTED
- SBC #$30
- TAX
- LDA FPTR+1
- SBC #$00
- TAY
- TXA
- JSR PRINT
- ;
- INC VPOS ;MOVE TO NEXT SPOT ON SCREEN
- LDA VPOS
- CMP #22
- BNE DONE
- LDA #$02 ;IF AT BOTTOM OF COLUMN, MOVE TO TOP OF NEXT
- STA VPOS
- LDA HPOS
- CLC
- ADC #20
- STA HPOS
- ;
- DONE RTS
- ;
- ;==================================================
- CHN DIR.SC3
-