move some things from targettest to samples

This commit is contained in:
mrdudz 2022-02-05 16:55:57 +01:00
parent 98bc021c5a
commit 4e5b521903
37 changed files with 231 additions and 42 deletions

View File

@ -154,7 +154,7 @@ endif
# Lists of subdirectories
# disasm depends on cpp
DIRLIST = tutorial geos atari2600 supervision cbm
DIRLIST = tutorial geos atari2600 atari5200 apple2 gamate supervision sym1 cbm
# --------------------------------------------------------------------------
# Lists of executables
@ -170,6 +170,7 @@ EXELIST_apple2 = \
multdemo \
ovrldemo \
sieve \
tinyshell \
tgidemo
EXELIST_apple2enh = $(EXELIST_apple2)
@ -183,6 +184,7 @@ EXELIST_atari = \
multdemo \
ovrldemo \
sieve \
tinyshell \
tgidemo
EXELIST_atarixl = $(EXELIST_atari)
@ -212,6 +214,7 @@ EXELIST_c64 = \
multdemo \
ovrldemo \
sieve \
tinyshell \
tgidemo
EXELIST_c128 = \
@ -222,11 +225,13 @@ EXELIST_c128 = \
mandelbrot \
mousedemo \
sieve \
tinyshell \
tgidemo
EXELIST_c16 = \
ascii \
enumdevdir \
tinyshell \
hello
EXELIST_cbm510 = \
@ -234,12 +239,14 @@ EXELIST_cbm510 = \
gunzip65 \
hello \
mousedemo \
tinyshell \
sieve
EXELIST_cbm610 = \
ascii \
gunzip65 \
hello \
tinyshell \
sieve
EXELIST_creativision = \
@ -254,6 +261,7 @@ EXELIST_cx16 = \
mandelbrot \
mousedemo \
sieve \
tinyshell \
tgidemo
EXELIST_gamate = \
@ -285,6 +293,7 @@ EXELIST_pet = \
ascii \
enumdevdir \
hello \
tinyshell \
sieve
EXELIST_plus4 = \
@ -292,6 +301,7 @@ EXELIST_plus4 = \
enumdevdir \
gunzip65 \
hello \
tinyshell \
sieve
EXELIST_sim6502 = \
@ -376,6 +386,23 @@ tgidemo: tgidemo.o
$(LD) -D __HIMEM__=0x6000 $(LDFLAGS) -o $@ -C vic20-tgi.cfg -m $@.map $^ $(SYS).lib
endif
# --------------------------------------------------------------------------
# some programs link against getsp.o
getsp.o: getsp.s
$(AS) $(ASFLAGS) -t $(SYS) $<
ifneq ($(SYS),vic20)
tinyshell: tinyshell.o getsp.o
$(LD) $(LDFLAGS) -t $(SYS) -o $@ $^ $(SYS).lib
endif
# some programs need more memory on the vic20
ifeq ($(SYS),vic20)
tinyshell: tinyshell.o getsp.o
$(LD) $(LDFLAGS) -o $@ -C vic20-32k.cfg -m $@.map $^ $(SYS).lib
endif
# --------------------------------------------------------------------------
# Rule to make a CBM disk with all samples. Needs the c1541 program that comes
# with the VICE emulator.
@ -456,7 +483,10 @@ install:
$(INSTALL) -d $(DESTDIR)$(samplesdir)/geos
$(INSTALL) -d $(DESTDIR)$(samplesdir)/tutorial
$(INSTALL) -d $(DESTDIR)$(samplesdir)/atari2600
$(INSTALL) -d $(DESTDIR)$(samplesdir)/atari5200
$(INSTALL) -d $(DESTDIR)$(samplesdir)/apple2
$(INSTALL) -d $(DESTDIR)$(samplesdir)/cbm
$(INSTALL) -d $(DESTDIR)$(samplesdir)/gamate
$(INSTALL) -d $(DESTDIR)$(samplesdir)/supervision
$(INSTALL) -m0644 *.* $(DESTDIR)$(samplesdir)
$(INSTALL) -m0644 readme.txt $(DESTDIR)$(samplesdir)
@ -464,7 +494,10 @@ install:
$(INSTALL) -m0644 geos/*.* $(DESTDIR)$(samplesdir)/geos
$(INSTALL) -m0644 tutorial/*.* $(DESTDIR)$(samplesdir)/tutorial
$(INSTALL) -m0644 atari2600/*.* $(DESTDIR)$(samplesdir)/atari2600
$(INSTALL) -m0644 atari5200/*.* $(DESTDIR)$(samplesdir)/atari5200
$(INSTALL) -m0644 apple2/*.* $(DESTDIR)$(samplesdir)/apple2
$(INSTALL) -m0644 cbm/*.* $(DESTDIR)$(samplesdir)/cbm
$(INSTALL) -m0644 gamate/*.* $(DESTDIR)$(samplesdir)/gamate
$(INSTALL) -m0644 supervision/*.* $(DESTDIR)$(samplesdir)/supervision
# --------------------------------------------------------------------------
@ -477,7 +510,9 @@ zip:
# Clean-up rules
mostlyclean:
@$(DEL) *.lbl *.map *.o *.s 2>$(NULLDEV)
@$(DEL) *.lbl *.map *.o 2>$(NULLDEV)
# we cant use .s since we have asm files in the directory that we want to keep
@$(DEL) ${patsubst %.c,%.s,$(wildcard *.c)} 2>$(NULLDEV)
clean: mostlyclean
@$(DEL) $(EXELIST_$(SYS)) $(DISK_$(SYS)) 2>$(NULLDEV)

View File

@ -1,3 +1,8 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= apple2
# For this one see https://applecommander.github.io/
AC ?= ac.jar
@ -35,9 +40,9 @@ EXELIST_apple2 = \
dhgrshow
ifneq ($(EXELIST_$(SYS)),)
testcode: $(EXELIST_$(SYS))
samples: $(EXELIST_$(SYS))
else
testcode: notavailable
samples: notavailable
endif
# empty target used to skip systems that will not work with any program in this dir
@ -45,7 +50,7 @@ notavailable:
ifeq ($(MAKELEVEL),0)
@echo "info: apple2 tests not available for" $(SYS)
else
# suppress the "nothing to be done for 'testcode' message
# suppress the "nothing to be done for 'samples' message
@echo > $(NULLDEV)
endif

View File

@ -1,4 +1,8 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= atari5200
# Just the usual way to find out if we're
# using cmd.exe to execute make rules.
ifneq ($(shell echo),)
@ -31,9 +35,9 @@ EXELIST_atari5200 = \
hello
ifneq ($(EXELIST_$(SYS)),)
testcode: $(EXELIST_$(SYS))
samples: $(EXELIST_$(SYS))
else
testcode: notavailable
samples: notavailable
endif
# empty target used to skip systems that will not work with any program in this dir
@ -41,7 +45,7 @@ notavailable:
ifeq ($(MAKELEVEL),0)
@echo "info: atari 5200 tests not available for" $(SYS)
else
# suppress the "nothing to be done for 'testcode' message
# suppress the "nothing to be done for 'samples' message
@echo > $(NULLDEV)
endif

57
samples/gamate/Makefile Normal file
View File

@ -0,0 +1,57 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= gamate
# Just the usual way to find out if we're
# using cmd.exe to execute make rules.
ifneq ($(shell echo),)
CMD_EXE = 1
endif
ifdef CMD_EXE
NULLDEV = nul:
DEL = -del /f
RMDIR = rmdir /s /q
else
NULLDEV = /dev/null
DEL = $(RM)
RMDIR = $(RM) -r
endif
ifdef CC65_HOME
AS = $(CC65_HOME)/bin/ca65
CC = $(CC65_HOME)/bin/cc65
CL = $(CC65_HOME)/bin/cl65
LD = $(CC65_HOME)/bin/ld65
else
AS := $(if $(wildcard ../../bin/ca65*),../../bin/ca65,ca65)
CC := $(if $(wildcard ../../bin/cc65*),../../bin/cc65,cc65)
CL := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65)
LD := $(if $(wildcard ../../bin/ld65*),../../bin/ld65,ld65)
endif
EXELIST_gamate = \
nachtm.bin
ifneq ($(EXELIST_$(SYS)),)
samples: $(EXELIST_$(SYS))
else
samples: notavailable
endif
# empty target used to skip systems that will not work with any program in this dir
notavailable:
ifeq ($(MAKELEVEL),0)
@echo "info: gamate tests not available for" $(SYS)
else
# suppress the "nothing to be done for 'samples' message
@echo > $(NULLDEV)
endif
nachtm.bin: nachtm.c
$(CL) -Os -l nachtm.lst -t gamate -o nachtm.bin nachtm.c
gamate-fixcart nachtm.bin
clean:
@$(DEL) nachtm.bin nachtm.lst 2>$(NULLDEV)

12
samples/getsp.s Normal file
View File

@ -0,0 +1,12 @@
.export _getsp
.importzp sp
.proc _getsp
ldx sp+1
lda sp
rts
.endproc

View File

@ -1,6 +1,14 @@
This directory contains sample programs for the cc65 compiler.
The programs contained here are
- used as samples and referenced from within the documentation (this is their
main purpose)
- installed into the filesystem
- compiled (but NOT run) by the CI test
-----------------------------------------------------------------------------
Below is a short description for each of the programs, together with a list
of the supported platforms.
@ -105,6 +113,11 @@ Platforms: All systems with conio and clock support:
Commander X16, Apple ][ (without timing due to missing clock
support).
-----------------------------------------------------------------------------
Name: tinyshell
Description: Simple ("tiny") shell to test filename and directory functions.
Platforms: Runs on all platforms that have stdio support
-----------------------------------------------------------------------------
Name: tgidemo
Description: Shows some of the graphics capabilities of the "Tiny Graphics
@ -125,6 +138,37 @@ Description: A "Hello world" type program.
Platforms: Runs on only the Atari 2600 Video Console System.
-----------------------------------------------------------------------------
atari 5200:
-----------
Name: hello
Description: A "Hello world" type program.
Platforms: Runs on only the Atari 5200 Video Console System.
-----------------------------------------------------------------------------
apple2:
-------
Name: hgrtest
Description: shows how to incorporate a hires screen right into the binary,
thus allowing to place content both below and above the hires
video ram without multiple files nor copying stuff around (plus
having a nice splash screen as bonus). It basically demos how to
make use of apple2-hgr.cfg.
Name: hgrshow
Description: is a (single) hires program showing how to load (single) hires
screens from files without support from TGI. TGI could be used
to "paint" on the loaded screens.
Name: dhgrshow
Description: is a double hires program showing how to load double hires
screens from files. TGI is used for most of the I/O address
manipulation, but (in contrast to hgrshow) is not actually
functional.
-----------------------------------------------------------------------------
cbm:
----
@ -147,6 +191,32 @@ Platforms: The program needs a VIC-II or a TED, so it runs on the following
C64, C128, CBM510, Plus/4.
-----------------------------------------------------------------------------
gamate:
-------
Name: nachtm
Description: Plays "Eine kleine Nachtmusik" by Wolfgang Amadeus Mozart.
-----------------------------------------------------------------------------
sym1:
-----
Name: symHello
Description: Hello World for Sym-1
Name: symTiny
Description: Hello World for Sym-1 (tiny version without printf)
Name: symDisplay
Description: Sym-1 front panel display example
Name: symIO
Description: Sym-1 digital I/O interface example
Name: symNotepad
Description: Sym-1 Notepad
-----------------------------------------------------------------------------
supervision:
------------

View File

@ -1,3 +1,8 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= sym1
# Just the usual way to find out if we're
# using cmd.exe to execute make rules.
ifneq ($(shell echo),)
@ -30,9 +35,9 @@ EXELIST_sym1 = \
symHello.bin symTiny.bin symDisplay.bin symIO.bin symNotepad.bin
ifneq ($(EXELIST_$(SYS)),)
testcode: $(EXELIST_$(SYS))
samples: $(EXELIST_$(SYS))
else
testcode: notavailable
samples: notavailable
endif
# empty target used to skip systems that will not work with any program in this dir
@ -40,7 +45,7 @@ notavailable:
ifeq ($(MAKELEVEL),0)
@echo "info: sym1 tests not available for" $(SYS)
else
# suppress the "nothing to be done for 'testcode' message
# suppress the "nothing to be done for 'samples' message
@echo > $(NULLDEV)
endif

View File

@ -174,7 +174,7 @@ endif
# --------------------------------------------------------------------------
# Lists of subdirectories
DIRLIST = accelerator apple2 atari atari5200 cbm gamate pce sym1
DIRLIST = accelerator atari cbm gamate pce
# --------------------------------------------------------------------------
# Lists of executables
@ -211,7 +211,6 @@ EXELIST_c64 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: seek
@ -246,7 +245,6 @@ EXELIST_c128 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
@ -278,7 +276,6 @@ EXELIST_c16 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: seek ser-test
@ -312,7 +309,6 @@ EXELIST_cbm510 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: joy-test mouse-test seek
@ -345,7 +341,6 @@ EXELIST_cbm610 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: clock-test em-test mouse-test seek ser-test
@ -376,7 +371,6 @@ EXELIST_pet = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: clock-test em-test mouse-test seek
@ -408,7 +402,6 @@ EXELIST_plus4 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: seek clock-test mouse-test ser-test
@ -440,7 +433,6 @@ EXELIST_vic20 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: cpeek-test, clock
@ -474,7 +466,6 @@ EXELIST_apple2 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
EXELIST_apple2enh = $(EXELIST_apple2)
@ -511,13 +502,12 @@ EXELIST_atari = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
EXELIST_atarixl = $(EXELIST_atari)
# omitted: clock-test cpeek-test deb dir-test em-test exec-test1 exec-test2
# joy-test mouse-test rename-test seek ser-test stroserror-test tinyshell
# joy-test mouse-test rename-test seek ser-test stroserror-test
EXELIST_telestrat = \
minimal \
arg-test \
@ -542,7 +532,7 @@ EXELIST_telestrat = \
# omitted: arg-test clock-test clock cpeek-test conio cprintf cursor deb dir-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test
# mouse-test mul-test posixio-test rename-test scanf-test seek ser-test strdup-test
# stroserror-test tinyshell uname-test
# stroserror-test uname-test
EXELIST_sym1 = \
minimal \
div-test \
@ -551,7 +541,7 @@ EXELIST_sym1 = \
strqtok-test
# omitted: clock-test cpeek-test conio deb dir-test em-test exec-test1 exec-test2
# fileio-test ft mouse-test posixio-test rename-test seek ser-test tinyshell
# fileio-test ft mouse-test posixio-test rename-test seek ser-test
EXELIST_atmos = \
minimal \
arg-test \
@ -574,7 +564,7 @@ EXELIST_atmos = \
# omitted: arg-test clock-test clock cpeek-test conio cprintf deb dir-test div-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test
# mouse-test mul-test posixio-test rename-test scanf-test seek ser-test strdup-test
# strnlen stroserror-test strqtok-test tinyshell uname-test
# strnlen stroserror-test strqtok-test uname-test
EXELIST_creativision = \
minimal \
cursor
@ -609,13 +599,12 @@ EXELIST_cx16 = \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
uname-test
# omitted: arg-test clock-test clock cpeek-test cprintf cursor deb dir-test div-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test
# mouse-test mul-test posixio-test rename-test scanf-test seek ser-test strdup-test
# strnlen stroserror-test strqtok-test tinyshell uname-test
# strnlen stroserror-test strqtok-test uname-test
EXELIST_nes = \
minimal \
conio
@ -623,7 +612,7 @@ EXELIST_nes = \
# omitted: arg-test clock-test clock cpeek-test cprintf cursor deb dir-test div-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test
# mouse-test mul-test posixio-test rename-test scanf-test seek ser-test strdup-test
# strnlen stroserror-test strqtok-test tinyshell uname-test
# strnlen stroserror-test strqtok-test uname-test
EXELIST_pce = \
minimal \
conio
@ -631,7 +620,7 @@ EXELIST_pce = \
# omitted: arg-test clock-test clock cpeek-test conio cprintf deb dir-test div-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test
# mouse-test posixio-test rename-test scanf-test seek ser-test strdup-test strnlen
# stroserror-test strqtok-test tinyshell uname-test
# stroserror-test strqtok-test uname-test
EXELIST_osic1p = \
minimal \
cursor \
@ -640,7 +629,7 @@ EXELIST_osic1p = \
# omitted: arg-test clock-test clock cpeek-test conio cprintf deb dir-test div-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test
# mouse-test posixio-test rename-test scanf-test seek ser-test strdup-test strnlen
# stroserror-test strqtok-test tinyshell uname-test
# stroserror-test strqtok-test uname-test
EXELIST_geos-apple = \
minimal \
cursor \
@ -649,7 +638,7 @@ EXELIST_geos-apple = \
# omitted: arg-test clock-test clock cpeek-test conio cprintf deb dir-test div-test
# em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test
# mouse-test posixio-test rename-test scanf-test seek ser-test strdup-test strnlen
# stroserror-test strqtok-test tinyshell uname-test
# stroserror-test strqtok-test uname-test
EXELIST_geos-cbm = \
minimal \
@ -658,7 +647,7 @@ EXELIST_geos-cbm = \
# omitted: clock clock-test conio cpeek-test cprintf cursor deb dir-test em-test
# exec-test1 exec-test2 ft heaptest joy-test mouse-test mul-test rename-test seek
# ser-test strdup-test stroserror-test tinyshell uname-test
# ser-test strdup-test stroserror-test uname-test
EXELIST_sim6502 = \
minimal \
arg-test \
@ -734,9 +723,6 @@ mouse-test: mouse-test.o getsp.o
ifneq ($(SYS),vic20)
ft: ft.o getsp.o
$(LD) $(LDFLAGS) -t $(SYS) -o $@ $^ $(SYS).lib
tinyshell: tinyshell.o getsp.o
$(LD) $(LDFLAGS) -t $(SYS) -o $@ $^ $(SYS).lib
endif
# some programs need more memory on the vic20
@ -744,9 +730,6 @@ endif
ifeq ($(SYS),vic20)
ft: ft.o getsp.o
$(LD) $(LDFLAGS) -o $@ -C vic20-32k.cfg -m $@.map $^ $(SYS).lib
tinyshell: tinyshell.o getsp.o
$(LD) $(LDFLAGS) -o $@ -C vic20-32k.cfg -m $@.map $^ $(SYS).lib
endif
# --------------------------------------------------------------------------

View File

@ -1,4 +1,8 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= atari
# Just the usual way to find out if we're
# using cmd.exe to execute make rules.
ifneq ($(shell echo),)

View File

@ -1,4 +1,8 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= gamate
# Just the usual way to find out if we're
# using cmd.exe to execute make rules.
ifneq ($(shell echo),)
@ -51,9 +55,6 @@ lcdtest.bin: lcdtest.s
$(CL) -l lcdtest.lst -t gamate -o lcdtest.bin lcdtest.s
ctest.bin: ctest.c
$(CL) -l ctest.lst -t gamate -o ctest.bin ctest.c
nachtm.bin: nachtm.c
$(CL) -Os -l nachtm.lst -t gamate -o nachtm.bin nachtm.c
gamate-fixcart nachtm.bin
clean:
@$(DEL) lcdtest.o audiotest.o ctest.o 2>$(NULLDEV)

View File

@ -1,4 +1,8 @@
# Run 'make SYS=<target>'; or, set a SYS env.
# var. to build for another target system.
SYS ?= pce
# Just the usual way to find out if we're
# using cmd.exe to execute make rules.
ifneq ($(shell echo),)

9
targettest/readme.txt Normal file
View File

@ -0,0 +1,9 @@
This directory contains test programs for the cc65 compiler.
The programs contained here are
- NOT to be referenced in the documentation
- compiled (but NOT run) by the CI test (this is their main purpose)
- some programs can be used interactively to check certain library features
Sample programs ment for endusers should be placed in the samples directory.