Jump to content
  • entries
    24
  • comments
    22
  • views
    43,753

About this blog

Ramblings and code snippets for my favorite classic computer

Entries in this blog

Rasta Convertor

First time I have ever taken a non-converting image, and fixed it, such that a suitable conversion is possible. Before I reduced the detail in "certain" areas, this is the best result. Note the terrible tell-tale "horizontal banding". Seeing that the image was struggling with two specific areas, I went in and removed most of the detail. Below will detail the before and after images. Reduce the image to indexed 8-bit colour, using an Atari palette file (in this case, I used the default p

Stephen

Stephen

PC APACi239 convertor

Screenshot:   Feature List: Place any 768 byte RGB palette in the Palette directory, and they are available upon program launch. Optional debug files during conversion (HUE & LUM files). Optional dithering (currently, Floyd-Steinberg (4 pixel error diffusion) and Burkes (7 pixel error diffusion)). Ability to select multiple files and batch convert. When doing this, the description which gets added to the BGP header is automatically entered (the filename of the original file i

Stephen

Stephen

Double Rainbow - meh! I've got Quad Rainbow pt.6

I usually don't post a video of something that is not working, but oh well - it's been a while, and I was finally able to put in some time. The ball (missle 3 to be precise) motion is done in the Immediate VBI. It's not working 100% just yet, but masking works, and the motion mostly works.   http://www.youtube.com/watch?v=44tRcZQdNh4   I might try swapping the "optimized" ball move code for the regular paddle move code, and see if it works any better. I am trying to save every cycle possi

Stephen

Stephen

Term80 Disassembly

This is a very early work in progress. I hope to have some more time to work on this towards the end of December. I may wait to work on it until after I receive my Turbo Freezer though. I cannot run CP/M from an emulator, but currently the only ROM based monitor I have in the Atari requires a reset to activate it, and that wipes out the term program. I can at least get some text on the screen and do a mem dump.   Here is a memory map $1100-$2EFF ($1E00 bytes Screen RAM) $3610-$3708 ($

Stephen

Stephen

Indus GT CP/M Experiments #2 - Word Processing

OK - I am getting better at making CP/M disks, so I hope to get my better camera setup this weekend, and post a nice tutorial.   For now, we'll go WAY back in time to 1978. Here are some screenshots of MicroPro's WordMaster 1.07a.   Here's a DIR of the WordMaster disk. The "PIP PRN:=*.ASM" commands copy files to the printer (a Panasonic KX-P2134 24-pin dot matrix, hooked up via an MPP 64kB print buffer / Parallel to SIO interface). CP/M has the convention of Destination, Source (not the n

Stephen

Stephen

Indus GT CP/M Experiments

After much trouble, I now have a few working CP/M disks. I will detail the process of getting images from the internet to a working CP/M floppy in the coming days. For now, I will show how I changed the god-awful colours of the stock Term-80 program.   Here you see the before image. I am running MS BASIC-80 Ver 5.21 on top of CP/M 2.22. This is running on a 64kB Z-80 system (the controller of my Indus GT disk drive)   Knowing that the Atari's color registers start at $02C0, I fired up

Stephen

Stephen

Double Rainbow - meh! I've got Quad Rainbow pt.5

Starting to take shape now - here's hopefully the final video with static background. I am still experimenting to see how much data I can throw at the screen during VBI and still maintain 60FPS. I am going to have to scale the video RAM way down from where it is currently, as 2048 bytes is too much I initially planned for 1024, this should work.   No details, just a quick preview of the working score system (2 variables hold the score, deferred VBI handles the rest).  

Stephen

Stephen

Work resumes

"Real life" responsibilities be damned, 5 months away from A8 coding is enough. Work resumes! The video needs annotations, but it is late.   Basic explanation: GTIA mode 9 bitmap Narrow playfield DLI every 3 mode lines Players 0 and 1 in quad width, black mask the borders Players 2 and 3 in single width are the "bats" Missile 0 and 1 are not used Missile 2 is the net Missile 3 is the ball $800 bytes screen RAM 64*64 independently addressable pixels Score wil

Stephen

Stephen

Double Rainbow - meh! I've got Quad Rainbow pt.4

Paddle read code is now working. On my real machine, there is a one pixel "jitter". I will add some simple code to fix this. Bounds checking is still needed.   Both paddles are read and the objects repositioned in a quick 193 cycles. Video was recorded using Altirra. Both paddles are movable, but Altirra seems to only support one.  

Stephen

Stephen

Double Rainbow - meh! I've got Quad Rainbow pt.3

OK, I got my first attempt at reading a paddle and vertically moving a Player/Missile object done in assembly. It runs in the VBI. As you will see in the video, if the paddle is moved too quickly, the old "bat" is not erased properly. I have a new move routine which will solve this coded on paper. I hope to test it tomorrow. I also need to implement bounds checking in order to keep the bats on the colored playfield.     I am pleased with my progress so far.   Stephen Anderson

Stephen

Stephen

Double Rainbow - meh! I've got Quad Rainbow pt.2

The left and right borders are now masked. I am using Player 0 and 1 both in quad-width for this.   I have the leftmost & rightmost addressable pixel at full brightness, with player 0 asking the left border.   Here I am using Player 0 to mask the rightmost border. It let me find the proper position.   Now both borders are being masked using Players 0,1.   Same as above just showing a different pattern.   Next thing to do is go hunting for my paddle controller. No digital

Stephen

Stephen

Double Rainbow - meh! I've got Quad Rainbow.

Taking a break from my main A8 project which shall remain unnamed (since I fear it may take years to finish). Trying for something a lot more simple to start, but with huge ambitions.   My DLIST is broken - the LMS locations are not set correctly. I have a TBXL program which makes the DLIST for me which needs debugged. I do however have the many DLIs working.   Since it's always great to have a stable screen and interrupts that don't crash the machine, I figure a screenshot is in order.

Stephen

Stephen

Nasty A8 output on modern LCD TV

I know this has been discussed quite a bit previously. Just wanted to get some pictures. The output is from two different NTSC 130XEs via a separate Y/C (s-vid) cable. One of the machines is completely stock, the other has the full super-vid mod as well as removal of the RF modulator. The TV is a Dynex 22" LCD 720p.   The first issue with modern sets is the incorrect de-interlacing of the A8 signal. Every other frame is dropped by a scanline. This makes sense due to the fact that the A8

Stephen

Stephen

Cougar Stereo Install pt.3

Woofer cutout - that's an 11" square with 3" corner radii. There's the port, 14.5" X 2" X 16.75". Sides and bottom of box is used to form the port. Finally ready to make the woofer cutouts. It's starting to look like a box now. Close-up of opening, showing the port. Note all panels sit inside dados and are completely sealed. Another front shot. Holes are drilled for the eight #10-32 T-Nuts. The T-Nuts press in easily with this heavy duty 3" c-clamp. All pressed in. Thi

Stephen

Stephen

Cougar Stereo Install pt.2

OK, here are some work-in-progress shots of the subwoofer box. Some quick specs: 2 cubic feet per side 14.5"x2"x16.5" port MTX TS5512-22 (12" square 600Watts RMS, they will be getting 493 watts RMS each via an MTX TS8001 class D monoblock - I'll post a scan of the spec sheet showing the tested RMS output) Box is made from 3/4" hi-density particle board (about 75 pounds per 4X8 sheet). Non dadoed joints use multiple #20 biscuits. Combination of wood glue, PL-400, #8 2" screws, #

Stephen

Stephen

Cougar Stereo Install

Back seat - looks great but there is no "back seat" room like in the good old days It takes a big hole (1.250 inches) to install a 1/0 gauge plug! A before shot. The aforementioned 1/0 plug (prevents chafing which is a good thing!) Bad ass + battery terminal. 1/0 gauge is for the stereo feed, twin 4 gauges are for the factory starter / main harness feeds. Lots of copper here! Big fuse holder! Big fuse! Battery (don't worry - it was cleaned before I put the new stuff in

Stephen

Stephen

Focus 2001 (Keyboard) Restoration

I can't type on anything but a nice buckling spring Model M style keyboard. I have been using Focus 2001 keyboards since 95. I found this old one from 1997 and decided it needed cleaned up.   There is some drastic yellowing - I am getting the stuff to try my first Retrobrite this week.   Notice the age of this keyboard. AT lpug (will be changed to PS/2) and there is no Windows key!   A good scrubbing has removed all of this dirt from the keys (not shown).   Here you can see the

Stephen

Stephen

IO Board and (not so)Simple Stereo install - WIP

The time has finally arrived, I am building my dream Atari. It started as a very yellowed PAL 130XE[picture needed]. I while back, I purchased one of the EPG Jr. machines. That was kind enough to donate its case & keyboard[picture needed]. It is 100% unyellowed and almost completely dust free. I haven't even brushed it off yet. It does have some scuff marks from the straps that held it in the rack. Also, one of the alignment tabs is busted off the back of the case. This will not be a

Stephen

Stephen

Fast mem clear + source

Like most projects, I needed a mem clear routine. Standard Atari BASIC rev.C running a simple for-next loop takes a whopping 4.76 seconds to clear 768 bytes of RAM. This is unacceptable. Below is a 25-byte relocatable routine meant to be called via USR. It takes 2 parameters and is called via X=USR(1536,32768,3). 1536 is where I currently have it (page 6). Since I only need it upon initialization I will overwrite it. It would be just as easy to put it in a string, and call via X=USR(ADR(S

Stephen

Stephen

30Hz VBI subroutine solved

So I had my immediate mode VBI routine running. It is a very simple VBI, the first thing it does is synchronize my DLI code to the top of the screen (see DLI Blog). Then it reads a single joystick and moves the player horizontally. However, the VBI runs at 60Hz and my player position only needs updated at 30Hz. The solution is quite simple. The code is below, with some notes below that.   ;12/29/09 - This is assembled to "VBI.OBJ" ;Assembled using MADS 1.8.8 build 2 (5 Jul 09) ;EQUATE

Stephen

Stephen

×
×
  • Create New...