PrintShop MiniPix Unpacker and Viewer (6502 asm) Apple ][
Go to file
michaelangel007 4058152115 Fix pic links
2019-03-31 13:51:43 -07:00
pics Add to repository 2019-03-31 13:43:29 -07:00
asm.bat Add to repository 2019-03-31 13:43:29 -07:00
debug.applewin Add to repository 2019-03-31 13:43:29 -07:00
minipixviewer Add to repository 2019-03-31 13:43:29 -07:00
minipixviewer_Output.txt Add to repository 2019-03-31 13:43:29 -07:00
minipixviewer.po Add to repository 2019-03-31 13:43:29 -07:00
minipixviewer.s Add to repository 2019-03-31 13:43:29 -07:00
README.md Fix pic links 2019-03-31 13:51:43 -07:00
scorpio.hgr Add to repository 2019-03-31 13:43:29 -07:00
scorpio.minipix Add to repository 2019-03-31 13:43:29 -07:00
wizard.minipix Add to repository 2019-03-31 13:43:29 -07:00

PrintShop / MiniPix Viewer

  • Wizard

  • Scorpio

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.