Site icon xiphod

Sharp PC-5000 Archive Notes

Advertisements

(click on images below for larger view)

A video covering this system is now available here!

TABLE OF CONTENTS


Introduction

In November 1983, Sharp released a “portable office” system called the PC-5000. This had a 640×80 dot LCD (no backlight) and 128KB bubble memory cartridges, using an Intel 8088 CPU at 4.77 MHz running MS-DOS 2.0. This was primarily sold in Japan, Europe (Germany, France), and UK markets, but was available in the US for about $2000 (until about 1985, which then the Sharp PC-7000 was released).

A main unique feature of the Sharp PC-5000 was the attachable full-page (8.5″x11″) line printer, that used a “thermal head” and didn’t rely on liquid ink (see here). The PC-5000 is also one of the only few systems to have “bubble memory” cartridges which were like very early version of Compact Flash (CF) cards, where CF didn’t become popular until over a decade later.


Significance of the PC-5000

This overall vision has parallels to Paul Friedl’s vision of the IBM SCAMP and HP9830 (products from 1973, which was that of a portable system that included a printer. But that vision was now better realized with improved techniques (less weight) and technology.

The first “clamshell” design laptop was the GRiD Compass released in April 1982, using an Intel 8086 CPU and selling for $8,150. Ads claim GRiD had their own in-house operating system, but also supported MS-DOS 2.0. It was expensive due to use of the 320×240 plasma screen and bubble memory.

While the SHARP PC-5000 was far more affordable than the GRiD Compass, the PC-5000 was essentially obsolete as soon as it was released as a product. It was eclipsed by products such as the Tandy Model 100 or NEC PC-8201 that were released at about the same time (which sold millions of units, whereas the PC-5000’s has become an obscure and difficult to find system). That said, the PC-5000 wasn’t a complete flop and continued to be sold for about two years. SHARP continued to make similar class systems throughout the 1980s.

The PC-5000 is an interesting talking point as a product that did fill a need:


CATEGORY 1 IMAGES: Exterior shots

More exterior shots, with printer and disk drives:

Shots-of-the-screen: (screenshots!) The LCD screen of the Sharp PC-5000 is very reflective, making it difficult to image or video. It has no built in “Back Light” to help illuminate the display (as was found in later LCD panels). So far, no way has been determined to intercept the video signal and relay it to a large screen.

The screen images below show: (1) typical MS-DOS 2.00 startup from the bubble cartridges and (2) if you remove both the BASIC ROM cartridge from the bottom of the system and don’t insert any Bubble Memory cartridge, the system will boot to an internal demo program (which must reside entirely in the system ROM).


CATEGORY 2 IMAGES: Bottom of unit

There are several interesting things to note on the bottom of the system.

US PATENT 3902169
(Drive system for liquid crystal display units; origins c. 1972, expired in 1992)
US PATENT 3976994
(Liquid crystal display system; origins c. 1973, expired 1993)

CATEGORY 3 IMAGES: Bottom panel cartridges (ROM and RAM)

On the back of these modules, there is a small screw – so these can probably be easily opened.



CATEGORY 4 IMAGES: “Tear down” (while attempting to replace internal battery). I was not able to successfully observe or swap out the internal clock battery (this is different than the main system battery, which is in a compartment towards the back), but I did learn the process of doing so, and then did manage to get the system re-assembled and running again.

The system is fairly difficult to service. The mainboard itself is “upside down” making it hard to see the components. Like most RTC modules of systems of this era, the battery should let the system remember the date and time (even after powering off the system).

Separating the top half is easier if the LCD display is pivoted full open (placing the system on its side for balance while doing so). A wide ribbon cable goes to the printer, while a narrow orange thin-cable goes off towards the LCD panel.

CATEGORY 5 IMAGES: Documentation Related

Images from the SHARP Service Manual (CODE: 00ZPC5000S/ME)

These are a few highlights from the SHARP Service Manual, which includes fold out schematics of the various systems of this device. There are also many “schematics colorcharts” in a mixture of green and red, which looks like something out of Star Trek.


Disk Drive Support Notes

I’ve started a discussion here to try to determine a modern solution to use as a disk drive for the PC-5000. But as a summary:

Note, I did successfully run MS-DOS 3.X era software on the SHARP PC-5000 MS-DOS 2.00 boot up:

QMATH.EXE is a command line utility I wrote in the early 1990s to compute math expressions from the command line. While I’ve lost the original source code, it was likely done in Turbo Pascal. Years later I found a compiled EXE on a 3.5 floppy we had in storage. This executable does run on the SHARP PC-5000 booted to MS-DOS 2.00.


Creating a Boot Disk (failed attempt)

We’ve been unable to locate a copy of the original SHARP PC-5000 MS-DOS 2.00 boot disk that came with the CE-510F external disk drive unit. Here I’ll outline some steps we tried to re-create a viable boot disk, and report on how they ultimately did not work:

For context, be aware of the following…

Attempt #1: Using SYS.COM found on the PC-5000 bubble memory (that has a partial MS-DOS 2.00 bootable configuration)

Ideally what we would want is everything on the bootable bubble memory cartridge to be copied and arranged identically onto a 5.25 floppy disks. That is, FORMAT a disk, then SYS from the bubble memory cartridge to the disk drive. None of the bubble cartridges (that I have) has a FORMAT.COM program, but there is a SYS.COM. Per the above section, we used IMD to FORMAT /8 a disk (that is, we wrote another DOS 2.11 image that was in that format), and then ran SYS.COM which reported a successful transfer – but the resulting disk was still NON-SYSTEM DISK and did not boot.

Attempt #2: FORMAT.COM from MS-DOS 1.25

We came across the MS-DOS github page which has MS-DOS 1.25, and we read rumors that the PC-5000 actually had MS-DOS 1.25 in ROM (but no confirmation on that). The github site includes a pre-built bin folder with the MS-DOS 1.25 version of FORMAT.COM . We transferred that to a pre-formatted 5.25 disk, and named the file FORM125.COM (to help distinguish it from any other version of FORMAT.COM). We ran that on the PC-5000 from the D: drive (as FORM125.COM with no arguments), which it prompted to replace the disk with the target disk to be formatted (that is, it seems to assume you want to format the same drive you are on – consider this software is from a time when it was a luxury to have even a single disk drive, let alone multiple of them in the same system). However, the software then seemed to insist on wanting to format the A: drive – which is our bubble memory. We took the bubble memory out of its slot, to avoid possibility of it being formatted. Then we tried to proceed on the FORMAT 1.25 runtime, but it just reported Overflow errors and halted the system.

We then tried this again, doing “FORM125.COM C:” while running from the D: drive. The program asked to insert a disk into drive C: and “strike any key when ready”. After pressing a key, the system just halted with no apparent commands to either disk drive (i.e. no drive lights came on to indicate any kind of activity was being commanded).

NOTE: The MS-DOS 2.0 files on github (source and bin) did not include a pre-built FORMAT.COM (there was a FORMAT.DOC with notes describing what OEM vendors are expected to do in implementing a FORMAT program; so, there was no FORMAT.ASM either)

Attempt #3: Using SHARP MS-DOS 2.11 5.25″ Disk As-Is (320KB Formatted)

We found a SHARP MS-DOS 2.11 image (archive.org) and had hopes that it would be compatible, or suitable, for the PC-5000. Unfortunately, no, the PC-5000 would not boot from this disk (“NON-SYSTEM DISK”), the image seems to be for a later model PC-4500 series. CHKDSK.COM reported 3 hidden files (which the github MS-DOS source code does explain why it is 3). Attempting to do SYS.COM (from the bubble cartridge to the MS-DOS 2.11 formatted disk) did not work, the system still reported “Incompatible system size.” (this makes me feel that while the Sharp MS-DOS 2.00 can read the 320KB format, it is still not formatted properly per what the system expects of a boot disk — which recall the bootable bubble cartridges are something different than 320KB; they were sold as 128KB storage, but it seems to me they are holding up to 300KB).

Attempt #4: Using SHARP MS-DOS 2.11 FORMAT.COM

So, we thought to try and use the FORMAT.COM program on the MS-DOS 2.11 disk, to do a FORMAT D: /S (with /S to transfer the system files of the bubble memory cartridges to the newly formatted disk). However, the FORMAT.COM would say “Incorrect DOS version”. To get around this, Fred Cisin of cc-talk reminded us of how easy it is to use DEBUG.COM to get around the version number check (notes below).

Use the U command ("UNassemble")
find where it has
MOV AH 30
Int 21
CMP AX, 1e03  or whatever.  (3.30)

If the next line is JNZ . . .  or JNE ...,,  replace that with NOPs, or a
JMP to the next instruction after the JNZ

If the line is JZ or JE, . . . repace that with JMP

OR, change the CMP AX, 1E03 to CMP Ax, 0002
IFF VER reports 2.00


DOS stores the major version number internally as a number which function
30 returns in AL, and a minor version number whigh it stores as if it had
been a 2 digit decimal number returned in AH

Therefore, your 3.30 is not 3 - 3
It is 3 - THIRTY

Yes, 3.30 thinks that its version THIRTY of DOS 3!

By removing or bypassing the comparison of version number, it will now
NEVER give "INCORRECT DIS VERSION"

Also, the following site had helpful reminders and examples of how to use DEBUG.COM: DOS DEBUG Commands (bloomu.edu)

The DEBUG.COM from the Sharp MS-DOS 2.11 disk does run on the PC-5000 as-is. The steps for “patching” FORMAT.COM are shown here:

A:\> debug FORMAT.COM
U (unassemble), looking for MOV AH,30   INT 21
  (keep repeating U to list subsequent addresses)

As Fred outlined, there is an MOV AH,30 and INT 21 not far into the binary. And in addition, there is a CMP AX,020B (where 020B corresponds to version 2.11 as expected). So, we just change the 020B to 0200 to match our version of DOS (note this patch was done on a borrowed 386 system, for the convenience of having 25-row screen, but this work could have been done natively on the PC-5000 itself):

a 115
"CMP AX,0200" (the new code we want)
U 111 11D  (to verify the change is where we want)
W  (write the changed content back to the file)
Q  (return to MS-DOS prompt)
debug FORMAT.COM
u 111 11d    (this is just to reload the file and verify the changes are as expected)

The did get past the “Incorrect DOS version” and the FORMAT.COM (with no command line arguments) would show the standard “help” information on how to use the program (so it was re-saved as a valid .COM runtime). However, when using FORMAT C: and any set of arguments, the program would then halt the system (with no activity on the disk drive). So unfortunately, this Sharp MS-DOS 2.11 build of FORMAT.COM is not compatible.

Attempt #5: Using FORMAT.COM from MS-DOS 3.30

Just to give it a try, I tried the same approach using a FORMAT.COM from a later MS-DOS 3.30 disk. Finding the AH,30 INT 21 was much later into the file (around 0x03XX offset), but it did compare the expected version (1E03 corresponding to 3.30). Though this version of FORMAT.COM does not exchange AL,AH, and so the comparison is “reverse” from what we would expect. But the principle is the same: replace (alter) address 315 with CMP AX,0002 to match our version of DOS (see the image below which shows the disassembled code associated with address offset 315h). This was done to a copy of FORMAT.COM which we called FORM330.COM

While this gets past the “Incorrect DOS version,” however actually applying a format ends up with the message “Cannot format on an ASSIGNed or SUBSTed drive.” Which does somewhat make sense: the A: and B: drive letters are reserved for the bubble memory cartridge, while the external drives are probably (internally) mapped to C: and D: (making them appear as assigned/subst’d drive letters). The actual Sharp MS-DOS 2.00 probably gets around this with its own custom handling of the disk drive interface. But that is all speculation on my part; in any case, the FORMAT.COM borrowed from MS-DOS 3.30 did not work for us either.


ATTEMPT #6: Find an original SHARP MS-DOS 2.00 Boot Disk!

Thomas of the cctalk mailing list graciously provided a Greazweasel produced image of the original SHARP MS-DOS 2.00 boot disk. Using DiskImage (IMD) once again, I was able to write these images to a 360KB 5.25″ disk. This was using the same settings as mentioned earlier with the Eagle MS-DOS 2.00: Sides Two, Double-step On, and 250kbps set to 300kbps.

This image contains the FORMAT.COM compatible with this system, that can make another bootable 360KB (default) or 320KB (“/8”) 5.25 disk, and also the “/s” System Disk option also worked. i.e. “FORMAT d: /s” or “format c: /8 /s” You can also copy this FORMAT.COM to the bubble cartridge and have it available there.

So, I am unsure what SYS.COM is doing on this system, because it doesn’t result in an actual bootable disk. I am still unclear on exactly how the MS-DOS ROM works on this system. These boot disk do not appear to have the traditional MS-DOS hidden files of IO.SYS and MSDOS.SYS, they just seem to have COMMAND.COM at a specific sector disk location.

It’s exciting to be able to boot from floppy disks, since if anything should happen to the bubble cartridges (or if they just aren’t available for some reason), the system is still usable. But also, this SHARP specific boot disk was the only place that had a FORMAT.COM compatible with this system (for making additional bootable disks). These boot disk can have AUTOEXEC.BAT like any other typical version of MS-DOS.

In time, we’ll get these images on an appropriate archive.


On MS-DOS 2.00 Hidden Files

Per CHKDSK.COM, the bootable bubble cartridges have six hidden files. While any MS-DOS boot disk we’ve found has only 2 (or 3) hidden files. This made me think more about when the idea of file attributes and hidden files in MS-DOS and how that is handled.

In MS-DOS 2.00 we could not use /H or /A:H to list the actual hidden files. I also tried using ALLFILES.COM and SATS.COM (from here), and my own CDIR.EXE ColorDIR. But none of these tools worked for MS-DOS 2.00 (ALLFILES.COM and CDIR.EXE would lock up the system, and SATS.COM is strictly for only changing attributes given a known filename).

Looking though the available MS-DOS 2.0 source code, there is a reference to the data structure and where the hidden flag offset is located. And the IBM DOS 2.0 manual references to a more technical reference manual that describes more about accessing FCB (file control blocks), see here In short, there does not appear to be any easy or out-of-the-box way to list hidden files in MS-DOS 2.00


voidstar’s Sample PC-5000 BASIC Programs

For VCW SW 2023, I presented my PC-5000 to the public and had a set of “self running BASIC programs” I had written, demonstrating various capabilities of the system. I’ve pondered some ways to get the program “off the system” – such as across RS232, or the disk drive, or even printed.

One issue is that the programs are stored in a Microsoft tokenized BASIC format, so a direct transfer is the .BAS files isn’t practical (but it is possible to de-tokenize such a file). But then I remembered reading from the IBM PC manual, Microsoft BASIC had a “,A” option on SAVE to write the program in a regular ASCII format. Per page 5-22 of the PC-5000 User Guide, the SAVE command on this version of BASIC has the same feature.

So, I pondered some exotic ways to do this transfer:

I went with Option 3, since I wanted to verify the FTP Server on the 386 was working. And sure enough, I was able to get the ASCII version transferred over. The following BASIC is suitable only for the SHARP PC-5000 (noted in case someday someone is inclined to build a PC-5000 emulator). I suppose we could look into how portable it might be to the actual IBM PC or GW-BASIC. Notice the exotic way of doing a 10 second timer. One might also be curious what the PLAY MB audio sounds like. Perhaps a video of these demos someday… TBD.

1 RANDOMIZE(100)
2 N=0
10 COLOR 7,0
20 CLS
30 X = 1
40 T=10
50 KEY OFF
60 WIDTH 40
70 TIME$="00:00:00"
80 E$=MID$(TIME$, 7,2)
90 E=VAL(E$)
100 D = T-E
110 IF D = 0 GOTO 160
120 X=X+1
130 LOCATE 4,10
140 PRINT "next demo in";D;"seconds "
150 GOTO 80
160 WIDTH 80
170 N=N+1
172 IF N > 5 THEN N=0
174 IF N>1 GOTO 180
175  PLAY "MB T240 L32 E5E5f5g5g5f5e5d5c5c5d5e5e5d9d1"
180 IF N = 0 GOTO 1000
190 IF N = 1 GOTO 2000
200 IF N = 2 GOTO 3000
210 IF N = 3 GOTO 4000
220 IF N = 4 GOTO 5000
230 IF N = 5 GOTO 6000

1000 WIDTH 80
1005 CLS
1020 FOR I = 1 TO 64
1030 LINE(I*10, RND*80)-(I*10+10, RND*80)
1040 NEXT I
1050 GOTO 10
1900 GOTO 10

2000 WIDTH 40
2005 CLS
2010 FOR I = 1 TO 28
2020 CIRCLE (RND*640,RND*80),RND*50
2030 NEXT I
2040 GOTO 10
2900 END

3000 WIDTH 40
3010 CLS
3012 PRINT:PRINT:PRINT
3013 PRINT
3015 PRINT " P  C  -  5  1  0  0     1  9  8  3"
3020 FOR I = 1  TO 7
3030 FOR Y = 20 TO 60
3040 PSET(I*48, Y)
3050 NEXT Y
3060 NEXT I
3065 PRINT
3070 PRINT " 4  0  c  o  l  u  m  n"
3080 FOR I = 1 TO 20
3085 LOCATE 1,1
3090 X = X + SIN(I):REM waste time
3095 PRINT X;:PRINT" ";:PRINT RND;:PRINT"          ";
3100 NEXT I
3900 GOTO 10

4000 WIDTH 80
4010 CLS
4015 Z=0
4020 X=0:Y=40:Z=Z+1
4022 IF Z > 4 THEN GOTO 10
4025 DRAW "b m 0,40"
4030 A=INT(RND*64)+3
4032 DRAW "r=a;"
4034 X=X+A
4036 IF X > 639 THEN GOTO 4020
4040 D=RND*100
4050 IF D > 50 GOTO 4140
4060 Y2=Y-INT(RND*20)+3
4070 IF Y2 < 0 THEN Y2 = 0
4080 D=Y-Y2
4090 DRAW "U=D;"
4100 Y=Y2
4110 GOTO 4030
4140 Y2=Y+INT(RND*20)+3
4150 IF Y2 > 79 THEN Y2=79
4160 D=Y2-Y
4170 DRAW "D=D;"
4180 Y=Y2
4190 GOTO 4030

5000 WIDTH 80
5010 CLS
5020 FILES
5030 PRINT "Sharp PC-5000 can run MS-DOS programs! (up to 256KB RAM)"
5035 FOR D = 1 TO 4
5040 FOR I = 1 TO 80
5050 LOCATE 8,I
5060 PRINT "#"
5070 NEXT I
5075 NEXT D
5080 GOTO 10

6000 WIDTH 80
6010 CLS
6020 FOR I = 1 TO 255
6030 PRINT CHR$(I);:PRINT " ";
6040 NEXT I
6050 GOTO 5035

SuperComm and WiModem232 (TBD)

While I’ve loaded SuperComm and did confirm a WiModem232 can work with this system, I don’t have any images yet of that. [ TBD ]


About the Printer

Per the manual, this printer is capable of printing on both plain-paper and thermal-paper.

For sample video of printer in operation, see:
Sharp PC-5000 printer sample (first printing in over 30 years!) – YouTube
https://www.youtube.com/watch?v=adn0O2QnN4s


U.S. Advertisements

I haven’t yet come across the PC-5000 advertised in PC Magazine, but I did find several references mentioned in BYTE Magazine.

BELOW: BYTE magazine – December 1983 pg342

BELOW: BYTE magazine – August 1984 pg189

BELOW: BYTE magazine – December 1984 (bottom left)

References:

Sharp computer series similar to the PC series)
https://original.sharpmz.org/

A user with a nice summary of Sharp PC-5000 photos and images:
https://electrickery.nl/comp/pc5000/

Atari magazine review of the PC-5000: (January 1984)
https://www.atarimagazines.com/creative/v10n1/55_The_Sharp_PC5000_a_desk.php

Images of CE-510F floppy drives (tear down) paired with MZ-1E05
https://www.nightfallcrew.com/12/05/2013/sharp-mini-floppy-disk-drive-ce-510f-mz-1e05-boxed
The CE-510F user manual:
http://www.vintagecomputer.net/fjkraan/comp/pc5000/doc/CE510F_floppy_drive.pdf

1984 Data Decisions article of various microcomputers, including the PC-5000:
http://bitsavers.informatik.uni-stuttgart.de/pdf/dataDecisions/1984_Microcomputer_Systems/Vol3_0980.pdf

Exit mobile version