Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ajenner
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
by
ajenner
4mo ago
As trollbridge said, there isn't enough VRAM in the CGA to have 200 rows of 80 columns (2 bytes per cell - one for character and one for attribute). But it can be done in 40-column mode. As the CRTC can only do 128 rows unattended, it
2.
▲
by
ajenner
7mo ago
I haven't published it yet as there are still some rough edges to clear up, but if you email me (andrew@reenigne.org) I'll send you the current work-in-progress (the same one that nand2mario is working from).
3.
▲
by
ajenner
10mo ago
I wrote a program called xtce-trace ( https://www.reenigne.org/software/xtce_trace.zip ) to do just this (albeit non-interactively - you just give it a program and it will generate a cycle-by-cycle trace of which lines
4.
▲
by
ajenner
3y ago
It's not - the "DA" means that the write happens to the ES segment, while "DS" means that the read happens from the DS segment. The use of different segments for the source and destination gives these instructions e
5.
▲
by
ajenner
4y ago
Yes, it pops the stack value into the CS register. But it doesn't update the PC as well - it'll continue to point to the offset (in the old CS) of the instruction after the "POP CS". So whatever code is in the new CS, it
6.
▲
by
ajenner
4y ago
There's a POP instruction in the loop that pops to a memory location addressed by a register. When that register contains the address of the final JMP instruction, the latter gets overwritten by a forward JMP.
7.
▲
by
ajenner
4y ago
A more recent example of an finite loop with no exit condition can be found in the credits section of the 2015 demoscene production "8088 MPH". The loop (which can be found at https://www.reenigne.org/blog/808
8.
▲
by
ajenner
4y ago
I used the DOSBox debugger to debug several of the effects during the making of Area 5150, but other than that I used real hardware. 86Box is probably the most accurate one at the moment but still isn't accurate enough to run the entir
9.
▲
by
ajenner
4y ago
Most of the tricks in the demo should work unmodified (or could be made to work) on most CGA implementations of the era. Some clones had slightly different font ROMs so it would look a little bit wrong on those. The final lake effect (and t
10.
▲
by
ajenner
4y ago
Yes, I'm reenigne from the demo. Feel free to contact me at andrew@reenigne.org. I'm not sure what you're doing with the colour mixing on that page but I'm wondering if you're just applying a gamma curve to the mixe
11.
▲
by
ajenner
4y ago
There's a difference between linear interpolation of sRGB values (what you're doing on your page) and linear interpolation of linear RGB values (which gives better results). This is the explanation that made it all fall into place
12.
▲
by
ajenner
4y ago
As I remember it, the term "XT class" was used back in the day to distinguish between "AT class" PCs and those prior - i.e. to mean an IBM PC, XT or comparable machine. So (weirdly enough) the 5150 was considered XT clas
13.
▲
by
ajenner
4y ago
The C000 segment was used for the EGA/VGA extension ROM. I'm guessing that using D000-EFFF would be unnecessary (because of the planar addressing squeezing 256kB of video memory into a 64kB address space), inconvenient (because th
14.
▲
by
ajenner
4y ago
The programmatic transitions between still images use linear RGB space, which is the correct way to interpolate between two colours. The maths behind it is pretty simple - essentially just reversing the gamma correction from normal (0-255)
15.
▲
by
ajenner
4y ago
Thanks! The 3D hills are no less 3D than any other 3D scene displayed on a 2D monitor. It's a heightmap (of a real place) rendered with correct perspective. Getting the samples to output at the correct time during the end titles requir
16.
▲
by
ajenner
4y ago
The demo is about 500kB at the moment. We're hoping to fit the final version onto a single 360kB floppy but didn't quite get that working in time for the party. A 3.5" floppy should work fine.
17.
▲
by
ajenner
4y ago
I did actually use this debugging technique while making a couple of the effects of Area 5150 (the lake effect at the end, and the one two effects before that).
18.
▲
by
ajenner
6y ago
The b and t files are the bottom and top halves of the 9 "chunks" of the decoder above the main microcode ROM. The l* and r* files are the left and right halves of the four horizontal slices of the main ROM. I split them up that
19.
▲
by
ajenner
6y ago
The translation.txt file is the contents of the translation ROM which tells the CPU where in the microcode to go for long jumps, calls and EA decoding. The key.txt file has the details of all the mnemonics. "000" - this is just a
20.
▲
by
ajenner
6y ago
I don't think there's anything on the chip that could compute a checksum of the microcode ROM contents. It could be some kind of copyright message perhaps, though I don't know how it's encoded and it's only 42 bits
21.
▲
by
ajenner
6y ago
I have just learned from dreNorteR on VCF that it no effect on a 286 but has a different, unexpected, and useful effect on a 186! http://www.vcfed.org/forum/showthread.php?76657-8088-8086-mi...
22.
▲
by
ajenner
6y ago
Probably not entirely a coincidence - Ken Shirriff is doing a series on the 8086 which may account for at least one of the other articles you've noticed. My disassembly was only possible because of Ken's high-resolution photos of
23.
▲
by
ajenner
6y ago
Microcode instruction sets have different engineering trade-offs to the user-visible ISA. In microcode, memory bandwidth isn't such an issue so microcode instructions can be relatively wide (21 bits compared to 8 for the 8086). The mic
24.
▲
by
ajenner
6y ago
According to https://en.wikipedia.org/wiki/Intel_8086 : "The architecture was defined by Stephen P. Morse with some help and assistance by Bruce Ravenel (the architect of the 8087) in refining the final revisions.
25.
▲
by
ajenner
6y ago
Yes, exactly - the logic that implements the simpler instructions directly as special-purpose gates rather than microcode.
26.
▲
by
ajenner
6y ago
Author here if anyone has any questions.
27.
▲
by
ajenner
6y ago
It might be different on an Intel 8088. What I saw was two bytes loaded from the bus (at the address that was left in the IND register) placed in ES or DS, and the offset part was loaded from a second hidden register that contained the prev
28.
▲
by
ajenner
6y ago
I have written code for a cycle-exact 8088 emulator https://github.com/reenigne/reenigne/blob/master/8088/xtce/x... which handles all the invalid opcodes the same way that real hardware does. T
29.
▲
by
ajenner
8y ago
Modern graphics systems are too flexible for this - you can reprogram the graphics memory layout in such a way that would break the refreshing. But this technique was used on early PCs (with CGA graphics) and many of the 80s microcomputers.
30.
▲
by
ajenner
8y ago
The system then compares the photo to a gallery that includes images of that person—either their passport photo for U.S. citizens or the photo taken of foreign nationals when they entered the country. So those of us with dual nationality,
More ›