• Please review our updated Terms and Rules here

Looking for image of original Epson TF-20 boot disk

Jeff_Birt

Experienced Member
Joined
Jun 14, 2016
Messages
162
Location
Rolla, MO
Anyone have original TF-20 boot disk (US version if diff than EU.) Seems all boot disk images on net may originate from one source. May be just fine but hard to verify. Would like to get original disk/image to try & hidden DBASIC boot files to compare to what is available now. Working on a problem where extended RAM (one we make) is corrupted but only when using TF-10 (boot disk made from image available on net.)

I wrote a memory test for the extended RAM and can find no problem. We have also tested the RAM module on a test fixture made for the purpose and again, find no problem.
 
Is this it?
Thanks but that is the same one going around everywhere that I am not sure about. These files have been extracted from a disk. Perhaps they are fine, perhaps not. Trying to get an image of an entire original disk to confirm.

The DBASIC.SYS is assembled at $5F00 but is loaded at either $4F00 or $6F00 depending on if you have an 8K or 16K RAM expansion installed. The end of the file contains a relocation table that has to be applied to relocate the code. Lots of opportunities for things to go wrong. DBASIC as in this ZIP file works fine with no RAM expansion, or 90% of the time with TF-20 and 8K, but not with 16K. The Epson expansion seems to work fine in either configuration. Could be a that the DBAIC file is fine but it exposes a slighty timing issue wthere the Epson expansion works but ours does not. But then testing the entire 16K expansion in situ shows no errors. It is an odd problem so we are looking at all possibilities.
 
Hello,

Just seen this.

Yes, I have an original TF-20 boot disk, that came with my TF unit when I got it back about 1984. I think it still has the original write protect tab on, and has spent most of the intervening years wrapped in alu foil.

I could easily make an .IMD image of it. Maybe this would be better if I tried to NOT select the compression option.

Long ago, then the TF unit was fully working (I suspect that repeated plugging/unplugging the link cable may have damaged the HX PCB) I used the DSK functions within Disk Basic to extract the code from the system tracks, and turn this into free-standing files. I think I even tried to disassemble the code, I may still have printouts somewhere.

Geoff
 
Hello,

Just seen this.

Yes, I have an original TF-20 boot disk, that came with my TF unit when I got it back about 1984. I think it still has the original write protect tab on, and has spent most of the intervening years wrapped in alu foil.

I could easily make an .IMD image of it. Maybe this would be better if I tried to NOT select the compression option.

Long ago, then the TF unit was fully working (I suspect that repeated plugging/unplugging the link cable may have damaged the HX PCB) I used the DSK functions within Disk Basic to extract the code from the system tracks, and turn this into free-standing files. I think I even tried to disassemble the code, I may still have printouts somewhere.

Geoff
That would be awesome! Thanks. An .IMD or .HFE etc will work. I can convert between them with the HXC software.
 
Thanks,

Hopefully the .IMD will be attached. This will be a compressed version, I didn't spot an option to bypass this, However, one of the IMD utility progs includes an option to copy the image to a RAW file, which is much easier to inspect/investigate.

Geoff
 

Attachments

Thanks,

Hopefully the .IMD will be attached. This will be a compressed version, I didn't spot an option to bypass this, However, one of the IMD utility progs includes an option to copy the image to a RAW file, which is much easier to inspect/investigate.

Geoff
Thank you! My friend and I will poke around through this image and see what we find.
 
Well, the version of DBASIC was @GeoffB17 disk was the same as what is out floating around in the ether. There were a few filler bytes at the end of the relocation table that were different but that does not seem significant. Thanks again Geoff for taking the time to make the image. It is still a mystery why the Epson EU works with DBASIC but out RAM expansion does not.

I can load programs by RS232 with DBASIC active without problems. The RAM test I wrote shows that $4000-$7FFF are fine (it is a march type test so any address problems should be found.)

Anyone know of any errors in the expansion connector pin out in the HX-20 manual. We have found such errors in TI and Sharp docs and it makes for some interesting troubleshooting.
 
Just for completeness regarding the TF-20 Boot Disk.

The label indicates:

EPSON Disk BASIC
Ver 1.0
MAR 08'83
Product: HX-20
S/N 00265
(c) Microsoft and EPSON
 
Are there different disks? I recall a disk being required for the TF-20 software to load its own operating system - is the same or something different?
 
The extended BASIC file is loaded from the disk and then relocated to the upper edge of the installed RAM, as you said above.
It works with the common internal 3rd party or DIY RAM boards, which carry 8 and 16 Kbyte of RAM.
I have both types of board and they all work. The relocation is done inside the disk operating system, not by the HX-20.
Some disk simulators do not implement the relocation and thus fail, though. My MH-20 screen/disk simulator (see https://www.mh-aerotools.de/hp/ in the HX-20 department) does it properly.

Martin
 
Re @alank2, although the label highlights the Disk Basic, this is but a small part of what's loaded from the disk, which includes a cut down version of a CP/M 2.2 OS, and a client program to provide an interface between the CP/M operating on the TF-20 and the OS running on the HX. The various commands now available within the disk basic act by sending a function ## and associated data to the client running on the TF, which then uses CP/M to resolve the command, and then return any result back to the HX. This is a fascinating process in it's own right.

Geoff
 
The extended BASIC file is loaded from the disk and then relocated to the upper edge of the installed RAM, as you said above.
It works with the common internal 3rd party or DIY RAM boards, which carry 8 and 16 Kbyte of RAM.
I have both types of board and they all work. The relocation is done inside the disk operating system, not by the HX-20.
Some disk simulators do not implement the relocation and thus fail, though. My MH-20 screen/disk simulator (see https://www.mh-aerotools.de/hp/ in the HX-20 department) does it properly.

Martin
In this case it is not a relocation issue as the same failure occurs with a real TF-20 as well. I am in the process of getting a TF-20 from a friend to make timing comparisons etc.
 
In this case it is not a relocation issue as the same failure occurs with a real TF-20 as well. I am in the process of getting a TF-20 from a friend to make timing comparisons etc.
Maybe your RAM extension is not properly recognized by the HX-20? The Disk-BASIC loader is told the end address (usually 0x4000, 0x6000 or 0x8000) and maybe this is not properly set in the HX-20?
 
Maybe your RAM extension is not properly recognized by the HX-20? The Disk-BASIC loader is told the end address (usually 0x4000, 0x6000 or 0x8000) and maybe this is not properly set in the HX-20?
The HX-20 reports the correct amount of RAM and DBASIC is loaded into the appropriate address range in either 8K or 16K mode. I have dumped DBASIC from memory in both configurations and checked that it matches, other than the bytes which have been adjusted for relocation. It also seems to zero out the first byte, even with the Epson EU, perhaps as a flag that DBASIC was initialized?

We are thinking it might be a timing issue, the expansion interface is fairly straightforward, but new RAM is much faster than old RAM, a call to a system ROM right before a call to the extended RAM might cause bus contention if the system ROM 'hangs around' a bit too long. It has been hard to track down. Especially so since it works, except with DBASIC :)
 
That TF-20 Image is a CP/M Image. I processed it, and have a TF-20.hfe, TF-20.scp, TF=20.RAW, and TF-20.TXT and
Kryoflux Files also included.

Code:
IMageDisk Analyzer 1.20 / Jan 09 2024
IMD 1.18: 23/04/2025 15:52:28

Required cylinders: 40
Required heads    : 2
Data rate         : 300kbps
Est. maximum track: 5541 bytes

Possible drives/options to write TF-20.IMD :

 5.25" QD 80-track
   Double-step: ON
   300 kbps -> 250 kbps

 5.25" HD 80-track
   Double-step: ON

 3.5" DD 80-track   NOTE: *1
   Double-step: OFF
   300 kbps -> 250 kbps

 3.5" HD 80-track   NOTE: *1
   Double-step: OFF
   300 kbps -> 250 kbps

*1 40 track image will use only first 1/2 of 80-track drive.



IMageDisk Utility 1.20 / Jan 09 2024
IMD 1.18: 23/04/2025 15:52:28

Assuming 1:1 for Binary output
 0/0 300 kbps DD  16x256
      1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16 
      D   D00 D00 D00 D00 D00 D00 D00 D00 D   D   D   D   D   D   D  
 0/1  D   D   D   D   D   D   D   D   D   D   D00 D   D   D   D   D  
 1/0  D   D   D   D   D   D   D   D   D   D   D   D   D   D   D   D  
 1/1  D   D   D   D   D   DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 2/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 2/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 3/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 3/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 4/0  D   DE5 DE5 DE5 DE5 DE5 DE5 DE5 D   DE5 DE5 DE5 DE5 DE5 DE5 DE5
 4/1  D   D   D   D   D   D   D   D   D   D   D   D   D   D   D   D  
 5/0  D   D   D   D   DE5 DE5 DE5 DE5 D   D   D   D   D   D   D   D  
 5/1  D   D   D   D   DE5 DE5 DE5 DE5 D   D   D   DE5 DE5 DE5 DE5 DE5
 6/0  D   D   D   D   D   D   D   D   D   DE5 DE5 DE5 DE5 DE5 DE5 DE5
 6/1  D   DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 7/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 7/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 8/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 8/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 9/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
 9/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
10/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
10/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
11/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
11/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
12/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
12/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
13/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
13/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
14/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
14/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
15/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
15/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
16/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
16/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
17/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
17/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
18/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
18/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
19/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
19/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
20/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
20/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
21/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
21/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
22/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
22/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
23/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
23/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
24/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
24/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
25/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
25/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
26/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
26/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
27/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
27/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
28/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
28/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
29/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
29/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
30/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
30/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
31/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
31/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
32/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
32/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
33/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
33/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
34/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
34/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
35/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
35/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
36/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
36/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
37/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
37/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
38/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
38/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
39/0  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
39/1  DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5 DE5
80 tracks(40/40), 1280 sectors (1189 Compressed)



Directory is at 0x8000 = 32768 Decimal
00008000   00 42 4F 4F  54 38 30 20  20 D3 D9 53  00 00 00 02  .BOOT80  ..S....
00008010   01 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00008020   00 44 42 41  53 49 43 20  20 D3 D9 53  00 00 00 27  .DBASIC  ..S...'
00008030   02 03 04 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00008040   00 43 4F 50  59 20 20 20  20 55 54 4C  00 00 00 11  .COPY    UTL....
00008050   05 06 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00008060   00 50 52 4F  54 45 43 54  20 42 49 4E  00 00 00 06  .PROTECT BIN....
00008070   07 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00008080   E5 44 42 4C  46 55 4E 20  20 42 49 4E  00 00 00 0F  .DBLFUN  BIN....
00008090   08 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000080A0   E5 41 20 20  20 20 20 20  20 20 20 20  00 00 00 01  .A          ....
000080B0   09 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000080C0   E5 42 20 20  20 20 20 20  20 20 20 20  00 00 00 01  .B          ....
000080D0   0A 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................



# 22DISK
BEGIN EPS6  Epson TF-20 320K - DSDD 3.5" - 256 x 16
DENSITY MFM, LOW
CYLINDERS 40 SIDES 2 SECTORS 16,256
SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
ORDER SIDES
BSH 4 BLM 15 EXM 0 DSM 304 DRM 127 AL0 0C0H AL1 0 OFS 8
END

# cpmtools
# EPS6  Epson TF-20 320K - DSDD 3.5" - 256 x 16
diskdef eps6
  seclen 256
  tracks 80
  sectrk 16
  blocksize 2048
  maxdir 128
  skew 1
  offset 32768
#  boottrk 8
  boottrk 0
  os 2.2
end

# libdsk
[eps6]
description = EPS46  Epson TF-20 320K - DSDD 3.5" - 256 x 16
sides = alt
cylinders = 80
heads = 2
secsize = 256
sectors = 16
secbase = 1
datarate = DD

# Flashfloppy/GOTEK
[esp6]
cyls = 80
heads = 2
secs = 16
interleave = 1
bps = 256
id = 1
#rpm = 360
rpm = 300
rate = 300
mode = mfm
iam = no



$ cpmls -f eps6 -D TF-20.RAW
     Name    Bytes   Recs  Attr     update             create
------------ ------ ------ ---- -----------------  -----------------
BOOT80  .SYS     2K      2 RS 
COPY    .UTL     4K     17    
DBASIC  .SYS     6K     39 RS 
PROTECT .BIN     2K      6    

    5 Files occupying     16K,     300K Free.



Larry
 

Attachments

  • Like
Reactions: cjs
Thanks!

EDIT: Just compared to the image Geoff made and they are identical. That shows at least that there does not seem to be a difference between EU and USA versioning.
 
Last edited:
Back
Top