Sorted by Squirrels.

Saturday, 15 November 2008

For your eyes, ears only. Oh, and everyone else's too.

Intrigued by something I've done? Want some? Just ask. I can't post every bit of code that I write, every schematic. But if you want some help or encouragement then just contact me. I'm always pleased if I can be of some use.

Switch.

I was working a few extra hours this weekend as my code finger was a bit slow last week. It's not often this happens, unlike in my previous life - scratch that - sentence, in the games industry (I'm not bitter - just astounded at how long it took me to realise how ugly it is). Bizarrely I had a camera with me so I took the liberty and a photo.


You know that you can click the pic for a higher resolution version, yes?

The museum has grown a little.. The master has been swapped out for a regular B. It has got a second processor attached though, and you can see its tiny appendage - an MMBeeb interface. Marvellous stuff by Martin Mathers. It's sitting on top of, yes it has to be said - a cardboard box - and quite the largest piece of retro peripheral that I own. A dual 5.25 inch floppy drive. Look at the size of that thing! It has an unbelievably long cable attached too - 10 metres at least - which by any stretch of the imagination shouldn't work. That's quantum physics for you! Probably.

OH! How I wish that Jupiter Ace was mine, alas it's not. It belongs to Mr Cliff. B'stard. ;) This one has a few yellow marks but it still works. Especially after the keyboard contacts got a firm rubbing with an eraser.. Win! Only about 8000 of these were sold. We loaded up some software a while ago and it was fairly obvious why this was a niche machine. If you come across an emulator then try 'fish and flutterer'. It's pure class.

Thursday, 6 November 2008

It only takes a Jiffy

As I now have the uncanny ability to burn EPROMS using only the power of my mind and, well, err, some equipment, I needed to try it out with something.

Since my SD2IEC (currently broken) supports the JiffyDos turboloader, I decided to upgrade my C= machines with new kernels (Or is it kernals? The two spellings seem interchangable in the world of Commodore, but I'll stick with the former). This upgrady action might give me the impetus required to fix it.

The '128 was easy enough, the ROM chips used were pin-for-pin compatible with modern 27c types. The VIC needed a small adapter board and some leg-bendy, jump-wiry action. The real fun started when I cracked open the '64c. This later model of '64 has serious cost reduction issues - like a lack of sockets for ROM chips. At least the chips they used were, like in the '128 model that followed, pin compatible with modern EPROMs.

Undaunted I considered desoldering the chip and adding the socket, but that wouldn't have been hacky enough, would it? :D

So I got out my side-cutters and removed the power leg. Covered the wound with a small sticking plaster (band-aid for our international readers) and patched a wire from the PCB stub to the power leg of my EPROM.


Next I bent the EPROM's pins slightly under itself, giving it a bow-legged aspect that I found rather pleasing. This newly lamed chip was then spring-loaded piggy-back fashion over the top of the incumbent ROM.


Like so! Isn't that sweet :) It's giving the other one a special cuddle!

I powered the old girl up and ... nothing. Black screen. Panic sets in. Turn it off and on again. Despair. Slump back onto my ample rear and hello! What's this?! I hadn't been waiting long enough for the machine to boot - I forgot that they take a second or two. It worked! Of course I knew it would..;)

I briefly considered holding the new chip in place with some gaffer tape, but that didn't give me a warm feeling. It would also have meant that the gaffer could have escaped. And we didn't want that either. So I decided a semi-permanent arrangement of solder to two diagonally opposite legs would do the job.


Yes I know it's a blob, but it was early in the morning!

Tuesday, 21 October 2008

Tier Jerker

The Finished Shield:



40 lines of IO plus a number of the Arduino's lines brought out to header sockets. A couple of status LEDs and we're done. I've taken the PORTC lines, AKA the analog inputs A0-A5 and D2-D7 to the back of the board. As it is, the shield's pass-through connectors are offset by 50 mil, making piggy-back boards impossible to make cleanly out of proto-board. The power lines and D8-D13 have their pass-throughs in place, as they are essential for my MMC sail.


The Linguine Layout:



I love kynar wire! Did I ever mention that?? :D The enamel coated copper wire is great too.


The EEProm Topper:



This is a a scavenged megabit chip. My first application for this board will be to program this. As it slots into the IO card so it will fit into a small adapter board that I have in mind to enable it to emulate a 64k ROM to transfer code to my burner.


The Assembled Wedding Cake:



Silly! But that's what I like about it. An antidote to the misery happening in the world today ;)

Thursday, 9 October 2008

Shields ... On?

Up you blaggard! Up!



No, on second thoughts 'on' is definitely more appropriate in this case. As I mentioned in a previous post I'm crystalising the max expander board. It's about time I ruined my eyes and lungs with some close work.



I'll be putting two of the blighters on this board. Seeing as I'm down there anyway I reasoned that 40 lines is better than 20, what.

I didn't see any sense in making this a fixed purpose board, hence I'm opening up the lines with SIL sockets so further adapters can be inserted. The 1st will be a programmer for some of the megabit EEPROMs that I've salvaged from a couple of P2 motherboards.

Saturday, 20 September 2008

New Logic Analyser Brainstorm

Twin 4040s. 128k static RAM. A line buffer, probably in the region of the number 244. Something related to Arduino in a vague fashion.

8 data lines connected to the buffer, and from there onto the RAM chip. The 4040s provide the address generation.

Press a button or otherwise glean a clue about an appropriate time to start sampling from some logic or other. Reset the addressing logic. While ram not full:- increment address, latch data into the buffer and then write it to the RAM. When RAM full, await instructions to download via serial.

Could work, non?

Alternatively there seems to be a little logic analyser war happening right now - I'd back this regime. If you earn in dollars, then it's offering quite good value for money. If you earn in English pounds then you're laughing.

Friday, 19 September 2008

Programmer Redux

The drop-in centre for stray capacitance was closed by the health and safety after it was shorted by a stream of wee created by a Superintended Nindo. At least I think that's what I heard. I could be wrong. Whatever happened, all the residents must have all come to join with the raving mass I already had, the result of which is that the board resolutely refused to work again after my last witless ramblings.


Pictured: Stray capacitance gathering
ready to frustrate my EEPROMming.


So - I started again!

The code was as much of a lash-up as the board, so I gutted it in favour of a Max6956 IO expander cum LED display driver. 20 gorgeous lines of GPIO, all driven by the Wire library and 2 lines off the Arduino. 12 Address lines, 8 data lines - Pimms o'clock! It's so much cleaner now without having to clock data around scratchy shift registers. I might actually show it to you.

The board came together in about 40 minutes and the code didn't take long at all because I already had a working sketch that drove the beastie. And to my immense relief it worked first time, and reliably every time since. I think I may well solidify this design onto one of the Arduino shield PCBs that I bought from Lady Ada aeons ago 'in case I ever needed one'.



You can see here the new MMC sail, #4 in a series of many. My favorite one so far, this has more than the requisite 6 resistors. I got a smart colleague to recommend a way to get an LED to flash in response to the clock line clocking. He told me that a monostable would do the trick and here it is. Why not just pop an LED on the line? Well, I'd done that already and sometimes that clock line might be left high.

Tuesday, 16 September 2008

Lash-up!



What a mess! But it works - sometimes :) All that stray capacitance - well someone's got to give it a home.

This is what I'm forced to do because the Stag PP39 EPROM programmer that I was so generously given by a fellow FreeCycler works well, but for its serial connection. Ho hum. Wanting to burn an EPROM to hold the driver code for the Atom MMC interface was the necessity that was the mother of this frightful invention. In a fit of pique I had the idea that I should create a 3-step process: Burn my code into an EEPROM, transfer this to the programmer's buffer, and thence into an EPROM! Why not just use the EEPROM for my project? An astute question, esteemed reader. Well the type of EPROM expected by the Atom is an olde-fashioned marque with a subtly different pin-out to the more contemporary (read: standard) 27x series. Luckily the PP39 can burn the 2532 that was required. Even luckier I suppose is the fact that I had one of these! An adapter board can be made to facilitate the harmonious interfacing of the disparate breeds, but this would involve less lashing-up, you see? And we all need a jolly good lashing from time to time.

I digress. What you see before you (or more correctly above) is an ls299 accompanied by a brace of ls164 shift registers. These in turn are connected to an 8k Atmel EEPROM. In the driving seat you see the Arduino and - naturally - a poor but functional MMC interface. The 164s are in charge of address generation, and the 299 has bi-directional data line duties. It's a simple and effective design which I have referenced before.

I've developed the Atom MMC driver in assembler, naturally. This time I opted for cross assembly. If you saw the code attached to my previous post (my - is that the time?) you may well understand why - the inline assembler is hard work with its terse labelling syntax. I develop and assemble on a PC, using a custom Visual Studio workspace and a freeware 6502 assembler. The resulting binary is debugged as far as possible using Wouter Ras' brilliant though tricksy DOS Atom emulator. When I'm happy with the code it gets put on the MMC card and burned to the EEPROM using a subtle combination of swearing, crossed fingers and sacrificial chickens. The burning process needs to be attempted a fair number of times (the stray capacitance, bless) until the verify step passes and I can be sure the lash-up has worked. Once transferred to the programmer, the code fizzles its way onto a freshly UV-cooked EPROM and then into its warm and welcoming bed - Socket IC24. And so to work:

Presenting - the MMC adapter I built to fit on the venerable machine's expansion port, as visible here.



And in situ:



Goodness - that is the time! Two and a half months this post has taken me! Either that or my post-Sachertorte coma was deeper than usual... Whatever, forgive me. I am off to play Atom Invaders - which now loads in under 3 seconds, a far cry from the original 5 minutes of the tape version!

Contact Form

Name

Email *

Message *

This is how we do it

MMC (9) acorn atom (7) sord m5 (7) zx81 (7) multicart (6) arduino (5) Sord (4) tatung einstein (4) Atari 800 (3) Chuckie egg (3) M5 (3) M5Multi (3) c128 (3) sd card (3) sd2iec (3) sio2sd (3) 6502 (2) Max6956 (2) QL (2) RCM (2) assembler (2) avr (2) c64 (2) cadsoft eagle (2) eeprom (2) einSDein (2) mmbeeb (2) multi-cart (2) spi (2) system 80 (2) ufat2 (2) vic20 (2) video genie (2) 6502 second processor (1) 6522 (1) 8255 (1) Acorn BBC Micro (1) Apple 2e (1) Apple ][ 2 two (1) BBC 6502 second processor (1) BBC micro (1) DevicePrint (1) Double Choc Chip Muffins (1) FAT (1) IO (1) Jupiter Ace (1) LED (1) Master 128 (1) PCB (1) PIC (1) POV (1) PROGMEM (1) Pineapple (1) ST (1) Spectrum 128 (1) antex (1) arcade spinner (1) arduino shield (1) atari (1) atmel (1) bakewell tart (1) beer (1) bird's nest (1) bitbucket (1) brokenated XC special (1) cake (1) cassette (1) cassette interface (1) colecovision (1) compact flash (1) convert (1) dac (1) de-yellowing (1) dev cart (1) development tool (1) eaca (1) efficient (1) einsdein. z80 (1) esp32 (1) esp8266 (1) eye strain (1) failosophy (1) filesystem (1) finally (1) fram (1) french polishing (1) fuse (1) fuses (1) game development (1) games (1) gaming (1) github (1) glue (1) google chrome (1) heroic failure (1) high voltage programming (1) hot irons (1) if (1) jiffydos (1) joey beltram (1) lego robot (1) library (1) lying (1) machine code (1) matron (1) microcode (1) mmc interface (1) mmc2iec (1) mmm (1) mouse guts (1) oscilloscopes (1) pcm (1) pic32mx (1) porn (1) proto shield (1) purple (1) repo (1) retro computer museum (1) retro hard-on (1) rom box (1) sd (1) sd-x (1) sd2mmc (1) seadragon (1) silliness (1) small (1) software master (1) soldering (1) spi software master (1) stray capacitance (1) string (1) techadventure (1) test equipment porn (1) ts1000 (1) turtle cheesecake (1) tweaking (1) vc20 (1) video head (1) video ram replacement (1) weewee (1) wingasm (1) wire library (1) wodges of IO (1) xilinx cpld (1) yellowing (1) z80 (1) zx spectrum (1) zxpander (1)
Unless otherwise stated all of the original work presented here is:

Creative Commons License
Licensed under a Creative Commons Attribution-Noncommercial 2.5 Generic License.

The work of others where referenced will be attributed appropriately. If I've failed to do this please let me know.