Tag Archives: retro

Serial link between MSDos and Linux troubles

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!

Fluxengine disk reader

I’ve build a drawbridge disk reader in the past:
https://www.henriaanstoot.nl/2022/04/26/started-to-build-a-drawbridge/
I found an even more interesting project.

I was looking for a solution to my XT laser problem.
https://www.henriaanstoot.nl/2022/11/25/disk-troubles-or-missing-old-skool-hardware/

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

Disk troubles or missing old skool hardware?

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

Hercules to VGA

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 digitizer
The intro pages of a “amiga emulator” WHERE is the rest??? (end is a cga starfield demo)

Hercules Card

There is not much info available about this card:

  • Max resolution (Hercules) : 720×348
  • 15 pin analog monitor port (CN1)
  • BIOS enabled JP1 Pins 1 & 2 closed
  • BIOS disabled JP1 Pins 2 & 3 closed
  • CGA selected SW1 On
  • MDA (Hercules) selected SW1 Off

Floppy drive boot

My friend EDK and I made some demo’s like

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 0x00text 40×25 gray
mode 0x01text 40×25 16 colors
mode 0x02text 80×25
mode 0x03text 80×25 16 color
mode 0x04graphics mode (CGA) 320×200
mode 0x05graphics mode (CGA) 320×200
mode 0x06graphics mode (CGA) 640×200 (B/W)
mode 0x07text 80×25 Hercules
mode 0x0Fgraphics mode 640×350? gray
mode 0x10graphics mode 640×350?
mode 0x11graphics vga 2 colors
mode 0x12graphics vga 16 colors
mode 0x13graphics 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

7 segment displays/keyboard decoders in SDK’s

There are a lot of old develop boards for all kinds for cpu’s.

These where build to learn machine code programming. Mostly made in the 80’s, and based on populair cpu’s at that time.

I own a some of these SDK’s (System Design Kits)

8085 – SDK85 i bought recently 8085 CPU
Microprofessor-1 (MPF-1) Z80 CPU
And my own 680x based computer

Most of these use a keyboard scanner which is also connected to 7 segment displays.

The way they work is practically the same. There is a VIA or PIA. Versitile interface adaptor, or Peripheral interface adaptor. These have two times 8 bits to control devices.
When using 4 bits and convert these to 16 lines by using a 75ls145 for example. If you put a counter on those 4 bits, you sequently activate 1 of 16 lines. These lines you can use to scan a keyboard matrix OR display a character on a 7 segment display. These display’s won’t hold the data (and show the character) when not activated. The trick is to update de display fast enough so you don’t see the flickering on/off.

Activate a line and read a byte with the VIA = Reading keyboard row
Activate a line and write a byte with the VIA = Display on a segment

These VIA/PIA’s where made with specific timings to match the CPU.
6522/6820/8255

Below you see some different implementations of these keyboard/display combo’s

Thaler 6502 kit
Microprofessor MPF-1 kit (ignore red circle)
SDK85 kit
Eltec 6800
My version using darlington arrays (ULN2003)

When looking at the 8085 version you see transistors being a ULN2003 is a chip with those transistors/amplification enclosed.
It doesn´t draw much current from the bus, and diodes protect the way the current flows.

SDK-85 searching archives

Found these old .. old mini-cassettes .. wish i could read these now.
The sdk units we had, had tapedrives and few other hardware devices you could play with. Like a motor you could control, which had a disc with slots in it on top. These slots could be read and counted with a sensor to determine the speed.

Also this scanned pages, from school i found. There should also be a little notbook with programs and notes ..

Found some ROM files also

Apparently we had something called a bb-board.
These had motors and speakers and such

This part contains the motor with sensor
Led and switches
Speaker and more

I want to try to get some parts working by rebuilding. Like the speaker .. because … i found some own written software!

I found als programs written by my friend Martin

SDK-85 in 2022

I was posting about the 8085 System Design Kit in may, but now i’ve got one!

I found one online, it is a very clean almost like its never been used version!

More follows!

More info at http://www.bitsavers.org/components/intel/8085/

6502 Update

New address decoder in place!
Connected RAM/ROM/SID/VIA1/VIA2 and ACIA

ROM8000-FFFF
SID7000-700F (sound)
VIA16000-60xx (Hex key matrix)
ACIA6800-68xx (serial)
VIA25000-50xx (led test at the moment)
RAM0000-3FFF

To plan: Bigger maxtrix keyboard and other displays

ACIA 6551

Got a serial connection working between the 6502 and my linux machine!

At the moment when a reset occurs , hello is being printed.
Text typed in the minicom terminal, is echo-ed back and displayed on the LCD display.

Things learned: Do not trust internet schematics blindly!

The crystal used for the ACIA (pin 6/7 1.8432Mhz needs a 1M ohm resistor parallel over the crystal, and a 30nF capacitor from pin 7 to GND

When using a terminal emulator, and using 3 wires. Disable hardware handshake.

Keyboard rewired.

What didn´t work as planned:

New amplifier schematic for the SID. There is too much noise.

Amplifier with a LM628

Bought a dual power supply (5V and 12V). But this one has a lot of signal noise on the SID part and even my battlestation speakers!

LED test 2nd via

PORTB = $5000 ; VIA PORTB
PORTA = $5001 ; VIA PORTA
DDRB = $5002  ; Data direction register
DDRA = $5003  ; Data direction register

LED  = %10000000

	.org $8000

reset:

	lda #%11100000 ; Set top 3 pins on port A to output
	sta DDRA

	lda LED 
	sta PORTA

loop:		; done loop until doomsday
	jmp loop

irq:
nmi:
	.org $fffa
	.word nmi
	.word reset
	.word irq

ACIA part

ACIA_RX = $6800
ACIA_TX = $6800
ACIA_STATUS = $6801
ACIA_COMMAND = $6802
ACIA_CONTROL = $6803

    lda #$00
    sta ACIA_STATUS
    lda #$0b
    sta ACIA_COMMAND
    lda #$1f
    sta ACIA_CONTROL

Cool terminal combo

I was using zevv’s bucklespring way back since he was beta testing.
https://github.com/zevv/bucklespring

Also cool-retro-term, i used whenever i felt nostalgic.

But both at the same time, how much fun is that!

(Both newly installed on my laptop, which i had to reinstall, because i f*cked it up beyond repair. installing openxr stuff. OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices.  )