mirror of
https://github.com/Michaelangel007/apple2_printshop_viewer.git
synced 2024-06-16 14:29:47 +00:00
70 lines
2.4 KiB
Markdown
70 lines
2.4 KiB
Markdown
|
# PrintShop / MiniPix Viewer
|
||
|
|
||
|
![pics/scorpio.png]
|
||
|
|
||
|
![pics/wizard.png]
|
||
|
|
||
|
Utility to decode a PrintShop / MiniPix 88x52 monochrome imag written
|
||
|
in 6502 assembly language for the Apple \]\[.
|
||
|
By default MiniPix are loaded at $5800. File size is 572 ($23C).
|
||
|
|
||
|
From UseNet this question was asked: PrintShop graphics to DHR?
|
||
|
|
||
|
I really like this "puzzle" as there are 6 variations:
|
||
|
|
||
|
a) MiniPixToSrcBufHGR (Over-writes source minipix)
|
||
|
b) MiniPixToDstBufHGR (Unpacks to different buffer)
|
||
|
c) MiniPixToScreenHGR
|
||
|
|
||
|
d) MiniPixToSrcBufDHGR (Over-writes source minipix)
|
||
|
e) MiniPixToDstBufDHGR (Unpacks to different buffer)
|
||
|
f) MiniPixToScreenDHGR
|
||
|
|
||
|
I was bored this weekend so I whipped up an implementation for:
|
||
|
(c) MiniPixToScreenHGR:
|
||
|
|
||
|
Pros
|
||
|
====
|
||
|
+ Unpacks directly to the HGR screen
|
||
|
+ Doesn't need any secondary buffers
|
||
|
+ Source MiniPix image is left untouched
|
||
|
+ Image is perfectly centered both horizontally and vertically
|
||
|
(If you don't care about perfectly centered horizontally by being shifted
|
||
|
over 1 pixel to the left then you can shave off 166 - 157 = 9 bytes. You
|
||
|
will also need to fixup the Column2ColorHGR table.)
|
||
|
+ Uses correct 2:3 aspect ratio
|
||
|
+ Technically, the HGR screen does NOT need to be initialized, however it DOES
|
||
|
call HGR @ $F3E2 though to in order to initialize a few zero page variables.
|
||
|
|
||
|
Meh
|
||
|
===
|
||
|
o Uses a 7 byte look-up table for pixel doubling
|
||
|
|
||
|
Cons
|
||
|
====
|
||
|
- Uses a crap ton of zero page variables -- 16 in total:
|
||
|
$1C, $26, $27, $30, $E4 .. $E6, $F7 .. $FF
|
||
|
- Requires Applesoft ROM to be banked in as it uses 2 ROM entry points:
|
||
|
HGR, HPOSN.
|
||
|
- Code size is 152 bytes. (Demo is 166 bytes.)
|
||
|
|
||
|
|
||
|
6000:20 e2 f3 8d 52 c0 a2 58 a0 00 86 f8 84 f7 a9 12
|
||
|
6010:85 fc a0 00 84 e4 84 ff a2 34 a5 fc 20 17 f4 a8
|
||
|
6020:85 fb 85 fd 18 a5 e5 65 26 85 26 a2 01 86 fe a9
|
||
|
6030:01 85 fa b1 f7 85 f9 06 f9 a5 fd b0 05 1d 9f 60
|
||
|
6040:85 fd e8 e0 04 f0 04 e0 07 d0 13 84 fb 20 8a 60
|
||
|
6050:85 fd a4 fb e6 26 e0 07 d0 04 a2 00 86 fe 06 fa
|
||
|
6060:90 d5 c8 84 fb c0 0b 90 c6 a5 fd 20 8a 60 e6 fc
|
||
|
6070:e6 ff a6 ff e0 03 d0 a0 18 a9 0b 65 f7 85 f7 90
|
||
|
6080:02 e6 f8 a5 fc c9 ae d0 8d 60 48 29 7f a0 00 91
|
||
|
6090:26 68 2a a9 00 2a f0 06 e0 04 d0 02 a9 03 60 06
|
||
|
60a0:18 60 80 0c 30 c0
|
||
|
|
||
|
BSAVE MINIPIXVIEWER,A$6000,L$A6
|
||
|
|
||
|
It expects a PrintShop MiniPix (572 bytes) to be loaded at $5800.
|
||
|
|
||
|
Demo disk and (Merlin32) assembly source included at:
|
||
|
https://github.com/Michaelangel007/apple2_printshop_viewer
|