In this section you can find a few add-on cards made by me, some researches I made to discover more about this computer, and some related projects.

All cards in this section were built and they are working.

 

Add-ons made:

 

 

Researches:

 

 

Other projects:

 

 

 

 

56 KBYTES STATIC RAM EXPANSION

 

 

56 Kbytes static RAM expansion

 

 

This card is a 56 KBytes memory expansion.

 

I chose to realize a 56K card instead of 64K because the addresses starting from EC00h are occupied by video memory of the card LX.388, and then by firmware of the floppy disk interface LX.390 (starting from F000h).

So the card is mapped from 0000h to DFFFh including. For this reason is not possibile to use the hexadecimal monitor eprom that is on the CPU card LX.382 that is mapped from 8000h to 83FFh, and the two 2114 ram chips that are on the same CPU card that are mapped from 0000h to 03FFh, and also the eprom programmer firmware LX.394-395 that is mapped from 8400h to 87FFh.

To use these firmwares together with this card it's necessary to build the card with multi-firmware eprom also, as explained below in this section.

 

To disable the hexadecimal monitor firmware and two 2114 ram on the CPU card LX.382 it's necessary to operate as explained in the article COME ESPANDERE LA MEMORIA NEL COMPUTER published on magazine number 77.

 

This expansion card is relatively simple, because it uses only one 128 KBytes static memory chip TC551001 made by Toshiba, that has a very low power usage, of which it's used only the first 56 KBytes. Due to the fact it's a static memory chip, it doesn't need refresh for dynamic memories like that one implemented on the 32K dynamic ram expansion LX.392, making schematic alot easier.

 

Address decoding is done by U4 chip, a 74LS85 used as binary comparator that, together with logic implemented by U7 and U8, respectively a 74LS00 and a 74LS32, enables the ram for all addresses between 0000h and DFFFh for memory read and write operations.

U1 and U2 buffers could also be omitted. In my computer I used them to make signals a bit more stable due to the high number of cards.

 

Warning: this card can work properly only if the ENH signal is present on the bus. Due to the fact that this signal is generated by LX.390 floppy-disk interface or by card with multi-firmware eprom, at least one of these cards must be present on the bus.

 

 

56 KBytes static ram expansion schematic (423 KB)

 

56 KBytes static ram expansion pcb layout (53 KB)

(contains the complete project file in EDWIN format and pcb images)

 

Paolo Pinto made a new pcb layout in GERBER format, very professional, starting from the schematics.

It's available in the printed circuit boards section.

 

 

Components list:

 

U1 74LS244
U2 74LS244
U3 74LS244
U4 74LS85
U5 74LS245
U6 TC551001 128 KBytes ram
U7 74LS00
U8 74LS32
C1 - C8 100 nF polyester
R1 - R2 10 Kohm 1/4 Watt

 

Note: all condensers are near chips power pins.

 


 

MULTI-FIRMWARE EPROM CARD

 

 

Multi-firmware eprom card

 

 

This card permits to use a personalized firmware that makes it possible to boot all operative systems and all hexadecimal monitors that were made for this computer.

Using this firmware, at the machine startup a menù will be shown through which it's possible to launch all monitors and all available boots.

To use this card it's necessary to disable all eproms that are present in the computer, both the eprom on the CPU card LX.382 and that one on the floppy disk interface LX.390, as explained below.

 

This card can work with a 27C010 eprom or a 27C020 eprom, respectively by 128 or 256 KBytes. The eproms are interchangeables without doing any change to the card.

 

The eprom is used with a memory bank tecnique. In particular there is a bank always resident and not modifiable that is mapped from F800h to FFFFh. In this bank there is the multi-boot firmware.

Then there is a bank mapped from F000h to F7FFh that is switchable by sending a byte to the I/O port 5Fh, to which this card answers.

The value sent to this I/O port selects one of possible 8 KBytes banks that are in the eprom. Infact, even if the switchable bank is mapped from F000h to F7FFh so it's a 16 KBytes bank, it's possibile to address the eprom at 8 KBytes blocks (because the majority of firmwares made for the computer occupy 8 KBytes only).

 

So, the value set to I/O port 5Fh set the 8 Kbytes eprom block to be mapped starting from F000h, but if the sent value is an even number it's possible to access the next 8 KBytes eprom block that will be mapped from F400h to F7FFh.

Instead if the value sent is odd there will be two times the same 8 KBytes block mapped from F000h to F3FFh, and from F400h to F7FF.

 

So, to summarize, the eprom banks are mapped as shown in the following table:

 

Bank number Eprom address Mapped address
0 0000h - 03FFh
0400h - 07FFh
F000h - F3FFh
F400h - F7FFh
1 0400h - 07FFh
0400h - 07FFh
F000h - F3FFh
F400h - F7FFh
2 0800h - 0BFFh
0C00h - 0FFFh
F000h - F3FFh
F400h - F7FFh
3 0C00h - 0FFFh
0C00h - 0FFFh
F000h - F3FFh
F400h - F7FFh
4 1000h - 13FFh
1400h - 17FFh
F000h - F3FFh
F400h - F7FFh
5 1400h - 17FFh
1400h - 17FFh
F000h - F3FFh
F400h - F7FFh
6 1800h - 1BFFh
1C00h - 1FFFh
F000h - F3FFh
F400h - F7FFh
7 1C00h - 1FFFh
1C00h - 1FFFh
F000h - F3FFh
F400h - F7FFh
etc. etc. etc.

 

Obviously 16 KBytes firmwares need to be put inside the eprom at an address accessible by an even bank number, while 8 KBytes firmwares can be put in any bank.

 

As told before, at addresses mapped from F800h to FFFFh there is always the eprom content at addresses from 0800h to 0FFFh (relative to the eprom addresses starting from 0000h), that is the content of eprom bank 2 (if the second bank will be selected, the same bank 2 will be present from F000h to F7FFh and from F800h to FFFFh at the same time).

Infact the 16 KBytes eprom bank 2 contains the multi-boot firmware that needs to be executed at computer power-on and needs to be always available at F800h, indipendently from the selected bank.

 

This card has a reset circuit also, made by U1 chip, that at power-on always enables the eprom (and at the same time it disables all ram expansions by way of ENH bus line) for the duration of the first instruction read by the CPU. This instruction must be a JUMP to a location inside the multi-boot firmware (in the address range from F800h to FFFFh). Doing so at power-on, even if the CPU put the address 0000h on the bus to read the corresponding location, the CPU reads the instruction present at F800h (that is inside the eprom) allowing the machine start-up.

 

As told before, to use this card it's necessary to disable the eprom on the floppy interface LX.390.

To disable this eprom it's necessary to make the following changes to the floppy interface LX.390:

 

 

The following table contains the list of all files included into the multi-firmware eprom, with their bank number:

 

Bank number Eprom address Source file Binary file to be used Original eprom (the same) Description
0 0000h - 03FFh monitor2.asm monitor2.obj - eprom 1390 to boot NE-DOS 1.0 or 2.1
It has a small patch to avoid start booting due to a still pressed key on the keyboard
1 0400h - 07FFh monitor3.asm monitor3.obj ep2390.bin eprom 2390 to boot NE-DOS G.1.0
2-3 0800h - 0FFFh monitor0.asm monitor0.obj - main monitor
4- 1000h - 13FFh monitor4.asm monitor4.obj - hexadecimal keyboard monitor not relocated with disabled interrupts
-5 1400h - 17FFh ep394.asm ep394.obj ep394.bin eprom 394 for the eprom programmer not relocated
6 1800h - 1BFFh monitor6.asm monitor6.obj - eprom 2390 patched to boot every type of NE-DOS
7 1C00h - 1FFFh monitor9.asm monitor9.obj - printer routines for the hexadecimal keyboard monitor
8-9 2000h - 27FFh - all_basic16k.bin 548-1.bin eprom 1 for eprom basic to be relocated in ram
A-B 2800h - 2FFFh - 548-2.bin eprom 2 for eprom basic to be relocated in ram
C-D 3000h - 3700h - 548-3.bin eprom 3 for eprom basic to be relocated in ram
E-F 3800h - 3FFFh - 548-4.bin eprom 4 for eprom basic to be relocated in ram
10-11 4000h - 47FFh - 548-5.bin eprom 5 for eprom basic to be relocated in ram
12-13 4800h - 4FFFh - 548-6.bin eprom 6 for eprom basic to be relocated in ram
14-15 5000h - 57FFh - 548-7.bin eprom 7 for eprom basic to be relocated in ram
16-17 5800h - 5FFFh - 548-8.bin eprom 8 for eprom basic to be relocated in ram
18 6000h - 63FFh monitor8.asm monitor8.obj - 5.5K tape basic loader
19 6400h - 67FFh ep390.pdf ep390.obj ep390.bin eprom 390 for 5.5K floppy basic
1A-1B 6800h - 6FFF ep683.asm ep683.obj ep683.bin eprom 683 for SONE (NOTE: the original assembler listing is available in rom48.pdf file)
1C- 7400h - 73FFh monitor7.asm monitor7.obj - hexadecimal monitor relocated to F000h with SP relocated before EC00h for the alphanumeric keyboard
-1D 7400h - 77FFh ep394ril.asm ep394ril.obj - eprom 394 for the eprom programmer relocated to F000h
1E- 7800h - 7BFFh monitorA.asm monitorA.obj - hexadecimal monitor relocated to F000h with SP relocated before EC00h for the hexadecimal keyboard
-1F 7C00h - 7FFFh ep394ril.asm ep394ril.obj - eprom 394 for the eprom programmer relocated to F000h
20- 8000h - 83FFh monitor5.asm monitor5.obj - hexadecimal keyboard monitor not relocated with SP relocated before EC00h
-21 8400h - 87FFh ep394.asm ep394.obj ep394.bin eprom 394 for the eprom programmer not relocated

 

 

The firmware in the eprom, at computer start-up or reset shows a menu with the following options:

 

Option Text shown Description
1 BOOT BASIC 5.5K SU FLOPPY Starts the eprom 390 firmware, to boot 5.5K floppy basic
2 BOOT NE-DOS 1.5 Starts eprom 1390 firmware, to boot NE-DOS version 1.0 or 1.5
3 BOOT NE-DOS GRAFIC 1.0 Starts eprom 2390 firmware, to boot NE-DOS version Grafic 1.0
4 BOOT S.O.N.E. Starts eprom 683 firmware, to boot SONE
5 BASIC 16K IN RAM Starts 16K eprom basic after copying it to the ram starting from address 0000h
6 MONITOR ORIGINALE NO INTERR. Starts eprom 382 firmware containing the hexadecimal keyboard monitor, after copying it to the ram starting from address 8000h. This firmware version has a patch to have disabled interrupts.
Also it contains firmware for the eprom programmer (eprom 394), copied to ram from address 8400h.
7 MONITOR SP RILOC. NO INTERR. Starts eprom 382 firmware containing the hexadecimal keyboard monitor, after copying it to the ram starting from address 8000h. This firmware version has a patch to have disabled interrups and the stack-pointer relocated before EC00h, so that its content is not shown on video LX.388.
Also it contains firmware for the eprom programmer (eprom 394), copied to ram from address 8400h.
8 MONITOR A VIDEO (RILOCATO) Starts the eprom 382 firmware relocated to F000h, that uses the hexadecimal keyboard. This firmware version has a patch to have disabled interrups and the stack-pointer relocated before EC00h, so that its content is not shown on video LX.388.
Also it contains firmware for the eprom programmer (eprom 394), relocated at F400h.
NOTE: the CONTROL key functions of the hexadecimal keyboard need to be done with the SHIFT key on the alphanumeric keyboard
9 MONITOR ORIGINALE (RILOCATO) Starts the eprom 382 firmware relocated to F000h, that uses the alphanumeric keyboard and video LX.388 instead of the hexadecimal keyboard. This firmware version has a patch to have disabled interrups and the stack-pointer relocated before EC00h, so that its content is not shown on video LX.388.
Also it contains firmware for the eprom programmer (eprom 394), relocated at F400h.
NOTE: the CONTROL key functions of the hexadecimal keyboard need to be done with the SHIFT key on the alphanumeric keyboard
A BOOT IMMEDIATO NE-DOS Starts a routine of the eprom 2390 to immediatly boot NE-DOS, patched to accept any NE-DOS version without checks
B LOADER BASIC 5.5K SU CASS. Starts the same program as the file BASIC PARTE 1.ZIP that is downloadable from the software section, that is the loader or the 5.5K basic from tape
C PROVA TASTIERA Starts an assembler program that permits to test the proper working of alphanumeric keyboards by showing ascii and binary codes on video LX.388 of typed keys
D RESTART A 0000H Makes a JUMP to location 0000h after blanking all videos
E RESTART A 1000H Makes a immediate JUMP to location 1000h without blanking videos
F LOAD ROUTINES DI STAMPA A 0070H Loads printer routines published in the article INTERFACCIA PER STAMPANTE on magazine number 73, mapped at the address 0070h and with a patched copy at 0170h.
The version mapped at 0070h is to be used with the original monitor firmware mapped at 8000h (menu options 6 or 7), while the version mapped at 0170h is to be used with the relocated monitor at F000h (menu option 8)

 

 

Multi-firmware eprom card schematic (486 KB)

 

Multi-firmware eprom card pcb layout (1.10 MB)

(contains the complete project file in EDWIN format and pcb images)

 

Paolo Pinto made a new pcb layout in GERBER format, very professional, starting from the schematics.

It's available in the printed circuit boards section.

 

Multi-firmware eprom binary full image (30 KB)

 

Source of firmware mapped from F800h to FFFFh (20 KB)

 

Assembler output (cross reference) of firmware mapped from F800h to FFFFh (53 KB)

 

NOTE: To make the binary file of the eprom starting from source, it's necessary to include also all needed firmwares. These are already included in the eprom binary full image downloadable here.

 

 

Components list:

 

U1 74LS109
U2 74LS14
U3 74LS13
U4 74LS32
U5 74LS244
U6 74LS27
U7 74LS30
U8 74LS14
U9 Eprom 27C010 or 27C020
U10 74LS244
U11 74LS257
U12 74LS257
U13 74LS373
U14 74LS00
C1 - C14 100 nF polyester

 

Note: all condensers are near chips power pins.

 


 

HARD-DISK

 

Luckily I got a Motorola MVME system that, as per the included documentation, uses a BASF 6188 hard-disk: incredibly there is also an add-on controller. The Motorola system has a very complete documentation, including schematics, and there is also an example circuit to connect the controller to a Z80 system. Well, I compared this circuit schematic with LX.683 interface and they are almost identical !!!!

 

So I discovered that the controller is a XEBEC S1410A, and that the interface is SASI standard (that is the predecessor of SCSI).

So, even if I can't be 100% sure, there are very strong possibilities that the original controller was that XEBEC, even because the two available controller photos on the magazine are 100% equals to the real XEBEC controller I got (also the printed circuit board tracks are identical).

 

So I built a LX.683 interface on a proto-board, I connected the hard-disk and computer, and incredibly I was able to format the hard-disk and to install SONE at the first shot.

 

In contrary to what stated in the Motorola system documentation, the hard-disk on this system is not a Basf 6188 but it's a Seagate ST-225. Anyway they have the same geometry and the ST-225 has only double tracks available: it shouldn't be a problem to use it instead of Basf, even if obviously it's half used.

 

Next I made the printed circuit board of LX.386 interface starting from the original draws, I assembled the interface and put the hard-disk and the Xebec controller into a standard SCSI-I case.

 

 

Here there are some photos:

 

   
This is the LX.683 interface built on a proto-board
   
Hard-disk with XEBEC S1410A controller

Hard-disk and controller rear

Hard-disk connected to LX.683 interface
   
XEBEC S1410A controller

Formatting started...

The hard-disk is correctly formatted at the first shot

SONE boot from hard-disk

Hard-disk directory after the system and a few files have been copied to

STAT command output that shows hard-disk size

README file available in the SONE operating system

LX.386 interface made from scratch

Seagate ST-225 hard-disk assembled into a stadard SCSI-I case

Xebec S-1410A SASI controller assembled over the Seagate hard-disk

 


 

FLOPPY-DISK FORMAT

 

Floppy disk used with eprom 390 have the following format:

 

 

 

 

NE-DOS floppy disk, used with eprom 1390 or with eprom 2390, have the following format:

 

 

 

 

Also, thanks to researches made for the hard-disk, I was able to decode the floppy format used with eprom 683 by SONE operating system.

 

SONE is a CP/M 2.2 compatible system (it's almost a CP/M 2.2 clone), but the floppy format is different from any floppy I know, and it's only similar to Osborne-1 format.

 

The floppy format is as follows:

 

 

Formatted disks are 92 KBytes size.

SONE supports also another format (but it isn't able to format floppies) that is 17 sectors per track / 128 bytes per sector.

 

Then I was able to create a format parameters list to be used with Sydex 22DISK program, that lets you read/write single files on floppies using a PC.

 

The parameters list to be added to the existing one (by changing the CPMDISKS.DEF file as indicated in 22DISK documentation) is the following:

BEGIN Z8NE Z80 Nuova Elettronica - SSSD 48 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
NOTE per drive da 360K o da 720K mettere CYLINDERS 40
SIDES 1
SECTORS 10,256
SIDE1 0 1,7,3,9,5,2,8,4,10,6
BSH 4 BLM 15 EXM 1 DSM 46 DRM 63 AL0 080H AL1 0 OFS 3
END

 


 

PS/2 KEYBOARD INTERFACE

 

My friend Pino Giaquinto made a little but very usefull interface to connect a normal PS/2 keyboard to keyboard input on LX.388 and LX.529 cards.

This interface is able to manage keyboards with Italian and USA layout, and it exactly reproduces all keys and operating modes of LX.387 (and LX.387-B) keyboard with LX.549 numeric keyboard.

 

Building is very easy. The interface uses a PIC 16F628A micro-controller that needs to be properly programmed using the following file.

 

 

 

NEW: Here you can find the new 3.3.1 version (Italian only)


 

EPROM PATCH FOR VIDEO-GRAPHIC CARD

 

Pino Giaquinto made a patch for video-graphic board LX.529 eproms 529 and 530, to remove some little glitches.

 

The patch has been made to correct "_" (underscore) characted that Nuova Elettronica showed like a right arrow, also redundant because it's already present as E9h character. The same is for "^" characted that was shown as a up arrow.
So Pino moved arrows, changed the pipe "|" to be more modern, and added the inverse apex that was completely missing.

 

Here you can dowload patched eproms:

Eprom 529 version 2

Eprom 530 version 2

And this is the complete character map: Character map version 2

 

 

 

Piergiorgio Betti describes how it works:

 

video raster scan is generated by rows and every row is made by a series of pixels. The SY6545 controller let it define how many pixels, for height, compose a character and so a characters row (look at page 3-160 of 6545 Synertek datasheet).

In Nuova Elettronica Z80 computer this height is defined at 16 pixels so we have a character matrix of 8x16 pixels. So to define a character we need 16 bytes: every "1" bit of this matrix make a pixel on the screen to light.

 

Every character, that is a block of 16 bytes, is programmed into 529 and 530 eprom of LX.529 interface.
Characters are sequentially put into eprom starting from character 00h to 7Fh for 529 eprom, and from da 80h to FFh for 530 eprom.
The fact that every character is a 16 bytes block makes addressing very simple: for example into 529 eprom, characters from 00h a 7Fh have address 000h, 010h, .... 7F0h.

 

To verify it you can open the eprom dump image using a binary editor.

Look for capital "A" letter that has hexadecimal value of 41h and that will start at location 0410h in the eprom:

 

 

 

 

The following 16 bytes after address 0000:0410 should be the "A" letter.

In this manner is not very clear, but if we show one byte at a time we clearly can see letter "A":

 

 

 

 

Obviously at address 0420h there will be letter "B" and so on.

 

 

So, by using this patch, the character map has changed from this:

 

 

 

to this:

 

 


 

S.O.N.E. LISTINGS

 

My friend Pino Giaquinto sent to me a few original listings related to S.O.N.E. They where discovered in documentation owned by of Constantinos Harikatis, that was a Nuova Elettronica developer.

They are original assembler listings of EPROM 683, listings of format programs for single and double density floppy disks (the latest never published by Nuova Elettronica), listings of S.O.N.E. Bios for single and double density, and listings of PUTSYS program that let you generate the operating system.

 

NOTE: eprom 683 listing is identical to the eprom content. Other listings where not verified: I have no clue if they are "officials" versions or development versions.

 

You can download listings in .PDF format here:

 

 

FILE DESCRIPTION PROGRAMMERS DEVELOPMENT DATE SIZE
ROM48.PDF Eprom 2716 named "683" for LX.390 floppy interface and S.O.N.E. operating system. It's the eprom official version Martino Stefano
Gallerani Paolo
18/08/1984 5.13 MB
FFORMAT40.PDF Program to format floppy disks at 10 sectors / 256 bytes for sector, single or duble density Martino Stefano
Gallerani Paolo
19/08/1984 2.18 MB
FORMAT422.PDF Program to format floppy disks at 10 sectors / 256 bytes for sector, single or duble density Martino Stefano
Gallerani Paolo
15/08/1984 2.62 MB
FFORMAT30.PDF Program to format floppy disks at 10 sectors / 256 bytes for sector, single or duble density Constantinos Haritakis 06/01/1986 2.16 MB
BIOS16.PDF BIOS version 1.6 for CP/M 2.2 with Hard Disk Basf 6182. It supports following drives: A/B - 5", 10 sec/trk, 256 byte/sec; C/D - 5", 10 sec/trk, 256 byte/sec; E/F - 17 sec/trk, 128 byte/sec (it might be the "official" version) Martino Stefano
Gallerani Paolo
15/08/1984 4.58 MB
BIOS30.PDF BIOS version 3.0 for CP/M 2.2 with Hard Disk Basf 6182. It supports following drives: A/B - 5", 10 sec/trk, 256 byte/sec (hard); C/D - 5", 10 sec/trk, 256 byte/sec (DS); E - 10 sec/trk, 256 byte/sec (SS) Constantinos Haritakis 05/01/1986 2.95 MB
PUTSYS161.PDF Program to generate CP/M on single side floppy or hard-disk Martino Stefano
Gallerani Paolo
15/08/1984 1.95 MB
DSPUTSYS161.PDF Program to generate CP/M on double side floppy or hard-disk Martino Stefano
Gallerani Paolo
19/08/1984 1.84 MB

 

 


 

HAND-MADE EPROM LISTINGS

 

Biagio Paribello sent to me a few Eprom listings, hand-made and commented by himself.

They are assembler listings of EPROM 382, EPROM 390 and EPROM 394.

 

You can download listings in .PDF format here:

 

 

NOTE: listings related to these and also to other eproms are available in the software page.

 

 


 

MODIFIED 382 EPROM

 

Sergio Internicola found a 382 eprom, patched to be used with LX.388 video card and alphanumeric keyboard, instead of hexadecimal keyboard.
The eprom has unknown origin, it's marked "MONITOR TAST. ALF." , and it seems to work properly.
It implements the same commands of the original 382 eprom, that can be invoked by using the following keys:

M - view/edit memory
R - view/edit CPU registers
V - run program
P - run step-by-step
L - load from tape
S - save to tape
J - jump to 8400h (to be used with the eprom programmer LX.394-395)

The master-mind (the easter egg that can be run with CTRL+F in the original eprom) seems to be removed.

 

This eprom can be donwloaded here: ep382x.bin