DATA
BODYX: DS 256 ; Space for ...
BODYY: DS 256 ; Space for ...
...
REL
LD A,(BODYX+27) ; Load a byte at offset 27 from BODYX.
LD HL,BODYX ; Point HL at the start of BODYX.
LD L,27 ; Index element 27 (counting from 0). This assumes HL is on a 256-byte boundary.
LD A,(HL) ; Load a byte at offset 27 from BODYX using L as the effective index.
...
Wow, thanks for that. I will have to try this soon. And it is suited to 8080.I just have added a utility I wrote for testing Dazzler hardware on a real system. Included is a program for converting BMP images to Dazzler memory images (all modes supported), as well as a menu driven program for controlling the Dazzler and loading custom images from disk into video memory. The BMP converter currently is Windows only. See https://github.com/akueckes/Cromemco-Dazzler-RevD for the download.
I used 8080 assembler for wide applicability. BDOS required. Unfortunately, many (if not most) Dazzler software runs on Z80 only. Maybe it is useful. Have fun.
I just have added a utility I wrote for testing Dazzler hardware on a real system. Included is a program for converting BMP images to Dazzler memory images (all modes supported), as well as a menu driven program for controlling the Dazzler and loading custom images from disk into video memory. The BMP converter currently is Windows only. See https://github.com/akueckes/Cromemco-Dazzler-RevD for the download.
I used 8080 assembler for wide applicability. BDOS required. Unfortunately, many (if not most) Dazzler software runs on Z80 only. Maybe it is useful. Have fun.
Remember that the IBM PC offered the same color depth not before EGA was released. And this was 8 years after the Dazzler. CGA was not capable showing 16 colors at the same time without tricks.
Oh yes. As Hugo already wrote programming the Dazzler x4 mode is mind twisting. I would not say that it is impossible to create sophisticated and fast algorithms for it, but it goes towards the limits of what my brain can handle. I have a Vector Graphics video card which implements bilevel with 256x240 which has exactly the same scheme as the Dazzler in x4 mode, but it at least doesn't use quadrants. I wonder, though, whether games implementation might still be with same speed or even faster with color/grayscale than with x4 mode, although more data has to be moved.It is something of a “trick”, in the sense it’s a mode that has to be manually set up and is kind of awkward to program, but CGA has a perfectly serviceable way to display 160x100x16 colors. (I would probably argue it’s actually less awkward, or at least no worse, than the Dazzler’s weird four quadrant coordinate system.)
What can be done with some tweaking with an IBM CGA is nicely shown by the famous 8088 MPH demo (see). The Youtube link is to a version with composite monitor. Here also is a link to my own setup at home trying to demonstrate the difference between composite monitor and original CGA monitor, which has TTL inputs for the primary colors (left display composite, right display CGA monitor) a couple of years ago:.
Guess we have a long way to go to create something similar on a Dazzler.
Hugo, you wrote what I think. Despite of and actually because of its limitations, creating images and visual effects with early computers *was* an art of its own. And still is. It had been a great challenge to create artifacts and even worlds within the limits of its time, and it was highly fascinating, despite of the limitations. It is reported that Kaleidoscope caused traffic jams when being shown in a store window (see https://www.quaxio.com/kaleidoscope_part1). When creating artwork at that time we literally draw every individual pixel. The nice thing was, that we also spent more creativity, time and reasoning in language, stories and gameplay. Low resolution was of course a challenge, but also a driver for innovation and imagination.After I saw the K scope program, and noticed its 4 quadrant symmetry, I realized in this case that they had exploited the 4 quadrant architecture to aid the K.scope image. It was almost as though the designers had decided from the start, they wanted the K.scope effect to be their very first image, so they set up their video memory mapping like this. Then it gets much more awkward later if you decide you want to display a regular picture with a linear array of pixels line by line.
In a strangely odd way, with the relatively low resolution of the Dazzler and the blocky images, it almost turns the image into a kind of "graphic electronic art" or computer based impressionism which peculiarly, adds to its charm. Not unlike the kind of simple, but oddly effective graphics, that were more common in the late 70's and early 80's.
To a large extent a lot was left to the human imagination to fill in. All of us know that a good sketch artists, with just a few lines on a page can create a human face with some emotional expression. Our minds do the rest of the work filling in the details. In many ways I like this, rather than being spoon fed visual perfection where nothing is asked of the mind to contribute.
clear though (and for education), Cromemco d
Thought I'd share a status update, I have Dazzler Snake basically to the point where I'd call it a beta release. All the game logic is there, I have collision detection, stages, scoring, a "hud" of sorts (shows how many lives you have left and how many points left on the stage) - basically everything for a working 1-player version of the game. Just a couple small things to add still and a bug or two remain. Then it'll be onto adding 2-player support, sound & joystick control!
Attached is what I'm going to call beta 0.1. I'll be starting a Github page for this soon.