• Please review our updated Terms and Rules here

Using WordStar 3.0 with CP/M 2.2

Well... it sure turned out easy. At first I missed the key word "patch". I remember reading in the installation guide that you could patch certain things. Got it done is less than 5 minutes. Here's what I did;

Run the INSTALL program, and redo the monitor, printer, comm stuff items. Then it will ask if everything is complete? If you answer yes the program will save your stuff and start Wordstar. If you answer no, the patcher starts. It will ask what you want to change "Location to change". Here you can enter an address, a label or a label and an offset. A label needs a trailing colon. So I entered NONDOC: The program came back with the Address, the Old value: 00H and the New Value: Here you enter the value you want, 0FFH and return. The program will ask the same question again. If you want you can make another change, if not enter a 0 and return. The program is saved with your patch.

Now when I enter WS FILENAME.ASM, that file is opened as a NON DOCUMENT. I didn't make a file named WSN.COM, because I most likely will not be writing document files with Wordstar, just ASM files. If I do I can always use the D command. I'm going to have to look over the patch options in the installation guide, maybe there is some thing else I may like.

Thanks, Mike
 
RATS!..... It happened again. I'm sure I was editing my ASM file with Wordstar in Non Document mode and after I saved it and tried to assemble every thing crashed again. I have been using Wordstar to edit my ASM files most every day since the 20th when this first happened. So this problem is erratic and I'm not sure what is causing it. Here it is in a nutshell again.

Loaded a 700 line ASM file in to Wordstar, made a bunch of edits, saved and quit.
Tried to assemble using ASM, after a minute of so the machine crashed.
I figured that I had the same problem and I did.
Proved it by opening the ASM file in ED and at every 55th line a carriage return was missing.
SO, I fixed the file in ED,saved it and tried to assemble again, it crashed again.
I figured maybe I missed a CR spot. Looked again, everything looked OK.
Just for reference, I have Wordstar on A: and my asm files on B:
SO I next I wnted to look at the file with type and now I got the sector not found error again.

Now I figured it was time to start over. I pulled the B:asm disk out and tried to look at it on another machine. I have an old HP 8650 that I have set up with another 8" drive. This machine has only have DOS 6.22 on it. The programs I have on it are XTREE, IMD, 22DISK and ANADISK. Each of these programs are telling me I have a bad disk. IMD and ANAdisk will format the disk, but 22disk reports hard errors on each track. The IMD analysis shows ? for every track, and ANAdisk says the disk is blank or unreadable.

Since the last time this happened, where my data disk was an old used disk, I figured maybe that old disk was part of the problem, But this time I had a brand new ATHANA disk in there. Now it's trash.

I checked my drives and other disk and everything is working fine. I can not figure out how I can ruin an entire disk. I'm a little worried about trying another. I really hate to not use Wordstar, because it is very convenient, but since I'm not sure what the cause or problem is, I should use ED for a week or so.

How can an entire disk go bad? It looks OK, no marks on the surface, the index hole is good, it rotates easily????? An ideas? Mike
 
Well..... I toke the dog for a walk and tried to think about this some. Many times if I don't step away, I'll dig a hole that just gets deeper. I think I have two problems. The 8" drive on the HP machine that I use to format, transfer stuff to the big disks is not working. I swapped this drive with one of the CP/M drives and this works. So, I'll have to look into that Siemens FD100 drive. It seems be selected properly, steps properly, reads, but the write is questionable. So, my time now will be on this drive. The Wordstar will have to wait. Thanks Mike
 
Tried a few other source code files with ASM and they all work fine. Is it possible that the file I'm have trouble with has something in the source code that is sending the assembler and the machine off into the pucker brush? Mike
 
Just a thought, if the problem is only on large asm files maybe you have a memory management problem and your os itself is getting overwritten in memory causing the sector crash and burn.
 
Does the file itself read without throwing a disk error? In other words, is it data-dependent? If it reads without errors, why not zip it up and post it here?
 
Thanks for the thoughts, but I found the offending item. I started with the assumption that it was my source code file. Then I started to remove the changes that I had made today. Doing a few lines at a time then trying to assemble. I believe that I got all the new stuff out and it still crashed ASM. So, I started to look as closely as I could and I found a stray apostrophe. This is what it looked like,

Code:
        CALL       '         RESET

After I removed the apostrophe, the code assembled and all is right with the world. BUT..... why didn't ASM call this out as a syntax error? You know I had another strange thing happen with the ASM program a week or 2 ago. I had,

Code:
        MVI       3,010H

when I actually wanted MVI E,010H, yet it assembled correctly. I wonder about my copy of ASM. Mike
 
3 is parsed as E.

This brings back memories of work I did in 1997 when I disassembled the asm assembler. If you google for asm80.zip the file has traveled everywhere around the world like here:
http://www.retroarchive.org/cpm/archive/unofficial/download/
I gave this file to Tim Olmstead in 1997 which he put in his Unofficial CP/M Web site. He passed away in 2001 from cancer.
My name is in the disassembly. Here is an excerpt of mine on how the registers are parsed as numbers:

; the following are 2 byte parameters corresponding to each word.
; they are referenced in source comments as parm1 and parm2.
; for first pair at H16BD: parm1 = 0FH, parm2 = 0AH
; if parm1 = 10H then parm2 represents a register as follows:
; B=0 C=1 D=2 E=3 H=4 L=5 M,SP,PSW=6

When you said 3 got parsed as E, I immediately remembered this work.

PS - I think it's a "feature" in the ASM assembler

Larry A Greene
 
Larry, thanks for mentioning your work. I will look for it. I'm always interested in how things work.

You mentioned, earlier, something about memory management and larger files. My file is about 16K and should not reach the top end of 64K, but some time ago, I had a brain fart and accidentally installed a memory chip in backwards. I have a 32k board that has 16, 2k RAM chips on it. I fried the mistakenly install chip. I have wondered about the others. They seem to work. I asked on this forum about memory test programs, but never continued on those lines. Maybe I have a flaky RAM chip that is placing some of these random characters in my larger files. This does not explain the lost specific Carriage returns, every 55th line, but I'm sure that is the Wordstar Document vs Non Document problem. So, maybe I should not abandon Wordstar so fast, for ED as my editor, maybe I should verify my memory. Seems most of my trouble is self inflicted.

Thanks Mike
 
Found out why my 3rd drive would not write and most likely doesn't read either. I lost the head pressure pad. The small piece of carpet fell off and the plastic button that the rug was glued to, broke. I have one replacement plastic pad holder part, but don't have a pad. Apparently the failure occurred some time ago. The pieces are lost. I spent the last few hours sweeping up the lab looking for the pieces. I found one of the tabs that fits into the arm hole, but nothing else. Most likely they got cleaned up and thrown away in the past. So, I will have to experiment with some stuff as a replacement for the pad. I have some Teflon somewhere and some other soft materials around and could fashion something. Anybody have any ideas regarding a replacement pad or material to make one? Thanks Mike
 
Drop by a music store that has a repair facility and ask for a felt pad of the right dimensions. The techs there will likely have some pre-punched ones in their parts drawers and it should cost practically nothing (consider the number of felt pads on a clarinet or bassoon). I've often thought that billiard cue tips might make for another possibility.
 
Mike

On the subject of memory and testing:

I don't think having one ram chip in backwards can damage other memory chips. Hopefully you found a good replacement.
I found some memory tests in the Rlee Peter archive which is accessible here:
http://z80cpu.eu/archive/79-data-articles/archive/78-rlee-peter-archive
then go to folder L/LOOSECPM/246/
there are two programs memtest.com and memtest2.com to test low and high memory.
I did a quick run through using emulation and they seem thorough. Try these if no one has other recommendations.
I have not used these myself on real hardware. If you get an error, try swapping chips around (assuming they are socketed)
and see if error addresses change. Good luck.

Larry G
 
Well.... although not having the head pressure pad is a problem, it's replacement didn't solve the issue. Chuck mentioned that a music instrument felt pad could be used, is a good idea. I remembered that I still had my Dad's old repair box. After the war, he decided to augment his income from the brewery by learning how to tune piano's. In his box he had some piano felts. I used the hole punch out of a key felt. This felt was the right diameter, but way to thick. So I carefully sliced it in half. Glued it to the plastic holder and reinstalled it in the drive. I had to adjust the head loader so that pad would push on the media. The drive seems to read some, but when I tried to format a disk, the disk became blank or unreadable. Something else is wrong, another project.

I found a couple of memory test programs on the walnut creek disk. I tried MEMTEST1 and UMPIRE. I ran both programs for most of last night and this morning. No errors, which is good, but the problem is elsewhere. So I figured that maybe my ASM file has some invisible characters in it from starting out as a document file that I can not find. So I started over rewriting the source code. This time I'll write just a couple kilobytes at a time, stop and assemble it, looking for trouble. Maybe my original ASM file is bad, we'll see.

Thanks Mike
 
I purchased some high density, adhesive backed, industrial felt and a hollow leather punch from Tandy leather. Punches perfect little head pads that, so far, have fit every pad holder I've tried. You'll want to push each pad as it is punched out of the punch from behind (i.e., through the exit hole on the side) with a bent paper clip (to avoid a sharp tip). Otherwise, the pads get caught up in the punch due to the adhesive on the edges.

The punch is at http:tandyleather.com. Size 4, 5/32", part number 3777-04. I have more felt than I'll ever use if you want a strip.

Mike
 
I started to rewrite my source code that was giving me trouble. This code is the longest program that I have written so far, with CP/M ASM and Wordstar. First I wrote 2k worth , then 4k, on up to 9k. each time I assembled the code and no errors occurred, until I reached the 9k (70 records) version. Here I'm getting some random characters in the source code and some bad sector and R/O errors on my B: drive. I have Wordstar on A: (Siemens FD100 drive) and all my data files on B: (Shugart 800). Since all the errors occur on the Shugart drive and they only so up with longer file access, I'm wondering if I have my drive parameters set right. Maybe on short access there is no problem, but cumulatively they add up to an error on longer ones. Again no errors on A:. Here are the parameters I am using.

EOT = 020H
DTL = 080H
Sector size = 00H The 8272 data sheet specifies this for FM mode and 128 bytes/sector
GPL = 07h
Sectors per track = 01AH

Then in my Specify command
Step Rate = 10 mSec
Head unload time = 32 mSec
Head load time = 40 mSec

Again these all work with smaller files, I've done a bunch. Any thoughts? Thanks Mike
 
Yes, one sector at a time. EOT is 26 sectors decimal (damn Hex, I meant 01AH), my fault.

I've been working with the file and the problem is not repeatable. I've assembled the code maybe a dozen times (after making some code corrections) with not errors at all. I'm still eyeing the Shugart Drive, could it be causing the errors? I'll continue working on it and watching for clues. Thanks Mike
 
Well.... I'm at a loss. I re typed the entire program with Wordstar, assembled it with no errors and the program works fine. One thing, my original source code was about 19k long, using two extents. I had figured that maybe my CP/M would show the trouble when the code exceeded 16K. But my new source code never, grew larger than 13k. There must be a lot of extra invisible stuff in the old file. So anyway I'm going to chalk this up to starting with a Wordstar Document file and not being able to recover it to a Non Document file. I will exclusively use Non Document in the future. I also getting to like using Wordstar, this program sure is robust for an 8 bit computer. My 3rd Siemens 8" drive is another matter. It will read a good disk just fine, but will not write properly, in fact it will make the disk unreadable. Did some initial checks, like does the erase come on and I do get about 100 ma of constant erase current (assuming selected and head load), looks like I get regular data bursts when formatting. So I'm puzzled, again. The next step is compare wave-forms to my good Siemens drive, maybe that will provide the clue. Thanks Mike
 
Last edited:
Got my 3rd 8" Siemens drive working again. I have four Siemens FDD100 drives and one Shugart 800. One of the Siemens is just a donator. The stepper motor has an open phase and the LSI chip is bad, but still has a bunch of good 'stuff' for the others. Of the other three, two of the boards work, the third, I think can be repaired, but I have not gotten to it yet.

Anyway, what I did, I compared the wave-forms of the bad drive to a good drive. I found that the PCB on the bad drive was actually good, all the wave-forms were the same or similar to the good one. So I tried the PCB in the good drive and it worked. So the problem is with the frame. The bad drive will read a disk, but occasionally have an error. This same drive will not write very well. After formatting one track, there will be a dozen errors. Data errors, bad sectors, sectors missing, etc. Seems odd because the same head is used for both reading and writing. So I thought that maybe the erase coil was not working. I found that there was plenty of erase current and it came on and off when it should. Next I compared the resistance measurement of all 4 drives. The read and write head resistance was between 6 and 7 ohms and the erase coil was between 2 and 4 ohms. So at first I didn't think the head was bad, but after a while I put known the good card in a different frame. After some adjustment of the head etal, by magic the drive works. So, I think that the bad drive has a R/W head that is not good. I thought that maybe it was out of alignment, but reading is harder than writing?

So the next project is to repair the 3rd bad card and use the donator head as a replacement for this bad write head. But, I'm concerned about alignment of the replacement head. Not sure I can actually get it to work. The manual calls for a special disk. Any one have any experience changing a head? Thanks Mike.
 
Back
Top