Skip to content

Commit

Permalink
add TS-DOS loaders from Kurt McCullum
Browse files Browse the repository at this point in the history
  • Loading branch information
bkw777 committed Aug 31, 2020
1 parent 1ffcbe2 commit e6eb779
Show file tree
Hide file tree
Showing 18 changed files with 511 additions and 13 deletions.
13 changes: 13 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
dlplus:
Stephen Hurd Initial version?
John R. Hogerhuis Enhancements including WP-2 support
Brian K. White Bootstrap function and loaders library

TPDD Clients & loaders:
Kurt McCullum TS-DOS loaders
Ron Weisen TEENY loaders
J.K. Heilman DSKMGR
Phil Wheeler DSKMGR loaders
A. Ryan Port of DSKMGR & loader for Olivetti M10
ACROATIX TINY
Tracy Allen TINY loader
16 changes: 7 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,15 @@ TEENY_INSTALLERS = clients/teeny/TEENY.100 clients/teeny/TEENY.200 clients/teeny
TEENY_DOCS = clients/teeny/teenydoc.txt clients/teeny/hownec.do
DSKMGR_INSTALLERS = clients/dskmgr/DSKMGR.100 clients/dskmgr/DSKMGR.200 clients/dskmgr/DSKMGR.K85 clients/dskmgr/DSKMGR.M10
DSKMGR_DOCS = clients/dskmgr/DSKMGR.DOC
#TS-DOS_INSTALLERS = clients/ts-dos/TS-DOS.100 clients/ts-dos/TS-DOS.200 clients/ts-dos/TS-DOS.NEC
#TS-DOS_DOCS = clients/ts-dos/ts-dos.txt
TS-DOS_INSTALLERS = clients/ts-dos/TS-DOS.100 clients/ts-dos/TS-DOS.200 clients/ts-dos/TS-DOS.NEC
TS-DOS_DOCS = clients/ts-dos/tsdos.pdf
TINY_INSTALLERS = clients/tiny/TINY.100
TINY_DOCS = clients/tiny/tindoc.do
#POWR-D_INSTALLERS = clients/power-dos/POWR-D.100
#POWR-D_DOCS = clients/power-dos-dos/ts-dos.txt
#TINY_INSTALLERS = clients/tiny/TINY.100
#TINY_DOCS = clients/tiny/tiny.txt
#POWR-D_DOCS = clients/power-dos/powr-d.txt

CLIENT_APP_INSTALLERS = $(TEENY_INSTALLERS) $(DSKMGR_INSTALLERS)
CLIENT_APP_DOCS = $(TEENY_DOCS) $(DSKMGR_DOCS)
#CLIENT_APP_INSTALLERS = $(TEENY_INSTALLERS) $(TINY_INSTALLERS) $(TS-DOS_INSTALLERS) $(DSKMGR_INSTALLERS)
#CLIENT_APP_DOCS = $(TEENY_DOCS) $(TINY_DOCS) $(TS-DOS_DOCS) $(DSKMGR_DOCS)
CLIENT_APP_INSTALLERS = $(TEENY_INSTALLERS) $(TINY_INSTALLERS) $(TS-DOS_INSTALLERS) $(DSKMGR_INSTALLERS)
CLIENT_APP_DOCS = $(TEENY_DOCS) $(TINY_DOCS) $(TS-DOS_DOCS) $(DSKMGR_DOCS)

DOCS = dl.do README.txt README.md LICENSE $(CLIENT_APP_DOCS)
SOURCES = dl.c dir_list.c
Expand Down
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ DeskLink+ is a Tandy Portable Disk Drive emulator or "TPDD Server" implimented i

[Original README](README.txt)

[Documentation for DeskLink](dl.do)
[Documentation for the original DeskLink](dl.do) (No longer exactly matches this program)

Original source: <http://bitchin100.com/files/linux/dlplus.zip>
[Original source](http://bitchin100.com/files/linux/dlplus.zip)

Serial Cable: <http://tandy.wiki/Model_100_102_200_600_Serial_Cable>
[Serial Cable](http://tandy.wiki/Model_T_Serial_Cable)

## install
```
Expand All @@ -24,12 +24,21 @@ sudo make uninstall
dl
```

## bootstrap a TPDD client (TEENY) onto the portable
## bootstrap the default TPDD client (TEENY) onto the portable
```
dl -b
```

## list all available TPDD client installers, and then bootstrap one of them (TS-DOS for Model 100)
```
dl -h
dl -b=TS-DOS.100
```

## news
### 20200830 Added TS-DOS loaders provided by Kurt McCullum
TS-DOS.100 TS-DOS.200 TS-DOS.NEC

### 20191231 Expanded bootstrap to support multiple client apps and machine models.
Included bootstrap files:<br>
TEENY.100 TEENY.200 TEENY.NEC<br>
Expand Down
1 change: 1 addition & 0 deletions bootstrap.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
Syntax differences for the RUN "COM:..." command on the different machines.

TRS-80 100, Tandy 102:
RUN "COM:98N1E"
Expand Down
99 changes: 99 additions & 0 deletions clients/tiny/TINY.100
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
1 'loader TINY.CO
2 '(C) 1986 ACROATIX
3 'all rights reserved (with POWR-DOS)
4 'released to public domain 1988
5 'this BASIC loader by Tracy Allen
6 '1991
7 'This creates working 760 byte .CO
10 'TINY command line prompt is:
12 '>C ffffff.xx (C=KLSQ)
14 'where C=Kill, Load, Save, or Quit.
15 'ffffff.xx is filename.ext
16 'examples:
18 '>S JACK .DO to save JACK.DO
20 '>L JILL .BA to load JILL.BA
22 '>K GEORGE.CO to kill GEORGE.CO
24 '>Q to quit
26 'note! upper case only, space-fills
28 ' clear ,62200 to run TINY
50 CS=0:FORAD=62200TO62959
55 READ D%:POKE AD,D%:CS=CS+D%
60 NEXT AD
65 IF CS<> 95342 THEN BEEP:PRINT"Typo in data!!?":END
70 SAVEM"TINY",62200,62959,62200
100 DATA 33,0,0,57,34,6,253,33,90,90
101 DATA 34,10,253,42,6,253,249,175,50,8
102 DATA 253,33,5,243,229,33,162,243,205,162
103 DATA 17,50,170,255,205,68,70,33,97,243
104 DATA 34,82,246,33,134,246,54,34,205,15
105 DATA 76,205,70,33,58,133,246,254,81,202
106 DATA 151,87,254,83,202,123,245,245,205,82
107 DATA 244,202,79,243,241,214,75,202,64,244
108 DATA 61,202,171,244,30,0,1,30,2,1
109 DATA 30,6,1,30,8,1,30,16,1,30
110 DATA 18,1,30,20,1,30,22,58,8,253
111 DATA 183,202,119,243,213,42,2,253,68,77
112 DATA 42,0,253,205,159,107,209,33,138,243
113 DATA 22,0,25,126,231,215,231,33,189,243
114 DATA 205,162,17,195,5,243,83,78,70,70
115 DATA 78,82,67,77,73,79,87,80,68,70
116 DATA 78,68,65,69,79,77,70,76,78,77
117 DATA 62,32,67,32,70,70,70,70,70,70
118 DATA 46,88,88,32,40,67,61,75,76,83
119 DATA 81,41,13,10,62,32,0,32,69,114
120 DATA 114,13,10,0,22,46,27,122,179,194
121 DATA 198,243,201,57,56,78,49,68,33,12
122 DATA 253,119,35,54,0,201,219,187,230,32
123 DATA 200,30,4,195,99,243,33,12,253,126
124 DATA 35,134,87,126,95,71,35,183,122,202
125 DATA 250,243,134,35,29,194,244,243,47,119
126 DATA 62,5,128,71,33,10,253,126,205,50
127 DATA 110,218,85,243,205,218,243,35,5,194
128 DATA 3,244,33,12,253,205,92,118,205,49
129 DATA 244,205,49,244,79,12,205,49,244,13
130 DATA 194,32,244,175,48,33,13,253,78,35
131 DATA 126,183,201,205,218,243,205,126,109,218
132 DATA 85,243,194,82,243,119,35,201,62,5
133 DATA 205,210,243,205,228,243,200,230,240,31
134 DATA 31,31,95,195,99,243,205,203,110,205
135 DATA 196,243,33,205,243,55,205,230,23,62
136 DATA 7,205,66,244,175,205,210,243,54,26
137 DATA 35,17,135,246,6,9,205,105,52,6
138 DATA 15,54,32,35,5,194,117,244,54,70
139 DATA 35,112,205,228,243,71,58,12,253,254
140 DATA 18,202,73,244,120,183,201,30,1,62
141 DATA 1,205,210,243,119,35,115,195,69,244
142 DATA 209,62,4,205,210,243,113,35,65,205
143 DATA 105,52,195,69,244,205,175,32,194,88
144 DATA 243,33,94,243,34,82,246,205,228,32
145 DATA 229,205,114,245,42,39,253,69,76,105
146 DATA 96,34,4,253,11,95,60,3,61,194
147 DATA 203,244,87,33,63,245,25,25,25,25
148 DATA 25,126,245,17,104,245,213,35,94,35
149 DATA 86,213,35,94,35,102,107,94,35,86
150 DATA 96,105,34,2,253,235,34,0,253,229
151 DATA 205,109,107,218,91,243,33,8,253,52
152 DATA 205,39,245,42,4,253,235,225,58,12
153 DATA 253,79,6,0,122,179,121,50,12,253
154 DATA 200,183,252,44,245,27,229,33,14,253
155 DATA 9,126,225,119,35,12,195,14,245,30
156 DATA 3,205,145,244,229,213,62,3,205,210
157 DATA 243,205,128,244,175,71,79,50,12,253
158 DATA 209,225,201,160,97,245,176,251,192,78
159 DATA 245,174,251,128,81,245,154,249,54,26
160 DATA 201,175,119,35,119,42,2,253,235,42
161 DATA 174,251,25,34,174,251,201,42,0,253
162 DATA 34,176,251,201,241,42,0,253,235,27
163 DATA 225,195,57,34,58,153,252,214,67,240
164 DATA 62,2,201,205,82,244,194,88,243,58
165 DATA 153,252,254,66,218,97,243,254,69,210
166 DATA 97,243,205,175,32,202,79,243,205,114
167 DATA 245,79,62,2,145,197,213,235,205,157
168 DATA 33,209,125,147,111,124,154,103,193,12
169 DATA 35,43,13,194,171,245,125,180,200,213
170 DATA 229,205,143,244,209,225,205,194,245,62
171 DATA 2,195,66,244,229,229,33,128,0,223
172 DATA 210,222,245,77,68,225,9,227,235,1
173 DATA 128,255,9,229,205,157,244,209,225,195
174 DATA 194,245,75,225,195,156,244,0,0,24
175 DATA 230,106,15,24,230,32,32,32,240,245
8 changes: 8 additions & 0 deletions clients/tiny/TINY.100.post-install.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Follow the prompts on the portable.

Then type the following in BASIC:

NEW
CLEAR 0,62200

You can now exit BASIC and run TINY.CO from the main menu.
4 changes: 4 additions & 0 deletions clients/tiny/TINY.100.pre-install.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Type the following in BASIC on the portable:

RUN "COM:98N1E"

101 changes: 101 additions & 0 deletions clients/tiny/tindoc.do
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
05/09/95 Ron Wiesen


TINY by ACROATIX (c) 1986 entered the public domain in 1988. It was TINY.PWR, an adjunct to POWR-DOS.

In 1992 Tracy Allen submitted TINY.CO, enclosed within loader TINYLD.BA, to the Club 100 library.

POWR-DOS documentation of TINY, as relayed by Joel Dinda's PWRTIP.002 in the library, is skimpy and either has mistakes or reflects something a bit different (error codes in particular) than what Tracy Allen enclosed within TINYLD.BA.

Long hours of code inspection, aimed at relocating TINY, uncovered the documentation mistakes and some waste in the code. I now have a reverse engineered assembly source for TINY which I've improved (batch file drive) without increasing the size of TINY. I'll submit an improved TINY and a BASIC batch file driver soon. For now, here's TINY documentation.

---------------------------------------
TINY MANUAL

General

Tiny does file Kill/Load/Save on disk Bank 0. Using only 760 bytes of HIMEM memory, it is tiny!

The 13 bytes at the end of Tiny are irrelevant. After Tiny is loaded, you may overload them with something useful.

Prompt and Command Syntax

Tiny has 4 commands: Kill Load Save Quit
Prompt:
> C FFFFFF.XX (C=KLSQ)
>
Use all upper case letters and space-pad file names (NAME__.DO for Name.Do).
Kill syntax:
K [FILE__.__]
Load syntax:
L [FILE__.__]
Save syntax:
S [FILE__.__]
Quit syntax:
Q [Q]

File Name Memory

Tiny remembers the last file name you typed. All commands need a file name and Tiny uses the remembered file name when you don't explicitly supply one. Even the Quit command needs a file name, but the name does not have to be legitimate. The 2-command example below overwrites a disk file.
> K NAME .DO
> S

Error Codes

If trouble is encountered, Tiny issues one of the following 2-letter error codes:
SN SyNtax
NM NaMe illegal (e.g. 4SCORE.DO)
FF File not Found
NR RS232 Not Ready for disk access
ND No Disk in drive
WP Write-Protected disk (Save)
AE file Already Exists, disk or memory
DF Drive directory Full (Save)
FL FuLL memory directory (Load)
OM Out of Memory (Load)
CM CoMmunication error
IO I/O error RS232

The Load command can not overwrite a file in memory. You must Quit Tiny, kill the file in memory, then invoke Tiny again to load the file from disk. The example below shows the "discovery" that the file exists in memory, and the Quit of Tiny.
> L NAME .DO
AE err (file Already Exists in memory)
> Q

The 6-command example below shows a comedy of errors that finally overwrites a disk file.
> S NAME .DO
NR err (plug in cable, power on drive)
> S
ND err (insert disk)
> S
WP err (remove disk write-protect)
> S
AE err (file Already Exists on disk)
> K
> S

Beefs, Tips, Quirks and Humor

1. I keep pressing the <Q> key but Tiny refuses to Quit.

Use <Q>_<Q> to Quit. Or, you could press the reset button. But, <BREAK> won't Quit Tiny.

Do you remember that Tiny "remembers" the previous file name? What? You say you just invoked Tiny, changed your mind and now want to quit but you haven't even typed any file name. Tough! The first file name that Tiny initially "remembers" is not something that you typed but is something that Tiny considers garbage as a file name for the Quit command. It may be garbage left by a prior operation or by the way Tiny was invoked (from the menu or from BASIC). Do you think Tiny code got so tiny by wasting code on initialization logic?

2. I press a function key and Tiny goes nuts and pukes and scrolls the screen.

NEWS FLASH - When running Tiny from BASIC, don't press any function key. If you do, whatever string is assigned ("Files", "Load ", or God forbid "K MYFILE.DO") is fed to Tiny for consumption.

3. Everything was going well. It was cool. I was a Loadin'/Savin' dude with Tiny - I mean fast man - really burnin' up the disk. But now, like... you know... I mean ... Tiny just sits there - stoned - don't do squat. What it is Bro?

The trouble is bad Karma and lack of Cosmic vibes. Really! I checked with my Guru and she had a vision and saw what went down with you man. Like... you know... I mean ... your disk drive tuned out man. She saw you take a smoke break. I know it was some good stuff 'cause she said you was gone for a quite a while. Your disk drive took a break too! Went trance-like in low power mode she said.

Flip the disk drive power switch off and on. Now reunite with Tiny, live long & prosper. Later dude!

4. I created file DAMNED.2B but Tiny won't Save it. What gives?

With some devilish application programs, you can make a file name extension that's damned to be straight from Hell - repent. Actually, Tiny is willing to Save your file but it's the disk drive that doesn't like the file name extension. The BASIC interpreter's NAME AS command doesn't change file name extensions, so no help there. Another fine pickle you've got into Ollie.

To absolve your sin, go to BASIC and kill the file. Follow the Marine Corps motto "Kill 'em all and let God sort 'em out." if there are other files in memory that have condemned file name extensions.

---------------------------------------

Loading

0 comments on commit e6eb779

Please sign in to comment.