home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-13 | 5.8 KB | 245 lines | [04] ASCII Text (0x0000) |
- ;=======================================
- ;DIRECTORY NAVIGATOR
- ;
- ;
- YEAR DFB $00
- MONTHDY DFB $00
- ;
- ; SUBROUTINES
- ;
- DODATE0 LDA (TEMP),Y
- STA YEAR
- DEY
- LDA (TEMP),Y
- STA MONTHDY
- ;
- LDA YEAR
- LSR A
- JSR HEXIT
- LDA #'-'
- JSR STORBYTE
- ;
- LDA YEAR
- LSR A
- LDA MONTHDY
- ROR A
- LSR A
- LSR A
- LSR A
- LSR A
- JSR HEXIT
- LDA #'-'
- JSR STORBYTE
- ;
- LDA MONTHDY
- AND #$1F
- JSR HEXIT
- RTS
- ;
- HEXIT STA $50
- LDA #$00
- STA $51
- JSR HEXDEC
- LDA DEC4
- JSR STORBYTE
- LDA DEC5
- JSR STORBYTE
- RTS
- ;
- ;==================================================
- ;CONVERTS HEX TO DECIMAL (DON'T ASK ME HOW!)
- ;==================================================
- HEXDEC PHA
- TXA
- PHA
- TYA
- PHA
- LDA #$0A
- STA $53
- LDY #$04
- HEXDEC0 LDX #$10
- LDA #$00
- STA $52
- CLC
- HEXDEC1 ROL $50
- ROL $51
- ROL $52
- DEX
- BMI HEXDEC2
- LDA $52
- SEC
- SBC $53
- BCC HEXDEC1
- STA $52
- BCS HEXDEC1
- HEXDEC2 CLC
- ROR $52
- LDA $52
- ORA #$B0
- STA DEC1,Y
- DEY
- BPL HEXDEC0
- PLA
- TAX
- PLA
- TAY
- PLA
- RTS
- DEC1 DFB $B0
- DEC2 DFB $B0
- DEC3 DFB $B0
- DEC4 DFB $B0
- DEC5 DFB $B0
- ;=======================================
- ;DIRECTORY NAVIGATOR
- ;
- ;
- USERKEYS LDA #$00
- STA FNUMBER ;START WITH FIRST FILE
- JSR HIGHLITE
- ;
- KEYLOOP LDA #$00
- STA RUNFLAG
- STA EXITFLAG
- KEYLOOP1 LDA $C000
- BPL KEYLOOP1
- LDA $C010
- AND #$7F
- STA USERKEY
- ;
- JSR ACTION
- ;
- LDA EXITFLAG
- BEQ CHKRUN
- LDX #00 ;***** FINAL EXIT ROUTINE
- LDY #23
- JSR MOVETO
- RTS
- ;
- CHKRUN LDA RUNFLAG
- BEQ KEYLOOP ;IF NO RESTART, GET NEXT KEY
- JMP MAINLINE ;RESTARTS PROGRAM IF REQUESTED
- ;
- ;
- INVALKY RTS
- ;
- ACTION LDX #$FF
- NXTKEY INX
- LDA KEYTABL,X
- BEQ INVALKY ;IF INVALID KEY GET ANOTHER
- AND #$7F
- CMP USERKEY
- BNE NXTKEY
- ;
- STX KEYPOS ;GOT A VALID KEY
- TXA
- ASL A ;LOOK UP ADRS OF ACTION ROUTINE
- TAX
- LDA ACTIONS,X
- STA ACTJMP+1
- INX
- LDA ACTIONS,X
- STA ACTJMP+2
- ACTJMP JMP TESTRTS ;JUMP TO IT
- TESTRTS RTS
- ;
- ;
- ;GET ADRS OF FILE ENTRY IN OUR FILE TABLE
- GETFADRS LDA #$00
- STA FPTR
- STA FPTR+1
- LDX FNUMBER ;MULTIPLY FNUMBER BY $30
- BEQ ADDBASE ;FILE#0, OFFSET = 0
- ;
- ADD48 CLC
- LDA FPTR
- ADC #$30
- STA FPTR
- LDA FPTR+1
- ADC #$00
- STA FPTR+1
- DEX
- BNE ADD48
- ;
- ADDBASE CLC
- LDA FPTR
- ADC #>FILBUFR
- STA FPTR
- LDA FPTR+1
- ADC #<FILBUFR
- STA FPTR+1
- RTS
- ;
- ;GET THE SCREEN POSITION FOR THIS FILE #
- SCRNADRS LDA #$00
- STA HPOS
- STA VPOS
- LDA FNUMBER
- TAX
- DIV20 CPX #20 ;IF X<20
- BCC SETVERT
- TXA
- SEC ;SUB 20 FROM X
- SBC #20
- TAX
- CLC ;ADD 20 TO HPOS
- LDA HPOS
- ADC #20
- STA HPOS
- CLV
- BVC DIV20
- SETVERT TXA
- CLC
- ADC #02
- STA VPOS
- RTS
- ;
- INVERSE EQU $0F
- NORMAL EQU $0E
- ;
- HIGHLITE JSR GETFADRS
- JSR SCRNADRS
- LDX HPOS
- LDY VPOS
- JSR MOVETO
- LDA #INVERSE
- JSR $FDED
- LDA FPTR
- LDY FPTR+1
- JSR PRINT
- LDA #NORMAL
- JSR $FDED
- JSR PRNTINFO
- RTS
- ;
- LOLITE JSR GETFADRS
- JSR SCRNADRS
- LDX HPOS
- LDY VPOS
- JSR MOVETO
- LDA FPTR
- LDY FPTR+1
- JSR PRINT
- RTS
- ;
- PRNTINFO LDX #$00 ;PRINT FILE INFO ON LINE 22
- LDY #22
- JSR MOVETO
- LDX #$00 ;X IS POINTER TO INFOSTR
- LDY #19 ;Y IS POINTER TO FILE INFO
- INFOLOOP LDA INFOSTR,X
- CMP #'*'
- BNE PRNTCHAR
- INY
- LDA (FPTR),Y
- PRNTCHAR JSR $FDED
- INX
- CPX INFOLEN
- BNE INFOLOOP
- RTS
- ;
- INFOLEN DFB 54
- INFOSTR ASC 'CRT: ******** MOD: ******** EOF: ******* AUX: *****'
- ;
- CHN DIR.SC4
-