I was testing various AM radios and noticed, that I don’t have proper AM source. The AM broadcasting station in my region is very scarce and weak. Also, I wanted more options for radio receiver testing.
I though, that the internet is full of simple AM modulator circuits, but…
Typical internet schematics are not ream AM. It only “some sort” of AM modulation, and, yes, radio receiver can decode sound from these circuits. Most of circuit do “1″ and “2″ versions, but none was like real AM.
There is simple and good way to generate quite pure sine wave:
This circuit is not very simple, but results are quite fine: output is pure sine wave. From the other side, this schematics have some minuses: it is hard to change frequence. So this type of generator is not very usefull for variable frequence devices.
For my purpose I am using this generator to modulate RF. Here are some osciloscope shots of real world hardware:
AM modulation in it’s clasic way:
P.S. this device use dual polarity power suply.
After building ZX Spectrum clone in CPLD I ported hardware code to another project and this is a bit simplier, but it uses some mono LCD from old copy mashine.
Now I used only one CPLD, but I added additional SRAM chip. Now I don’t need any memory managment (MMU)- video part of the computer is completelly “write only”. It is shadowed in external SRAM chip and if computer need to read some data it do not get date from video part of the computer. This makes design much easier to implement.
CPLD also monitors all IN/OUT operations and generates all specfic video signals for LCD (it is four pixels at a time interface).
This is 320×240 pixel monochromatic screen, without any gray levels. So I can not emulate any colors using grayscale. For border I used vertical stripes, but for screen part is “only black and any other color is white” mode. So games are unusable. Also, moving parts are blured.
All files to download:
Intel-Altera Quartus CPLD source code for ZX Spectrum LCD version.
Do not forget, that regular Z80 need 5Vpp clock for proper operation. I used CMOS buffer for this.
Ant here is pinout for EDMMPU3BDF LCD:
5. pix CLK
6. Vcc, +5V
8. Vee, -25V
9. D3, pixel data
13. Vee, same as 8.
Sometimes I want to show how old 8 bit computers work for some n00bs. It is nice to load some game from tape, some from disk. But when I want to show more game, best thing is cartridge. And not single universal cartridge, but a pile of them. This looks more “expensive” and cool.
Another reason- cheap PCB and that I wanted to to in this way.
And main reason for cartridge is speed- just put in and power on. I never liked this game.
I found old ZX Spectrum clone made in Soviet Union in 90′s. It was my computer, I wrote several program on it and also, I wrote drivers for Espon printer on this hardware. This model has Soviet chip КР580ВВ55А (Intel i8255) and I used this port for LPT interface and some custom hardware.
I powered it and without results- old crappy Soviet chips are dead. At least 3 chips were bad and quality of PCB prevent me from full repair.
Good fellow donated my collection with new item- Sharp PC-2500. The only big problem- this old computer had caustic batteries inside and they leaked. Alkaline used in the batteries has very ugly feature- it can travel under conformal coating along copper traces. All this made this computer DOA.
In this picture, computer is a bit working. Still missing some parts of the image, one keyboard key is not responsible and software freezes. It is possible, that damage to PCB is not only eroded traces, but there is side effect of CMOS technology- the resistance of the PCB is lowered and it may cause problems with high resistance CMOS circuitry. Any unclean spot in PCB has quite low resistance for low current signals. I was trying to wash parts of PCB, but it is paper based PCB and discoloration shows that alkaline salts are inside board material.
There is quite expensive obsolete chip from various Commodore computers and peripherials- CIA/PIA MOS 6526 and a bit changed 8520 used in Amiga computers. This is “complex” peripherial interface adapter chip for 6502 processor or 68K chipset.
It is quite complex, as it has: 16 individual programmed I/O lines, 2 independent, linkable timers, real time clock timer/counter, shift register for serial interface and some other stuff. As this chip is for “interface”, some of the pins goes outside computer and connects to various other devices or… some strange objects like metal pins or pens. S, short circuit, ESD spikes can kill these chips. When I lived in Soviet Union, I blow Amiga 8520 chip and I had my Amiga shelved for several years!
Now is still possible to buy these chips- sometime NOS (very expensive), sometime good pullouts, but sometimes fake ones. And you have to spend over 25USD for just one chip. Maybe is good variant to buy DEAD computer in hope, that chip may be fine.
I am cleaning, testing and rearranging my old computer collection and I decided to repair some of them because now I have more money and more knowlegde. And I have spare CPLD boards from Russian Igrosoft computers. So, one day I decided to build some test rig and build my own CIA/PIA in CPLD (it is 5V TTL compatible).
Here is the CPLD CIA/PIA workplace:
This computer has both 6526 dead. Left CIA is only partially emulated- so I used smaller CHIP. Meanwhile right one is more complex. This is not only timers, int, but also keyboard interface.
For a long time, I collected small collection of computer hardware. Here is the link to my Old Bits Collection.
I have old teletype printer T-63 (it is made by RTF in Eastern Germany, clone of old Siemens Teletype). And the idea is about connecting it as USB printer to our-days computer. Easiest way is to connect it using RS232 port, configured to 50bod speed and 5 data bits. But I was thinking about real USB printer.
Somehow I didn’t managed to program old AVR Atmega16 series MCU with V-USB library as printer. Windows is detecting as “printer”, but “cannot start”. Next device available was ATMEGA32U4 board from China, for about 2€. It is more modern chip, with build in USB hardware. I selected LUFA library (latest version, downloaded with git).
This is very small board with everything already soldered for testing. For electrical compatibility I used SSR (solid state relay)- I need to link TTL level with 40mA (50…120V) current loop.
I wrote all stuff on windows 10 Pro computer. I managed to emulate “text only”, “generic” printer. Windows downloaded drivers and installed them automatically, but I encountered some weird problems: windows can print only few hundreds of symbols. After it printing stalls, and after few minutes print spooler reports error.
I switched computer to old Apple Air with old Mac OS X (10.6?). Mac OS detected printer, but there was no downloadable drivers. After playing with CUPS, I installed RAW printer driver. But there is problem with modern computers- even if I was printing plain text file (‘The Call of Cthulhu’), apple “text editor” was sending PDF formated data to printer.
Next computer was Linux Mint (also very old version). Linux detected and installed text only printer driver. But when printing same text from some type of text viewer the output was nill. Why? When switched to raw printer driver, output was same PDF signature and binary data. Same shit… why modern software make all jobs so complicated?
But there was good news- all that binary data was sent to printer without any problems. So, printing in Windows 10 was the windows drivers problem, not AVR device.
Thanks to all gods (and older ones), but there is old school command prompt (shell) in linux. And only few lines of commands and that dark text appeared on paper with 50+ years old teletype printer.
All source code is free and available for download:
USB printer device on AVR ATMEGA32U4 source code LUFA. With ‘The Call of Cthulhu’ testing text included.
To compile, please download latest LUFA library from github.
Lithuanian, extended version. Hardware (Lithuanian).
I was experimenting with damaged Atari 800XL and I need to test it in low level. I wrote several lines in machine code and it was pain in the ass to fill data to ROM chip. After entering HEX data in binary editor with several errors, I decided to write some “visual ROM linker” to merge asembler output with ROM chip buffer.
In attached archive there is third party 6502 asembler, test program source, asembler output, ROM binary file and my visual linker executable for windows .NET system. There is installer too, but software is not signed.
Some of 6502 asembler…
My ROM linker….
Atari emulator running my new ROM.
All software to download:
Atari ROM visual linker
Feel free to use.