17 ms·
Area 5150: 8088 MPH gets a successor
- gaudat 4y agoThat atmosphere feels like a breakdance battle. Wait the elephant is really dancing.
- bombcar 4y agoIf I recall correctly you could run CGA and Hercules and the same time as they used different memory areas. There were even a few debuggers that used this into the VGA era - program would be on the color monitor and your debugger on the black and white (actually usually orange or green).
- W-Stool 4y agoThis is correct. The Borland debugger supported this, it was the only real way to debug a "graphics mode" program back in the day.
- mmastrac 4y agoI used to run a dual head VGA/mono debugging setup back in the day. I used this to great effect cracking one of the Mechwarrior games for myself.
- switchbak 4y agoI remember cracking Mech Warrior (2?) via flipping a bit on the executable (and changing the drive letter of a path somewhere), it was so amazing when it just worked!
- ldite 4y agoOh wow, I'd forgotten all about that! It felt like science fiction when I got that working.
- fortran77 4y agoIt was also VGA and beyond -- and Hercules at the same time. And almost every debugger, including Microsoft CodeView, supported this mode. Most developers back in the late 80s and early 90s had a mono monitor on their PC, even into the Windows 3.1 and early Windows 95 days.
- toast0 4y agoWas useful for CAD as well, commands on mono text, visualization on color graphics (although, often black and white there for aesthetics)
- anyfoo 4y agoAnd because less color meant more resolution in the same amount of video RAM. If you were happy with monochrome CAD (no gray tones), you got 8 pixel in a single byte!
- bencollier49 4y agoIIRC VGA was at a000h and text at b800h.
- bonzini 4y agoAnd monochrome at b000h.
- rzzzt 4y agoDoes anyone know why cards did not map video memory into the C000-C800 or the D000-E000 segments? Did many machines have an option ROM or expanded memory there?
- hakfoo 4y agoA lot of early hard disc controllers used segment C800 for BIOS extensions. Other adaptors could map into the Dxxx and Exxx ranges.
- viler 4y agoPart of that was used for option ROMs like hard drive controllers, the EGA/VGA BIOS, network adapters, and for EMS; other areas were just marked by IBM as "reserved", which might have scared people off. In early machines there probably wasn't much of anything there, but then video memory needs were still modest enough that A000-BFFF sufficed. Probably a good thing, because then those 'holes' could be used for UMBs...
- ajenner 4y agoThe 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 the addresses wouldn't be contiguous - EGA and VGA were designed to coexist with either CGA or monochrome adapters in B000-BFFF) and (for VGA) insufficient - you'd still not have enough to map the entire 256kB of VRAM linearly. I also expect that IBM's engineers didn't want to take up all the extension ROM space because then it wouldn't be possible to add EMS cards, network cards, and whatever else ended up being mapped there. Though 192kB of write-only video memory in that space would be an interesting design!
- Scali 4y agoYes, originally CGA and MDA at the same time. Hercules was a non-IBM standard, based on MDA. Hercules has 64k of memory, where 32k is in the area of MDA, and the second 32k overlaps with the CGA area. You could disable the second 32k when you had a CGA card in your system. EGA and VGA were also made backwards compatible, and could co-exist with an MDA or Hercules card. The demo Stars by NoooN (https://www.pouet.net/prod.php?which=301 https://www.pouet.net/prod.php?which=301) has an easter egg for a combination of VGA and MDA/Hercules: on the monochrome screen, a Snake game appears, which can be played via keyboard while the demo is running.
- ajenner 4y agoI 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).
- iforgotpassword 4y agoI actually find it quite impressive what kind of things the IBM engineers thought of right from the start, given it was their very first PC ever. Design a text and a graphics card, make them have different base addresses so you can have dual monitor. Or allow having an option ROM at a specific address that can hook into the boot process of the BIOS, adding additional boot sources, eg network boot (whatever you can cram into 32k).
- dmitrygr 4y agoCannot wait to read the writeup. The one for 8088mph was epic: https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-all-your-emulators/ https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-al...
- metadat 4y agoHow does the ANSI from Hell hack to achieve higher resolution work?
- garaetjjte 4y agoI think it is mentioned there: https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-illustrated/#16_colors_rgbi https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-...
- viler 4y agoYes, the 'Macrocom Method' section shows how it's done over the RGBI output, as used in this demo - the sample artwork shown there is in fact a much earlier version of one of the still images in Area 5150. :-) Although while working on this one, I couldn't help noticing that the IBM CGA (5153) monitor wasn't showing things quite as expected. That led me down another rabbit hole: https://int10h.org/blog/2022/06/ibm-5153-color-true-cga-palette/ https://int10h.org/blog/2022/06/ibm-5153-color-true-cga-pale...
- Scali 4y agoIn short, textmode gives you 80x25 characters of 8x8 pixel resolution each, making 640x200 resolution, with 16-colours, where each character can be assigned a foreground and background colour. The 'Macrocom Method' reprograms the character height from 8 rows to 2 rows, which effectively gives you 80x100 characters. You can then use each of the 256 characters in the characterset as an 8x2 'glyph' with a foreground and background colour to build your images from. So you can't technically control the colour of every pixel on screen, but you can make a decent approximation with well-chosen character 'glyphs' and foreground/background colours. This can also be automated with pattern-matching, where you convert an image to glyphs by algorithmically selecting the nearest match.
- cozzyd 4y agoI assume named after the involuntary commitment section of California law (portmanteaued with Area51...pretty clever).
- naikrovek 4y agothe IBM 5150 was the first XT class computer, which created the IBM PC standard still used today.
- cozzyd 4y agoAh, that's much more plausible!
- snvzz 4y ago5150 is PC, XT is 5160, and AT is 5170. Thus not XT class, but PC class.
- icedchai 4y agoThe 5160 barely had any improvements. Except for extra slots and including a hard drive, it was essentially the same. The AT had real performance improvements. I remember using one in 1987 or so at my dad’s office.
- Scali 4y agoCorrect, as "XT" stands for eXtended Technology. You can't extend it without having the basic technology first. The 5150, aka the PC, was that basic technology. However, in terms of CPU, graphics, sound and all other aspects relevant to this demo, the 5150 and 5160 are interchangeable. The main differences between 5150 and 5160 are: 5160 upgraded from 5 to 8 ISA slots (also changing the size of the bracket, which has been the standard ever since, even today with PCI-e 5.0). 5160 removed the cassette port. 5160 came with a harddisk as standard (and as a result, a more powerful PSU, as the stock PSU of a 5150 was insufficient for a HDD, and generally required an upgrade). Memory-wise, there are various different revisions of 5150 and 5160 boards, which can take different amounts of memory onboard. For the 5150, the early revisions took 16k-64k, the later revisions took 64k-256k. For the 5160, the early revisions took 64k-256k, the later revisions took 256k-640k. In all cases it is possible to add additional memory up to 640k via an ISA card. So it is possible to have a 5150 configuration with the full 640k that the most high-spec 5160 had. Then there is also the IBM 5155, the 'portable' PC. This is essentially a 5160 motherboard in a modified case, with an integrated CRT. As such, it is also fully compatible with the 5150 and 5160, and can run these demos flawlessly.
- alex_young 4y agoArea 5150 is a great double entendre. Area 51, well, aliens and all of that, and 5150 is the involuntary commitment code on California for mental holds.
- theandrewbailey 4y agoPretty sure 5150 refers to the IBM model 5150, the original PC, not to a law.
- anyfoo 4y agoWithout any doubt, yeah. 8088 MPH was a play on the Intel 8088 and 88mph from Back to the Future as well.
- elihu 4y agoIt's also a model of guitar amplifier. https://en.wikipedia.org/wiki/Peavey_5150 https://en.wikipedia.org/wiki/Peavey_5150
- smcameron 4y agoAnd the name of a Van Halen album and song. The intro part of the song is pretty fun to play. I need to relearn it. https://www.youtube.com/watch?v=mN8Ncoenewg https://www.youtube.com/watch?v=mN8Ncoenewg
- causality0 4y agoMan, I would pay good money for a 5150 RPi enclosure.
- Bluecobra 4y agoThere are plans for a 5150 Lego set, but it’s a bit small. You might be able to scale it up with some 3D Lego software and order the pieces you need. https://www.bricklink.com/v3/studio/design.page?idModel=4450 https://www.bricklink.com/v3/studio/design.page?idModel=4450
- jart 4y agoThe demo gods have done it again. Wow. I wish they would explain more about how they're managing to blend colors using shade blocks. Because doing that on this scale either requires an extremely advanced knowledge of physics, or the fanatical dedication of a lonely artist.
- gonesilent 4y agoor mathlab
- Retr0id 4y agoWhy does blending colours require advanced physics?
- viler 4y agoIt doesn't really - for this particular technique an ANSI-art editor should do (and was in fact used for almost all graphics in this demo, to one degree or another). :) I suppose there's a wee bit of physics if you want to fine-tune the results for a particular CRT monitor... not that we've really done much of that for the party-version, but there's some research on the original IBM 5153 CGA monitor at https://int10h.org/blog/2022/06/ibm-5153-color-true-cga-palette/ https://int10h.org/blog/2022/06/ibm-5153-color-true-cga-pale....
- jart 4y agoIt is hard. Anyone can mix colors by hand in an ANSI art editor. However this demo is huge and certainly appears to be programmatically generated at times. It's very hard to program a computer to blend colors using CP-437 shade blocks, because you're not actually linearly interpolating two RGB values like you would normally in graphics programming. The blending happens in physical space, hence physics. Read the section about gradients in the link you provided. They say they tuned the gradients, but they didn't explain how they did it. For example, was it just spending countless hours eyeballing color combinations until it looked nice? Or did they use a formula like CIELAB ΔE* to predict how background / foreground / shade block combinations would be perceived? https://en.wikipedia.org/wiki/Color_difference#CIELAB_%CE%94E\\\\\\\\\\\\\ https://en.wikipedia.org/wiki/Color_difference#CIELAB_%CE%94...* Those formulas are much more complicated than the RGB((r2-r1)/2,(g2-g1)/2,(b2-b1)/2) blending that computers use in software (which just punts the problem to the chosen color space). Notice also how CIE needed to keep revising the formulas over the decades since color isn't something we entirely understand yet.
- jchw 4y agoStunning. I don't really have a great pulse on what a 5150 is capable of; when I was born, the world already had 386s. That said, I do have a Tandy luggable that I believe is meant to be compatible, and while it doesn't pass the flight simulator test, it's definitely a good introduction to just how limited these machines really are. You can't expect decent mod playback, unless you're reenigne. My condolences to emulator authors who emulate CGA. :)
- sedatk 4y agoIt's the lowest end of the IBM PC lineup: 4.77Mhz 8088 CPU, max 256KB RAM, CGA graphics (4 color graphics and 16 color text modes), PC speaker sound (no sound card). So, this is beyond incredible. IIRC, more than 4 color graphics modes are achieved by relying on pixel bleed with CGA's monitor signal output.
- anyfoo 4y ago"Pixel bleed" sounds like it isn't really doing it justice. More than 4 colors on CGA are usually achieved by using the composite output, which is actually plain NTSC. In NTSC, color is added to the monochrome signal by modulating a quadrature amplitude modulated signal onto a carrier whose frequency is actually within the monochrome image bandwidth itself. NTSC did this for compatibility with black and white TVs of the time. (If that sounds too complicated, it "just" means that changing brightness very fast creates color.)[1] To get more than 4 colors in CGA, you "just" switch pixels fast enough that you are effectively modulating the color signal yourself! But the problem with CGA is that it doesn't have a graphics mode with high enough resolution to get all those colors. But text mode does, so there's tricks to chop the text lines into pieces which allow puzzling back together a high res image that modulates the color signal. It's pretty cool. [1] PAL is the same with a twist, SECAM is very different but "changing brightness very fast" is still accurate.
- sedatk 4y agoGreat explanation! I didn't know text mode's role in this.
- drivers99 4y agoCan’t wait to check this out on my IBM PC (5150) with CGA which is my first computer that I still have. (Some of the RAM is bad though so if it needs the full 640k like 8088MHz did I might need to repair it.) Then again 8088MHz worked well for me because I lost the RGBI monitor for it at some point and that demo is designed for composite. Getting files to the PC is an interesting challenge. Have to copy from Windows 10 or 7 to a USB drive and movie that to a PC I have with a serial port and Windows XP and then transfer the demo with Hyperterm in Windows and Telix in MS-DOS on the PC side via null modem.
- rkagerer 4y agoHow big are they? I still have a 3.5" floppy drive in my daily driver PC if that helps.
- ajenner 4y agoThe 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.
- snvzz 4y agoThat made me curious. How is the floppy drive attached to the PC? I haven't seen a FDD controller in a new motherboard in a very long time. I use GreaseWeazle[0] for my floppy needs. 0. https://github.com/keirf/greaseweazle/wiki https://github.com/keirf/greaseweazle/wiki
- rkagerer 4y agoIt's a USB floppy drive, slim model YD-8U10-2, that replaced the stock drive in a 5.25" Rosewill RCR-FD400 media reader unit. https://www.newegg.com/rosewill-rcr-fd400-74-in-1/p/N82E16820223111 https://www.newegg.com/rosewill-rcr-fd400-74-in-1/p/N82E1682... https://web.archive.org/web/20100130173743/http://www.geeks.com/details.asp?invtid=YD-8U10-2&cat=RDM https://web.archive.org/web/20100130173743/http://www.geeks....
- 4y ago
- raverbashing 4y agoWhile this is cool, I think it would be fun to try, for example, pushing a 386/VGA to its limits as well (then with an SB card, of course). Or a later computer Or even take a modern computer, use an fb driver and just make the best demo you can. No 3D graphics, just a framebuffer
- dusted 4y agoMy intuition is that "limits" can be moved by some exponential exertion of mental effort.. Limits are not exactly known and hard when it comes to this stuff. This is probably the current known limit, but there's no guarantee that someone else won't beat it in 20 years ;) I guess as capacity of the machine increase, so does the exponent on the required effort to move limits beyond the obvious. In some way this demo demonstrates that.. The Commodore64 was/is ahead of the 5150 in the demoscene stuff in multiple ways, for instance, it has a more capable soundchip, (I have a hard time imagening better sound coming out of a pc speaker, but again, this is an "obvious" limit, and there's no saying that someone can't hack the pc speaker to do cooler stuff than what's currently being done on the SID chip), other "obvious" advantages of C64 is that the VIC has sprites and scroll registers, but this demo blows some of that out of the water.. In other words, there will be the "obvious" solutions that anyone can see (and their related limits).. More advanced thinking leads to less obvious solutions (moving the known limit), and even more advanced thinking leads to even less obvious solutions (and so again, moves the known limit).
- II2II 4y agoDemos like Area 5150 are about pushing the hardware beyond what people thought was possible. If you were to show it to one of the 5150 engineers back in the day, they would probably struggle to explain how it was done. There is definitely a place for the types of demos that you are talking about. Some of them are being made, though the introduction of artificial constraints is common (e.g. the size is limited to 64 kB or 4 kB). There is even value in creating the best demo you can, even if it doesn't impress the demoscene, simply because showing what you can do will likely exhibit skills beyond those of a run-of-the-mill developer.
- 4y ago
- mastazi 4y agoReally stunning! I was impressed by the whole demo but one thing I wasn't expecting was the sample-based audio in the track played during the end titles. Another thing that I thought was impressive was the (pseudo?) 3D hills section.
- ajenner 4y agoThanks! 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 required a painstaking amount of cycle-counting, measuring, and iteration.
- mastazi 4y agowow, that's amazing that it could be done so efficiently that we get such a fluid animation, thanks for explaining!
- dusted 4y agoI wonder if it will run on my 5155, gotta try that when I get back home :o
- viler 4y agoIt should! Definitely runs on a 5160, and the 5155 is practically the same planar in a different enclosure.
- tssva 4y agoI'll have to pull out my Zenith Z-161 luggable and see what it looks like in shades of amber.
- kiwidrew 4y agoIf you have a "stock" IBM PC, just the standard dual 360K floppy drives without a hard drive, it's actually possible to run this demo! Use DOS 3.30 and FORMAT /S a blank floppy, copy APPEND.EXE to the floppy, and copy as many of the AREA5150 demo files as will fit. Then copy the remaining files to a second floppy. Put first floppy in A: and boot off it, put second floppy in B:, and then run APPEND B: followed by AREA5150. Behold, it works! You absolutely do need the full 640K of RAM though, refuses to run with only 512K.
- illys 4y agoI wonder about one thing... If that exceptional talent and art-code were distributed in the 1980's, obvioulsly they would have had a large effect in many extends (inspiration to others on the platform, definition of new compatibility levels...), but what about distribution? I feel the demo would have had very limited distribution due to the very restricted platform target: real IBM 5150/5155/5160 with original IBM CGA. I think people of the time would probably have tried to make it work on a larger base since maybe 80% of XTs were not IBM's... My question: what video modes and tricks are solid across most XTs and CGA cards of the era? I guess the 640x200 text mode with 8x2 chars is solid, but what about the other tricks? How portable are they? Why not making a selection of 3 or 4 very popular and very different hardwares of the time as a target platform. For instance I think of IBM 5150 CGA + Tandy 1000 + Amstrad PC1512...
- ajenner 4y agoMost 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 the ripply picture shortly before it) use very tight cycle counting so probably won't work on anything except a genuine IBM PC/XT and CGA. Some effects (like the radial fire effect and the voxel landscape) should work on just about anything. The Amstrad PC1512 will have trouble with any effect that modifies the CRTC timing registers as it doesn't have a fully programmable CRTC and always generates a 15.7kHz/59.92Hz 640x200 image. I don't have personal experience with the Tandy 1000 and don't know how compatible it is off the top of my head.
- illys 4y agoThank you for your reply, it is conforting to know the tricks are solid. Maybe it will help some retroprogrammed CGA games to appear with more colors and effects. I have a VGA XT clone (4.77/8 MHz) and an ATI Small Wonder CGA clone board. I will try to bind them together and run Area 5150.
- Scali 4y ago