By replacing archaic IO port allocation with a shared memory architecture, this project elegantly bypasses decades of hardware resource conflicts. It is a sophisticated reimagining of legacy expansion that brings modern throughput and versatility to vintage computing.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
PicoPCMCIA Update - Mass Storage & More
Added:Okay, this is an update on the Pico PCMCA card. Obviously, I'm uh pretty far behind original schedule, but things are actually going okay. Um, so there's two issues preventing me from shipping manufacturing and shipping them right now. So the first is the mechanical issue I'd mentioned or uh mentioned recently which just to just to recap um basically because I the whole switching to use the uh pre-certified wireless module and the HRS connector um because of the height it it messed up my original plan for the for the end of the card. So now um I'm just waiting on a piece that uh fits in here um around all the components so that when uh when the card gets assembled, it's there's a there's a flush edge on it. Um and the you know, you can't lose your SD card inside of it. So So I'm waiting on that. Um I had expected to already have it, but it'll it was delayed. So, it will probably come it'll probably come this week. And then the other issue which is going to add a little more delay, probably at least a week and a half before I I confirm, um I committed to change these uh these bus switches that I've been using for for the interface because on a couple older systems, including the HP200 LX, I saw uh bit errors. um in certain IO cycles and I didn't see them when things were slow, but as I started to get into more complex functions and really stress the card out, I I was seeing those bit errors. So So I've I've switched uh switched up the interface. Uh I'm just waiting for the board boards to come so I can confirm that it's it's solved. I did I modified a lot of boards by hand. Uh not a lot of boards. I modified one board by hand and and confirmed that uh it was good or at least a couple signals were good. So So I'm not expecting a problem with that. I just need to be certain that's good.
It's uh unfortunate I already bought all the chips I needed of this this bus switch that I'm not going to use now.
Um, so I'll have to uh see think of a project think of some kind of project to use those for cuz uh some of them uh I don't think I can return. Um so so that's the status. Now in the meantime I have been working on the software. So I'll show off some some of the stuff I've been working on. This is going to be very just kind of kind of all over the place. Um, so, uh, I use my PC 110 like I like I always do. So, if I just, um, get an audio cable hooked up here and get it started.
Let's plug that in.
So the main uh functions I've worked on so one I call is called um I call it native city ROM and basically what that is um if I go into I'll I'll show you in um big.is.
So before with the uh the Sound Blaster CD interface, the Panasonic MK interface, which still exists, still on here, um when you enable that, um all it does is it sets up the you know the IO port 250 and then you would have to then load the creative driver. Um and it works and it's nice and authentic, but it is a little slow. So I then I created the native CDROM interface which is basically um it just it just presents the CD interface directly and then you can specify how many drives you want. So it it emulates like a CD a CD changer. So if I um go into and so the reason I did that also is so if I go pico card and let's say you wanted a sound blaster, you wanted a joystick, you wanted an MPU, you wanted um you wanted the OPPL and you wanted a mouse on COM 2. Problem is when you do that, you can see that it enables you need an IO range for every single one of those devices. Um and you also need an interrupt for some of them.
And the issue with PCMCIA is you only get two IO windows on most systems. So, uh, I have to try to fit all those devices into two ranges. So, you can see here it went from 2011 to 22F and 208 to 389.
And the problem is that ends up uh scooping up a bunch of addresses that we don't want that are that we're not emulating anything on. And if they're not in use for anything else on the system, that's fine.
But if they're in use for other devices, the card will end up interfering because we assert the IO8 signal um immediately because it takes us some time to decode the address. So so it's on a lot of on some systems it's it becomes unstable if you make large if you uh allocate big IO windows. Um so and then on some the card services often won't even let you uh allocate certain excluded addresses. So you simply would not be able to get a whole bunch of devices fitting into Windows.
So the nice thing with this is that um when you when you've done just the native CD, the native CD doesn't use a IO any IO uh range. It just uses um uh the shared memory. Uh same and then here's another thing. So people card terminal is now takes you straight into the configuration terminal. Uh before you had to configure a comp port for this and then use it like TX or some terminal program to get in here. And again that ate up an IO range if you were if this is all you wanted it for.
So now you can use / terminal and you can get in and this is just through the also through the shared memory. And then now here's the CDROM. So here's where we can set up the CDs. So let's say I put um we'll say disk zero is mega race and uh disk one is uh Warcraft. Um so if we look at uh E drive is a mega race and uh F drive is is Warcraft.
So um that's fine. And then um also if we go to um bench and we go to speed cis uh I believe we get it depend it depends on what kind of functions I've set up but we get around like 6x CDROM when it's not doing anything. So right now we're just running a speed test. So it's not we're not doing any sound blaster playback or anything. So this is like best case scenario. Uh we get uh yeah like actually like seven 7x. Um so this is significantly faster than what we can do with the uh the creative interface.
Um so then that allows us like smooth playback. So, for example, this game Mega Race, a game I like I I remember this game. This is one of the very first games I ever played on CDROM. It came in like a little collection with the one of our computers. But this is an example where it's like continuously reading from the CD and um and doing Sound Blaster playback. So, Welcome to Nusan, possibly the world's most >> So, I'll exit out. So, that's just an example of that, you know, we're able to h How do I get out of this? I just reset it. um that we can do the uh a native native CDROM gives us um gives us the highspeed and then it also it's nice has a little CD changer and then also uh just a couple more things on the native CDROM.
Um so I have the same I I have to clean them up a bit but I have the same kind of uh commands as POGUS. So, the idea being that you could uh it'll be compatible with launchers. So, you can just uh So, if I go uh uh picar/ city load, let's put the let's put Warcraft into into uh drive zero. That's the only thing is I added a there's an extra parameter uh for what drive you're going to put it in, but that it's only needed if you're if you're if you're trying to put it in one of the emulated slots. If it's just a single slot, then it's it's the same. So then also uh we have play CD now. Um it'll still play audio CDs.
Um and then we have now um ecoard terminal. So I've got the um audio mixer now. So to control the all the audios from here.
So we have we can control the sound blaster [music] or the yumho yell the MIDI and uh line in is the uh is on here if is this is has the switch um the uh the switch where you can either do MIDI out from this or you can do uh line in audio um and then you can also do that these from Um uh from here uh so you could uh control them just straight from uh from command line. Um um so that uh that I believe covers the the native CDROM interface.
So that's a a big feature I think. Um the next is uh pretty good one. Um so if I just go in here um I go none. Let's see what I got to configure. So now if we go uh pico card slash um uh SD card, what this does is it gives us the exposes the SD card. Um, so I have a 128 gig SD card in here right now. It exposes it into a DOSs as a um through the redirector. So you can just access the the the whole card in in DOSs. So um so this is all the stuff on the SD card. The speed is not not bad.
Um it's uh similar to what I can get on the the CDROM. It's a a little bit slower um on the on the rights, but it's this is this is more than fast enough for anything that I'm I'm doing on here with games. So, that's the um that's the SD card. Um but then I also have um I just unplug this. This is the audio one. We'll come back to that. Um actually, I'll plug it in. I'll I'll use this. I'm going to use this from uh or actually this one has less stuff hanging off of it. So, if I plug the audio in here, um and then we've got uh I've got a a USB on the go cable.
So, USBC to USB. So, if I plug that in and just plug this in. Uh now again this is uh a bit uh a bit wonky. So I I want to make the still need to 3D print like a little uh card blank that that's like goes in and sticks out a bit and then supports this.
So I usually just stick a random card in just to support it. And just a quick reminder that um I didn't I didn't make it, but you can get like these um just like how I made this audio cable, right? I made an audio cable. Um, you can also just buy these these uh USB cables and then the uh the connectors are are um are stocked at stock at Digi Key. So, you can make cables. So, I still plan to to only ship with uh with this which has every function but um what extra cables uh I will have extra I'll have to figure out still. But so this is set up here now. So if we go um eagle card USB mass storage, it adds another F drive there.
So now um if I go DF drive, there's nothing there. So if I I plug the uh this USB uh stick in, this is uh 32 gig one. Um can see now there that's um this is my uh this is that uh that USB key. Um I don't know what if I have anything useful on here. Um but yeah, so that's that's this USB key.
Um it's uh a lot slower, right? I don't know. Um, I didn't look into it too much yet, uh, because I don't I it varies a lot by the USB keys, too. And the, uh, the USB library, um, I'm not so familiar with it. There's been changes made to improve the speed.
So, I've basically just ported what was in PHugas over. And so, that's that's why the the USB read speed is great. So, we get uh, one megabyte. Um, so that's the USB keys, but you can also, so now if I see it should be empty again. If I have here, I have what this is. This is a uh this is just a hub. Um, but it's a it's a powered hub. So um it's just a USB hub, but it accepts external power. So I've got external power connected to it there. Um, and if I plug it in, so um, oh, first of all, let's just make sure this works through the hub still.
Yep.
And this should be blank now. Yeah. So now, because I got the powered hub, you can also use a hard. So this is a one TBTE hard drive. Now the I can't power this. PC110 can't power this directly.
the voltage goes too low and it it drops out. But through a a powered USB hub, um, if I plug that in, this should be there.
There. So, this is a this is a one TB SSD. So, I've got like exodos on here.
It's like this is like a terabyte of stuff. So, um, so we've got that. So, that's the the mass storage. So you can now it's just through the DOSs redirector you can get access to um and it'll do them it does them both at the same time. So you've got access to the SD card and you got access to the USB. Um it I kept I was thinking about expanding it to allow multiple USBs. I don't really this is is this necessary? I don't know. So that's the uh the mass storage. Um, so I'll just unplug that just so I don't uh I don't end up Actually, I'm done with this. So I just so I don't uh uh cause any cause any problems for it. I'll hook the uh the audio back up here. Um, so here's my audio cable.
Actually, I'm not sure I'm even going to need to demonstrate the audio. Um so that's the mass storage. Then the next thing that I created if I just reboot the uh machine here. Um and again this is that all that storage stuff did not use IO. It's all through the shared memory. So another thing I've added is um so what we used to do is pico card/mouse 2.
And that would give us where we could then do mouse/c2.
Um, and then we can do mouse test. So that's uh this mouse here.
So that's this is the Bluetooth mouse.
Um, and in ter and update rate is like 40 or whatever. So that's the uh Bluetooth mouse and again that's pcard terminal. If we go to um mouse. So, I'm using the the Bluetooth mouse here. You can do USB mice. I I didn't put it. It's this is a laptop, so I've mostly focused on um on Bluetooth stuff, but it supports the same USB uh mice and uh game pads as other projects. Um so, that's the serial mouse. Um the again the the uh problem there being not problem but you you had to um you had to uh you needed an IO window to do that. Um so if I just reboot just easier to reboot here. Um so what I added for that is a um a native mouse driver. So if we just go plecard/mouse um it uh so we don't need to configure an IO or an interrupt now and it's just it will present the uh the mouse directly.
Um so it's also even um it's a little bit more responsive than a serial mouse and we get the uh we also get the center click. Um, so that's the uh that's the uh the the mouse the native mouse and it's and it works pretty good. Like so if I go um let's search people card slashmouse and then slb22010.
Um if we go into games FT2 FT2 um so again yeah this is through the uh this is going through it and if we go uh we load something um yeah so it's still we can use the mouse without uh having any impact on the playback to the DMA emulation.
Um, can you go into [music] DOSs on this?
Uh, no.
And yeah, so this is playing uh back [music] at full um at the full sample rate, which is actually I can't do with the uh the ESS [music] card in the uh PC 110.
Um it actually uh it struggles. So that's the uh that's the mouse um and uh the native mouse driver. And again, you can use this stuff at the same time. Um actually, let's see if I can do this. So if I go um so so let's just make sure we're we're connected here. So uh Wi-Fi is up. Yeah. So we're connected on the Wi-Fi. So if I do people card uh slashpd um that should uh okay this is I got to uh I got to update the um the interface a bit. There's a couple things like the uh packet driver or um native CDROM couple where I need to know up front like when you first enable the card, I need to know if you're going to enable that feature because I keep different uh different stuff uh uh resident. So like if you're just using audio, I don't keep like the package driver resident or I don't keep the mouse driver. I only like keep what is needed. So, if we do picard/mouse/pd, that's going to enable the native mouse and it's and it enables a native packet driver. So, if you're if you're looking to do networking and you're just going to use MTCP, there's really no point in enabling any 20000 just for that. Uh, now I still support any 20000 cuz I don't use MTCP all the time. I mostly actually use the novel stack and it's looking for an an actual N2000 card. But here's uh this is this is through the uh the native packet driver. Um so again does this we now have the mouse and the um we have the mouse and the packet driver and it's not using any IO addresses. This is all through the uh through the shared memory. Um just let that So if we go uh rockfly and yeah. Meow.
So that's the the native uh native packet driver. I showed the uh native mouse. Um and then yeah, I think everything else I've already mostly shown off. If I go loop slash OPL slash um joystick.
Um then there's like um I still have the the the Bluetooth game pads. Um yeah, we don't need music. So this this is should So the mouse is working there.
So this if I turn on this little joystick here, the little game pad should connect there.
Yeah. And this is a this is hard. There's a little bit of lag here because of the um my capture device. But otherwise, I often use um Tetris here because I would notice like right away if there was any kind of like joystick glitch or lag, I would notice. So, I often just sit play this for a while to make sure things are okay. Um this is hard because I'm I'm looking at it through uh you know, if I was uh playing on the actual PC 110 here. Yeah, there's like there's zero lag, but uh through my capture device, it's uh it's pretty rough. Um so I think that is it for the new features I've added. Um everything else is still is still good.
Sound Blaster emulation like if we go um um card slash um MPU sophard MPU so the the things that use IO windows can be reconfigured on the fly.
So if we go dosmid/mppu canyon.mid So that's that's through the uh the dream uh um uh MIDI chip on the board.
Um if we do um what are we uh pick cards or sorry card slash uh sound blaster OPPL and joystick um I don't remember what I have configured for it here.
Let's use the keyboard.
>> [screaming] >> Yeah. So that's uh that's it. So I I continue to uh work on the uh the software um adding features, improving the um uh Oh yeah. So there's also um in the terminal here I also have a modem mode and uh that's where you can also just um if we go uh dark let's see I think it's a BBS. So you can um it's like a little anti- terminal. Again, this is you could just configure a compport and do this through um uh through the comp port, but uh um I just put this little uh uh interface in. Um and then in terms of uh that um exit terminal, oh remind myself, how do I um Oh, how do I disconnect? It's not uh Come on.
Yeah.
So, basically that's there there's the game pads. So, that's was like the uh game pad that I joined and um it can support uh you can configure four game pads, but it's right now I only let you uh do two like actually send two to the PC, but you could join multiple ones. Um this is for um presenting the card to the um PC. So here audio settings aside from the mixer I still have the where you can configure the speaker profile. So you can do the um um smaller uh the where it uh like restricts the frequency range. So for example if we do small speaker um um it'll set now it'll be like restricted for a small speaker.
I don't know if you can tell, but it's um it's like cut all the bass and and certain frequencies out. And uh I can't it's too hard on this the recording here, but that's you use that if you want to play the audio out of the um out of the built-in uh computer. And then uh card type. This is the um I need to add some. This is the what the card um behaves like on boot. So, because I have this set as an EN uh 2216, the actin 2216, you can put this card into any device and it will it will identify and configure itself as um as an Actin uh card or I have this you can make it where it will it will just present itself as a game card and then the computer uses whatever drivers or whatever. So, um I have another one I've been working on the Fereralon card for max and there's a couple other um for setting and that's basically that's for when you're not going to use this pico card program. This pico card program is for is for DOSs and just to show um um the options and I and I do need to add like clean up the look of this and stuff cuz it's like debug things everywhere. But this is this is all the stuff that you can configure and how you configure it. Um I need to update more documentation about what these like hard specifying windows or um I also have um this should work. Um, I just have some little system things that are try to uh which I've slowly built uh as I and I need to clean up how they look, but just trying to find any kind of uh errors uh signal errors cuz I did I did spend you know a lot of time um troubleshooting things when I had like a bad um you know uh a bad socket on one of my old computers or something or uh it was uh detecting it was uh doing 8bit cycles says 16 bit cycles. So yeah, that's about it. I could go on go on forever. I will have put chapter markers so you could skip around. Um but yeah, that's the that's the current state of the card and I'll have a an update this week uh hopefully um with uh some more little refinements to the software and hopefully the the mechanical uh piece is done. So, um yeah. Uh yeah, that's it for now.
Thanks,
Related Videos

TOP 15 Data compression Interview Questions and Answers 2019 Part-2 | Data compression | Wisdom jobs
wisdomjobs
281 views•2019-06-28

CTS 158: 802.11w Management Frame Protection
ClearToSend
4K views•2019-02-04

NDSS 2019 Send Hardest Problems My Way: Probabilistic Path Prioritization for Hybrid Fuzzing
NDSSSymposium
496 views•2019-04-02

How realistic is Cities: Skylines?
CityBeautiful
159K views•2019-02-14

GUIs & TUIs: Choosing a User Interface for Your Python Project | Real Python Podcast
realpython
2K views•2025-04-04

The OSI Model - Explained by Example
hnasr
225K views•2019-05-12

Cloud Computing - Introduction
elithecomputerguy
98K views•2019-10-07

From Traveler's Dilemma to Dynamic Routing | Demystifying Networking
IITBombayJuly
5K views•2019-08-04
Trending

WOW! Judge TURNS THE TABLES on Trump in His OWN $10B LAWSUIT!!!
MeidasTouch
197K views•2026-07-23

Playstation NO DISC/NO BUY Fight Is Over...
DavidJaffeGames
4K views•2026-07-23

Steam and Xbox Just Dropped The Hammer On PlayStation
OhNoItsAlexx
9K views•2026-07-23

Americans Confused in Australia for 17 Minutes Straight
IWrocker
17K views•2026-07-23