From b833525cf2e0bddfdce91963fa4319a223a02905 Mon Sep 17 00:00:00 2001 From: aaronsmithdev Date: Fri, 29 Dec 2023 20:41:40 -0500 Subject: [PATCH 1/5] Configure without POKE commands. The utility is within startup.bas in the AppleIIVGAUTIL.dsk file and will start when the disk is loaded. Write it to a physical disk using ADTPro, or another similar utility, or by selecting it using a floppy emulator such as FloppyEMU. The Applesoft BASIC code listing is contained within the source folder. --- config-disk/STARTUP.bas | 95 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 config-disk/STARTUP.bas diff --git a/config-disk/STARTUP.bas b/config-disk/STARTUP.bas new file mode 100644 index 0000000..fb71aad --- /dev/null +++ b/config-disk/STARTUP.bas @@ -0,0 +1,95 @@ + 5 TEXT : GOSUB 1450: VTAB 13: HTAB 8: PRINT "[LOADING CONFIGURATION]" + 10 D$ = CHR$ (4):SLOT = 0: GOTO 1100 + 20 BASEADDR = 49280 + 16 * SLOT + 30 GOSUB 1450 + 40 VTAB 10: GOSUB 1400: HTAB 4: PRINT "CONFIGURATION OPTIONS FOR SLOT ";SLOT;"": GOSUB 1400: PRINT "" + 50 PRINT "1 SCANLINES ON 2 SCANLINES OFF" + 60 PRINT "3 MONOCHROME ON 4 MONOCHROME OFF" + 70 PRINT "5 WHITE TEXT 6 GREEN TEXT" + 80 PRINT "7 AMBER TEXT 8 CHARACTER TEST" + 90 PRINT "9 RESET SLOT CONFIG 10 COLOR PATTERN" + 100 PRINT "11 ABOUT 12 QUIT": PRINT "" + 110 VTAB 21: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CH + 120 IF CH < 1 THEN GOSUB 1550 + 130 IF CH > 12 THEN GOSUB 1550 + 140 IF CH = 1 THEN GOSUB 500 + 150 IF CH = 2 THEN GOSUB 550 + 160 IF CH = 3 THEN GOSUB 600 + 170 IF CH = 4 THEN GOSUB 650 + 180 IF CH = 5 THEN GOSUB 700 + 190 IF CH = 6 THEN GOSUB 750 + 200 IF CH = 7 THEN GOSUB 800 + 210 IF CH = 8 THEN GOSUB 900 + 220 IF CH = 9 THEN GOTO 1000 + 230 IF CH = 10 THEN GOSUB 850 + 240 IF CH = 11 THEN GOSUB 1650 + 250 IF CH = 12 THEN GOSUB 2000 + 260 GOTO 20 + 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 '''MONOCHROME WHITE TEXT + 710 GOSUB 600 + 720 POKE BASEADDR + 1,1 + 730 RETURN + 750 REM '''MONOCHROME GREEN TEXT + 760 GOSUB 600 + 770 POKE BASEADDR + 1,2 + 780 RETURN + 800 REM '''MONOCHROME AMBER TEXT + 810 GOSUB 600 + 820 POKE BASEADDR + 1,3 + 830 RETURN + 850 REM '''COLOR PATTERN + 860 GR : HOME + 870 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 + 880 PRINT "": GET A$: TEXT : RETURN + 900 REM '''CHARACTER SET TEST + 910 HOME + 920 FOR R = 0 TO 7 + 930 FOR C = 0 TO 31 + 940 POKE R * 128 + 1024 + C,R * 32 + C + 950 NEXT C,R + 960 VTAB 21: GOSUB 1400: PRINT "PRESS ANY KEY TO CONTINUE...": GET A$ + 970 RETURN + 1000 REM '''RESET SLOT CONFIGURATION + 1010 PRINT D$;"NOMON C,I,O": GOSUB 1450: VTAB 13: HTAB 7: PRINT "[RESETTING CONFIGURATION]": PRINT D$;"DELETE IIVGACONF": GOTO 10 + 1100 REM '''READ SLOT CONFIGURATION + 1105 PRINT D$;"NOMON C,I,O" + 1110 PRINT D$;"OPEN IIVGACONF" + 1120 PRINT D$;"READ IIVGACONF,R0" + 1130 ONERR GOTO 1150 + 1140 INPUT SLOT + 1150 PRINT D$;"CLOSE IIVGACONF" + 1170 IF SLOT < > 0 THEN GOTO 20 + 1200 GOSUB 1450 + 1220 VTAB 21: GOSUB 1400: INPUT "APPLE II VGA CARD SLOT (1-7): ";SLOT + 1230 IF SLOT < 1 THEN GOTO 1500 + 1240 IF SLOT > 7 THEN GOTO 1500 + 1300 REM '''WRITE SLOT CONFIGURATION + 1310 PRINT D$;"NOMON C,I,O" + 1320 PRINT D$;"OPEN IIVGACONF" + 1330 PRINT D$;"WRITE IIVGACONF,R0" + 1340 PRINT SLOT + 1350 PRINT D$;"CLOSE IIVGACONF" + 1370 GOTO 20 + 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 1200 + 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 HOME : PRINT "YOU MAY NOW LOAD YOUR SOFTWARE USING": PRINT "PRODOS OR THE APPROPRIATE PR# COMMAND.": PRINT "SETTINGS WILL PERSIST UNTIL THE SYSTEM": PRINT "IS REBOOTED.": END \ No newline at end of file From 80a36a1da15f720e6f7da1a150f2a4e86dc7f7af Mon Sep 17 00:00:00 2001 From: Mark Aikens <17986295+markadev@users.noreply.github.com> Date: Mon, 15 Jan 2024 09:31:06 -0500 Subject: [PATCH 2/5] Add a Makefile to build the configurator disk --- .gitignore | 2 ++ config-disk/DOS_3.3_boot.dsk | Bin 0 -> 143360 bytes config-disk/Makefile | 13 +++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 config-disk/DOS_3.3_boot.dsk create mode 100644 config-disk/Makefile diff --git a/.gitignore b/.gitignore index 49cb04c..a65b33b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ *.bin +*.jar *.kicad_prl *.o .vscode +AppleIIVGA-Config.dsk build fp-info-cache /.vs diff --git a/config-disk/DOS_3.3_boot.dsk b/config-disk/DOS_3.3_boot.dsk new file mode 100644 index 0000000000000000000000000000000000000000..09d9afdbd7180bac6b5ca0ac90df89a9358137da GIT binary patch literal 143360 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 literal 0 HcmV?d00001 diff --git a/config-disk/Makefile b/config-disk/Makefile new file mode 100644 index 0000000..69a88f3 --- /dev/null +++ b/config-disk/Makefile @@ -0,0 +1,13 @@ +# Download AppleCommander from https://applecommander.github.io/install/ +AC ?= java -jar AppleCommander-ac-1.8.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 *~ From 127dadff95756821f120e1d110bd1e2dfadbc6f3 Mon Sep 17 00:00:00 2001 From: Mark Aikens <17986295+markadev@users.noreply.github.com> Date: Mon, 15 Jan 2024 10:12:38 -0500 Subject: [PATCH 3/5] Remove config saving to floppy disk --- config-disk/STARTUP.bas | 86 ++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 49 deletions(-) diff --git a/config-disk/STARTUP.bas b/config-disk/STARTUP.bas index fb71aad..f62d730 100644 --- a/config-disk/STARTUP.bas +++ b/config-disk/STARTUP.bas @@ -1,30 +1,36 @@ - 5 TEXT : GOSUB 1450: VTAB 13: HTAB 8: PRINT "[LOADING CONFIGURATION]" - 10 D$ = CHR$ (4):SLOT = 0: GOTO 1100 - 20 BASEADDR = 49280 + 16 * SLOT + 5 TEXT : GOSUB 1450: VTAB 13: HTAB 8 + 10 D$ = CHR$ (4):SLOT = 0 + 20 REM '''GET SLOT NUMBER 30 GOSUB 1450 - 40 VTAB 10: GOSUB 1400: HTAB 4: PRINT "CONFIGURATION OPTIONS FOR SLOT ";SLOT;"": GOSUB 1400: PRINT "" - 50 PRINT "1 SCANLINES ON 2 SCANLINES OFF" - 60 PRINT "3 MONOCHROME ON 4 MONOCHROME OFF" - 70 PRINT "5 WHITE TEXT 6 GREEN TEXT" - 80 PRINT "7 AMBER TEXT 8 CHARACTER TEST" - 90 PRINT "9 RESET SLOT CONFIG 10 COLOR PATTERN" - 100 PRINT "11 ABOUT 12 QUIT": PRINT "" - 110 VTAB 21: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CH - 120 IF CH < 1 THEN GOSUB 1550 - 130 IF CH > 12 THEN GOSUB 1550 - 140 IF CH = 1 THEN GOSUB 500 - 150 IF CH = 2 THEN GOSUB 550 - 160 IF CH = 3 THEN GOSUB 600 - 170 IF CH = 4 THEN GOSUB 650 - 180 IF CH = 5 THEN GOSUB 700 - 190 IF CH = 6 THEN GOSUB 750 - 200 IF CH = 7 THEN GOSUB 800 - 210 IF CH = 8 THEN GOSUB 900 - 220 IF CH = 9 THEN GOTO 1000 - 230 IF CH = 10 THEN GOSUB 850 - 240 IF CH = 11 THEN GOSUB 1650 - 250 IF CH = 12 THEN GOSUB 2000 - 260 GOTO 20 + 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 10: GOSUB 1400: HTAB 4: PRINT "CONFIGURATION OPTIONS FOR SLOT ";SLOT;"": GOSUB 1400: PRINT "" + 130 PRINT "1 SCANLINES ON 2 SCANLINES OFF" + 140 PRINT "3 MONOCHROME ON 4 MONOCHROME OFF" + 150 PRINT "5 WHITE MONOCHROME 6 GREEN MONOCHROME" + 160 PRINT "7 AMBER MONOCHROME 8 CHARACTER TEST" + 170 PRINT "9 RESET CONFIG 10 COLOR PATTERN" + 180 PRINT "11 ABOUT 12 QUIT": PRINT "" + 190 VTAB 21: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CH + 200 IF CH < 1 THEN GOSUB 1550 + 210 IF CH > 12 THEN GOSUB 1550 + 220 IF CH = 1 THEN GOSUB 500 + 230 IF CH = 2 THEN GOSUB 550 + 240 IF CH = 3 THEN GOSUB 600 + 250 IF CH = 4 THEN GOSUB 650 + 260 IF CH = 5 THEN GOSUB 700 + 270 IF CH = 6 THEN GOSUB 750 + 280 IF CH = 7 THEN GOSUB 800 + 290 IF CH = 8 THEN GOSUB 900 + 300 IF CH = 9 THEN GOSUB 1000 + 310 IF CH = 10 THEN GOSUB 850 + 320 IF CH = 11 THEN GOSUB 1650 + 330 IF CH = 12 THEN GOSUB 2000 + 340 GOTO 100 500 REM '''SCANLINES ON 510 POKE BASEADDR + 0,1: RETURN 550 REM '''SCANLINES OFF @@ -57,33 +63,15 @@ 950 NEXT C,R 960 VTAB 21: GOSUB 1400: PRINT "PRESS ANY KEY TO CONTINUE...": GET A$ 970 RETURN - 1000 REM '''RESET SLOT CONFIGURATION - 1010 PRINT D$;"NOMON C,I,O": GOSUB 1450: VTAB 13: HTAB 7: PRINT "[RESETTING CONFIGURATION]": PRINT D$;"DELETE IIVGACONF": GOTO 10 - 1100 REM '''READ SLOT CONFIGURATION - 1105 PRINT D$;"NOMON C,I,O" - 1110 PRINT D$;"OPEN IIVGACONF" - 1120 PRINT D$;"READ IIVGACONF,R0" - 1130 ONERR GOTO 1150 - 1140 INPUT SLOT - 1150 PRINT D$;"CLOSE IIVGACONF" - 1170 IF SLOT < > 0 THEN GOTO 20 - 1200 GOSUB 1450 - 1220 VTAB 21: GOSUB 1400: INPUT "APPLE II VGA CARD SLOT (1-7): ";SLOT - 1230 IF SLOT < 1 THEN GOTO 1500 - 1240 IF SLOT > 7 THEN GOTO 1500 - 1300 REM '''WRITE SLOT CONFIGURATION - 1310 PRINT D$;"NOMON C,I,O" - 1320 PRINT D$;"OPEN IIVGACONF" - 1330 PRINT D$;"WRITE IIVGACONF,R0" - 1340 PRINT SLOT - 1350 PRINT D$;"CLOSE IIVGACONF" - 1370 GOTO 20 + 1000 REM '''RESET CONFIGURATION + 1010 POKE BASEADDR + 4,1 + 1020 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 1200 + 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 @@ -92,4 +80,4 @@ 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 HOME : PRINT "YOU MAY NOW LOAD YOUR SOFTWARE USING": PRINT "PRODOS OR THE APPROPRIATE PR# COMMAND.": PRINT "SETTINGS WILL PERSIST UNTIL THE SYSTEM": PRINT "IS REBOOTED.": END \ No newline at end of file + 2000 HOME : PRINT "YOU MAY NOW LOAD YOUR SOFTWARE USING": PRINT "PRODOS OR THE APPROPRIATE PR# COMMAND.": PRINT "SETTINGS WILL PERSIST UNTIL THE SYSTEM": PRINT "IS REBOOTED.": END From eec07d36114b9ada700fa9246a85c0e2e1130a3a Mon Sep 17 00:00:00 2001 From: Mark Aikens <17986295+markadev@users.noreply.github.com> Date: Mon, 15 Jan 2024 12:00:39 -0500 Subject: [PATCH 4/5] Update the config program with new options and flash save support --- config-disk/STARTUP.bas | 136 ++++++++++++++++++++++++++-------------- 1 file changed, 88 insertions(+), 48 deletions(-) diff --git a/config-disk/STARTUP.bas b/config-disk/STARTUP.bas index f62d730..aed8dfd 100644 --- a/config-disk/STARTUP.bas +++ b/config-disk/STARTUP.bas @@ -8,29 +8,31 @@ 70 BASEADDR = 49280 + 16 * SLOT 100 REM '''MAIN MENU 110 GOSUB 1450 - 120 VTAB 10: GOSUB 1400: HTAB 4: PRINT "CONFIGURATION OPTIONS FOR SLOT ";SLOT;"": GOSUB 1400: PRINT "" + 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 WHITE MONOCHROME 6 GREEN MONOCHROME" - 160 PRINT "7 AMBER MONOCHROME 8 CHARACTER TEST" - 170 PRINT "9 RESET CONFIG 10 COLOR PATTERN" - 180 PRINT "11 ABOUT 12 QUIT": PRINT "" - 190 VTAB 21: GOSUB 1400: INPUT "PLEASE ENTER YOUR SELECTION: ";CH + 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 > 12 THEN GOSUB 1550 - 220 IF CH = 1 THEN GOSUB 500 - 230 IF CH = 2 THEN GOSUB 550 - 240 IF CH = 3 THEN GOSUB 600 - 250 IF CH = 4 THEN GOSUB 650 - 260 IF CH = 5 THEN GOSUB 700 - 270 IF CH = 6 THEN GOSUB 750 - 280 IF CH = 7 THEN GOSUB 800 - 290 IF CH = 8 THEN GOSUB 900 - 300 IF CH = 9 THEN GOSUB 1000 - 310 IF CH = 10 THEN GOSUB 850 - 320 IF CH = 11 THEN GOSUB 1650 - 330 IF CH = 12 THEN GOSUB 2000 - 340 GOTO 100 + 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 @@ -39,33 +41,12 @@ 610 POKE 49185,128: RETURN 650 REM '''MONOCHROME OFF 660 POKE 49185,0: RETURN - 700 REM '''MONOCHROME WHITE TEXT - 710 GOSUB 600 - 720 POKE BASEADDR + 1,1 - 730 RETURN - 750 REM '''MONOCHROME GREEN TEXT - 760 GOSUB 600 - 770 POKE BASEADDR + 1,2 - 780 RETURN - 800 REM '''MONOCHROME AMBER TEXT - 810 GOSUB 600 - 820 POKE BASEADDR + 1,3 - 830 RETURN - 850 REM '''COLOR PATTERN - 860 GR : HOME - 870 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 - 880 PRINT "": GET A$: TEXT : RETURN - 900 REM '''CHARACTER SET TEST - 910 HOME - 920 FOR R = 0 TO 7 - 930 FOR C = 0 TO 31 - 940 POKE R * 128 + 1024 + C,R * 32 + C - 950 NEXT C,R - 960 VTAB 21: GOSUB 1400: PRINT "PRESS ANY KEY TO CONTINUE...": GET A$ - 970 RETURN - 1000 REM '''RESET CONFIGURATION - 1010 POKE BASEADDR + 4,1 - 1020 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 @@ -80,4 +61,63 @@ 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 HOME : PRINT "YOU MAY NOW LOAD YOUR SOFTWARE USING": PRINT "PRODOS OR THE APPROPRIATE PR# COMMAND.": PRINT "SETTINGS WILL PERSIST UNTIL THE SYSTEM": PRINT "IS REBOOTED.": END + 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 From 74237b0b94337fcd623c0a8554fb7674a371c871 Mon Sep 17 00:00:00 2001 From: Mark Aikens <17986295+markadev@users.noreply.github.com> Date: Wed, 17 Jan 2024 06:57:51 -0500 Subject: [PATCH 5/5] Update AppleCommander version --- config-disk/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-disk/Makefile b/config-disk/Makefile index 69a88f3..5868cb8 100644 --- a/config-disk/Makefile +++ b/config-disk/Makefile @@ -1,5 +1,5 @@ # Download AppleCommander from https://applecommander.github.io/install/ -AC ?= java -jar AppleCommander-ac-1.8.0.jar +AC ?= java -jar AppleCommander-ac-1.9.0.jar BASIC_SRCS = STARTUP.bas