6 ms·
But does it run Linux? If not then good luck writing code to page out to that 512k of RAM. I do wonder what the 1980 computer scene would have been like if 512
by Theodores 9y ago
But does it run Linux?
If not then good luck writing code to page out to that 512k of RAM. I do wonder what the 1980 computer scene would have been like if 512k was there because that was the smallest amount available, instead of the normal 16k. It was only when the PC came along that this amount of memory was available. PC programs took a while to be as concisely optimised as home computer code had to be. So maybe the scarcity of RAM was a good thing.
- jacquesm 9y agoI had 256K in bankswitched 16K blocks in an 8 bit micro in 1982. Cost a small fortune and it was a bit awkward to use but it worked.
- Theodores 9y agoThat was USD 300 of RAM, so a small fortune.
- ido 9y agoIn 1982? Pretty sure it was more. Remember that the first Mac, a $2k machine, came with 128kb in 1984, and the IBM PC/AT (costing a wooping $6k in 1984) came with 256kb in the original base variation.
- jacquesm 9y agoIt was a lot more than that. 64K went for about 300 Dutch guilders back then, the 256K board went for almost as much as the entire computer, I spent a very long time saving for it.
- znpy 9y agoI hope you've got a good story about that.
- jacquesm 9y agoNothing all that exciting. A UK company called 'solidisk' made a RAM expansion for the BBC micro that took a bit of fiddling to install but worked quite well. http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Solidisk_SWR256.html http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Sol... I used it for very limited black-and-white 3D animations, pre-compute the edges, then draw the images in real time and for other tricks. A few months ago when trying to interface a bunch of hardware to a PC I realized how much easier such tasks were in the past, it's funny how we have made it much harder to expand a computer in our own domains (electronics, interface boards, standard ports with immediately usable i/o almost without latency) compared to how much easier it is to expand a computer towards the domains of others (networking).
- to3m 9y agoMy dad bought one of these in 1985: http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Opus_Challenger3.html http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Opu... - the 256K one. Unsure of price but I think it was around £200? I used it quite a lot when I got a bit older - the RAM disc's speed made it very useful. Good to play disc Elite (once unprotected...) from, and I remember it being much quicker to assemble stuff with ADE. (I still have it, but the Opus EPROM erased itself long ago, so the RAM disc part has languished unused for a very long time. The 32 year old disc drive still works fine with my Master 128 though...)
- jacquesm 9y agoWow, I've seen a lot of BBC hardware (I had good contact with both Dutch importers of BBC related stuff) and I've never seen one of those. You probably could re-program that EPROM if you wanted, or replace it with a ROM so you won't have that problem ever again. But this is probably not the most practical system for today :)
- to3m 9y agoThe comment about practicality is well made. The Challenger was a good device for the time, but for the modern day I prefer my current setup: Master 128 with 16MHz copro, plus home-made mashup of http://zeridajh.org/software/65link/index.htm http://zeridajh.org/software/65link/index.htm and Minimus AVR, letting me can use my Macbook Pro as a file server ;)
- perbu 9y agoNot sure if you're being sarcastic or not. But the Z80 is a 8 bit CPU. Linux was never ported to any 8 or 16 bit architectures - for rather obvious reasons.
- qubex 9y agoLinux was never ported to 16- or 8-bit hardware but through the magic of Turing completeness and emulation somebody did actually manage to get an 8-bit micro-controller: http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20... (Yes, this is so convoluted, and so unusable, that it basically reinforces, rather than refutes, your point.)
- pacaro 9y agoWell, the ELKS[1][2] project has been working on a 16bit port on and off since the late 90s. At one point Alan Cox[3] was an active contributor. [1] http://elks.sourceforge.net/ http://elks.sourceforge.net/ [2] https://github.com/jbruchon/elks https://github.com/jbruchon/elks [3] https://en.wikipedia.org/wiki/Alan_Cox https://en.wikipedia.org/wiki/Alan_Cox
- pk3 9y agoELKS is an excellent example as well as uClinux[1], which has made its way to a few 16-bit platforms[2]. [1] http://www.uclinux.org/ http://www.uclinux.org/ [2] http://elinux.org/images/6/68/Porting_uClinux_CELF2008_Griffin.pdf http://elinux.org/images/6/68/Porting_uClinux_CELF2008_Griff...
- cestith 9y agoSince it's a Z-80 which is a primarily 8-bit microprocessor with some 16-bit features and no MMU I'm going to go with no Linux. However, microcontrollers and game systems have been using more than 64k with it for ages now. It's all done with bank switching. https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:z-berry:memory https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:z-... explains how Z-Berry does its bank switching.
- Someone 9y agoYou can use the bank switching logic as a minimalistic/sort of MMU, giving each process a full memory bank and nothing else. To get real protection of programs against other programs and of the kernel against any programs you would have to make the bank switching logic privileged, but I would think that's doable with some external logic that snoops the memory bus and only allows switching to another bank if either the current bank is bank zero or the destination bank is bank zero and the instruction pointer matches that of the kernel's entry point. You also would have to force a switch to bank zero to preempt processes. I think the easiest approach would be a timer that, when it expires, switches to bank zero and interrupts the CPU. With this hardware, that could give you 7 processes, max. I think you could have fun with a minimal Unixlike OS in that. Edit: it will be a bit of a challenge to pass arguments to the kernel if the kernel can't rely on hitting trusted code when it bank-switches back to a process to, say, read a memory buffer, but that can probably be overcome by force-mapping, say, the last kB of RAM to the kernel's memory space.
- pjmlp 9y agoWell, one can for sure have CP/M.
- nategri 9y agoUnusual, yes, but half a meg wouldn't exactly be an exotic amount of RAM for a 1980s 8-bit.
- cr0sh 9y agoMy Tandy Color Computer 3 had 512K (standard was 128K) and an 8-bit CPU (6809). It did have something akin to a MMU though (the GIME chip) - which paged the RAM in banks of 8K. As far as what it was used for - people mainly used it for RAM disks; it could also be used for page-flipping for the higher-res graphics modes the CoCo 3 supported. For the OS-9 Level II operating system, it was used much more efficiently to allow for larger (or more) programs to be multi-tasked, along with other uses. (for those unaware - OS-9 was a multi-user, multi-tasking operating system for the 6809 and other 8-bit microprocessors of the day - but mainly geared to Motorola CPUs - including later the 68k family)
- vhodges 9y agoThere's an OpenSource replacement called Nitros9 http://www.nitros9.org/documents.html http://www.nitros9.org/documents.html Also: https://github.com/nealcrook/multicomp6809/wiki https://github.com/nealcrook/multicomp6809/wiki and finally: https://www.retrobrewcomputers.org/doku.php https://www.retrobrewcomputers.org/doku.php for more retro goodness.
- xioxox 9y agoThe Amstrad PCW was also a Z80 system with 256 or 512 KB RAM accesible using bank switching. Normally it acted as a RAM disk.
- dajt 9y agoEh? Just write your own bank switching code. The whole setup is different to MMU paging. Not having looked at the specs I'm guessing you do an I/O write to something that sets the bits of the address lines above 15 to select the bank. You could go two ways: 1. Have some amount of RAM outside the bank switching scheme so code and data living there is always available and bank switch above or below that fixed area. 2. Switch the entire 64k at a time, meaning your code and data has to be copied into the same place in each bank.
- tluyben2 9y agoMSX (z-80 based) unix; https://github.com/marioaugustorama/uzix-kernel https://github.com/marioaugustorama/uzix-kernel Much cooler (imho) is http://symbos.de/ http://symbos.de/ though, also for z80 machines.