RAF Commander#
a Norton Commander Clone for the Atari 8bit
RAFCMAIN.ASM
; $Id: rafcmain.asm , cstrotm $ ; ; RAF Commander - A free File Manager for Atari 8bit ; Copyright (C) 1999-2000 Regionalgruppe Atari Frankfurt / RAF ; ; This program is free software; you can redistribute it and/or ; modify it under the terms of the GNU General Public License ; as published by the Free Software Foundation; either version 2 ; of the License, or (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with this program; if not, write to the Free Software ; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ; or visit http://www.gnu.org FORTH = 0 .IF .NOT FORTH DEBUG = 0 .ENDIF BETA = 1 ATARI_800 = 0 ATARI_XL = 1 ATARI_DOS = 1 MY_DOS = 0 SPARTA23 = 0 SPARTA_X = 0 .INCLUDE MACROS.ASM .INCLUDE EQU.ASM .IF .NOT FORTH * = $4000 JMP RAFCINIT .ENDIF ; Padding for FORTH, aligning indirekt Jumps .IF FORTH NFA_PREV .= NFA_MON NOP ; >>>>>>> RAFCINIT <<<<<<< ; -- NFA_RAFCINIT .CBYTE $88, "RAFCINIT" LFA_RAFCINIT .WORD NFA_PREV ; LINK TO "SCRCLR" CFA_RAFCINIT .WORD PFA_RAFCINIT NFA_PREV .= NFA_RAFCINIT PFA_RAFCINIT LDY #0 STY LMARGN INY STY CRSINH M_CHOUT clrscr JMP NEXT .ELSE RAFCINIT LDX #$E8 ; Init Stack Pointer STX CRSINH M_CHOUT clrscr LDA #0 STA LMARGN .IF BETA JSR BETAMESSAGE .ENDIF ; JMP RAFC ; and go! .ENDIF ; >>>>>>> RAFC <<<<<< ; -- .IF FORTH NFA_PREV .= NFA_PROCESS NFA_RAFC .CBYTE $84, "RAFC" LFA_RAFC .WORD NFA_PREV CFA_RAFC .WORD DOCOL PFA_RAFC .WORD CFA_RAFCINIT .WORD CFA_0 ; 0 .WORD CFA_READDIR .WORD CFA_1 ; 1 .WORD CFA_READDIR .WORD CFA_REFSCR .WORD CFA_0 ; Start Action = 0 L1100 .WORD CFA_RAFCDEBUG ; DEBUG : show stack pointer .WORD CFA_DROP .WORD CFA_GETKEY .WORD CFA_GETAC .WORD CFA_DUP ; DUP .WORD CFA_0BRANCH ; 0BRANCH .WORD L1100-* .WORD CFA_ACTION .WORD CFA_BRANCH ; BRANCH .WORD L1100-* .WORD CFA_EXIT ; S; NFA_LASTWORD = NFA_RAFC .ELSE RAFC JSR GETDIR JSR REFSCR DEX DEX RAFC1 .IF DEBUG JSR RAFCDEBUG .ENDIF JSR GETKEY STA 0,X JSR GETAC LDA 0,X BEQ RAFC1 JSR ACTION JMP RAFC1 .ENDIF ; >>>>>> ACTIONTABLE <<<<<<<< ACTAB .INCBIN "ac.tab" ; Action Code and Process handling .INCLUDE ACTION.ASM ; Screen IO and Keyboard Input Routines .INCLUDE SCREENIO.ASM ; File IO Routines .INCLUDE FILEIO.ASM ; Sort and Framehandling Routines .INCLUDE SORT.ASM ; DEBUG Routines .INCLUDE DEBUG.ASM ; >>>>>> Variable <<<<< .INCLUDE VARTAB.ASM ; >>>>>> STRINGS <<<<<< .INCLUDE STRTAB.ASM