PigXLs by JAC! [web]
screenshot added by JAC! on 2010-09-15 23:46:12
platform :
type :
release date : september 2010
  • 40
  • 3
  • 0
popularity : 60%
  • 0.93
alltime top: #3072
added on the 2010-09-15 23:46:12 by JAC! JAC!

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr


>> PigXLs <<

A 128 bytes intro in 5 working stages for the Atari 800 XL.

After I had put my Fake Fade 64 bytes prod on Pouet, it was not obvious to everybody why it is an achievement to change colors and draw lines in 64 bytes. In fact on Atari there are only 52 bytes of code in case of a 64 bytes executable, and I'd really like to see the MS DOS conversion of my release in 52 bytes x86 code.

So I decided to go for "bigger" release and port the MS DOS prod Origins of the pig 128 bytes. That prod is #1761 in the all time top with 43 thumbs - strange world!

BB Image

And to show that the XL can do it better, I decided to add raster bars, color cycling, sprites and “sound”. So here are the 5 working stages to the final result:

Stage 1: Hires mode, index addressing, color based on index, raster bars
Stage 2: Lores mode with scaled coordinates
Stage 3: Stack/PLA addressing, color based on coordinates, $d20x alarm sound
Stage 4: $d20x rhythm sound
Stage 5: moving players

The executables for all stages will start automatically from a game DOS or an emulator. When using MyDOS or ATARI DOS, the executable has to be start via "M - Run Address". The start address for stage 1 and 2 is "2000", for all others it is "0154".

For PC users: Here is your youtube video and no, there is no ESC support because Atarians and Chuck Norris use RESET instead ;-)
Created using WUDSN IDE.
added on the 2010-09-15 23:49:04 by JAC! JAC!
rulez added on the 2010-09-16 02:05:55 by elkmoose elkmoose
awesome. more tiny atari intros!
rulez added on the 2010-09-16 02:34:18 by phoenix phoenix
I have to say...rock on. nice work.
rulez added on the 2010-09-16 05:25:03 by tonyrocks tonyrocks
good stuff, thumbs up!
rulez added on the 2010-09-16 08:03:22 by irwin irwin
Mmm rasters bars.
rulez added on the 2010-09-16 09:23:14 by Intrinsic Intrinsic
rulez added on the 2010-09-16 10:12:41 by iks iks
Yay! My favourite pig, now on Atari!
rulez added on the 2010-09-16 11:46:38 by xeron xeron
rulez added on the 2010-09-16 14:11:23 by Optimonk Optimonk
Is the line routine a system call of AtariXL basic?
Making a line routine I spent something more than 100 bytes in x86 alone, so I guess it would be too hard to make less. But I couldn't figure from the code of your last one since I don't know much about Atari XL.
added on the 2010-09-16 14:13:18 by Optimonk Optimonk
HEHE, good job, man !
rulez added on the 2010-09-16 14:42:09 by ɧ4ɾɗվ./Lemon. ɧ4ɾɗվ./Lemon.
fake! ;) BB Image
rulez added on the 2010-09-16 15:04:18 by Saga Musix Saga Musix
Is the line routine a system call of AtariXL basic?

I knew this question would come ;-) Entering the graphics mode and line drawing is part of the Atari OS's general device driver concept (central I/O). It's command "11" for the screen device "S:". The problem is that even calling these routines requires tons of code for passing parameters/strings (called IO control blocks). So the point is to get around this and to find a way to read the 42 coordinates for the 20 lines most effectivly.

So I made the coordinates executable and the code drawable ;-)

I have put the coordinates before the code, put all into the stack, changed to coordinates to be valid 6502 code plus valid colors. Also the first portion of the code represents coordinates and the shape termination.
Code: * = $154 ;Start at stack position "S"=$53 ; These are the x,y corrdinates for the lines. ; Bit 0 in the x coordinate is also the line color. ; The first line is black because is implicitly starts at 0,0. ; The last relevant coordinate must be the same as the first, except for the color. ; The coordinates are chosen in a way they represent valid code. ; This allows the demo to start without having a RUNADR segment. ; .byte x, y, x, y, x, y, x, y, x, y, x, y, x, y pigxy .byte $18, $43, $21, $3E, $5d, $4E, $61, $58, $69, $5A, $71, $4E, $75, $55 .byte $7f, $57, $8D, $35, $75, $15, $4F, $1D, $45, $15, $49, $1F, $45, $23 .byte $2d, $19, $3b, $26, $37, $2D, $23, $34, $17, $2c, $17, $43

Code:start ldx #'S ;Instead of string definition "S:",$9B, causes also invisible line. stx $00 ;Operand $00 will terminate drawloop txs ;X=$53 => PLA will start at $154 ldx #$10 ;Channel 1 lda #open ;Set open command sta iocom,x asl ;Graphics 2*3 = 6, 2 colors sta icaux2,x ;icaux1,x is already 0 drawloop jsr ciov ;Leaves a and x unchanged, returns y=1 lda #draw ;Set draw command sta iocom,x pla ;Pull x corrdinate sta colcrs sta color ;Bit 0 of the xpos is the color pla ;Pully y coordinate sta rowcrs bne drawloop ;Will end when PLA has reached "stx $00"
added on the 2010-09-16 15:14:57 by JAC! JAC!
Great idea!
rulez added on the 2010-09-16 18:34:23 by Exin Exin
Very nice !
rulez added on the 2010-09-16 19:22:53 by lsl lsl
8bit makes everything better :D
rulez added on the 2010-09-16 21:37:12 by insane insane
rulez added on the 2010-09-16 21:37:28 by Nitro/Black Sun Nitro/Black Sun
Yeah, nice to see some more sizecoding on an 8-bitter!
rulez added on the 2010-09-16 22:54:08 by Sdw Sdw
rulez added on the 2010-09-17 01:18:07 by the-other-pigpen the-other-pigpen
rulez added on the 2010-09-17 07:10:00 by Inorix Inorix
rulez added on the 2010-09-17 08:47:45 by toxie toxie
kewl! piggy rulez :)

JAC! Please contact me at greymsb@poczta.fm
rulez added on the 2010-09-17 09:00:31 by grey grey
impressive, every bit of it. :)
rulez added on the 2010-09-17 09:30:48 by Ped Ped
good fun
rulez added on the 2010-09-18 09:50:42 by psndcj//tbk psndcj//tbk
Cool sizecoding! Now let's beat the 43 thumbs ;)
rulez added on the 2010-09-18 14:35:55 by ninjadrm ninjadrm
rulez added on the 2010-09-18 18:51:33 by wysiwtf wysiwtf
This is no pig... it's a fish, swimming to the right!
added on the 2010-09-18 19:08:21 by cryer cryer
Awesome technique! Plus, all 5 versions rule :)
rulez added on the 2010-09-18 19:11:20 by すすれ すすれ
Jac! good to see you back doing some scene stuff... I love your IDE affords, too... ;)
rulez added on the 2010-09-18 23:11:40 by Heaven/TQA Heaven/TQA
Thumb for size and platform.
rulez added on the 2010-09-19 15:06:47 by jack-3d jack-3d
Hello JAC!, thanks for the conversion, it is really good :)

Some few questions:

How many bytes I used for my line data? 38 bytes? I've lost the source and I have no idea...

And, do you know how many bytes was my drawing algorithm? I remember I used angle+length.

Have you used your own data or mine?


I've to say that it was my first limited size prod and my first time coding in ms-dos assembler, so it had a lot of thumb-ups not because of its quality, but more because I used the pig from the, at the time, famous thread "Origins of the Pig".
rulez added on the 2010-09-19 15:50:22 by texel texel
PIGGY & rasterbars <3
rulez added on the 2010-09-19 15:55:52 by rez rez
very good idea to bundle it with several versions and the source code !!
rulez added on the 2010-09-19 19:41:04 by twh twh
@Texel: Cool to see your comment here! This is my 2nd limed size prod and it is really cool to get all that feedback. Since there was no source in your download archive and since I have no x86 disasm at hand I had to do it the "real programmers way": Paste the screenshot into MSPAINT, point to the line ends and type the coordinates from the status bar into the code ;-) I used 20 lines with the first point repeated to close the shape (42 bytes). So I'm not sure about how close this is to your code but I though the pig would'nt care.
added on the 2010-09-19 20:00:42 by JAC! JAC!
JAC! Pig wouldn't care, that's right :) Please let me know if You receive my e-mails. Thx :)
added on the 2010-09-21 15:35:32 by grey grey
This is no pig... it's a fish, swimming to the right!

Well, I intended to stay as close as possible to the original. But since the remark is obviously true to some extended, I have added stage 6 with some fish schwimming to the right while they bite the rasters ;-) Added to archives and youtube in proper frame rate of course. Now I'll be moving on the the next prod - thank's for all those thumbs!
BB Image
added on the 2010-09-21 22:11:28 by JAC! JAC!
The audio was annoying so piggy.
added on the 2010-10-02 21:47:58 by AntDude AntDude
lovely pigfish
rulez added on the 2010-10-12 05:09:06 by cruzer cruzer
super nice (made my day) :D
rulez added on the 2010-10-12 13:19:09 by gentleman gentleman
Schweine im Weltall
rulez added on the 2011-05-11 11:59:28 by Sir Sir
Haha, rules.
rulez added on the 2011-05-11 12:02:46 by ferris ferris
thumb++, well deserved!
rulez added on the 2011-05-18 21:33:17 by baah baah
Vector graphics and a simple music player in 128 bytes? I'm impressed.
rulez added on the 2012-11-15 09:24:57 by Tjoppen Tjoppen
rulez added on the 2013-11-02 22:16:51 by p01 p01
haha, great
rulez added on the 2014-06-16 22:26:37 by whizart whizart
rulez added on the 2015-08-02 20:00:11 by miker miker
rulez added on the 2021-01-08 14:26:33 by Blast! Blast!

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment