Friday, October 02

Geek

Daily News Stuff 1 October 2020

Drizztless Edition

Tech News

  • Humble's latest Bundles include a Corel Draw collection that doesn't have Corel Draw in it and a Drizzt adventures collection (R. A. Salvatore's series of D&D novels) that starts from book 7.

    This is some really low-effort stuff, HB.  Do better.


  • Microsoft's Surface Go Laptop is a reasonable 3:2 12" laptop starting at $699.  (AnandTech)

    It's not going to set the world on fire, but it does have a 4-core / 8-thread 15W Intel 10th-gen CPU, and not one but two USB ports.  Screen is 1536x1024, which rates it as not terrible, with 8GB of RAM and just 128GB of storage at that price point.  Neither of which are upgradeable; it doesn't even have a microSD slot.

    The screen is touch, and the Four Essential Keys are sort of present - they do double duty as F9-F12, but there's no room for them anywhere else so I'll give them a pass on that one.

    With a microSD slot I could see this having some slight potential.  Without, no.  Forget it.


  • Microsoft also updated the Surface Pro X.  (AnandTech)

    The new version uses Microsoft's SQ2 processor in place of the older SQ1, and costs $500 more than the original version, though the configurations may not be equivalent.  I hope there are other differences, because...

    The SQ2 is Microsoft's branding of Qualcomm's 8CX Gen 2, which as I reported earlier is exactly the same fucking chip as the 8CX Gen 1.  Exactly nowhere does Qualcomm mention this or provide any performance comparison between the two, so it takes some digging to realise that this is a purely marketing upgrade.


  • The XMG DJ 15 is an unremarkable second-tier thin-and-light 15" notebook except for twelve things.  (AnandTech)

    Those being the ports.  It has two USB 3.0 Type A and one USB 2.0, one Thunderbolt 3 with 60W fast charging (I'm not sure if the laptop can charge over that or if it's just for charging other devices), a full-size SD card slot, separate 3.5mm headphone and microphone jacks, full-size HDMI and mini DisplayPort, and a wired gigabit Ethernet port (one of those neat ones that pops open when plug in the cable, then closes up again when you unplug).

    Dongles need not apply.

    Memory is two DIMM slots and storage is M.2 NVMe, so both are upgradeable.  It's the anti-MacBook.

    With a Core i7, 32GB RAM, 1TB SSD, and a 1080p display, it's €1,337.


  • 3270font is a 3270 font.  (GitHub)

    Seems pretty complete too.  It has the usual ASCII and EBCDIC, bold, italic, bold italic, underline, overline, weird European frilly letters, single and double line box drawing, APL, Greek and Cyrillic, and...  Ogham.

    I might be able to use this.  Just add PETSCII and I'm there.  Have to see how it renders down to a 10x10 grid but I have a cheat if it doesn't look great (thanks to the HP 150).


  • Speaking of classic IBM kit.  (Reddit)

    http://ai.mee.nu/images/PCjrjrjr.jpg?size=640x&q=95

    This is an actual working system.  The system and monitor cases are 3D-printed, the screen is a 3.5" LCD, and the hardware is a Raspberry Pi 4.


  • Had to go to the shops again today, the first time in a while I've done that during daytime on a weekday.  Everything was normal, except that it's spring here now and there were still about the number of people wearing masks that you'd see during flu season.

    Darrell Lea peanut brittle chocolate seems to have disappeared, which is very annoying because it was gluten-free and even better than Cadbury Roast Almond.

    And I noticed a girl in the supermarket with Uzaki-chan grey-brown hair.  I'm assuming it was tinted because I've never seen quite that colour before.



Manga Notes

The Elf and the Hunter's Item Atelier is a delightful fluffy-wuffy story about an elf and her cough loyal human assistant cough who run a crafting service in a fantasy world that doesn't make a whole lot of sense but the art is wonderful.  Also when occasion calls for it our innocent little elf has a mouth on her that would have a Marine drill sergeant taking notes.

/images/ItemAtelier1.jpeg?size=360x&q=95/images/ItemAtelier2.jpeg?size=360x&q=95/images/ItemAtelier3.jpeg?size=360x&q=95/images/ItemAtelier4.jpg?size=360x&q=95


Disclaimer: Yes, I will read anything with the word "atelier" in the title, why do you ask?


Imaginary Notes

  • Speaking of cheating, I added a small feature to the Imagine's text and tile modes: There is now no character 0. If character 0 appears in the text map, the video chip doesn't read the pixel data at all and instead simply displays colour 0.

    In regular text mode this saves a memory access for blank characters on the screen. In tile mode, it saves multiple memory accesses - four cycles for a 16 pixel wide 32-colour tile.

    Where that matters is if you want to do a tile-based overlay plane. A line with no active tiles uses just 15 memory cycles per line for a 16x16 grid, out of 120 cycles during the visible period of the video scan line.


  • The 8051 had 4k of ROM and 128 bytes of RAM. (Wikipedia)

    This is interesting because it came out in 1980. I've been very conservative in the amount of internal RAM and ROM I allocated to the Imagine's chips (just 256 bytes of ROM and 64 bytes of RAM for the DSP). Since the Imagine is a 1983 design it looks like I may have been too conservative.

    The 8052 variant had 8k of ROM and a whole 256 bytes of RAM, which is huge for reasons I'll get to in a moment. I really wanted to confirm what year it came out, and English Wikipedia wasn't helpful because they tidied up all the individual microcontroller pages with their precise information into one big vague blob for the whole MCS-51 family.

    Slovak Wikipedia still had the original article saying the 8052 also appeared in 1980. The Intel datasheet I found dates from 1994, so that's no help. I found 8052 chips for sale with a high-resolution photo. The copyright date on the chips was 1980, but the date code appeared to be 1991, so that's not absolute confirmation either.


  • Why this matters is the Imagine's video controller. I gave it a 40-byte buffer, mainly for sprites (because without that buffer the sprites wouldn't work at all) but able to be reused for other purposes.

    In character mode and tile mode, the video controller reads the character data, then the bitmap data matching that character, then the next character, and so on. It has to read the character data on every scan line, even though 90% of the time it's the same as the previous scan line. If it could store the character data in on-chip RAM it would be much more efficient, but that requires between 96 and 160 bytes of RAM - two bytes per character times 48 to 80 columns - and it only has 40 bytes available.

    If I were to allocate 256 bytes overall across the whole chip, I could do a bunch of neat stuff. 64 colour registers instead of just 32, for a start. Double-width sprites when abusing shared RAM. And text line buffering. All three of those at once as long as you stick to 48-column text mode, though who exactly is using double-width sprites in text mode? Or 128 colour registers and double-width sprites if you're not using the text buffer.


  • 128 colour registers is nice because I also added a 256 colour mode, but it was annoying to use because the hardware only had 32 colours.

    The way it works is the video controller reads two (10-bit) bytes per memory cycle, and that normally turns into four 5-bit pixels, for 32 colours.

    In 256 colour mode it instead decodes that as four 4-bit pixels and a 4-bit palette selector. I was planning that the first half would be something like the Amiga's extra half-bright mode, and the second half would be two fixed 64-colour palettes selectable in 16-colour subsets. But having more colour registers makes it a much more useful mode overall.


  • In the fictitious history of this system, I originally decided that the Imagine 1000 from 1983 had 32 colour registers, and the second generation Imagine 1100 from 1985 increased that to 64, among other minor upgrades. The 1987 Imagine 1200 doubled everything - twice the memory, twice the clock speed, twice the bus speed - so that's a different platform.

    I'll now rewrite that history, with the 74LS861 (which was a real chip!) playing a key role.

    In 1983 the Imagine 1000 first appeared. It had 128k of ROM, 128k of shared RAM, and 128k of video RAM. It had all sorts of fancy graphics tricks available; the only problem was that many of these tricks made heavy use of shared RAM, reducing both memory and cycles available to the CPU and DSP and substantially reducing program performance.

    This meant these modes were really only useful to developers producing software on ROM cartridge, since the cartridge was on a separate bus (this is where the two 74LS861 chips earn their keep) and not slowed down by video access to shared memory.

    In 1984 Imagine introduced the Advanced Programming Pack, a cartridge containing 128k of ROM with extensions to the Basic compiler and a Logo interpreter for the education market, plus 128k of RAM, and an 8-voice FM synthesis chip.

    Since the cartridge port was on its own bus, this extra 128k of RAM ran at full speed regardless of the video mode in use, and the FM synthesiser offloaded simple tasks from the DSP allowing for more complex music and sound effects.

    The App Pack, as it came to be known, quickly became the most popular add-on for the Imagine, to the point that developers complained that it was affecting sales of their software because people didn't want to unplug it.

    In 1985 Imagine responded with the Model 1100. This was essentially a model 1000 with some minor updates (and a double-sided floppy drive) but with the APP Pack built in to the system board.

    For Model 1000 owners, a third-party adaptor was released that connected the App Pack (minus its plastic shell) to the internal debug port. It was noted at the time that this was a suspiciously perfect fit. Much later, former Imagine engineers revealed that plans for internal upgrades had been vetoed by corporate management over concerns for reliability, in favour of the cartridge port, and details of the debug port had been quietly leaked to enable third-party add-ons.


  • Oh, and: I had an idea for another graphics mode previously but ditched it because it was mostly useless.  The Imagine can do 12MHz and 16MHz pixel clocks.  12MHz is for the standard 480x270 60Hz display aimed at E-MAC compatible widescreen sets.  16MHz is for 640x360 50Hz on IBM monochrome / Hercules monitors.  (The timing actually works - the HSYNC rate is the same in both modes, and close enough that it's within spec for real monitors.)

    So it can also do 320x270.  The pixels aren't square, but now that we only need to deliver three pixels per memory cycle rather than four, we can have 64 colours per pixel (six bits times three) and four available palettes (two bits left over).  That's the same as the 480x270 mode above but doesn't force you to select from one 16 colour sub-palette at a time.

    The Imagine 1200 has twice the memory bandwidth, so it can do this same mode at 480x270 and even 640x270.  It also has 256 total colour registers, so you're not stuck with fixed colours for palettes 3 & 4.

    You could even, if you were a truly horrible person, have a 128 colour mode that switched between 320x270 with two 64 colour palettes, and 480x270 with eight 16 colour palettes.  It's messy though because the pixel boundaries are complicated.  It would be very simple if the resolution was 360x270, but (a) that would require a third pixel clock that had no good reason to exist and (b) it doesn't upscale neatly to 1920x1080.


  • Also also wik: And I just worked out how to do 480x270 in 64/256/1024 colours without weird palette tricks.

    Normally if you have two playfields, the front playfield is overlaid on the rear playfield using the selected arithmetic (transparency, translucency, or shadow).

    But it's actually easier to just append the pixels together.  Two 4-bit playfields become one 8-bit playfield.

    That means you have to draw everything twice, and one playfield must be in video RAM and the other one must be in shared RAM, but in terms of the video controller itself it's dead simple and there's no reason our fictitious engineers wouldn't have included it. 

    Dual playfield mode is where you have two overlaid bitmaps.  I'll call this split playfield mode.

Posted by: Pixy Misa at 02:50 AM | Comments (1) | Add Comment | Trackbacks (Suck)
Post contains 2130 words, total size 15 kb.




Apple pies are delicious. But never mind apple pies. What colour is a green orange?




62kb generated in CPU 0.0144, elapsed 0.2263 seconds.
57 queries taking 0.2157 seconds, 337 records returned.
Powered by Minx 1.1.6c-pink.