Merge pull request #117 from shazz/master

Patch for CBM FileBrowser to fix bug with kernal v2
This commit is contained in:
Stephen White 2018-12-29 16:30:13 +11:00 committed by GitHub
commit 3608f1fd40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 1711 additions and 0 deletions

View file

@ -726,6 +726,18 @@ jsr CHROUT
!if clearscrena = 1 {
jsr CLEARSCREEN
; Set text color for C64 with V2 KERNAL
!if target = 64 {
lda #forecolor2
ldx #$00
loop
sta color,x
sta color+256,x
sta color+512,x
sta color+768,x
dex
bne loop
}
!if target = 20 & forecolor2 <> 1 & forecolor2 < 8 {
;Set foreground char color if not white (NOT REQUIRED FOR C64)

View file

@ -0,0 +1,275 @@
@echo off
:menu
cls
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º CBM FileBrowser compile º
echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo º º
echo º Select system: º
echo º ----------------- º
echo º 1 - C64 º
echo º 2 - C64 DTV º
echo º 3 - Vic20 unexpanded º
echo º 4 - Vic20 +3k ram º
echo º 5 - Vic20 +8k ram or plus º
echo º 6 - Vic20 with Mega-Cart º
echo º 7 - C16/C116/Plus4 (264 series) º
echo º 8 - C128 º
echo º º
echo º 0 - quit º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
set /p system= System:
if "%system%"=="1" goto system1
if "%system%"=="2" goto system2
if "%system%"=="3" goto system3
if "%system%"=="4" goto system4
if "%system%"=="5" goto system5
if "%system%"=="6" goto system6
if "%system%"=="7" goto system7
if "%system%"=="8" goto system8
if "%system%"=="0" goto quit
goto menu
:system1
rem **************************
rem * Commodore 64 (c64.asm) *
rem **************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 1 - C64
echo.
echo acme --cpu 6502 -f cbm -o fb64.prg c64.asm
echo.
acme --cpu 6502 -f cbm -o fb64.prg c64.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb64.prg).
echo.
fb64.prg
pause
exit
:system2
rem *********************************
rem * Commodore 64 DTV (c64dtv.asm) *
rem *********************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 2 - C64 DTV
echo.
echo acme --cpu 6502 -f cbm -o fb64dtv.prg c64dtv.asm
echo.
acme --cpu 6502 -f cbm -o fb64dtv.prg c64dtv.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb64dtv.prg).
echo.
fb64dtv.prg
pause
exit
:system3
rem ************************************************
rem * Commodore Vic20 unexpanded (vic20-unexp.asm) *
rem ************************************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 3 - Vic20 unexpanded
echo.
echo acme --cpu 6502 -f cbm -o fb20.prg vic20-unexp.asm
echo.
acme --cpu 6502 -f cbm -o fb20.prg vic20-unexp.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb20.prg).
echo.
fb20.prg
pause
exit
:system4
rem ******************************************
rem * Commodore Vic20 +3k ram (vic20-3k.asm) *
rem ******************************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 4 - Vic20 +3k ram
echo.
echo acme --cpu 6502 -f cbm -o fb20-3k.prg vic20-3k.asm
echo.
acme --cpu 6502 -f cbm -o fb20-3k.prg vic20-3k.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb20-3k.prg).
echo.
fb20-3k.prg
pause
exit
:system5
rem **************************************************
rem * Commodore Vic20 +8k ram or plus (vic20-8k.asm) *
rem **************************************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 5 - Vic20 +8k ram or plus
echo.
echo acme --cpu 6502 -f cbm -o fb20-8k.prg vic20-8k.asm
echo.
acme --cpu 6502 -f cbm -o fb20-8k.prg vic20-8k.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb20-8k.prg).
echo.
fb20-8k.prg
pause
exit
:system6
rem *************************************************
rem * Commodore Vic20 with Mega-Cart (vic20-mc.asm) *
rem *************************************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 6 - Vic20 with Mega-Cart
echo.
echo acme --cpu 6502 -f cbm -o fb20-mc.prg vic20-mc.asm
echo.
acme --cpu 6502 -f cbm -o fb20-mc.prg vic20-mc.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb20-mc.prg).
echo.
fb20-mc.prg
pause
exit
:system7
rem ************************************************
rem * Commodore 264 series C16/C116/Plus4 (c16.asm)*
rem ************************************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 7 - C16/C116/+4 (264 series)
echo.
echo acme --cpu 6502 -f cbm -o fb16.prg c16.asm
echo.
acme --cpu 6502 -f cbm -o fb16.prg c16.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb16.prg).
echo.
fb16.prg
pause
exit
:system8
rem ****************************
rem * Commodore 128 (c128.asm) *
rem ****************************
cls
echo.
echo Compiling CBM FileBrowser for:
echo 8 - C128
echo.
echo acme --cpu 6502 -f cbm -o fb128.prg c128.asm
echo.
acme --cpu 6502 -f cbm -o fb128.prg c128.asm
if not %errorlevel%==0 goto :error
echo done, launching program (fb128.prg).
echo.
fb128.prg
pause
exit
:error
echo.
echo WARNING, ERROR ENCOUNTERED !!!
echo.
pause
:quit
exit

View file

@ -0,0 +1,32 @@
COMPILER = acme
CFLAGS = -v1 --cpu 6502 -f cbm -o
.PHONY: all clean
all: fb20-3k.prg fb20-8k.prg fb20-mc.prg fb20.prg fb64.prg fb64dtv.prg fb16.prg fb128.prg
fb20-3k.prg: vic20-3k.asm vic20-3k.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb20-8k.prg: vic20-8k.asm vic20-8k.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb20-mc.prg: vic20-mc.asm vic20-mc.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb20.prg: vic20-unexp.asm vic20-unexp.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb64.prg: c64.asm c64.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb64dtv.prg: c64dtv.asm c64dtv.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb16.prg: c16.asm c16.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
fb128.prg: c128.asm c128.def CBM-FileBrowser.asm
$(COMPILER) $(CFLAGS) $@ $<
clean:
rm *.prg

View file

@ -0,0 +1,7 @@
; - user configuration
!src "c128.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,161 @@
; --- config.def - configuration
; - CBM target system
target = 128 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 0 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 0 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 1 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
startmode = 1 ; start mode for selected programs (C16/C64 meaning)
; 0 = fixed LOAD"FILE",8,1 + RUN (old method, small program size)
; 1 = LOAD"FILE",8,1 + RUN (by pressing key_fire or Joy button)
; LOAD"FILE",8 + RUN (by holding CBM while pressing key_fire or Joy button)
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 6 ; joystick repeat delay
rastercmp = 161 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 25 ; listtopy < x <= 25
}
listx = 9 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 9
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 0
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 12 ; 0..15, if >15 -> no change
bordercolor = 13 ; 0..15, if >15 -> no change
forecolor2 = 1 ; 0..15, if >15 -> no change
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lgreen, 151 = pink, 152 = green
; 153 = lblue, 154 = dpurple, 155 = lgreen, 156 = purple
; 158 = yellow, 159 = cyan
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_fire2 = 141 ; select alt (CBM+enter) (IF startmode = 1, Target=16 or 64 only)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 27 ; reset (<- ESC key)
; - load&run code positions
loadrunpos = $0137 ;near end cassette error / bottom system stack
;first 16 bytes ($332-$341) used to
;save and restore current fkey macros (Target=16 only)

View file

@ -0,0 +1,7 @@
; - user configuration
!src "c16.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,161 @@
; --- config.def - configuration
; - CBM target system
target = 16 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 0 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 0 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 1 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
startmode = 1 ; start mode for selected programs (C16/C64 meaning)
; 0 = fixed LOAD"FILE",8,1 + RUN (old method, small program size)
; 1 = LOAD"FILE",8,1 + RUN (by pressing key_fire or Joy button)
; LOAD"FILE",8 + RUN (by holding CBM while pressing key_fire or Joy button)
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 200 ; joystick repeat delay
rastercmp = 161 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 25 ; listtopy < x <= 25
}
listx = 9 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 9
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 0
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 240 ; 0..254, if >254 -> no change
bordercolor = 54 ;238 ; 0..254, if >254 -> no change
forecolor2 = 1 ; 0..254, if >254 -> no change
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lgreen, 151 = pink, 152 = green
; 153 = lblue, 154 = dpurple, 155 = lgreen, 156 = purple
; 158 = yellow, 159 = cyan
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_fire2 = 141 ; select alt (CBM+enter) (IF startmode = 1, Target=16 or 64 only)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 27 ; reset (<- ESC key)
; - load&run code positions
loadrunpos = $0342 ;264 series cassette buffer ($332-$3f2)
;first 16 bytes ($332-$341) used to
;save and restore current fkey macros (Target=16 only)

View file

@ -0,0 +1,7 @@
; - user configuration
!src "c64.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,163 @@
; --- config.def - configuration
; - CBM target system
target = 64 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 0 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 0 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 1 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
startmode = 1 ; start mode for selected programs (C16/C64 meaning)
; 0 = fixed LOAD"FILE",8,1 + RUN (old method, small program size)
; 1 = LOAD"FILE",8,1 + RUN (by pressing key_fire or Joy button)
; LOAD"FILE",8 + RUN (by holding CBM while pressing key_fire or Joy button)
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 15 ; joystick repeat delay
rastercmp = 1 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 25 ; listtopy < x <= 25
}
listx = 9 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 9
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 0
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 0 ; 0..15, if >15 -> no change
bordercolor = 6 ; 0..15, if >15 -> no change
forecolor2 = 1 ; 0..15 if >15 -> no change
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lred, 151 = grey1, 152 = grey2
; 153 = lgreen, 154 = lblue, 155 = grey3, 156 = purple
; 158 = yellow, 159 = black
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_fire2 = 141 ; select alt (CBM+enter) (IF startmode = 1, Target=16 or 64 only)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 95 ; reset (<- ESC key)
; - load&run code positions
!if startmode = 0 { ; old method
loadrunpos = $0400+40*24 ;(screen+40*24)
}
!if startmode = 1 {
loadrunpos = $0334 ;unused + tape buffer (prevent screen garbage on loading)
}

View file

@ -0,0 +1,7 @@
; - user configuration
!src "c64dtv.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,163 @@
; --- config.def - configuration
; - CBM target system
target = 64 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 2 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 1 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 1 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 0 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
startmode = 1 ; start mode for selected programs (C16/C64 meaning)
; 0 = fixed LOAD"FILE",8,1 + RUN (old method, small program size)
; 1 = LOAD"FILE",8,1 + RUN (by pressing key_fire or Joy button)
; LOAD"FILE",8 + RUN (by holding CBM while pressing key_fire or Joy button)
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 15 ; joystick repeat delay
rastercmp = 1 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 25 ; listtopy < x <= 25
}
listx = 9 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 9
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 0
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 0 ; 0..15, if >15 -> no change
bordercolor = 6 ; 0..15, if >15 -> no change
forecolor2 = 1 ; 0..15 if >15 -> no change
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lred, 151 = grey1, 152 = grey2
; 153 = lgreen, 154 = lblue, 155 = grey3, 156 = purple
; 158 = yellow, 159 = black
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings use keymap suitable for DTV's "RABCD" buttons
key_nexte = 255 ; next entry (disabled)
key_preve = 255 ; prev entry (disabled)
key_nextp = 255 ; next page (disabled)
key_prevp = 255 ; prev page (disabled)
key_nextp2 = 255 ; next page alt (disabled)
key_prevp2 = 255 ; prev page alt (disabled)
key_fire = 255 ; select (disabled)
key_fire2 = 255 ; select alt (disabled) (IF startmode = 1, Target=16 or 64 only)
key_top = 133 ; to top (DTV_A) (F1 ON VICE)
key_bottom = 20 ; to bottom (DTV_B) (DEL ON VICE) (<-- BACK ARROW ON PC)
key_exit = 136 ; exit dir (DTV_R) (F7 ON VICE)
key_quit = 255 ; quit to basic (disabled)
key_sort = 13 ; sort dir (DTV_C) (RETURN ON VICE)
key_drive = 29 ; change drive (DTV_D) (CUR -> ON VICE)
key_reset = 255 ; reset (disabled)
; - load&run code positions
!if startmode = 0 { ; old method
loadrunpos = $0400+40*24 ;(screen+40*24)
}
!if startmode = 1 {
loadrunpos = $0334 ;unused + tape buffer (prevent screen garbage on loading)
}

View file

@ -0,0 +1,32 @@
start tok64 fb.prg
10 fora=0to6:readb:poke320+a,b:next
20 sys320:a=0:b=peek(327)
30 ifb<>226then60
40 a=1:poke53311,1:b=peek(53312):poke53311,0:ifb=255thena=2
50 goto200
60 ifb<>34then100
70 a=3:b=peek(44):ifb=4thena=4
80 ifb=18thena=5
81 mc=0:sj=0:poke40320,0:b=peek(39936)
82 ifb=214thenmc=1:sj=peek(40000)=76
83 printmc:printsj
90 goto200
100 ifb=246thena=6
110 ifb=61thena=7
200 forb=0to7:readsy$(b):next
210 print"{clear}cbm filebrowser{down}"
215 print"system: "sy$(a):ifa=0thenend
230 ld=186:ifa=6thenld=174
235 ifa<3ora=6ora=7ormc=0then270
240 a=8:print"mega-cart detected"
250 ifsj=0thenprint"sjload not installed":goto270
260 print "sjload ok, used":sys40000
270 forb=1to8:readprg$(b):next
280 print "loading..."
290 dr=peek(ld):loadprg$(a),dr
300 data173,252,255,141,71,01,96
310 data "not supported","c64","c64dtv","vic unexpanded"
320 data "vic +3k","vic +8/16/24k","c16-plus4","c128"
330 data "fb64","fb64dtv","fb20","fb20-3k","fb20-8k","fb16","fb128","fb20-mc"
stop tok64
(bastext 1.04)

View file

@ -0,0 +1,7 @@
; - user configuration
!src "vic20-3k.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,164 @@
; --- config.def - configuration
; - CBM target system
target = 20 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 0 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 0 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 0 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
; - vic memory configuration (Vic-20 Only parameter)
vicmemcfg = 3 ; choose the memory configuration of the program
; 0 = Vic Unexpanded
; 3 = Vic +3K ram
; 8 = Vic +8K or more
; - start mode for selected programs (Vic-20 Only parameter)
startmode = 0 ; memory configuration and execution method
; 0 = automatic only (small program size)
; 1 = automatic or manual by pressing the key_startmode
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 15 ; joystick repeat delay
rastercmp = 1 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 21 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
}
listx = 1 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 1
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 6 ;REQUIRED OTHERWHISE THE LEFT ARROW IS NOT PROPERLY PRINTED
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 0 ; 0..15, if >15 -> no change
bordercolor = 6 ; Vic20 0...7, if >7 -> no change also for backcolor
forecolor2 = 1 ; Vic20 0...7, if >7 -> no change (must be the relative forecolor code, Example (Red: 2 and 28)
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lred, 151 = grey1, 152 = grey2
; 153 = lgreen, 154 = lblue, 155 = grey3, 156 = purple
; 158 = yellow, 159 = black
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 95 ; reset or restart Mega-Cart (<- ESC key)
key_startmode = 77 ; Start Mode (M) (Vic-20 Only)
; - load&run code positions
loadrunpos = $33C ;cassette buffer

View file

@ -0,0 +1,7 @@
; - user configuration
!src "vic20-8k.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,164 @@
; --- config.def - configuration
; - CBM target system
target = 20 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 0 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 0 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 0 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
; - vic memory configuration (Vic-20 Only parameter)
vicmemcfg = 8 ; choose the memory configuration of the program
; 0 = Vic Unexpanded
; 3 = Vic +3K ram
; 8 = Vic +8K or more
; - start mode for selected programs (Vic-20 Only parameter)
startmode = 0 ; memory configuration and execution method
; 0 = automatic only (small program size)
; 1 = automatic or manual by pressing the key_startmode
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 15 ; joystick repeat delay
rastercmp = 1 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 21 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
}
listx = 1 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 1
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 6 ;REQUIRED OTHERWHISE THE LEFT ARROW IS NOT PROPERLY PRINTED
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 0 ; 0..15, if >15 -> no change
bordercolor = 6 ; Vic20 0...7, if >7 -> no change also for backcolor
forecolor2 = 1 ; Vic20 0...7, if >7 -> no change (must be the relative forecolor code, Example (Red: 2 and 28)
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lred, 151 = grey1, 152 = grey2
; 153 = lgreen, 154 = lblue, 155 = grey3, 156 = purple
; 158 = yellow, 159 = black
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 95 ; reset or restart Mega-Cart (<- ESC key)
key_startmode = 77 ; Start Mode (M) (Vic-20 Only)
; - load&run code positions
loadrunpos = $33C ;cassette buffer

View file

@ -0,0 +1,7 @@
; - user configuration
!src "vic20-mc.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,164 @@
; --- config.def - configuration
; - CBM target system
target = 20 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 1 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 1 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 1 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 1 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
; - vic memory configuration (Vic-20 Only parameter)
vicmemcfg = 8 ; choose the memory configuration of the program
; 0 = Vic Unexpanded
; 3 = Vic +3K ram
; 8 = Vic +8K or more
; - start mode for selected programs (Vic-20 Only parameter)
startmode = 1 ; memory configuration and execution method
; 0 = automatic only (small program size)
; 1 = automatic or manual by pressing the key_startmode
; - functionality (0/1)
minimal = 0 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 15 ; joystick repeat delay
rastercmp = 1 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 21 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
}
listx = 1 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 1
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 6 ;REQUIRED OTHERWHISE THE LEFT ARROW IS NOT PROPERLY PRINTED
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 1 ; 0..15, if >15 -> no change
bordercolor = 1 ; Vic20 0...7, if >7 -> no change also for backcolor
forecolor2 = 6 ; Vic20 0...7, if >7 -> no change (must be the relative forecolor code, Example (Red: 2 and 28)
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lred, 151 = grey1, 152 = grey2
; 153 = lgreen, 154 = lblue, 155 = grey3, 156 = purple
; 158 = yellow, 159 = black
forecolor = 31 ; (see table) if <5 -> no change
arrowcolor = 156 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 95 ; reset or restart Mega-Cart (<- ESC key)
key_startmode = 77 ; Start Mode (M) (Vic-20 Only)
; - load&run code positions
loadrunpos = $33C ;cassette buffer

View file

@ -0,0 +1,7 @@
; - user configuration
!src "vic20-unexp.def"
; - core code
!src "CBM-FileBrowser.asm"

View file

@ -0,0 +1,164 @@
; --- config.def - configuration
; - CBM target system
target = 20 ; choose the target system
; 20 = Commodore VIC-20
; 64 = Commodore 64
; 16 = The Commodore 264 Series (C16, C116, plus/4)
;128 = Commodore 128 (Not implemented yet)
; Select a variant according with target system
variant = 0 ; 0 = None, Standard System.
; 1 = Vic-20 with Mega-Cart
; 2 = C64 Direct-to-TV
; device number
hwdevicenum = 0 ; a device number, 0 = autodetect.
autodetectm = 0 ; Drive auto detect mode if hwdevicenum = 0
; 0 = use the current drive (small program size)
; 1 = detect the first active drive
drivechange = 0 ; drive change function
; 0 = do not change drive
; 1 = change drive by pressing the key_drive
rootonstart = 0 ; exit to root when start the program or change the drive
; 0 = do not exit to root on start/drive change
; 1 = exit to root on start/drive change
rootentry = 1 ; "exit to root" entry on menu
; 0 = none
; 1 = present
tap_support = 1 ; add tap capability via "XT:" command (ITS Module required)
; 0 = none
; 1 = yes
printbars = 0 ; display a top/bottom bar with some key funcions according with current configuration
; 0 = do not diplay the top/bottom bar
; 1 = display the the top/bottom bar
; - vic memory configuration (Vic-20 Only parameter)
vicmemcfg = 0 ; choose the memory configuration of the program
; 0 = Vic Unexpanded
; 3 = Vic +3K ram
; 8 = Vic +8K or more
; - start mode for selected programs (Vic-20 Only parameter)
startmode = 0 ; memory configuration and execution method
; 0 = automatic only (small program size)
; 1 = automatic or manual by pressing the key_startmode
; - functionality (0/1)
minimal = 1 ; remove all extra features for smallest prg size
!if minimal = 1 {
rememberpos = 0
showcursors = 1
clearscrena = 1
fastscrolle = 0
colorenable = 0
disknameena = 0
statusenabl = 0
pleasewaite = 0
sortdir = 0
} else {
rememberpos = 1 ; remember position on previous directory
showcursors = 1 ; show cursors
clearscrena = 1 ; enable screen clearing & color setting
fastscrolle = 1 ; enable fast list scrolling
colorenable = 1 ; enable colors
disknameena = 1 ; enable disk name printing
statusenabl = 1 ; enable status printing
pleasewaite = 1 ; enable "please wait" printing
sortdir = 1 ; enable sort dir function by using the key_sort
}
; - layout/cosmetic/etc
joyrepeat = 15 ; joystick repeat delay
rastercmp = 1 ; raster line to wait for in mainwait
; list location
!if printbars = 1 {
listtopy = 2 ; 0 <= x < listbottomy
listbottomy = 21 ; listtopy < x <= 25
} else {
listtopy = 1 ; 0 <= x < listbottomy
listbottomy = 23 ; listtopy < x <= 25
}
listx = 1 ; 0 <= x <= 24
listbackgnd = 32 ; char to display in list background
; disk name location
disknamey = 0
disknamex = 1
; status text location
statusy = listtopy
statusx = listx+namelen+2
!if colorenable = 0 {
backcolor = 255
bordercolor = 255
forecolor2 = 255
forecolor = 0
arrowcolor = 6 ;REQUIRED OTHERWHISE THE LEFT ARROW IS NOT PROPERLY PRINTED
buttoncolor = 0
} else {
; back & border & fore2 color:
; 0 = black, 1 = white, 2 = red, 3 = cyan, 4 = purple
; 5 = green, 6 = blue, 7 = yellow, 8 = orange, 9 = brown
; 10 = lred, 10 = gray1, 12 = gray2, 13 = lgreen,
; 14 = lblue, 15 = gray3
backcolor = 0 ; 0..15, if >15 -> no change
bordercolor = 6 ; Vic20 0...7, if >7 -> no change also for backcolor
forecolor2 = 1 ; Vic20 0...7, if >7 -> no change (must be the relative forecolor code, Example (Red: 2 and 28)
; foreground & arrow color:
; 5 = white, 28 = red, 30 = green, 31 = blue, 129 = orange
; 144 = black, 149 = brown, 150 = lred, 151 = grey1, 152 = grey2
; 153 = lgreen, 154 = lblue, 155 = grey3, 156 = purple
; 158 = yellow, 159 = black
forecolor = 5 ; (see table) if <5 -> no change
arrowcolor = 28 ; (see table) if <5 -> forecolor2
buttoncolor = 28 ; (see table) if <5 -> no change
}
; - key settings
key_nexte = 17 ; next entry (cursor down)
key_preve = 145 ; prev entry (cursor up)
key_nextp = 29 ; next page (cursor right)
key_prevp = 157 ; prev page (cursor left)
key_nextp2 = 136 ; next page alt (F7) (255 = none)
key_prevp2 = 135 ; prev page alt (F5) (255 = none)
key_fire = 13 ; select (enter)
key_top = 139 ; to top (F6)
key_bottom = 140 ; to bottom (F8)
key_exit = 20 ; exit dir (backspc)
key_quit = 81 ; quit to basic (Q)
key_sort = 83 ; sort dir (S)
key_drive = 68 ; change drive (D)
key_reset = 95 ; reset or restart Mega-Cart (<- ESC key)
key_startmode = 77 ; Start Mode (M) (Vic-20 Only)
; - load&run code positions
loadrunpos = $33C ;cassette buffer