Skip to content

Commit

Permalink
Merge pull request #33 from markadev/configurator
Browse files Browse the repository at this point in the history
Check in the menu-based configuration program
  • Loading branch information
markadev authored Jan 17, 2024
2 parents ea4359c + 74237b0 commit 03b0e3f
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
*.bin
*.jar
*.kicad_prl
*.o
.vscode
AppleIIVGA-Config.dsk
build
fp-info-cache
/.vs
Binary file added config-disk/DOS_3.3_boot.dsk
Binary file not shown.
13 changes: 13 additions & 0 deletions config-disk/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Download AppleCommander from https://applecommander.github.io/install/
AC ?= java -jar AppleCommander-ac-1.9.0.jar

BASIC_SRCS = STARTUP.bas

AppleIIVGA-Config.dsk: STARTUP.bas
cp DOS_3.3_boot.dsk $@~
$(AC) -d $@~ STARTUP
$(AC) -bas $@~ STARTUP < STARTUP.bas
mv $@~ $@

clean:
rm -f AppleIIVGA-Config.dsk *~
123 changes: 123 additions & 0 deletions config-disk/STARTUP.bas
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
5 TEXT : GOSUB 1450: VTAB 13: HTAB 8
10 D$ = CHR$ (4):SLOT = 0
20 REM '''GET SLOT NUMBER
30 GOSUB 1450
40 VTAB 21: GOSUB 1400: INPUT "APPLE II VGA CARD SLOT (1-7): ";SLOT
50 IF SLOT < 1 THEN GOTO 1500
60 IF SLOT > 7 THEN GOTO 1500
70 BASEADDR = 49280 + 16 * SLOT
100 REM '''MAIN MENU
110 GOSUB 1450
120 VTAB 7: GOSUB 1400: PRINT ""
130 PRINT "1 SCANLINES ON 2 SCANLINES OFF"
140 PRINT "3 MONOCHROME ON 4 MONOCHROME OFF"
150 PRINT "5 MONOCHROME CFG 6 CHARSET CFG"
170 PRINT "7 COLOR PATTERNS": PRINT ""
180 PRINT "11 ABOUT": PRINT "12 LOAD DEFAULT CONFIG"
180 PRINT "13 QUIT W/OUT SAVING": PRINT"14 SAVE AND QUIT": PRINT ""
190 VTAB 22: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CH
200 IF CH < 1 THEN GOSUB 1550
210 IF CH = 1 THEN GOSUB 500
220 IF CH = 2 THEN GOSUB 550
230 IF CH = 3 THEN GOSUB 600
240 IF CH = 4 THEN GOSUB 650
250 IF CH = 5 THEN GOSUB 2000
260 IF CH = 6 THEN GOSUB 3000
270 IF CH = 7 THEN GOSUB 700
280 IF CH = 8 THEN GOSUB 1550
290 IF CH = 9 THEN GOSUB 1550
300 IF CH = 10 THEN GOSUB 1550
310 IF CH = 11 THEN GOSUB 1650
320 IF CH = 12 THEN GOSUB 800
330 IF CH = 13 THEN GOTO 4050
340 IF CH = 14 THEN GOTO 4000
350 IF CH > 14 THEN GOSUB 1550
360 GOTO 100
500 REM '''SCANLINES ON
510 POKE BASEADDR + 0,1: RETURN
550 REM '''SCANLINES OFF
560 POKE BASEADDR + 0,2: RETURN
600 REM '''MONOCHROME ON
610 POKE 49185,128: RETURN
650 REM '''MONOCHROME OFF
660 POKE 49185,0: RETURN
700 REM '''COLOR PATTERN
710 GR : HOME
720 FOR I = 0 TO 31: COLOR= I / 2: VLIN 0,39 AT I: NEXT I: FOR I = 0 TO 14 STEP 2: PRINT TAB( I * 2 + 1);I;: NEXT I: PRINT : FOR I = 1 TO 15 STEP 2: PRINT TAB( I * 2 + 1);I;: NEXT I
730 PRINT "": GET A$: TEXT : RETURN
800 REM '''LOAD DEFAULT CONFIGURATION
810 POKE BASEADDR + 4,1: RETURN
1400 REM STRING ROUTINES
1410 PRINT "---------------------------------------": RETURN
1450 HOME : PRINT "APPLE II VGA": GOSUB 1400: PRINT "COPYRIGHT (C) 2021-2023 MARK AIKENS": PRINT "COPYRIGHT (C) 2022-2023 DAVID KUDER": RETURN
1500 REM '''ERROR HANDLING ROUTINES
1510 GOSUB 1450: VTAB 13: HTAB 13: PRINT "[INVALID SLOT]"
1520 GOSUB 1600: GOTO 20
1550 GOSUB 1450: VTAB 13: HTAB 11: PRINT "[INVALID OPTION]"
1560 GOSUB 1600: RETURN
1600 FOR I = 1 TO 1000: NEXT I: RETURN
1650 GOSUB 1450: PRINT "": PRINT "": PRINT "THIS PROJECT IS A VGA CARD FOR APPLE II": PRINT "COMPUTERS TO OUPUT A CRISP RGB SIGNAL": PRINT "TO A VGA MONITOR INSTEAD OF HAVING TO": PRINT "RELY ON THE COMPOSITE OUTPUT. THIS IS"
1660 PRINT "ACCOMPLISHED BY SNOOPING THE 6502 BUS": PRINT "AND CREATING A SHADOW COPY OF THE VIDEO": PRINT "MEMORY WITHIN A RASPBERRY PI PICO, THEN": PRINT "PROCESSING THE VIDEO MEMORY CONTENTS TO"
1670 PRINT "OUTPUT A 'PERFECT' SIGNAL.": PRINT "": PRINT "": HTAB 6: PRINT "[MORE DETAILS AVAILABLE AT]": PRINT "HTTPS://GITHUB.COM/MARKADEV/APPLEII-VGA"
1680 VTAB 21: GOSUB 1400: PRINT "PRESS ANY KEY TO CONTINUE...": GET A$
1690 RETURN
2000 REM '''MONOCHROME CONFIG MENU
2010 HOME: PRINT "MONOCHROME CONFIGURATION OPTIONS": GOSUB 1400: PRINT ""
2020 PRINT "FOREGROUND COLOR"
2030 PRINT " 1 WHITE": PRINT " 2 GREEN": PRINT " 3 AMBER": PRINT ""
2040 PRINT "BACKGROUND COLOR"
2050 PRINT " 4 BLACK": PRINT " 5 GREEN": PRINT " 6 AMBER": PRINT ""
2060 VTAB 20: PRINT "7 RETURN TO MAIN MENU"
2100 VTAB 22: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CI
2110 IF CI < 1 THEN GOSUB 1550
2120 IF CI = 1 THEN GOSUB 2300
2130 IF CI = 2 THEN GOSUB 2350
2140 IF CI = 3 THEN GOSUB 2400
2150 IF CI = 4 THEN GOSUB 2500
2160 IF CI = 5 THEN GOSUB 2550
2170 IF CI = 6 THEN GOSUB 2600
2180 IF CI = 7 THEN RETURN
2190 IF CI > 7 THEN GOSUB 1550
2200 GOTO 2000
2300 REM '''MONOCHROME FOREGROUND WHITE
2310 POKE BASEADDR + 1,1: RETURN
2350 REM '''MONOCHROME FOREGROUND GREEN
2360 POKE BASEADDR + 1,2: RETURN
2400 REM '''MONOCHROME FOREGROUND AMBER
2410 POKE BASEADDR + 1,3: RETURN
2500 REM '''MONOCHROME BACKGROUND BLACK
2510 POKE BASEADDR + 1,16: RETURN
2550 REM '''MONOCHROME BACKGROUND GREEN
2560 POKE BASEADDR + 1,32: RETURN
2600 REM '''MONOCHROME BACKGROUND AMBER
2610 POKE BASEADDR + 1,48: RETURN
3000 REM '''CHARSET CONFIG MENU
3010 HOME: PRINT "CHARSET CONFIGURATION OPTIONS": GOSUB 1400: PRINT ""
3020 PRINT "1 CHARACTER SET VIEWER"
3030 PRINT "2 LOAD A BUILT-IN CHARSET"
3070 VTAB 20: PRINT "7 RETURN TO MAIN MENU"
3080 VTAB 22: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CI
3110 IF CI = 1 THEN GOSUB 3300
3120 IF CI = 2 THEN GOSUB 3400
3170 IF CI = 7 THEN RETURN
3180 GOTO 3000
3300 REM '''CHARACTER SET VIEWER
3310 HOME
3320 FOR R = 0 TO 7
3330 FOR C = 0 TO 31
3340 POKE R * 128 + 1024 + C,R * 32 + C
3350 NEXT C,R
3360 VTAB 21: GOSUB 1400: PRINT "PRESS ANY KEY TO CONTINUE...": GET A$
3370 RETURN
3400 REM '''LOAD A BUILT-IN CHARSET
3410 HOME : INPUT "ENTER CHARSET (0-15): ";CS
3420 IF CS < 0 THEN RETURN
3420 IF CS > 15 THEN RETURN
3430 POKE BASEADDR + 4,16+CS: RETURN
4000 REM '''SAVE AND EXIT
4010 POKE BASEADDR + 4,2
4020 FOR I = 1 TO 500: NEXT I
4030 HOME : PRINT "YOUR SETTINGS WERE SAVED TO FLASH": GOTO 4100
4050 REM ''' EXIT W/OUT SAVING
4060 HOME : PRINT "YOUR SETTINGS WERE NOT SAVED TO FLASH": PRINT "BUT WILL REMAIN ACTIVE UNTIL THE NEXT": PRINT "POWER CYCLE"
4100 REM '''END

0 comments on commit 03b0e3f

Please sign in to comment.