From 6ff1d8314d31096041213263887c9524cfb386f0 Mon Sep 17 00:00:00 2001
From: "ol.sc"
Date: Tue, 27 Dec 2011 00:25:17 +0000
Subject: [PATCH] Moved GEOS VLIR assembler sample from 'samples' to 'testcode'
because: - It relies on include files which are not part of the cc65
distribution (but only present in the cc65 source tree). - An upcoming GEOS
VLIR C sample will obsolete it - as sample.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5316 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
samples/geos/ca65-vlir/Makefile | 16 -------
samples/geos/ca65-vlir/cvthead.grc | 18 --------
samples/geos/ca65-vlir/vlir1.s | 46 -------------------
samples/geos/ca65-vlir/vlir2.s | 38 ---------------
testcode/grc/Makefile | 3 ++
testcode/grc/vlir.grc | 13 ++++++
.../geos/ca65-vlir => testcode/grc}/vlir0.s | 41 ++++++++---------
testcode/grc/vlir1.s | 45 ++++++++++++++++++
testcode/grc/vlir2.s | 36 +++++++++++++++
9 files changed, 117 insertions(+), 139 deletions(-)
delete mode 100644 samples/geos/ca65-vlir/Makefile
delete mode 100644 samples/geos/ca65-vlir/cvthead.grc
delete mode 100644 samples/geos/ca65-vlir/vlir1.s
delete mode 100644 samples/geos/ca65-vlir/vlir2.s
create mode 100644 testcode/grc/Makefile
create mode 100644 testcode/grc/vlir.grc
rename {samples/geos/ca65-vlir => testcode/grc}/vlir0.s (58%)
create mode 100644 testcode/grc/vlir1.s
create mode 100644 testcode/grc/vlir2.s
diff --git a/samples/geos/ca65-vlir/Makefile b/samples/geos/ca65-vlir/Makefile
deleted file mode 100644
index 5f6dfcdf2..000000000
--- a/samples/geos/ca65-vlir/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-all: vlir0.s vlir1.s vlir2.s cvthead.grc
- grc cvthead.grc
- ca65 cvthead.s
- ca65 vlir0.s
- ca65 vlir1.s
- ca65 vlir2.s
- ld65 -C cvthead.cfg cvthead.o vlir0.o vlir1.o vlir2.o
- grc -vlir out.cvt vlir-head vlir0 vlir1 vlir2
-
-.PHONY: clean
-
-clean:
- -$(RM) *.o vlir-head vlir0 vlir1 vlir2 cvthead.s cvthead.cfg out.cvt
-
-love:
- @echo "Not war, eh?"
diff --git a/samples/geos/ca65-vlir/cvthead.grc b/samples/geos/ca65-vlir/cvthead.grc
deleted file mode 100644
index a592b3f02..000000000
--- a/samples/geos/ca65-vlir/cvthead.grc
+++ /dev/null
@@ -1,18 +0,0 @@
-
-HEADER APPLICATION "test" "TestApp" "V1.0" {
-structure VLIR
-dostype USR
-author "Maciej Witkowiak"
-info "This is just an example."
-}
-
-; output binary file for header will be 'vlir-head'
-; base address for chains >=1 will be $3000
-; output binary file for chain #0 is 'vlir0'
-; output binary file for chain #1 is 'vlir1'
-; output binary file for chain #2 is 'vlir2'
-VLIR vlir-head 0x3000 {
-vlir0
-vlir1
-vlir2
-}
diff --git a/samples/geos/ca65-vlir/vlir1.s b/samples/geos/ca65-vlir/vlir1.s
deleted file mode 100644
index c346cc993..000000000
--- a/samples/geos/ca65-vlir/vlir1.s
+++ /dev/null
@@ -1,46 +0,0 @@
-
-; Maciej 'YTM/Elysium' Witkowiak
-; 06.06.2002
-
-; This is source for loadable VLIR-structured program part
-
- ; include some GEOS defines
-
- .include "../../../libsrc/geos/inc/const.inc"
- .include "../../../libsrc/geos/inc/jumptab.inc"
- .include "../../../libsrc/geos/inc/geossym.inc"
- .include "../../../libsrc/geos/inc/geosmac.ca65.inc"
-
- ; export names of functions that will be used in main program
-
- .export VLIR1_Function1
- .export VLIR1_Function2
-
-
- ; go into VLIR1 segment - everything that is here will go into
- ; VLIR chain #1
-
- .segment "VLIR1"
-
-VLIR1_Function1: jmp Function1 ; jump table, not really necessary
-VLIR1_Function2: jmp Function2
- ; etc.
-
- ; rodata - if this is defined in .segment "RODATA"
- ; it will end in VLIR0 part, you don't want that
-paramString:
- .byte DEF_DB_POS | 1
- .byte DBTXTSTR, TXT_LN_X, TXT_LN_2_Y
- .word line1
- .byte DBTXTSTR, TXT_LN_X, TXT_LN_3_Y
- .word line2
- .byte OK, DBI_X_0, DBI_Y_2
- .byte NULL
-
-line1: .byte "This is in module 1",0
-line2: .byte "This is in module 1",0
-
- ; code
-Function1: LoadW r0, paramString
- jsr DoDlgBox
-Function2: rts
diff --git a/samples/geos/ca65-vlir/vlir2.s b/samples/geos/ca65-vlir/vlir2.s
deleted file mode 100644
index 0f63973a9..000000000
--- a/samples/geos/ca65-vlir/vlir2.s
+++ /dev/null
@@ -1,38 +0,0 @@
-
-; Maciej 'YTM/Elysium' Witkowiak
-; 06.06.2002
-
-; This is source for loadable VLIR-structured program part
-
-; similar to vlir1 except the fact that this is chain #2
-
- .include "../../../libsrc/geos/inc/const.inc"
- .include "../../../libsrc/geos/inc/jumptab.inc"
- .include "../../../libsrc/geos/inc/geossym.inc"
- .include "../../../libsrc/geos/inc/geosmac.ca65.inc"
-
- .export VLIR2_Function1
- .export VLIR2_Function2
-
- .segment "VLIR2"
-
-VLIR2_Function1: jmp Function1
-VLIR2_Function2: jmp Function2
- ; etc.
-
-paramString:
- .byte DEF_DB_POS | 1
- .byte DBTXTSTR, TXT_LN_X, TXT_LN_2_Y
- .word line1
- .byte DBTXTSTR, TXT_LN_X, TXT_LN_3_Y
- .word line2
- .byte OK, DBI_X_0, DBI_Y_2
- .byte NULL
-
-Function2: LoadW r0, paramString
- jsr DoDlgBox
-Function1: rts
-
-line1: .byte "This is in module 2",0
-line2: .byte "This is in module 2",0
-
diff --git a/testcode/grc/Makefile b/testcode/grc/Makefile
new file mode 100644
index 000000000..401319eee
--- /dev/null
+++ b/testcode/grc/Makefile
@@ -0,0 +1,3 @@
+all:
+ grc65 vlir.grc
+ cl65 -t geos vlir.s vlir0.s vlir1.s vlir2.s
\ No newline at end of file
diff --git a/testcode/grc/vlir.grc b/testcode/grc/vlir.grc
new file mode 100644
index 000000000..3b8869b50
--- /dev/null
+++ b/testcode/grc/vlir.grc
@@ -0,0 +1,13 @@
+HEADER APPLICATION "test" "TestApp" "V1.0" {
+structure VLIR
+dostype USR
+author "Maciej Witkowiak"
+info "This is just an example."
+}
+
+; maximum size for chains >=1 will be $1000
+VLIR 0x1000 {
+0
+1
+2
+}
diff --git a/samples/geos/ca65-vlir/vlir0.s b/testcode/grc/vlir0.s
similarity index 58%
rename from samples/geos/ca65-vlir/vlir0.s
rename to testcode/grc/vlir0.s
index 90f1b3668..302f4396b 100644
--- a/samples/geos/ca65-vlir/vlir0.s
+++ b/testcode/grc/vlir0.s
@@ -1,32 +1,31 @@
-
; Maciej 'YTM/Elysium' Witkowiak
; 06.06.2002
-; This is source for main VLIR-structured program part
+; This is the source for the main VLIR-structured program part
; include some GEOS defines
- .include "../../../libsrc/geos/inc/const.inc"
- .include "../../../libsrc/geos/inc/jumptab.inc"
- .include "../../../libsrc/geos/inc/geossym.inc"
- .include "../../../libsrc/geos/inc/geosmac.ca65.inc"
+ .include "../../libsrc/geos/inc/const.inc"
+ .include "../../libsrc/geos/inc/jumptab.inc"
+ .include "../../libsrc/geos/inc/geossym.inc"
+ .include "../../libsrc/geos/inc/geosmac.ca65.inc"
; import load addresses for all VLIR chains
- ; by default they are all the same, but this is not required
- ; these labels are defined upon linking with ld65 - each segment has it
- .import __VLIR1_LOAD__
- .import __VLIR2_LOAD__
+ ; these labels are defined upon linking with ld65
+
+ .import __OVERLAYADDR__
+ .import __OVERLAYSIZE__
; import names of functions defined (and exported) in each VLIR part
; of your application
- ; here I used VLIRx_ prefix to prevent name clash
+ ; here I used an OVERLAYx_ prefix to prevent name clashes
- .import VLIR1_Function1
- .import VLIR2_Function2
+ .import OVERLAY1_Function1
+ .import OVERLAY2_Function1
- ; segments "CODE", "DATA", "RODATA" and "BSS" all go to VLIR0 chain
+ ; segments "STARTUP", "CODE", "DATA", "RODATA" and "BSS" all go to VLIR0 chain
- .segment "CODE"
+ .segment "STARTUP"
; code segment for VLIR 0 chain
ProgExec:
LoadW r0, paramString ; show something
@@ -39,19 +38,19 @@ ProgExec:
lda #1
jsr PointRecord ; we want next module (#1)
- LoadW r2, $ffff ; length - as many bytes as there are
- LoadW r7, __VLIR1_LOAD__ ; all VLIR segments have the same load address
+ LoadW r2, __OVERLAYSIZE__ ; length - as many bytes as we have room for
+ LoadW r7, __OVERLAYADDR__ ; all VLIR segments have the same load address
jsr ReadRecord ; load it
bnex error
- jsr VLIR1_Function1 ; execute something
+ jsr OVERLAY1_Function1 ; execute something
lda #2
jsr PointRecord ; next module
- LoadW r2, $ffff
- LoadW r7, __VLIR2_LOAD__
+ LoadW r2, __OVERLAYSIZE__
+ LoadW r7, __OVERLAYADDR__
jsr ReadRecord ; load it
bnex error
- jsr VLIR2_Function2 ; execute something
+ jsr OVERLAY2_Function1 ; execute something
error: jmp EnterDeskTop ; end of application
diff --git a/testcode/grc/vlir1.s b/testcode/grc/vlir1.s
new file mode 100644
index 000000000..530de4ec4
--- /dev/null
+++ b/testcode/grc/vlir1.s
@@ -0,0 +1,45 @@
+; Maciej 'YTM/Elysium' Witkowiak
+; 06.06.2002
+
+; This is the source for the loadable VLIR-structured program part
+
+ ; include some GEOS defines
+
+ .include "../../libsrc/geos/inc/const.inc"
+ .include "../../libsrc/geos/inc/jumptab.inc"
+ .include "../../libsrc/geos/inc/geossym.inc"
+ .include "../../libsrc/geos/inc/geosmac.ca65.inc"
+
+ ; export names of functions that will be used in the main program
+
+ .export OVERLAY1_Function1
+ .export OVERLAY1_Function2
+
+
+ ; go into OVERLAY1 segment - everything that is here will go into
+ ; VLIR chain #1
+
+ .segment "OVERLAY1"
+
+OVERLAY1_Function1: jmp Function1 ; jump table, not really necessary
+OVERLAY1_Function2: jmp Function2
+ ; etc.
+
+ ; rodata - if this is defined in .segment "RODATA"
+ ; it will end up in the VLIR0 part, you don't want that
+paramString:
+ .byte DEF_DB_POS | 1
+ .byte DBTXTSTR, TXT_LN_X, TXT_LN_2_Y
+ .word line1
+ .byte DBTXTSTR, TXT_LN_X, TXT_LN_3_Y
+ .word line2
+ .byte OK, DBI_X_0, DBI_Y_2
+ .byte NULL
+
+line1: .byte "This is in module 1",0
+line2: .byte "This is in module 1",0
+
+ ; code
+Function1: LoadW r0, paramString
+ jsr DoDlgBox
+Function2: rts
diff --git a/testcode/grc/vlir2.s b/testcode/grc/vlir2.s
new file mode 100644
index 000000000..d3fb28264
--- /dev/null
+++ b/testcode/grc/vlir2.s
@@ -0,0 +1,36 @@
+; Maciej 'YTM/Elysium' Witkowiak
+; 06.06.2002
+
+; This is the source for the loadable VLIR-structured program part
+
+; similar to vlir1.s except the fact that this is chain #2
+
+ .include "../../libsrc/geos/inc/const.inc"
+ .include "../../libsrc/geos/inc/jumptab.inc"
+ .include "../../libsrc/geos/inc/geossym.inc"
+ .include "../../libsrc/geos/inc/geosmac.ca65.inc"
+
+ .export OVERLAY2_Function1
+ .export OVERLAY2_Function2
+
+ .segment "OVERLAY2"
+
+OVERLAY2_Function1: jmp Function1
+OVERLAY2_Function2: jmp Function2
+ ; etc.
+
+paramString:
+ .byte DEF_DB_POS | 1
+ .byte DBTXTSTR, TXT_LN_X, TXT_LN_2_Y
+ .word line1
+ .byte DBTXTSTR, TXT_LN_X, TXT_LN_3_Y
+ .word line2
+ .byte OK, DBI_X_0, DBI_Y_2
+ .byte NULL
+
+Function2: LoadW r0, paramString
+ jsr DoDlgBox
+Function1: rts
+
+line1: .byte "This is in module 2",0
+line2: .byte "This is in module 2",0
--
2.39.5