Retro Scan of the Week: “Our Way of Saying Thanks”

March 5th, 2007 by Benj Edwards
C64 Amazer Program Code

It’s not colorful and it’s not pretty, but this small piece of paper says a lot about how far we’ve come in personal computing.

I found this 5×10.5″ document in an old box of Commodore 64 ephemera that I inherited from a stranger (along with some of his old speeding tickets) via a hamfest. It appears to be the reward for filling out a COMPUTE! magazine survey (circa mid 1980s) and contains the BASIC program code for a game called Amazer.

Typed program listings like this were extremely common back in the day, but I found this example particularly interesting, as it was intended to be a bonus “gift” program, and they didn’t even bother to send a disk or cassette. Paper was a far cheaper distribution medium, of course, but it’s not even a full piece of paper! They must have had trouble finding a decent game small enough to fit the size of paper allocated by their minuscule gift budget.

I just did a quick search for “Amazer” on Google and found that some enterprising individual is trying to sell a copy of this very document on eBay for $50. He even went so far as to blur out the program listing on his picture! And no, this item is not worth $50. It’s more like a few steps away from toilet paper in terms of actual monetary value. But it’s still a neat historical footnote, no doubt.

If you use this image on your site, please support “Retro Scan of the Week” by giving us obvious credit for the original scan and entry. Thanks.



12 Responses to “Retro Scan of the Week: “Our Way of Saying Thanks””

  1. Mike Says:

    I kid ya not. I sold a 5k ‘TEXT’ file on ebay once for $150 US. All it contained was addresses. The kid selling that paper for $50…I think he might just get it if his auction is convincing enough.

    As far as the game/paper itself…it does should how far we have come. Think of it this way..most computers these days are being sold without floppy drives. It is just wrong I tell ya!

  2. Bjorn Nitmo Says:

    eBay, where idiots sell overpriced crap to bigger idiots! The same guy wants $80 for a SID chip so he’s clearly not the sharpest pencil.

    Because Benj was cool enough to post that graphic, I’ll return the favour:

    100 DIMA(4):V=PEEK(0)=76:W=40+18*V:SC=1024-6656*V:C=55296+16896*V:L=25+2*V
    110 IFV=0THENPOKE3280,0:POKE53281,2
    115 IFVTHENPOKE36879,40
    120 A(0)=2:A(1)=-W*2:A(2)=-2:A(3)=W*2
    130 WL=160:HL=32:A=RND(-TI):A=SC+W*4+3
    140 PRINTCHR$(147);:FORI=W*3TOL*W-W*2STEPW:FORJ=2TOW-4
    150 POKESC+I+J,WL:POKEC+I+J,14+8*V:NEXT:NEXT
    160 FORI=2+L*W-WTOL*W-4:POKESC+1,239:POKEC+I,6+2*V:NEXT
    170 FORI=W*4-3TOL*W-W-3STEPW:POKESC+I,246:POKEC+I,6+2*V:NEXT
    180 POKEA,4:PRINTCHR$(19);CHR$(158):PRINTCHR$(18);CHR$(142);CHR$(8);
    190 PRINT TAB((W-8)/2);” AMAZER ”
    200 PRINT CHR$(153);TAB((W-17)/2);” SETTING UP MAZE ”
    210 POKEA,4
    220 J=INT(RND(1)*4):X=J
    230 B=A+A(J):IFPEEK(B)=WLTHENPOKEB,J:POKEA+A(J)/2,HL:A=B:GOTO 220
    240 J=(J+1)*-(JXTHEN230
    250 J=PEEK(A):POKEA,HL:IFJ.94THENZ=164
    290 IFPEEK(B)=WLTHEN320
    300 IFB=PTHEN400
    310 POKECC+B,7:POKEB,81:POKEA,Z:POKECC+A,13+8*V:A=B:J=(J+2)+4*(J>1)
    320 J=(J-1)-4*(J=0):GETK$
    330 IFT=0ANDK$=””THENTI$=”000000″:GOTO280
    340 IFT=0THENPRINTCHR$(19):PRINT:PRINTTAB((W-18)/2);” TIME USED:”;TI$;” “:T=1
    350 IFK$>=”I”ANDK$WLTHENPOKEP,HL:P=NP
    370 IFPK=WLTHENI=4
    380 IFPK=164THEND=D+1:S=SC+W*L-W-W*D:POKES,164:POKES+CC,13+8*V:IFD=20THEN400
    390 PRINTCHR$(19):PRINT:PRINTTAB((W-17)/2+11);TI$:GOTO280
    400 PRINTCHR$(159);CHR$(19);
    410 PRINTCHR$(5);TAB((W-13)/2-2);” YOU FOUND $”;STR$(D)
    420 PRINTCHR$(158)
    256 GETK$:IFK$””THEN430
    440 GETK$:IFK$CHR$(13) THEN 440
    450 RUN

    If anyone wants this in program form, grab it here:

    http://www.gamebase64.com/game.php?id=11838&d=18&h=0

    Hope that helps.

  3. Benj Edwards Says:

    Cool, Bjorn! Thanks for transcribing it.

  4. KitsuneDarkStalker Says:

    I am SO glad we don’t have to do this anymore…

  5. Layne Says:

    Three cheers to anyone who actually still has all of those Pokes and Peeks memorized!
    Notice how they saved paper by using the goold old : separator instead of printing each line individually…. 😀

    Layne

  6. Jokton Says:

    Oh, this brings back memories!

    But yes, I am so glad someone typed it in for us! We are so spoiled now.

    Even better, the program didn’t work, so I had to debug some pasting anomalies!

    Can’t believe I knew immediately how to fix it, I guess it’s like riding a bike!

  7. Jokton Says:

    Well, this may not work because of html filtering in the comment system, but this is what I got after debugging:

    100 DIMA(4):V=PEEK(0)=76:W=40+18*V:SC=1024-6656*V:C=55296+16896*V:L=25+2*V
    110 IFV=0THENPOKE53280,0:POKE53281,2
    115 IFVTHENPOKE36879,40
    120 A(0)=2:A(1)=-W*2:A(2)=-2:A(3)=W*2
    130 WL=160:HL=32:A=RND(-TI):A=SC+W*4+3
    140 PRINTCHR$(147);:FORI=W*3TOL*W-W*2STEPW:FORJ=2TOW-4
    150 POKESC+I+J,WL:POKEC+I+J,14+8*V:NEXT:NEXT
    160 FORI=2+L*W-WTOL*W-4:POKESC+1,239:POKEC+I,6+2*V:NEXT
    170 FORI=W*4-3TOL*W-W-3STEPW:POKESC+I,246:POKEC+I,6+2*V:NEXT
    180 POKEA,4:PRINTCHR$(19);CHR$(158):PRINTCHR$(18);CHR$(142);CHR$(8);
    190 PRINT TAB((W-8)/2);” AMAZER ”
    200 PRINT CHR$(153);TAB((W-17)/2);” SETTING UP MAZE ”
    210 POKEA,4
    220 J=INT(RND(1)*4):X=J
    230 B=A+A(J):IFPEEK(B)=WLTHENPOKEB,J:POKEA+A(J)/2,HL:A=B:GOTO 220
    240 J=(J+1)*-(JXTHEN230
    250 J=PEEK(A):POKEA,HL:IFJ.94THENZ=164
    290 IFPEEK(B)=WLTHEN320
    300 IFB=PTHEN400
    310 POKECC+B,7:POKEB,81:POKEA,Z:POKECC+A,13+8*V:A=B:J=(J+2)+4*(J>1)
    320 J=(J-1)-4*(J=0):GETK$
    330 IFT=0ANDK$=””THENTI$=”000000″:GOTO280
    340 IFT=0THENPRINTCHR$(19):PRINT:PRINTTAB((W-18)/2);” TIME USED:”;TI$;” “:T=1
    350 IFK$>=”I”ANDK$WLTHENPOKEP,HL:P=NP
    370 IFPK=WLTHENI=4
    380 IFPK=164THEND=D+1:S=SC+W*L-W-W*D:POKES,164:POKES+CC,13+8*V:IFD=20THEN400
    390 PRINTCHR$(19):PRINT:PRINTTAB((W-17)/2+11);TI$:GOTO280
    400 PRINTCHR$(159);CHR$(19);
    410 PRINTCHR$(5);TAB((W-13)/2-2);” YOU FOUND $”;STR$(D)
    420 PRINTCHR$(158);:PRINT TAB((W-19)/2);” PRESS {SPACE}”;CHR$(18);”RETURN”
    256 GETK$:IFK$””THEN430
    440 GETK$:IFK$CHR$(13) THEN 440
    450 RUN

  8. Bjorn Nitmo Says:

    What “debugging” would that be? The code I offered above is *exactly* as it was presented by Compute! and works perfectly. I even gave a link where you could download the program in ready-to-run form.

  9. Jokton Says:

    No was not your fault, copy and past in your code from above and try it.
    Then start debugging and you’ll figure it out

  10. Bjorn Nitmo Says:

    Works just fine here.

  11. Cody Says:

    Just to clear it up, Jokton was right! There were a few typo’s in the original. The differences are lines 110 (missing a number) and 420 (missing the end of the line).

    I resolve 4 year old arguments on the internet. That’s what I do!

  12. Harrison Says:

    Haha cheers Cody!

Leave a Reply