From a1db50781674653df3e4d0b7632e820421fcceca Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Sat, 25 Dec 2021 15:24:49 +0100 Subject: [PATCH] Add sample for opening border --- include/c64/rasterirq.c | 7 +++ samples/rasterirq/make.bat | 1 + samples/rasterirq/openborder.c | 67 +++++++++++++++++++++++++++++ samples/resources/friendlybear.bin | Bin 0 -> 128 bytes 4 files changed, 75 insertions(+) create mode 100644 samples/rasterirq/openborder.c create mode 100644 samples/resources/friendlybear.bin diff --git a/include/c64/rasterirq.c b/include/c64/rasterirq.c index afc2cb1..c6ca0d7 100644 --- a/include/c64/rasterirq.c +++ b/include/c64/rasterirq.c @@ -296,6 +296,7 @@ void rirq_init(bool kernalIRQ) void rirq_wait(void) { while (tpos != npos) ; + npos++; } void rirq_sort(void) @@ -342,3 +343,9 @@ void rirq_stop(void) sei } } + +#pragma native(rirq_sort) +#pragma native(rirq_wait) +#pragma native(rirq_start) +#pragma native(rirq_stop) + diff --git a/samples/rasterirq/make.bat b/samples/rasterirq/make.bat index 961860a..b19f948 100644 --- a/samples/rasterirq/make.bat +++ b/samples/rasterirq/make.bat @@ -1 +1,2 @@ ..\..\bin\oscar64 colorbars.c +..\..\bin\oscar64 openborder.c diff --git a/samples/rasterirq/openborder.c b/samples/rasterirq/openborder.c new file mode 100644 index 0000000..f4c9b8b --- /dev/null +++ b/samples/rasterirq/openborder.c @@ -0,0 +1,67 @@ +#include +#include +#include +#include + + +char spdata[] = { +#embed "../resources/friendlybear.bin" +}; + +RIRQCode open, bottom; + +int main(void) +{ + rirq_init(true); + + rirq_build(&open, 1); + rirq_write(&open, 0, &vic.ctrl1, VIC_CTRL1_DEN | 3); + rirq_set(0, 50 + 200 - 3, &open); + + rirq_build(&bottom, 1); + rirq_write(&bottom, 0, &vic.ctrl1, VIC_CTRL1_DEN | VIC_CTRL1_RSEL | 3 ); + rirq_set(1, 50, &bottom); + + rirq_sort(); + + rirq_start(); + + memcpy((char *)0x0380, spdata, 128); + + *(char *)(0x7f8) = 0x03c0 / 64; + *(char *)(0x7f9) = 0x0380 / 64; + *(char *)(0x7fa) = 0x03c0 / 64; + *(char *)(0x7fb) = 0x0380 / 64; + *(char *)(0x7fc) = 0x03c0 / 64; + *(char *)(0x7fd) = 0x0380 / 64; + *(char *)(0x7fe) = 0x03c0 / 64; + *(char *)(0x7ff) = 0x0380 / 64; + + vic.spr_enable = 0b11111111; + vic.spr_multi = 0b10101010; + vic.spr_color[0] = VCOL_BLACK; + vic.spr_color[1] = VCOL_ORANGE; + vic.spr_color[2] = VCOL_BLACK; + vic.spr_color[3] = VCOL_ORANGE; + vic.spr_color[4] = VCOL_BLACK; + vic.spr_color[5] = VCOL_ORANGE; + vic.spr_color[6] = VCOL_BLACK; + vic.spr_color[7] = VCOL_ORANGE; + vic.spr_mcolor0 = VCOL_BROWN; + vic.spr_mcolor1 = VCOL_WHITE; + + for(;;) + { + for(int i=0; i<255; i++) + { + vic_sprxy(0, 100, 1 * i); vic_sprxy(1, 100, 1 * i); + vic_sprxy(2, 140, 2 * i); vic_sprxy(3, 140, 2 * i); + vic_sprxy(4, 180, 3 * i); vic_sprxy(5, 180, 3 * i); + vic_sprxy(6, 220, 4 * i); vic_sprxy(7, 220, 4 * i); + + rirq_wait(); + } + } + + return 0; +} diff --git a/samples/resources/friendlybear.bin b/samples/resources/friendlybear.bin new file mode 100644 index 0000000000000000000000000000000000000000..1e722b547924bfc49b29b23e6637930268e9a410 GIT binary patch literal 128 zcmZQzKmd&;3R)`@xR!#^ssyI@4ovSGm{u*|YMsEfG=OVa0@F$d#!v@_PzDAKsID1s z-4+ZMDgqt~0vwj@5{!%tj0_+}EIA4+3P<;XbQ2iB` literal 0 HcmV?d00001