Category Archives: Software

Basic or ASM

Torsten MÜCKER : save your tapes with WAV2BIN

There is an really useful tool i must present to you : Wav2Bin

It was originally written by and is now updated by Torsten MÜCKER as a package named PocketTools.
Here is the link to the PocketTools page :

I use it from a year and must say : THANK YOU !
All my tapes are now SAVED on my computer into a readable format.
The package contain other utilities but i only use Wav2Bin.

How to save your tapes ?

First download the free software AUDACITY :
It works on Linux, Windows and OSX.

Launch it and set the correct parameters.
Choose Mono for the device :

Set the quality to 11025 hz :

Connect your tape player (like the Sharp CE-152) to you computer.
Start a new record on Audacity and hit play on your tape player.

After the first side of your tape is recorded press stop on Audacity.
You can now see and select blocs of signals. These are recorded programs.
Save each as Wav file with the export function :

Move your Wav files into PocketTools directory and start converting them.
If the program is Basic its simple as illustrated by “Frank C. OddsProbe.Wav file. This will create a .BAS file
Rename your Wav and BAS files with the “save name” found.

If it’s a binary file like machine code saved by CSAVEM… you only have to add –type=img like here for the Turbo Tape Master software. This will create a .IMG file
Rename your Wav and IMG files with the “save name” found and add the “start address” to this name, it’s important, you’ll need it to load the program into the PC-1500 at the correct address or it will may work.

Repeat this for each wav file and enjoy the result !
The basic file can be opened by a text editor.
If you have some interesting software to publish, please, contact me.

Thank you Torsten !!!

And for the .IMG files ?
Stay tuned, there is another tool to convert it to .ASM !!! Thank you CGH !

CN-2000 : One navigation system for the Sharp PC-1500

If you loose your way ask your PC-1500 !

Here is a small navigation system for the PC-1500 : the CN-2000 from InfoCenter, Inc.
CN-2000 Celestial navigation
EMI_2142 EMI_2143

It’s stored in a very nice wood box.
The CN-2000 can be plugged to a PC-1500 or PC-1500A.
You have a module to connect on the 60 pins connector and a user manual.
EMI_2147 EMI_2148

The module is in a plastic box.
EMI_2149 EMI_2150

But when you open the box… you are far away from a professional system !
The box is not closed by the screws, it’s closed by some silicon glue.
The 4 screws are very short and fixed by the same glue.
And the board looks like self made but not pro with green paint.
EMI_2151 EMI_2152

The program is BASIC and stored in the EPROM. It’s read protected for common users.

Here is the user manual :

If you want to read more about navigation with this module there is “The navigator’s newsletter”
Go to the Newsletter archives…

And i have found a small paper in the Yatching magazine talking about the CN-2000 :
CN-2000 Yatching Oct 88 - 30 CN-2000 Yatching Oct 88 - 31

EDTech Inc. : Administrator ROM module

The PC-1500 is a really well designed pocket computer and offers many ways to extend it’s software and hardware capabilities.
Some companies were seduced by the Sharp solution and it’s “owner” memory modules.
EDTech was one of these companies and were offering a solution for education administrators :
(Picture taken from eBay)

Externally it looks like the PC-1500A + CE-150.
But internally there is a custom memory module :

It holds a 57256 32KB EPROM
EMI_1701 EMI_1700

We have to distinguish three kinds of memory modules :
– RAMs stored between &0000 to &3FFF (like 4KB CE-151, 8KB CE-155, 8KB CE-159, 16KB CE-161 or 2x16KB CE-163)
– ROMs or EProms stored between &8000 to &BFFF (that extends the system with Basic instructions)
– Pseudo ROMs stored between &0000 to &3FFF (like the 7,8KB CE-160 used to store custom invisible Basic programs)
– EProms stored between &0000 to &3FFF used to store invisible Basic programs

The EDTech ROM is in this last case.
But if you understand address decoding “&0000 to &3FFF” is only 16KB wide.
On this module there is a TTL 74LS73 IC. It’s a dual J-K flip-flop with clear.
It’s function is to select one of the two 16KB pages.
Open the Technical Reference Manual and look for memory configuration and /S3 signal.

On the PC-1500 this signal select a memory zone starting at &5800.
On the PC-150A this signal select a memory zone starting at &6800.
Nice, this can work with the two pocket computers.
On my schematics you can see it connected to the CLK pin of the Flip-flop.

Now examine the content of each 16KB page (only the beginning, the rest is the EDTech program)… lines 11, 40 and 41
1st page :
2nd page :

The POKE instruction writes a value to a memory case. By this way the program can swap the page.
Depending on the address it writes a 0 or 1 on the J and K entries and the clock push it to the Q and /Q outputs.

It’s a very nice design, isn’t it ?
I asked EDTech to get some informations and maybe a user manual.
They answered but nobody was able to help me.
Can you ?

Contact me if you have other “non Sharp” modules… 😉

TRAMsoft Gmbh, Swiss know-how ! (part 4)

It’s time to let Reto Ambühlerr describe his company, products and story :

TRAMsoft GmbH – History and Facts

1. The Name

The name TRAMsoft derives from the initials of the founders Thomas Müller and Reto Ambühler. It is written in 4 uppercase and 4 lowercase letters to reflect the fact, that the SHARP PC-1500 supports uppercase and lowercase letters. The previous models supported only uppercase letters.

2. The Beginning

The company TRAMsoft Ambühler & Müller was founded in 1983 as a general partnership, but its history goes back to 1980, when Thomas and Reto discovered their passion for programmable pocket computers while they were students at the University for Applied Science, then known as “Technikum Winterthur”. They used their Texas TI-59 to solve many problems in math, physics, electro technics and many other disciplines during their study. Thomas once even wrote a program to find the measure of German poems.
In 1982 SHARP released the BASIC programmable pocket computer PC-1500. Thomas and Reto became fascinated by this machine from the very beginning. Even though SHARP did not unveil the details about the internal programming, the two started to explore the operating system step by step. After many sleepless nights, they disassembled the complete operating system by a kind of reverse-engineering the operating system’s ROM. It turned out, that the PC-1500 was design for flexibility and extensibility at a very high degree. Thomas and Reto developed not only an external hardware that allowed to add new BASIC commands, but they also wrote their own assembler to compose the required software.
They continued to develop additional hardware and software for various purposes, even for industrial applications.

3. The Products

3.1 Toolkit

The TRAMsoft Toolkit was the first commercial product sold by TRAMsoft. The hardware consisted basically of an 8 kB EPROM and a frequency modulation/demodulation unit. The former could be programmed to store up to 4 different sets of BASIC commands, the latter supported writing and reading programs to and from a cassette recorder.
TOOL1 provided a set of additional BASIC commands for easier and more efficient editing, such as FIND and RENUMBER plus commands for modular programming.
TOOL2 provided 25 times faster save and load operation than the built-in CSAVE and CLOAD commands plus additional options to support modular programming.
TOOL3 was a collection of additional functions such as decimal – hexadecimal conversion, extended error handling, operations to manipulate variables including REDIM, string manipulation and more.
TOOL4 provided extensive support for statistics and so called “synthetical programming”. The latter means that the BASIC program could modify itself during execution.

3.2 Expansion Box

With the TRAMsoft Toolkit and optional devices from SHARP, users were faced with the problem, that they could not use more than one external device at a time. To overcome this problem, TRAMsoft developed the so called expansion box or E-Box for short. The E-Box provided four connectors, so users could connect up to four external devices at the same time. Each port could either be configured by switches or by software. For maximum flexibility, read and write access to each port could be controlled individually. This allowed to even connect devices which covered the same address range.

3.3 A/D Converter

Thomas and Reto always had been fascinated by data acquisition and process control applications. Therefore they developed a data acquisition interface or A/D converter for short. The first device, which became known as “Standard A/D Converter”, supported 8 input channels for data acquisition and 4 digital output lines. It provided up to 6 conversions per second with 12 bit resolution.
When the PC-1600 came out, even more sophisticated applications became possible and faster data conversion was needed. TRAMsoft developed the “Advanced A/D Converter” which supported up to 1500 conversions per second. It also had 8 channels and 4 digital output lines, but the number of A/D channels could be doubled with an optional extension which also added 4 digital input and 10 digital output lines. In order to read and store data at such a high rate, the software had to be written in machine language. It stored the data into a DIM variable so it could be further processed with programs written in BASIC. An optional program written in machine language even provided asynchronous data acquisition, which means a program running in the background collected and stored data while a BASIC program run in the foreground, both completely independent of each other.

3.4 Parallel/Floppy Interface

With the increasing number of programs and their growing size, a need for nicer printing and more comfortable storing arose. Both issues were addressed with the parallel/floppy interface. The parallel interface could either be used for input/output operations or to connect a printer with a parallel interface, also known as Centronics interface. The built-in software provided commands such as LLIST to print out program listings and LPRINT to print output from a BASIC program.
The floppy interface on the other hand supported storing and loading programs and date to and from floppy discs. The interface supported the Commodore VC-1541 5¼” floppy drive.

3.5 Memory Modules

The PC-1500 and the PC-1500A were both equipped with a slot which could accommodate a memory module with up to 32 kB capacity. TRAMsoft first developed a 32 kB memory module which could either be equipped with a RAM or an EPROM chip. The former provided additional space for BASIC programs, DIM variables and/or software written in machine language, the latter was suited to distribute software.
The PC-1600 was equipped with two slots, one could accommodate a memory module with up to 32 kB, the second even up 256 kB RAM. TRAMsoft offered modules from 32 kb to 256 kB, some even with a backup battery so they would no lose the data when removed from the pocket computer.

4. Some Applications

In the mid 80s, TRAMsoft started to develop a number of custom applications. Even 30 years later, some of them are still in commercial use! Others had been migrated to PC-based applications, either by TRAMsoft or by other companies.

4.1 Termites Counter

A member of the zoological institute of the University of Berne had the task to find out, how quick termites react to changes in the environment. He wanted to place up to 32 light barriers around a termites’ nest to count the number of animals heading in a particular direction. He placed some food at one spot and analyzed the changes in the moving pattern of the termites. Since he did his experiments at a remote location in Africa where no electrical power was available, he needed a system that he could run on a car battery. The PC-1600 plus a modified TRAMsoft parallel/floppy-interface was the perfect solution. TRAMsoft also provided the software to collect the data, store it on a floppy disk, to perform statistical analysis and to print out the results.

4.2 Berst

From the very beginning, TRAMsoft worked together with a company located in Biel which was specialized in robotics applications. They had tremendous skills in mechanics, but only limited experiences in electronics. One of the many projects we did together was an appliance to test the safety vent of commercial batteries. The goal was to apply pressure at two particular levels were the vent must remain seal and then increase the pressure until the vent breaks. The pressure where the vent broke must be within a certain range. They used a PC-1600 plus a TRAMsoft Advanced A/D converter to measure pressure and to control the pump. Many years later, TRAMsoft adapted the system to a PC based solution.

4.3 Resistor Tester

The goal of this appliance was to test precision resistors. A PC-1600 combined with a TRAMsoft A/D Converter was used to apply a high precision voltage to a resistor and to measure the current. The software computed the resulting resistance and tested whether the result was in the required range. A digital output line was used to indicate whether the resistor was ok or not.

Reto Ambühler

Thank you Reto !

Do you remember previous articles ?

Added to the menu : “Help needed”

Building this website to remind the worldwide story of the Sharp PC-1500 is a crazy hobby. We are in 2015, 33 years after the first PC-1500, and lot of informations are going to disappear in the next years. All the people having worked on the PC-1500 projects, all the club members, all the resellers, all the users are from 50 to 80 years old. Some contacts told me “i have cleaned my house and don’t have anything left”, “all is gone to trash some years ago”… That’s very sad, isn’t it ?

A few months ago i have installed a statistic tool and each month i can see the really nice result of 3000 unique visitors and 7000 visits ! Do we need better proof that the PC-1500 is still popular in 2015 ? NO ! Thank you to all my readers ! Some comments on the articles or guestbook are welcome 😉

But some help is needed to save PC-1500 related items and papers before they go trash !
This is the role of my “Help needed” menu. It tell how you can help me and what i’m currently looking for.

Thank you all !

CE-15A : Application programs for the Sharp PC-1500

This Sharp software pack is a very rare item for the PC-1500.
The flat box, with size similar to the PC-1500 box, holds a tape and a user manual.
This is a library with tools and games.


You can download the tape content with files in WAV and BAS to load with CE-150 or CE-158.
Download tape content

Help needed :
Do you have the user manual ?
Do you know another pack from Sharp ? CE-15B ?

Frank C. Odds : Probe! a disassembler for the Sharp PC-1500

Another gift from Frank C. Odds : Probe!

Frank tells us :

Writing PROBE! (ca. 1984) was the only time I ever made money from working with the PC-1500. The biggest problem with Sharp’s wonderful pocket computer was that it had no compiler. You wrote programs in BASIC, and when they ran, the computer painfully interpreted each step from BASIC, line by line, and thus executed the instructions.
In any computer processor, the ‘true’ inputs and outputs are bytes of binary symbols, e.g. 10011000 011011110 etc. No human brain can seriously contemplate writing complex programs this way, but if each 8 binary digits (each byte) is written as a hexadecimal number (the previous example would be 98 DE) they become slightly easier to deal with. A program written as a series of hexadecimal bytes poked into successive memory locations is described as ‘machine code’.
Machine code still requires a pretty giant intellect to put together hexadecimal bytes in a way that constructs a useable program. It would be handy to have a programming language less complex than BASIC, but which makes better sense than a string of bytes. Such a language is known as ‘assembler’. Its details depend on the precise way the computer’s central processing unit (CPU) functions.
The PC-1500 CPU works with three ‘registers’, X, Y and U, each of which can hold 2 bytes, an accumulator (A) and a small number of other components with names such as ‘program counter’, ‘timer’, and ‘carry flag’, but I’m trying to keep things here as simple as possible! Programming then becomes a sequence of loading numbers into various registers, getting the accumulator to work on them, and many remarkably small steps which, between them, perform the functions you want.
The bottom line: a high-level language like BASIC is fairly easy to understand as a series of English-language instructions. Assembly language — a lower-level language — looks like gobbledygook, but it is a labguage one can learn, and it gets much closer to the way the CPU truly functions.


In the early 1980s, Sharp published their Technical Reference Manual for the PC-1500. This gave a lot of information on the PC-1500’s hardware and software. Critically, it explained and detailed the instructions that could be handled by the CPU in both assembly code and its machine language equivalents. This made it possible for users to write complex programs in assembler, and to poke the corresponding machine code into the PC-1500 memory. The result was a program that ran many, many times faster than a BASIC program.
I loved the whole challenge of writing complicated programs in assembler and was (then) young enough to learn the language and remember the many commands. I must have spent many hours with the Technical Reference Manual at my side: many of the pages are now completely loose!
The Sharp Technical Reference Manual was a really nicely produced book. As well as very thorough descriptions of PC-1500 assembler language, it also showed how the PC-1500 memory (ROM and RAM) were laid out. What it did not provide was details of the Sharp proprietary machine code that interpreted user’s BASIC programs. Consider a line such as this…
10: INPUT “What is your name? ”; A$
You know that, somewhere in the computer’s memory, there is a machine-code routine that displays the string “What is your name? ” and waits for you to input A$, which is then passed somewhere to memory. But you have no idea of the memory address where that machine code starts to run.

Probe_Fig_1Fig. 1

So I wrote PROBE! It’s a kind of reverse assembler. When you run PROBE! you input a memory address and the program prints out the machine code that starts at that address. In fact, it does a lot more, because PROBE! doesn’t merely read the hex bytes: it reverse-interprets the machine code so a sequence of assembler instructions is printed out by the CE-150. The user can even select an option for PROBE! to follow branches and jumps in assembler, in which case the output should reflect precisely the way a particular routine carries out its function. The catch is that you have to be lucky or accurate in your chosen starting memory address, or the output will not be helpful. It’s the equivalent of translating DNA codons out of phase.
When I’d finished putting PROBE! together, I contacted Ronald Cohen, who produced the monthly magazine called Status 1500. PROBE! was far too long and complex a program for Ronald to print it in the magazine, and for readers painfully to copy it to their PC-1500s. The answer was to sell the program ready loaded on cassettes. (It may seem incredible, but the idea of paying for ready-to-run software was still pretty novel in the mid-1980s!)
Ronald advised I should charge a high price. I was unhappy to do so: I was unsure how well the tape cassettes I produced would run on other people’s set-ups, and I have never really been an entrepreneur. I advertised the program in Status 1500 at £4 per cassette. To my amazement, I received about 30 orders, all within just a couple of weeks.
Let me end this story with a confession. I hope the people who bought PROBE! had more success with it than I did myself. I quickly tired of randomly guessing where built-in routines might start, and ultimately I just developed the skill to write my own assembler code. As far as I can recall, I never used any output from PROBE! to help me develop my machine-code programs!

You can download Probe! files here :
User manual, Bas file, Wav file

Thank you very much Frank !!!
Readers, enjoy this gift and thank you for your feedbacks.

Fig. 1. The opening of my machine code program EASI-THOUGHT from the hand-written original. In the left-hand column I have noted what a routine does. The centre column shows the instructions in assembler, and the right-hand column gives the appropriate machine code hexadecimals, as copied from the Sharp Technical Reference Manual.

CE-158 : Do you need some tool ?

Do you need some tool to use easily your CE-158 ?
My new software is now in BETA version and will be soon available.

Features ?
Communicate with your CE-158 using CSAVE, CSAVEM, CSAVEr, CSAVEa formats.
Application menu reflects your directories for .BAS and .BIN files.
Syntax editor with completion and code snippets.

Currently testing the BETA 0.1 and all works great.

Features to include ?
Data exchange with PRINT.
Basic decode routines when using CSAVE

Do you want some other features ?

Sharp CE-158 : RS-232C and parallel interface (Part 2)

It’s now time to connect your favorite pocket computer to a big Personal Computer !

First, we have to build the good cable.
CE-158 side it’s a 25 pins male connector.
PC side it’s a 9 pins male connector.

Here is the schematics

Ok ? Now we make the test on a very well known operating system : Windows XP Pro.
(But my version is in french.)

First locate the Hyper Terminal application :

When it opens you’re prompted to name the new connexion.

Choose COM1 as the connexion mode :

And set the parameters and validate :

On the parameters tab click on “ASCII configuration” :

Then check the boxes as on this picture :

Now it’s time to try receiving something from the PC-1500…

Click on “Transfer” menu and on “Capture text” :

And set the filename to CAPTURE.TXT on the primary drive’s root :

Go on the PC-1500 keyboard and type the following program and finish by the CSAVE command:

The lines 10 to 30 are send to the PC trough the CE-158 and you can see the data on the Hyper Terminal screen.
When the CSAVE command disappear from the PC-1500 screen it’s time to stop data recording.

Please control the file C:\CAPTURE.TXT content :

Is it ok ? GOOD ! Close the Hyper Terminal application.
I show you here the hexadecimal content :

Now we have to test data transmission from PC to PC-1500.
Are you ready ?

Open the DOS box and set the COM1 parameters :

If you get an error message then verify that Hyper Terminal is closed.
Otherwise you’ll get the result :

Go to the PC-1500 and update the program to this one and finish by the CLOAD command.

And on the PC side send the CAPTURE.TXT file to the COM port :

Now control on the PC-1500 that the line 20 ends now by CO 😉
Is it ok for you ?

The swiss adventure : Lukas ZELLER

As you understand my research to tell the story of the PC-1500 does not have borders.
I have many things from Germany. And my previous donor, Xavier Fojud brought me a link between France, Germany and Switzerland. In the latter I already had some contacts but the documents he had generously offered allowed me to connect some names.

Last week I received a gift of Lukas ZELLER.
He has been active Swiss side of the PC-1500 with his diary “Tips & Knife” and his assembler ZASM-S.
So here is his generous gift:


– PC-1500 Expanded to 28KB of RAM + switch to activate a 4Mhz quartz.
– PC-1600 the first version with integrated memory expansion to reach 96Kb.
– CE-150 Printer
– Sharp software modules CE-510A, 502A and 505A
– CE-155 modules whose components were removed to tinker extension of PC-1600
– CE-162E interface
– PC-1500 Technical reference manual
– PC-1600 Service Manual version SME1
– 3 user manuals for software that I’m trying to get.
– 2 prototype cards for male connector.
– ZAMS-S user manual developed by Lukas.

These PC-1500 and PC-1600 contain something not trivial that I will reveal later here in the series of articles on Lukas Zeller.

A huge thank you to Lukas!