From a303b39cf09fa3171a070e174a5e676fe71db636 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Thu, 3 Dec 2020 16:02:51 +0100 Subject: [PATCH] added C64 'koala' image viewer example for Cx16 --- examples/cx16/imgviewer/I01-BLUBB-SPHINX.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/I02-BUGJAM-JSL.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/I03-DINOTHAWR-AR.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/I04-FOX-LEON.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/I05-HUNTER-AGOD.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/I06-JAZZMAN-JDS.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/I07-KATAKIS-JEGG.BIN | Bin 0 -> 10003 bytes examples/cx16/imgviewer/TEST.PCX | Bin 0 -> 26437 bytes examples/cx16/imgviewer/koalaviewer.p8 | 112 +++++++++++++++++++ examples/loadsave.p8 | 58 ++++++++++ examples/test.p8 | 29 +++++ 11 files changed, 199 insertions(+) create mode 100755 examples/cx16/imgviewer/I01-BLUBB-SPHINX.BIN create mode 100755 examples/cx16/imgviewer/I02-BUGJAM-JSL.BIN create mode 100755 examples/cx16/imgviewer/I03-DINOTHAWR-AR.BIN create mode 100755 examples/cx16/imgviewer/I04-FOX-LEON.BIN create mode 100755 examples/cx16/imgviewer/I05-HUNTER-AGOD.BIN create mode 100755 examples/cx16/imgviewer/I06-JAZZMAN-JDS.BIN create mode 100755 examples/cx16/imgviewer/I07-KATAKIS-JEGG.BIN create mode 100755 examples/cx16/imgviewer/TEST.PCX create mode 100644 examples/cx16/imgviewer/koalaviewer.p8 create mode 100644 examples/loadsave.p8 diff --git a/examples/cx16/imgviewer/I01-BLUBB-SPHINX.BIN b/examples/cx16/imgviewer/I01-BLUBB-SPHINX.BIN new file mode 100755 index 0000000000000000000000000000000000000000..ff1d2e05f3c1bbc7a8b1e048d04ae593e4b079a5 GIT binary patch literal 10003 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 literal 0 HcmV?d00001 diff --git a/examples/cx16/imgviewer/I02-BUGJAM-JSL.BIN b/examples/cx16/imgviewer/I02-BUGJAM-JSL.BIN new file mode 100755 index 0000000000000000000000000000000000000000..9a769a3390a885389eb741db7c2d033e5dccb12c GIT binary patch literal 10003 zcmds-Uu+xKmBxpZNQo38xriw@TmIB9}-|gSP91krZAU;2nx%t5V<$ZPJVO zi8c_xYZ`KZNc+M98vYULU3aUY$VmewKpS)yt=C=zd2SGpfL$2PB6b10FMbh>3NW(2 zbBCm4D^8u=8pZChGwz2@4rUN(S>L1BQ{-!#asb zk7UY8JbAd(Ye$Z}c0{S+OT)W&@Af<+^F2fH(Ri46cI}Qy zeIgPF?&!W%Vb08_%0GYqnh^-al>7?+W&CV*?z}&KHoJMx^XIMYP`hC&@9Jh7{QQZW z`$9d`_pOv*2pA&_pDON|1E_D#&oz^>=ez{x@JO##Tn;St^^qwRc4bo}D2)=9_I3SEz4=lTd zcu=`NGK?#ERr=@OhsQ?(2P&%tBb8oWUb}n4i3y5E*|+H!W@cu7zPvCL05Eu8WC<{A zwzkpf${H#9^Eo%S(UDbR6-pZ&B{#IQT$)u^**zyS>2%64uHl9eO-TMRWKBrPBGTv? zEzW@EdFMFO+Kt#Rjj8ZRpM~(=xzP{tE zt^&33?z=`tgSPGRXP{Fv>2zAW!M#{Gx_g%qeOYCBh%@W=D6{JF7g@(`|8n-YMUVwRYbu*9*dWP$7ua+v(z8o1 zfh`pb1|x~Do@@ykdE53&xiVd(p`uV+pwm?ULgq(jdZBNdd`0OfkksPzN^5mh98hX> z6jFjLTZxEO$XS-DXQ`+8q(TUf7{Q1XGR4RhqdX6=pffoci-kggz{(1f;w)#JjIhHP z@=?=yi(6AUvaF2qXQsu!m3SO{x{{k+$E~@wwHhvgu4Q$*W>*{}=P(QTyn_5PQZN#U zBoKf6r@!iCM0$AmaD(xLIOjQE$8W95Jo)8yj8tR_O1N4mtx)s_X?&rN$KwvR}bP3-8+=6Ymx* z(`ie(g{YPSI3@ue`l7+(GSg#Y0Kwggb#~Tqo8KNKHfn<5=}yOS+KtBf^XGM6wXvbB z`Er>xnnA}HACFE?@0;wBc9mUduhs~+RW=M3p_-sw2vuyp^vVnZF5M8@5F1EHadOHi zyWy>~p|Z1<@BjLT$0tL>Z6Oxr~>NT95o0GLmgNBfHr4M6L z@+;y&0f6k`C!8cn74`Ci&7P8dR}A}hx#@{ccH9#k#L8sCNC*L!Q>SdZX|fT_%-p|E zI}!|htIh(ef6I95EyxU5%aw|RtXuUZnusBZk�S7cX8+{pL6Cy?6O?qY(;;<#4Ez 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 literal 0 HcmV?d00001 diff --git a/examples/cx16/imgviewer/I05-HUNTER-AGOD.BIN b/examples/cx16/imgviewer/I05-HUNTER-AGOD.BIN new file mode 100755 index 0000000000000000000000000000000000000000..b2aeb1c46e8ba6e81fb2025bbd9360227831a334 GIT binary patch literal 10003 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 S*5m_QI@lT%-~z|L$@?EwqEqJp literal 0 HcmV?d00001 diff --git a/examples/cx16/imgviewer/I06-JAZZMAN-JDS.BIN b/examples/cx16/imgviewer/I06-JAZZMAN-JDS.BIN new file mode 100755 index 0000000000000000000000000000000000000000..3f74c31de7e2784ae5f0e45aaefae00c2114f048 GIT binary patch literal 10003 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 literal 0 HcmV?d00001 diff --git a/examples/cx16/imgviewer/I07-KATAKIS-JEGG.BIN b/examples/cx16/imgviewer/I07-KATAKIS-JEGG.BIN new file mode 100755 index 0000000000000000000000000000000000000000..e167b7abd135e7c7d1bda557403b97bccea2f6b4 GIT binary patch literal 10003 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 Mk^J8?%H;EZ0J30C^#A|> literal 0 HcmV?d00001 diff --git a/examples/cx16/imgviewer/TEST.PCX b/examples/cx16/imgviewer/TEST.PCX new file mode 100755 index 0000000000000000000000000000000000000000..dbc6bf78cd2de21d6d7a87f8cf764e07546a5a35 GIT binary patch literal 26437 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 PkUt&%69fOhG4Ou@%yLR> literal 0 HcmV?d00001 diff --git a/examples/cx16/imgviewer/koalaviewer.p8 b/examples/cx16/imgviewer/koalaviewer.p8 new file mode 100644 index 000000000..47afecd11 --- /dev/null +++ b/examples/cx16/imgviewer/koalaviewer.p8 @@ -0,0 +1,112 @@ +%target cx16 +%import graphics +%import textio +%import diskio + +main { + const uword load_location = $4000 + ubyte screen_color + + sub start() { + + str[] pictures = [ + "i01-blubb-sphinx.bin", + "i02-bugjam-jsl.bin", + "i03-dinothawr-ar.bin", + "i04-fox-leon.bin", + "i05-hunter-agod.bin", + "i06-jazzman-jds.bin", + "i07-katakis-jegg.bin" + ] + + graphics.enable_bitmap_mode() + repeat { + ubyte file_idx + for file_idx in 0 to len(pictures)-1 { + load_image(pictures[file_idx]) + wait() + } + } + } + + sub wait() { + uword jiffies = 0 + c64.SETTIM(0,0,0) + + while jiffies < 180 { + ; read clock + %asm {{ + stx P8ZP_SCRATCH_REG + jsr c64.RDTIM + sta jiffies + stx jiffies+1 + ldx P8ZP_SCRATCH_REG + }} + } + } + + sub load_image(uword filenameptr) { + uword length = diskio.load(8, filenameptr, load_location) + + if length != 10001 { + txt.print_uw(length) + txt.print("\nload error\n") + diskio.status(8) + exit(1) + } + convert_koalapic() + } + + sub convert_koalapic() { + ubyte cx + ubyte cy + uword cy_times_forty = 0 + ubyte bb + ubyte c0 + ubyte c1 + ubyte c2 + ubyte c3 + uword bitmap = load_location + + screen_color = @(load_location + 8000 + 1000 + 1000) & 15 + + for cy in 0 to 24 { + for cx in 0 to 39 { + for bb in 0 to 7 { + cx16.r0 = cx * $0008 + cx16.r1 = cy * 8 + bb + cx16.FB_cursor_position() + get_4_pixels() + cx16.FB_set_pixel(c0) + cx16.FB_set_pixel(c0) + cx16.FB_set_pixel(c1) + cx16.FB_set_pixel(c1) + cx16.FB_set_pixel(c2) + cx16.FB_set_pixel(c2) + cx16.FB_set_pixel(c3) + cx16.FB_set_pixel(c3) + bitmap++ + } + } + cy_times_forty += 40 + } + + sub get_4_pixels() { + c0 = mcol(@(bitmap)>>6) + c1 = mcol(@(bitmap)>>4) + c2 = mcol(@(bitmap)>>2) + c3 = mcol(@(bitmap)) + + sub mcol(ubyte b) -> ubyte { + ubyte color + when b & 3 { + 0 -> color = screen_color + 1 -> color = @(load_location + 8000 + cy_times_forty + cx) >>4 + 2 -> color = @(load_location + 8000 + cy_times_forty + cx) & 15 + else -> color = @(load_location + 8000 + 1000 + cy_times_forty + cx) & 15 + } + return color + } + } + } +} diff --git a/examples/loadsave.p8 b/examples/loadsave.p8 new file mode 100644 index 000000000..0110c5fc9 --- /dev/null +++ b/examples/loadsave.p8 @@ -0,0 +1,58 @@ +%import textio +%import diskio +%import test_stack +%zeropage basicsafe + +main { + sub start() { + repeat 80 { + txt.print("screen .1. ") + } + + diskio.delete(8, "screen1.bin") + diskio.delete(8, "screen2.bin") + + if not diskio.save(8, "screen1.bin", $0400, 40*25) { + txt.print("can't save screen1\n") + diskio.status(8) + exit(1) + } + + repeat 80 { + txt.print("screen *2* ") + } + + if not diskio.save(8, "screen2.bin", $0400, 40*25) { + txt.print("can't save screen2\n") + diskio.status(8) + exit(1) + } + + txt.clear_screen() + uword length = diskio.load(8, "screen1.bin", $0400) + txt.print_uw(length) + txt.chrout('\n') + if not length { + txt.print("can't load screen1\n") + diskio.status(8) + exit(1) + } + length = diskio.load(8, "screen2.bin", $0400) + txt.print_uw(length) + txt.chrout('\n') + if not length { + txt.print("can't load screen2\n") + diskio.status(8) + exit(1) + } + length = diskio.load(8, "screen3.bin", $0400) + txt.print_uw(length) + txt.chrout('\n') + if not length { + txt.print("can't load screen3\n") + diskio.status(8) + exit(1) + } + + } +} diff --git a/examples/test.p8 b/examples/test.p8 index 05e4dc106..efc470592 100644 --- a/examples/test.p8 +++ b/examples/test.p8 @@ -8,5 +8,34 @@ main { sub start() { txt.print("hello\n") } + sub convert_koalapic() { + ubyte cx ; TODO when making this a word, the code size increases drastically + ubyte cy + uword xx + ubyte yy + ubyte bb + uword bitmap = $6000 + ubyte c0 + ubyte c1 + ubyte c2 + ubyte c3 + + for cy in 0 to 24 { + for cx in 0 to 39 { + for bb in 0 to 7 { + yy = cy * 8 + bb + xx = cx * $0008 + graphics.plot(xx, yy) + graphics.plot(xx+1, yy) + graphics.plot(xx+2, yy) + graphics.plot(xx+3, yy) + graphics.plot(xx+4, yy) + graphics.plot(xx+5, yy) + graphics.plot(xx+6, yy) + graphics.plot(xx+7, yy) + } + } + } + } }