Showing posts with label PC-8401. Show all posts
Showing posts with label PC-8401. Show all posts

Wednesday, November 20, 2019

The NEC PC-8401 Reexamined: Part 2

Leave a Comment

RAM Expansion Cartridges

One of the shortcomings of the NEC PC-8401 is the lack of RAM. By default the computers base 64k is divided in half between file storage and system memory. While 32k is plenty for running the software available in ROM, this limits options when running other software that may require large amounts of memory. Conversely the remaining 32k of RAM dedicated to file storage as a RAM disk places similar constraints on user file and program retention.

Fortunately memory limitations could be alleviated with the addition of RAM expansion cards. These RAM cartridges were to be available in 3 sizes, 128k, 64k and 32k. Rather than adding directly to available application memory, the expansions are used as RAM Disks and must be formatted by the Operating System before use. Once the additional storage is available the PC-8401s base memory may be configured to use the full base 64k as application memory or you may keep existing 32k shared memory split.

No RAM Expansion Attached
32k: Applications RAM
32k: RAM Disk Drive A:

RAM Expanded Machine Option 1
32k: Applications RAM
32k: RAM Disk Drive A:
32/64/128k: RAM Disk Drive B:

RAM Expanded Machine Option 2
64k: Applications RAM
32/64/128k: RAM Disk Drive A:

The PC-8406A 32k RAM Cartridge

The PC-8406A 32k cartridge internals are relatively compact, containing 74 Series logic chips and 16 D446G-15 NEC 2K X 8-BIT SRAM chips mounted on both sides of the circuit board. The SRAM contents are maintained by a CR2032 lithium battery; during battery changes the carts can be powered externally via a 5v barrel jack. Interestingly for the time, just about all the chips contained on the PCB are SMD variants.

The PC-8406A 32k RAM Cartridge.

Unfortunately the PC-8406A 32k pack is on the smaller side of useful, and probably best as a temporary storage device for moving files around. It's not a serious contender as a mass storage device. Even by the file and program sizes of the 1980s it's small. You could for example install MS BASIC on the drive, but then you have very little storage space left for saving programs.

Underside of the PC-8406A 32k RAM Cartridge.

Niggling issues with the NEC PC-8401s overall design choices only increase from there, being that other mass storage devices available of the computer such as the PC-8431A Micro Floppy Disk Unit make no provision for using the RAM carts at the same time, and even the CRT adaptor precludes the usage of the RAM cart as the PC-8401's expansion port provides no means of connecting multiple add-ons.

Effectively there is no easy method of copying the contents of the RAM cart to less volatile floppy disk media. The limitations of the 32k cart apply to a lesser extent to the 64k and 128k expansions, however due to how the PC-8041's memory management works the higher rated cards are inherently more useful as storage mechanisms to begin with.

Severe limitations and all, the RAM carts do help turn the base unit into a more practical computer. Even the 32k cart certainly enhances the PC-8401 user experience, especially in its predicted role as a word processing and spreadsheet powerhouse.

See all entries for this project:  Part 1Part 2



Read More

Friday, August 09, 2019

The NEC PC-8401 Reexamined: Part 1

16 comments
A few years back I came across an NEC PC-8401 and proceeded to write up a number of articles during a Retro Challenge month on the machine. Going by blog statistics since RC2017 ended, the NEC PC-8401 is just about as popular in 2019 as it was in 1984. Which is to say not at all. A sad state of affairs then, unlikely to be remedied by further posts concerning this laptop-esque computer. Still, no harm in trying is there?

NEC PC-8401 with PC-8431A, PC-8441A & PC-8406A Expansions

A quick re-acquaintance With the PC-8401

For those who haven't read previous articles on the subject; the PC-8401 series of computers was one of NEC's attempts at introducing portable computing to the business masses. It's main focus is productivity applications, with Wordstar-To-Go, Calc-To-Go, Filer (card filing program) and telecommunications software built into ROM all spring boarding off a CP/M 2.2 OS core.

On the hardware front the 8401 comes with a Z80A CPU, 64k battery backed static RAM (this is shared between RAM and RAM Disk), a rather splendid mechanical Alps keyboard and a just reasonable 80 column x 16 line reflective LCD display panel. Additionally some versions came with a built in 300 Baud modem (sadly not much use today).

When at home or in the office, the machine is powered externally via a suitable 5v to 9v power brick. But what good is a laptop if you can't use it at the pub? Four C Cell batteries answer this pressing need, providing portable power while additionally retaining computer settings and program memory.

Not Quite the Standalone Computing Powerhouse

There are 2 major issues with the PC-8401 as a standalone laptop computer. Firstly and most importantly is the lack of physical memory. While the computer has 64k, 32k is devoted to file storage. This is just enough to keep some documents and spreadsheets stored on the device, but severally restricts what ever else you might like to store on the computer.

Secondly, the screen is problematic, it is usable sure, but it isn't great by any stretch of the imagination. The contrast is poor, and compared to the LCD panel clarity of something like the Tandy model 100 it is not up to the task as a main display for extended periods of time.

It's the Peripherals that Make the PC-8401

It  is the bewildering array of peripherals that lift the PC-8401 onto another level. Memory expansion modules, disk drive adapters and CRT monitor modules turn the basic unit into a fully functional C/PM workhorse. Turning the humble PC-8401 into just the kind of computer you'd want if determined to look oh so very serious about your office computing in 1985.



Perhaps the most valuable peripherals are the Disk adapter, CRT/disk adapter and memory expansions unlock the 32k constraints on storage. The base memory can be configured to use the full 64k, with all storage being taken care of by 3.5" DD disks or the memory expansion modules.

OK so Why the Renewed Interest?


Up until now I've not had more than the base unit to play with, and unfortunately even that started to suffer from some LCD problems with the conductive backing peeling of the panel. Luckily, over the past few months I've managed to secure a number of the much vaunted peripherals and a mostly working LCD panel.

So with a (mostly) working LCD panel in place, we can begin exploring the following over the next couple of blog entries:
  • PC-8406A 32k RAM Cartridge
  • PC-8441A CRT/Disk Adapter
  • PC-8431A Micro Floppy Disk Unit

I can confirm that the PC-8441A and PC-8406A are working just fine, however the PC-8431A is yet to be tested as it's a USA version with the wrong power supply for Australia. Not a huge obstacle, although it has delayed testing.

NEC PC-8401 with working PC-8441A CRT/Disk Adapter
In Part 2 we'll begin getting to grips with the expansion units and some of the issues I have with them. This all promises to be quite interesting, hopefully serving to bring this unique CP/M laptop somewhat out of obscurity.

See all entries for this project:  Part 1Part 2



Read More

Monday, January 22, 2018

Mystic BBSing with WiModem232s Zeddynets and Pi

3 comments

Or Networking Disperate Retro Computers?


I've been meaning to write something about the ZX81 Ethernet adapter Zeddynet for a while now, but hadn't got around to it for various reasons. In the last week or so another more general purpose retro network device in the form of a Serial to WiFi modem / network adapter, the WiModem232 crossed my threshold rekindling ideas around networking old computers.

Now we have the basis for a slightly confused and conjoined blog post, one that ends up being not quite a review, mostly not a tutorial and a slightly random collection of ideas on network hardware and software, in which I get a number of ancient machines on-line connected to a BBS, a BBS that ends up being my own local BBS.

Some Networking Hardware Required


Now for a brief look into the networking devices I'm using. Both interfaces are specific to my needs (and small retro collection), the WiModem232 is certainly of much use to the general retro community, where as the Zeddynet is obviously of more limited one machine appeal.

Zeddynet - for a ZX81


Starting with Zeddynet and the ZX81: The Zeddynet board mounts onto a ZX81XT extender / extension board, and combined plugs into the ZX81s expansion bus. The card is quite tall with the Ethernet port located at the top. This arrangement is a little cumbersome, particularly once a network cable is plugged as the cable and the card tend to get in the way of a low-ish sitting desktop monitor. Still we're about to plug a ZX81 into a network, a few aesthetics issues and minor viewing discomforts are hardly of major issue compared to the achievements realised.

Zeddynet Interface
Available sporadically from and designed by the German ZX-Team, Zeddynet as the name implies connects a humble ZX81 to a TCP/IP network via Ethernet cable. Zeddynets first appeared back in 2012, I procured mine mid 2017, unfortunately no more have been produced since then (at the time of writing). Still, keep an eye out on SinclairWorld forums should you desire a fully assembled Zeddynet.

In order to configure and use the Zeddynet expansion on the ZX81 some software is required. At minimum in order  to get a ZX81 connected to online BBSs software in the form of ipconfig and telnet are required. Telneting is only one small part, there are web-browsers and network file managers and more. The German Sinclair forum.tlienhard.com has links to all software and sources.

WiModem232 for Anything with a Serial Port


Around the middle of 2017 Paul Rickards released the WiFi232 Internet Hayes Modem for retro computers, the perfect solution for networking old computers. Sadly the device has remained sold out for months, and may now be permanently unavailable. Luckily and possibly inspired by the original WiFi232, two new solutions have recently hit the market from CBMStuff, the WiModem232 and WiModem232 w/OLED.

WiModem232 w/OLED display
Functionality wise, the only real difference between the WiModem232 and WiModem232 w/OLED is the rather obvious OLED screen. The choice of adapter comes down to a desire for a handy information display or a need for the milliamp power savings brought about by not including it. Note that on both variants an RGB LED provides a status indication allowing you to easily live without the OLED screen.

The modem is configured and connected to a WiFi network by Hayes Modem command extensions. Similarly Hayes commands are used to connect to telnet instances on a local network or further a field.

In order to use the WiModem232 simple terminal software is required. The machines I've tested the WiModem232 with (TRS-80 model 100/102 and an NEC PC-8401) have terminal software built into their ROMs, in all cases this worked perfectly.

BBSs Are Out There


Dial up BBSs were a major thing before the Internet age, but sadly faded into slight irrelevance in the late 90s, but now they're back and on the Internet. In fact there is a whole new (old) world out there waiting to be connected.

Perhaps the best resource for finding BBSs is the Telnet BBS Guide. Telneting to any of the BBSs listed from a modern PC is fairly trivial, being able to telnet from a vintage micro computer is (whoo hoo) exciting.

Testing Interfaces a DIY BBS


Despite the wealth of BBS out there, I wanted to try out Zeddynet and the WiModem232 on my micros' without burdening the various online resources. Possibly I'd rather like keep the BBS running, with a view to opening it up for others to log on at some point. For these reasons I decided to to deploy a Raspberry PI and install some BBS software.

The Telnet BBS Guide helpfully lists the software being used by various BBSs in it's site registry. Of the software listed 'Mystic' BBS seems by far the most popular and actively maintained kit going, plus it has Raspberry Pi versions available that work on all network enabled Pies. A logical choice then.

The setting up 'Mystic' is as easy as unzipping, running a minimal installation, and then starting a BBS server. In less than five minutes you can have a bare bones BBS up and running and telnet-able into. After that 'your mission, should you choose to except it', exposes a whole rabbit hole of configurations and text files to modify in order to tailor and craft a unique BBS experience.

Crafting An 8 Bit Mystic Experience


In its default state Mystic targets computers with 80 columns and full ASCII / ANSI support. This is great for Amigas, Atari STs and IBM clones, not so great for 8 bits micros. This situation is fixable, but it does require a full redesign of the built in theme. The task is not difficult, it does though require some dedication.

All BBS layout files can be altered with tools built into Mystic, thus allowing for complete customisation of a BBSs look and feel. It is even possible to create ASCII and ANSI versions of pages servicing general fallback requirements. As a general design rule in targeting older 8bit machines I found it wise to limit charter selection to the first 128 ASCII characters. Using above this limit you start running into compatibility issues between the various proprietary character sets employed by 80s micros. I'm going out on a limb here and suggesting that period telnet / dial up software should automatically transpose any basic character set incompatibilities if working within the 128 limitation.

Locally Connected


There is a long way to go and to start I've only scratched the service of setting up a BBS and using the Zeddynet and the WiModem232 interfaces. On the BBS side of things my only real attempt at customisation has been the Welcome Screens. For now though it serves as a proof of usability both software and hardware.

LINUX Console


Limiting the choice of characters, but allowing for ANSI colours, a LINUX logon to the ZX-AD BBS (as I've named it) looks plain as opposed to what is possible for a full ANSI/ASCII experience. It does help provide a similar experience across all platforms however.

LINUX Console Connected to the Mystic BBS Software Running Locally on a Raspberry Pi

Sinclair ZX81 with Zeddynet 


I limited the welcome screens width to 64 characters, this fits nicely with ZX81 hires modes (additional hardware required). I'd also created a ANSI and ASCII versions of the welcome screen the ZX81 is using the ASCII variant.

ZX81 with Zeddynet Connected to Local Mystic / ZX-AD BBS

Tandy TRS-80 Model 100 & 102 with WiModem232


The Tandy machines are limted to 40 character width screens. Mystic can support this, but I haven't tailored the welcome screen to the 40 character limit, and the screen therefor doubles around.

Using the Tandy machines I found that the WiModem232 baud rate could also be no higher than 1200 else I started experiencing character loss.

TRS-80 Model 102 Connected to Mystic, 40 columns is Problem at this Stage


NEC-PC8401 with WiModem232


Mystic attempts to verify if a connecting computer supports the ANSI standard, interestingly the NEC-PC8401 reports back that it does. This is of course a lie, as it does not. Regardless of this untruth it will render the display correctly if the first 128 ASCII characters limit is adhered to. Also as fully functional CP/M computer the PC8401 has a 80 column display, consequently there is no issue with screen width, screen length however may pose its own problems latter.


NEC-PC8401 Connected to Local Mystic / ZX-AD BBS


To Summarise


Thus ends a rather scattered post on networking 8bit machines and BBS software. On the hardware side of things I can uttery recommend the WiModem232, it really is very simple to use. Zeddynet is similarly fun in execution. In both cases the full possibilities have hardly been touched on by this post.

As for the running a BBS, it's entirely likely I'll refine and open my local experience up to the broader world. Coming Soon - ZX-AD BBS.

Addendum


In the total absence of ZX-AB BBS, being that it's confined to my local network for the moment, and if you're hankering for a Sinclair related BBS that's online right now, then you can't go past sinclair-retro-bbs:
  • Telnet: retrobbs.sinclair.homepc.it Port: 23
Read More

Wednesday, November 01, 2017

RetroChallenge 2017/10: Part 8

Leave a Comment

Keyboards Down on the NEC PC-8401 Challenge.



Sadly it's time to put the keyboard away on the RetroChallenge for October, but not before a quick summary. And did I mention the keyboard yet, it would be remiss to not to.

The PC-8401 has a truly wonderful keyboard, seriously it's a beauty. It seems that particular computer I ended up with has seen very minimal usage. The Alps SKFL series switches are in a fantastic condition, there is no grainy or worn out feel you'd associate with a 40 year old board. The keys themselves are double shot and feel very firm to type on. It would be nice if you could such a keyboard on a laptop today.

Some Closing Thoughts


I think I got to know the PC-PC8401 quite well over the past months activities, with the device proving to be quite a sturdy piece of kit and generally fun to work with. I've still got some more to do though, the big one being the scanning of the remaining manuals for the Internet archive.

Way back at the start I looked what the reviewers has to say on the NEC-PC8401, the major take away criticism being the neglect-ion to include BASIC in ROM. After playing around with the computer over the past month, that point is still a valid one, and hampers the retro usability of the machine, mostly due to memory constraints of adding BASIC to RAM.

Regardless of the above minor issue, the PC-8401 is a fun little device and it'll continue to sit on my desk and or lap for a while to come. I'm looking forward to finding some good uses for it outside the time constraints of the RetroChallenge and I'm certainly going to plan some future projects around it the  PC-840.

That's it for RetroChallange 2017/10, thanks to all involved and particularly to all the other projects, it maks very varied and fun experiance. Now it's back to our regular non-programed blogging experience.


See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6, Part 7, Part 8


Read More

Friday, October 27, 2017

RetroChallenge 2017/10: Part 7

Leave a Comment

Developing Software on the NEC PC-8401?


Just a bit of fun for this entry. After experimenting with some software development last post, it quickly became apparent that writing software directly on the PC-8401 is a little inconvenient (at least without a memory expansion). This lead to the use of Z88dk for external development and a little cross-compiling to CPM to suite our purposes.

I couldn't help thinking that although the outcome was successful, it seemed a little like cheating. So lets cheat a tiny bit less.

As we know, the PC-8401 comes with a very capable Vt100 compatible Terminal program, one that's perfect for interfacing with LINUX. Now with minimal imagination required  lets pretend it's 1985 and we're developing on some extremely expensive time sharing remote platform tended by white coat wearing professionals.

There are many ways to configure serial / rs232 terminal sessions within LINIX, so here's one way, and one that's really simple although not a permanent on boot ready option.

First, we need to find the correct Serial Port. I'm using a USB to serial adaptor and need to know which exact device to target.

From the command line in LINUX issue: dmesg | grep USB

This yields a load of messages, but I'm looking for something as below.

[   22.444199] usbserial: USB Serial support registered for pl2303
[   22.444774] usb 1-10: pl2303 converter now attached to ttyUSB1


Now knowing knowing which USB device is the serial converter, it's an easy matter to setup a terminal console.

sudo stty -F /dev/ttyUSB1 cols 80 rows 15 1200
TERM=vt100 ksh </dev/ttyUSB1 > /dev/ttyUSB1 2>&1 &


Once that's all done, I can start up the PC-8401s Terminal program, configure it to 1200 baud 1 stop bit, no parity and 8 bit word length and I'm up and running a LINUX remote console. From there it's time to start up a text editor, VI, Emacs or Nano and get developing.

NEC-PC8401 with and open LINUX console running nano and editing code

Once some very impressive software has been developed, it'll need to be transferred to the PC-8401 to be executed in all it's glory, and LINUX provides a couple of easy to use xmodem commands to do just that.

To send files from LINUX via Xmodem:
sx my_file.com

To receive files from the PC-8401
rx my_file.com

Now there is absolutely no excuse, not in the slightest to use a 27 inch widescreen monitor to interact with a high powered modern PC to write applications.

Finally, thanks to Mike Spooner for indirectly generating the idea behind this post.

See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More

Wednesday, October 25, 2017

RetroChallenge 2017/10: Part 6

2 comments

Writting New Software for an NEC PC-8401


As noted previously, the PC-8401 came sans BASIC interpreter, which was quite an anathema in the day. This lack of BASIC presents no real impediment in producing new software for the machine today, even back in the 80s a CPM targeted variety of BASIC could be sourced for the machine (if not a specific PC-8401 version). 30 years on, being equipt with a Z80A processor and the CPM 2.2 operating systems puts this laptop a good position for some software development.


Getting into BASIC


To start we'll need to copy BASIC interpreters onto the PC-8401. AS with all software, BASIC will be taking up valuable chunks of the 32k reserved as drive space. Our own BASIC text files will then need to fit in whatever space remains. Ideally we'd have a RAM extension, either a PC-8406A 32K RAM pack or a PC-8407A 128K pack, in order to program something of a reasonable size. Still even without a RAM pack we can at least try out a number of BASIC flavors.

Both the versions of BASIC mentioned below are available from Gary J. Webes' excellent NEC PC-8201 support site WEB8201, where he holds a selection of software for the NEC PC-8401. NEC PC-8401. Check out the NEC 8401A / 8500 File Collection portion of the File Downloads page.

Microsoft BASIC


In the stakes to use the greatest amount of memory possible, Microsoft BASIC wins hands down. The last CPM version 5.29 will take up huge 23.4k of 'disk space' and when executed leaves a little over 1k of active memory on the PC-8401 to play around with. On the plus side, it's the version of BASIC that's the most familiar, and baring some commands unavailable in the CPM version, there are a wealth of examples laying around to learn from.

Unfortunately the size of MS BASIC makes it a non stater, it's more of a curiosity than something of practical usage. There are compilers available for MS BASIC, though a you still require libraries on the disk to run complied applications. Due to lack of disk space, compilation would need to be run on a host computer before moving the end product over to the PC-8401.


ZBAS


Luckily there are other options, ZBAS is quite a usable option only requiring 16.4k, leaving us with some room to write programs interactively, and some space to save these applications to disk.

Interestingly and extra fortunately when saving files, ZBAS tokenises BASIC Commands, much like on a 128k ZX Spectrum. Thus allowing for some larger than expected applications to be saved on our rather limited 'solid' state storage.

If your going to leave BASIC laying around on the System, then ZBAS is clearly the one to have.


Moving to Modern 'C' Developement


While there are plenty of period development platforms and languages available for CPM, including 'C's and Pascals, you'll need to run these in a emulated environment as there is no room on the PC-8401 for such niceties. A load of CPM software and utilities are available on the retroarchive, although none of these programs are specific to the PC-8401.



Z88DK


Perhaps the easiest way to pursue software development for a CPM machine and the PC-8401 today is via the use of Z88dk. Z88dk is a 'C' compiler targeting TRS80s, Commodore 128s, Sinclair ZX81s and just about any machine containing a Z80 processor. Specifically for out purposes there is a dedicated CPM library.

In order to test Z88DK out with the PC-8401 I borrowed from an older ZX81 program I wrote up some time ago, "ZX Roman Numeral-Izer". The program is a simple roman numeral format checker, it takes Roman numerals as an argument and then correctly formats them to the agreed standards (Standards that even the Romans didn't always adhere to). After a couple of minor changes to remove some specific ZX81 extensions and put in some specific PC-8401-isations the project compiled perfectly.




If you're interested then the full source is below, bit of a rush and there will be better ways to achieve the same result I'm sure, still proof of concept proven.


NEC PC-8401 Roman Numeral-iser Listing

// To Compile for CPM do as below.
// zcc +cpm -lm -o rome.com rome.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef enum { true = 0, false = !true } bool;

static short isaNumArab[7] = {1, 5, 10,50,100,500,1000};
static char csaNumRome[8] = "ivxlcdm";

// Function Get Arabic value of Roman Numeral
short GetArabValue(char csMyNumerals[15]){

 char csMyNumeral[2];
 char csNumRome[2];

 short iNumberNow = 0;
 short iNumberLast = 0;
 short iNumberTotal = 0;

 short iCount1 = 0;
 short iCount2 = 0;

 bool bTest = false;
 bool bNegative = false;

 //Go through sMyNumerals input string backwards for easier rule matching
 for (iCount1=strlen (csMyNumerals)-1; iCount1>=0; iCount1--){
  strncpy(csMyNumeral, csMyNumerals+(iCount1*1), 1);
  csMyNumeral[1]='\0';

  for (iCount2=0; iCount2<=strlen(csaNumRome)-1; iCount2++){
   strncpy(csNumRome, csaNumRome+(iCount2*1), 1);
   csNumRome[1]='\0';
   bTest = strnicmp(csMyNumeral, csNumRome,1);

   if (bTest == true){
    iNumberNow = isaNumArab[iCount2];

    if ((iNumberNow > iNumberLast) || ((iNumberNow == iNumberLast) && (bNegative == false))){
     iNumberTotal = iNumberTotal + iNumberNow;
     bNegative = false;
    } else {
     iNumberTotal = iNumberTotal - iNumberNow;
     bNegative = true;
    }
   }
   iNumberLast = iNumberNow;
  }
 }

 return iNumberTotal;
}

// Function Get Roman value of Arabic Numeral
void PrintRomeNumerals(int iMyNumberArab){
 char csNumRome[16];
 char csMyNumerals[16];
 char csMyNumeral[2];

 short iTemp[16];

 short iNumberNow;

 short iCount1 = 0;
 short iCount2 = 0;
 short iCount3 = 15;

 memset(csNumRome,0,strlen(csNumRome));

 memset(iTemp, 0, sizeof(iTemp));

 if(iMyNumberArab>=4000){
  strcpy(csNumRome,"Max Value 3999");
 } else {

  itoa(iMyNumberArab,csMyNumerals,10);
  //csMyNumerals[15]='\0';
  //Go through sMyNumerals input string backwards for easier rule matching

  for (iCount1=strlen(csMyNumerals)-1; iCount1>=0; iCount1--){

   strncpy(csMyNumeral, csMyNumerals+(iCount1*1), 1);
   iNumberNow = atoi(csMyNumeral);

   switch (iNumberNow) {
    case 1: case 2: case 3:
     for (iCount2=0;iCount2<iNumberNow;iCount2++){

      iTemp[iCount3] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2];

      iCount3--;
     }

    break;

    case 4:

      iTemp[iCount3] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2+1];
      iTemp[iCount3-1] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2];
      iCount3=iCount3-2;
    break;

    case 5: case 6: case 7: case 8:

     for (iCount2=0;iCount2<iNumberNow-5;iCount2++){

      iTemp[iCount3] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2];
      iCount3--;
     }
     iTemp[iCount3] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2+1];
     iCount3--;
    break;

    case 9:

     iTemp[iCount3] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2+2];
     iTemp[iCount3-1] = csaNumRome[(strlen(csMyNumerals)-1)*2-iCount1*2];
     iCount3=iCount3-2;
    break;
   }

  }
 }

 printf("\n Correct Format: ");
 for (iCount2=0;iCount2<16;iCount2++){
  if(iTemp[iCount2]!=0){
   printf("%c",iTemp[iCount2]);
  }

 }
 printf("\n");

 return;
}


void BannerLine(short iLength, char cCharter){
 short iCount1 = 0;
 for (iCount1=0; iCount1<iLength; iCount1++){
   printf("%c",cCharter);
 }
}


void BannerSet(void){
 short iCount1 = 0;
 printf("\n");
 BannerLine(32,149);
 printf( "\n PC-8401 Roman Numeral-iser\n" );
 BannerLine(32,149);

 for(iCount1=0;iCount1<=strlen(csaNumRome)-1;iCount1++){

  printf("\n Numeral: %c = Numeric: %d",csaNumRome[iCount1],isaNumArab[iCount1]);
  if(iCount1 == strlen(csaNumRome)-1){
   printf("\n");
  }
 }

 BannerLine(32,149);

 printf("\n Roman Numeral Format Check\n");

 BannerLine(32,149);

}


short PressAnyKey(void){

 char chr;

 BannerLine(32,149);
 printf("\n Input Another Numeral? Y/N: ");
 chr = getchar();

 if(chr == 'n' || chr == 'N'){
  return 1;
 } else {
  return 0;
 }
}


main(void)
{

 char csMyNumerals[15];

 bool PressKey = true;

 char csMyNumberRome[15];
 int iMyNumberArab = 0;

 while( PressKey != false ) {

  BannerSet();

  printf("\n Roman Numerals: ");
  fgets(csMyNumerals,15,stdin);
  iMyNumberArab = GetArabValue(csMyNumerals);
  printf(" Numeric  Value: %d",iMyNumberArab);

  PrintRomeNumerals(iMyNumberArab);

  memset(csMyNumerals,0,strlen(csMyNumerals));
  memset(csMyNumberRome,0,strlen(csMyNumberRome));

  PressKey = PressAnyKey();

 }
}

See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More

Sunday, October 15, 2017

RetroChallenge 2017/10: Part 5

Leave a Comment

NEC PC-8401s' Capacitors & NiCd Sorted


Since discovering the leaky capacitors in the PC-8401s LCD module (last post, Part 4), I've replaced the problem components and the screen is now working without further issues. So, while had the main case opened I also decided to replace all the other potentially problem components and give the unit a good service.



I replaced all the capacitors with like for like values. The one exception being a 1200uf 25v, which is now a 1200uf 35v variety. The extra voltage level is not an issue, though the replacement capacitor is twice the length of the one it replaced, luckily there was space to lay it on it side.

The other remaining problem component was the 30 year old NiCd battery, which amazingly hadn't vomited it's guts all over the motherboard. The NiCd battery inside the PC-8401s is there to keep the DRAM and system clock ticking over should there be no main battery or indeed mains power. (No compact flash for 1985 user convenience).

1 Frand Super-Capacitor Battery Replacement

I decided to replace the battery with a 1 frand 5.5v super capacitor. I've previously made similar modifications to my Tandy M100 and M102 machines to good results, with RAM storage remaining intact for over a month before (until I got board waiting) I reapplied mains power. Similarly to the previous m100 modification, I bent the pins of the capacitor over horizontally before attaching wires which are the soldered on to the PCB. The capacitor itself is attached to the circuit board with double sided tape, keeping very firmly in place.

So next time it's back to doing something else arguably useful with a 30 year old computer.


See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More

Wednesday, October 11, 2017

RetroChallenge 2017/10: Part 4

Leave a Comment

My NEC PC-8401s' LCD Module Faces Capacitor Issues


I'd noticed, well couldn't help noticing really that the PC-8401s' LCD screen would flicker, and every now again turn off unexpectedly after extended use. Over the last week the occurrences became more frequent. Interestingly or comfortingly the screen flickering has no effect on the Main Computer, everything stays resident, you can even continue typing while the screen is off. So what ever the problem? It is appeared localised to the LCD screen. Time to pry open the computer and see what's happening.

A quick look over the main board revealed nothing of immediate concern, though at some point I'll want to replace the NICAD backup battery and the 30 year old capacitors, thankfully though none of these components have been leaking. Semi confident the main board is okay it was time to crack open the LCD bezel, not the most convenient thing to do.

NEC PC-8401 Main Board

Unlike the main case the bezel is mostly held together with molded plastic clips, taking it apart took some considerable carefully spent time. Once off however it was immediately clear where the problem (hopefully the only problem) lay.

NEC PC-8401s' LCD Panel

We've got 2 exploded leaky electrolytic capacitors that need to be replacing, and while we're at it the other 10 should be swapped out for good measure. I guess considering the age of the computer this is not unexpected, all this is really part of the excitement of playing around with old hardware.

Some Picturesque Leaky Electrolytic Capacitors

Well then, before continuing any further it's of the the electronics supplier to procure some of these tiny caps, of which I have exactly none of in my parts draw.

As a quick aside the panel was manufactured by Epson.

Back view of the NEC PC-8401s' LCD Panel



See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8

Read More

Sunday, October 08, 2017

RetroChallenge 2017/10: Part 3

Leave a Comment

NEC PC-8401's Software-To-Go on the Go


It's time try out some of the PC- 8401's inbuilt software. Ideally I'll be wanting to create files that are usable outside the NEC PC-8401 1980's bubble. The software included in ROM was all quite cabable for the time our NEC was realeased into the wild, we should be able to make use of it to some extent today.

There are four software packages provided in ROM:
  • Wordstar-To-Go: Micro Pro's word processing package, a portable version of the Wordstar. 
  • Calc-To-Go: Portable version of Calc Star, also by Micro Pro. 
  • Personal Filer: A flat file database program.
  • Telecom: Modem and Serial communication tools.

Of those, the two packages likely to be of most use in the modern context are Wordstar-To-Go and Telecom and I'll quickly look at those now. Telecom is arguably of most importance as it will be required to move files and additional software on and off the computer. The limited 64k of available RAM (32 for storage and 32 as active memory) makes Telecom a necessity if we plan on doing anything useful in the longer term.

Getting the files on and off with Telecom


The Telecom application is quite effective, and thankfully includes the XModem transfer protocol, making file transfers reliable. Connecting to a regular PC requires a USB to serial cable and a NULL modem cable. Nothing odd here, I used standard off the shelf parts.

PC-8401 and LINUX CuteCom Talking
For software on the modern LINUX computer I'm using CuteCom as it's a windowed terminal communication program, the command line based Minicom works just as well for this though.

I found the default Telecom configurations need some tweaking. The baud rate was best set to 1200 for plain ASCII file transfers and terminal emulation, else the buffer got full and text was lost. For XModem the baud rate value can be up to 19200 (with some issues), 9600 provides issue free transfers. Other than that I set Stop bits to 1, as is the default value for just about everything else out there. The configurations can be saved to memory, so once setup it's all good to go next time.

XModem transfers in both directions work perfectly, making the task of installing software and transferring other files a simple.

With a basic configuration setup all the networking capacity of 1985 is at our fingertips. If I want to take the PC-8401BM out on a field trip, or write up blog pages on the go, then we can rest easy knowing all that hard work is easily transfered back to a regular PC.

With basic communications configures it's time to look at using some of the built in productivity software.

NEC PC-8401BM Telecom Default Configuration
OPTIONDEFAULTDISCRIPTION
CONNECTIONRS-232CInternal Modem or RS-232C
PROTOCOLOFFON for modem7 / xmodem, OFF for ASCII transfers
SPEED9600150 - 19200 baud
WORD LENGTH87 or 8 bits per character
SI/SOONShift In/Shift Out sequence
STOP BITS21, 1.5 or 2/td>
PARITYNONO,EVEN,ODD,IGNORE. Ignore only effective when STOP BITS set to 8
XON/XOFFONON or OFF
ECHOOFFON or OFF
CHAR WRAPONON or OFF
NEW LINEOFFON or OFF
PPS1010 or 20. Pulse Per Second, Used for modem dialing
LABELOFFON or OFF. Displays the Function key values
DEL CODE7F7FH (DEL) or 08H (BS)
LF SUP.ONON or OFF. ON Suppresses LF codes ignored during uploads
LINE DELAY01 - 7. Delay ACK response.
PRINTOFFON or OFF. Echo session on a printer
SAVEOFFSave Telecom configuration on exit


Can we Wordstar-To-Go?


Wordstar may still be a perfectly usable as word processor, with one proviso, that we have some sort of document conversion utility. This is where we start running into problems on the modern PC side. It seems that we're now so far removed from Wordstars historical dominance in the marketplace that pre-existing conversion tools, even thoughs designed for 'newer' platforms are themselves so out of date emulation is required to run them. (I find this news a touch disturbing).

Over at the Way Back Machine (love that machine), the remains of the WordStar Resource Site provides downloads to various converters, Sadly, I've tried a number of the conversion utilities without any luck this far. They all specify conversion capabilities extending to DOS and Windows Wordstar files exclusively, so the PC-8401s Wordstar-To-Go files will need to undergo a CPM to DOS conversion first.

Failing conversion utilities, there are two other options available, both built into our trusty PC-8401. Firstly, Wordstar-To-Go can produce simple text files that need no conversion. This is the easiest option to use.

The second options is available during file transfers. When sending files with the Telecom package there is an option to convert Wordstar files to plain text. This produces a similar result to using plain text to start with, but not quite. Conversion ignores continuous paragraphs, so what appears to be the end of a line in a Wordstar file (lines are by default 65 character long) is the end of a line, meaning all paragraphs would have to reformatted to be contiguous. Note that Wordstar itself treats paragraphs the same way. The text will appear  exactly as formatted on screen in Wordstar, minus control characters and .dot commands.

The best explanation is a simple example, below are three version of the same file. The text was justified in the Wordstar formatted files.

RAW Wordstar File: 
ThÃ¥  quicë  browî dingï jumpeä oveò thÃ¥ lazù  fox®  ThÃ¥  kangaroï 
jumped over the dingo.

No animals were harmed in the above test sentence.

Wordstar File with Special Characters Removed During File Transfer
The  quick  brown dingo jumped over the lazy  fox.  The  kangaroo 
jumped over the dingo.

No animals were harmed in the above test sentence.

 Plain Text File
The quick brown dingo jumped over the lazy fox. The kangaroo jumped over the dingo.

No animals were harmed in the above test sentence.

So is Wordstar on the PC-8401 still usable in the modern context? Yes, but with some serious limitations for the time being. There would be an interesting RetroChallenge project in writing a decent conversion utility.


See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More

Monday, October 02, 2017

RetroChallenge 2017/10: Part 2

5 comments

An NEC PC-8401 Quick Guide Book for the Internet Archive


As we know from the previous blog entry, there was absolutely no documentation on the NEC PC-8401BM contained within the Internet Archive. Today I thought it might be a good idea to start addressing this situation.

PC-8401BM Manuals
I have in my possession the 4 Australian Manuals and the Quick Start Guide originally packaged with the PC-8401BM. The easiest of these to scan and make available to the Archive is the Quick Start Guide, this being the only book conveniently with a ring style binding. So naturally I've started here.

Being in a spiral binder the pages were easy to remove, this has allowed for quite a nice scan overall. The other manuals however are going to be slightly more of a challenge to pull clean copies from. So after an hour or so plus some cleaning up time, I'm happy to report the Quick Start Guide is now available to all those who seek it's wisdom.

I should say the Guide is mostly available, there are unfortunately 2 pages missing, pages 34 and 35. These pages should form the first part of the Calc-To-Go section in the book. Not the best of situations, still the rest of the book is complete and pretty much gives all the information the casual PC-8401BM user is likely to require.

I'm not quite sure on the best way to proceed in scanning the remaining books. All the manuals are in exceptional condition, as such I don't wish to ruin them by either pressing the books to firmly against the scanner and cracking the spines, or indeed by removing the spines. It certainly would be handy to have access to a book scanner. (If anybody out there is feeling generous, please send your best book scanner free of charge ASAP).

As a bonus, I thought I'd clean up one of the pull out / fold down sections of the Guide illustrating the many extended devices NEC produced to dock and otherwise attach to the PC-8401BM. These include Data Recorders, Disk Drives, RAM Cartridges and CRT / Monitor adapters. The product codes of all these items is conveniently listed. For those interested in acquiring computer extensions today, the NEC product codes it could well make Ebay and Craigslist searches a little easier (you could try NEC directly in some sort of vain last hope of course).

The PC-8401BM Connection of Peripherals fold out, because everybody loves a good diagram.

The Guide Book is now avaliable and indexed at the Internet Archive: https://archive.org/details/NecPortableComputerPc-8401bmQuickGuide


See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More

Sunday, October 01, 2017

RetroChallenge 2017/10: Part 1

1 comment

The NEC PC-8401 a Starlet in the Press?


NEC PC-8401A Review in Creative Computing Magazine
The NEC PC-8401, AKA the Starlet premiered at the November 1984 Comdex show, a year after the Tandy Model 100 made its splash. (As an aside, glimpse the Model 100 at the 1983 show in this remarkable footage). The rise of the portable computing has begun, and a new world order soon to be dominated by IBM compatibility is starting to play out. Where does our little NEC offering fit in?

Unfortunately for us, there are scant references to the PC-8401BM in its contemporary computer press, or so it would appear by the lack of articles available on the internet archive. This is a trend that continues, even against the current rise of 'retro' computing within the global consciousness. The 1984 Comex appearance of the PC-8401 is however noted in Infoworld 1984-12-17 magazine.

That the PC-8401 lacks a perceptible public success may not accurately indicate it market penetration, particularly considering its main reason for being was to serve a business oriented market. It is therefore not so unsurprising that hobbyists of the period may have ignored the PC-8401 as expensive business machine, with that the business positioning still limiting any appeal for today's retro collectors or enthusiast.

The only extensive review of the PC-8401 from the time period available over at the Internet Archive is a write up in the March 1985 issue of Creative Computing Magazine by David H Ahl's. The review is based around the model PC-8401A not the PC-8401BM which I'll be using over the course of the RetroChallenge.

Overall the Creative Computing review is a positive one, with the only major criticism levelled at the small display area on the Model 8401A, an issue addressed on the 8401BM. The included software, built into the machines ROMS is noted favourably, Wordstar-To-Go which is found to lacking in some of features available in the desktop version, a minor let down and scores only reluctant approval.

Interestingly what we could surmise as the reasons behind the failure of the 8401 to enter the popular consciousness are highlighted at the end of the Creative Computing article. Firstly NECs failure to include BASIC in ROM at once precludes the machine from hobbyist usage. While the lack of programming languages provided by default on computers today is a non-issue, in 1984 this was often the pathway for home hackers to explore a computers capacities. Secondly, and more interestingly it seems NEC had a less than stellar marketing division (at least outside of Japan).

In retrospect, NEC should possibly have paid close attention to Creative Computing closing summary, as now the trail and magazine reviews go cold. There are of course many gaps in the Internet Archives collection of 80s computer magazines, even so the range of coverage still available and the lack of NEC PC8401 mentions in them would seem to confirm David H Ahl's concerns.

Luckily the target business market did procure and use enough PC-8401s that they haven't all gone to landfill, and somehow a PC-8401BM even managed to keep it's manuals intact, make its way to me and so we'll have something more to examine for the month long RetroChallenge.

The rather colourful NEC PC-8401BM User Guides.


See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More

Friday, September 29, 2017

RetroChallenge 2017/10: Getting to know the NEC PC-8401BM

Leave a Comment
It's almost time for RetroChallenge 2017/10, a month long opportunity to focus in on a single project, share and document your activities and finally share the results with the wider retro community. This sounded like a good excuse for some retro adventure, so I've thrown my hat into the ring and decided to spend the time focusing in on the portable 'powerhouse' that is the NEC PC-8401BM.

Portable computer out in the wild
My NEC PC-8401BM in the wilderness, Compute anywhere with 1985 style.

Strangely there is very little information on the inter-tubes about the NEC PC-8401BM, AKA the NEC PC-8401A and AKA NEC Starlet. As luck would have it one has fallen into my lap very recently, and just in time for the Retrochallenge.

During October I'll explore this tidy 'little' laptop styled machine, examin the available online articles, work through the machines manuals and generally explore how this computer can be used today, practically or otherwise.

Exact outcome unknown, we'll end up where curiosity takes us.


See RetroChallenge IntroPart 1Part_2Part 3Part 4, Part 5Part 6Part 7Part 8
Read More