Started drawing a Cassette interface in Kicad. This so i can read back my old cassettes with programs. (And write some new stuff)
I’m planning to buy a small micro cassette player. With schematic below, I’m going to use it as save/load device. But also with the same player, I’m going to convert the tape to a wave file, and try to decode the program using python.
While I’m at it, reading the old manuals, a RS-232 interface would be nice also!
UPDATE 20231016
This is the final version
Information about the 7655A. A eprom WITH IO ports! Amazing piece of history hardware.
JiffyDOS is an enhanced DOS for the C64. The software is programmed onto ROM chips that replace the Kernal ROM chip on the motherboard and the DOS ROM chip in the disk drive. JiffyDOS is intended to provide greater speed, commands and convenience than on stock systems.
The 1541 drive is a computer on its own, using a 6502 and VIA chips. (See other pages) (C64 uses a 6510, that is the same slightly modified version of the 6502) A cool example of the drive being an OS/computer on its own: https://www.youtube.com/watch?v=zprSxCMlECA
Some notes:
I want to use a larger rom and using the higher address lines as kernal selector. Address line A13 and A14 can be used as selector
There is a schematic out there using runstop at boottime to do de selection of the rom part
Did I misspell kernel? NO (Below from Wikipedia)
The KERNAL was known as kernel inside of Commodore since the PET days, but in 1980 Robert Russell misspelled the word as kernal in his notebooks. When Commodore technical writers Neil Harris and Andy Finkel collected Russell’s notes and used them as the basis for the VIC-20 programmer’s manual, the misspelling followed them along and stuck.
Original Kernal: 901227-03 8-kilobyte 2364 ROM 4K * 8 bits PROM
28C265 = 32K * 8bits
Diffference in ROM size AND there are some other pin placements.
V0.1
Romselect should be /(a15 * a14 * a13) depending on ram/rom switch.
SEL0
SEL1
0
0
rom0
0
1
rom1
1
0
rom2
1
1
rom3
$E000-$FFFF – ROM 57344-65535
KERNAL ROM or RAM area (8192 bytes); depends on the value of bits #0-#2 of the processor port at memory address $0001 $FFFA-$FFFF – hardware vectors
I just took a 12mm x 60mm piece of wood, and made a slit for the acrylic plastic using a circular saw, and removed a part for the back-plate using a wood router. I found a piece of acrylic in my shed, cut it to the right size using the circular saw. Slapped some paint on the wood.
I want to be able to use the sdk whenever i want, so i made a sliding window thingy. ( With wooden handle so the frame looks intact when closed. )
Then I 3D printed some holders, which I designed using Openscad.
Only cards worth mentioning. I will add more information to this page
Graphics:
Hercules ???? – Did a lot of machinecode on this one. (Which?) CGA/EGA Card ??? – Machinecode hacking VGA .. first card also machine code hacking Matrox Some cards i knew a lot about, i did some manipulations using assembly that were very interesting, but only worked on that specific brand.
The Catweasel is a family of enhanced floppy-disk controllers from German company Individual Computers. These controllers are designed to allow more recent computers, such as PCs, to access a wide variety of older or non-native disk formats using standard floppy drives.
You could connect joysticks and there is a socket for a SID chip on the card.
In post https://www.henriaanstoot.nl/2022/11/25/disk-troubles-or-missing-old-skool-hardware/ i mentioned the serial connectors i’ve bought to connect the Laser XT to my Workstation to transfer files.
The null modem i’ve made is like mentioned on https://en.wikipedia.org/wiki/Null_modem
I’ve used the loopback handshaking using 3 wires. ( Only using a DB25 and a DB9 on the other end )
So i configured the Linux side as follows.
I’ve tried two usb to serial converters.
Both when trying on windows 10 are not supported any more
Dec 14 17:34:40 zspot kernel: [ 1082.299607] usb 1-4: pl2303 converter now attached to ttyUSB0
sudo stty -F /dev/ttyUSB0 9600
Then i start dosbox. To enable a com port i have to enter:
serial1=directserial realport:ttyUSB0
Starting Norton Commander and selecting COM1
After a few seconds i got this ..
What else is there to check? At least i’ve still got the Flux Engine!
And found this! The fluxengine https://github.com/davidgiven/fluxengine
An open source project using a small controller board. “Flashing” some software on the board and soldering a pinheader was easy. When connecting a flat cable and a floppy drive, you end up with a device which can read many formats. Including dos 1.44/720 and amiga.
Nice package it came in
Using the power from a sata/ide harddisk adaptor
Reading and writing a MSDOS disk, no problem. Imaging an amiga disk .. easy!
You need to compile some software, but it was well documented
I bought a XT Laser/3 a while ago. And i wanted to get my old programs running on it again.
One of the disk i found was a 5.25 inch boot disk which should contain a boot demo i’ve made in the past with Edk. But it is the secondary drive in this system. Those old machines lack a bios you can change. And change A: for B: for example. Some machines had a program which could alter boot settings. (not this one) So i was playing with jumpers and dipswitches on the motherboard. ( Drive select / Termination / drive before or after the twist in the flatcable. )
Dipswitches on the motherboard
Wellll leave the boot order for now, i needed to get software on the machine using floppy’s. I could not find empty HD disks (1.44MB which i wanted to use) So i took a DD disk and a drill ..
(Image from the internet)
I bought an external usb floppy drive.
Now i have everything to get my programs on the msdos machine.
EXCEPT ….
Diskette didn’t work in the drives. So i bought new old stock diskettes online.
Now i have everything
WRONG again
Formatted 1.44 disk in USBfloppy drive .. OK Read in 3.5 drive on the MSDOS machine .. NOT OK Check drive in MSDOS machine .. is 1.44MB .. OK … check floppy controller in MSDOS machine .. NOT OKAY (720kb is 300kbits per second and 1.44 HD 500kbits per second) So i’m limited to 720kb due to the controller ..
Can the USB Floppy drive read/write 720kb disks .. NO! ( A cheap series made with drives only supporting HD disks )
Alternatives? .. Serial maybe, there is Norton Commander on the MSDOS machine so i could use “link”
Do i still have a USB-RS232 sub-d cable ? YES! Nullmodem cable? NO Make a null modem cable .. i’ve made those before .. BUT no sub-d connectors.
I’ve been throwing away too much in the past.
Now i have to buy those things again:
VGA – 8bit ISA – have 2 now Floppy drive – have one for 1.44 8bit soundblaster compatible – TODO Nullmodem – well i’ve bought connectors for those
download the package with used files and compilers from here: https://media.henriaanstoot.nl/assembly.tgz
extract with tar xzvf /tmp/assembly.tgz to a directory
start dosbox and mount the directory as C
mount c /path/assembly
Run “a line”, this a batchfile which starts the editor (qedit) When closing the file (esc – q menu) It will compile the assembly and write out a executable
This is the batchfile
@echo off
q %1.asm
cls
masm %1.asm;
link %1.obj;
exe2bin %1.exe %1.com
echo READY!
line assemblycode
NAME lijnentrekroutine
.286
Code SEGMENT
ASSUME CS:Code,DS:Code
org 100h
Start:
mov ax,13h ;set video mode
int 10h
mov bx,100
mov cx,100
hiero:
mov dx,0a000h
mov es,dx
mov ax,320
mul cx
add ax,bx
mov di,ax
mov al,2
stosb
inc bx
inc bx
inc cx
cmp bx,150
jnz hiero
mov ah,8
int 21h
mov ax,3
int 10h
MOV AX,4C00h
INT 21h
code ends
end start
While playing with MuseScore…. (Typesetting some scores for Pipes and Flute)
This came in: WOOOT
Trident 8900C (1024 x768 max 512Kb)
This is a Trident VGA card. While having a 16bit ISA connector, it can work in a 8bits ISA slot.
A while ago i bought a Laser XT/3, that’s the one my parents had. This is where i did a lot of assembly programming on. It’s a 8086 cpu, 640K and has a Hercules/CGA graphics card.
I found loads of assembly files and i want to see if i can get it running again. While some code was written for hercules, ( That’s the monochrome image you see in the example above ) and a few for EGA (4 colors).
Most of it was written for VGA. Probably on a later machine like a 80386?
But i know there are vga cards for 8 bit msdos computers, and i found one. ( This one is even autodetect, so no jumpers to figure out)
So i’ve put this card in the machine, turned it on, and it works! I’ve got only 2 examples living on the harddisk of the machine, both black and white … 🙂 I have to search for interesting code in hundreds of files.
Some friends of mine, picture was taken from an amiga genlock digitizerThe intro pages of a “amiga emulator” WHERE is the rest??? (end is a cga starfield demo)
And a boot demo, which was able to start from a bootsector, went into a graphic mode and ran a demo with sound. Edk wrote a sector loader for this. I have some 5.25 inch floppy disks, labelled boot demo. So i wanted to try this today … I needed to change the boot order, so i went online to search for jumper settings.
I see a led when it tries to boot, but my disks are probably formatted 720Kb instead of 360Kb, which this drive is.
So …. TODO!
Find a 720Kb floppy drive (5.25 inch), and sort through my code! There is a 8bit soundblaster compatible soundcard that i bidding on online, hopefully i’ll get it
Assembly and modes
I wasn’t sure how to sort the assembly code into Hercules and VGA compatible, but i used this table (There are also extended modes for higher resolutions)
mode 0x00
text 40×25 gray
mode 0x01
text 40×25 16 colors
mode 0x02
text 80×25
mode 0x03
text 80×25 16 color
mode 0x04
graphics mode (CGA) 320×200
mode 0x05
graphics mode (CGA) 320×200
mode 0x06
graphics mode (CGA) 640×200 (B/W)
mode 0x07
text 80×25 Hercules
mode 0x0F
graphics mode 640×350? gray
mode 0x10
graphics mode 640×350?
mode 0x11
graphics vga 2 colors
mode 0x12
graphics vga 16 colors
mode 0x13
graphics 320×200 256 colors
# Set VGA mode
mov ax,13h
int 10h ;screen 320x200 256 colours
# Exit VGA mode
mov ax,3
int 10h ;screen 80x25 text
mov ax,4c00h
int 21h ;back to DOS
"If something is worth doing, it's worth overdoing."