I just wanted to share a little project I've been working on, it's an
adaptation of Lee Davison's EhBASIC to become a timeshared multiuser BASIC.
There's still a bit more to do, but here's a video of it in operation:
https://youtu.be/SAJpHiBPMcQ
In that video, it's only running 3 sessions (I had no convenient 4th
terminal) but it's capable of running 4. It is a very very simple
preemptive multitasking 'kernel' providing I/O services and performing
periodic context switches for the instances of the interpreter. It only
runs a fixed number of processes, and all the process memory is statically
allocated. EhBASIC lends itself well to this, the code is position
independent by design, and the memory range is passed in. Everything is
dereferenced relative to the 'start of memory' pointer. This means no need
for an MMU or relocation.
I'm hoping to set this up at VCF MW in September, running 4 terminals.
More info on the hardware I'm using is available here:
https://hackaday.io/project/6150-beckman-du600-reverse-engineering
Pictures:
https://www.dropbox.com/sh/uw6cjqigk2sdwdy/AAAwP55aelyzrYeP1HVUDdMqa?dl=0
And another software project I'm working on as well (a ROM monitor program):
https://github.com/jzatarski/Joe-Mon
Camiel wrote:
> What would the requirements for the system be? How often would it need to
> be online?
I added an answer here:
https://github.com/DoctorWkt/4bsd-uucp#joining-the-growing-uucp-network
For central sites (like decvax) that had a lot of connectivity, you will
be expected to run them continuously. For edge sites which only dial in
to one other site to exchange news and e-mail, you can run them whenever
you want.
It's mostly simulated sites right now, but I'd love to see some real
systems come up and connect in. Not sure how to connect the simulated
sites (using TCP for the dialup links) and the real sites.
Cheers, Warren
I have a clean, and somewhat functional expansion interface that I just
tested over the weekend. Without the EI connected, the model 1 reports
~16K RAM and with the EI the model 1 reports ~48K, so the RAM seems OK.
But, the FD1771 IC, for some reason, was removed from an otherwise
apparently functional EI.
http://imgur.com/a/3NzOh
Is there any reason why this chip would be removed? I see a number of them
on ebay for around $25. The expansion interface hardware manual indicates
it is an FD1771B-01, but the service manual indicates a couple
possibilities....FD1771 A/B -01 -11. Any considerations to look for here?
Thanks,
Win
Hi,
Two years ago I've found scans in PDF with the article (dated 197?, I don't
remember) describing DIY TTL-based calculator. This was microprogrammed
machine (if I remember correctly microproprogram was "stored" in the diode
array). It has LED display and possiblity to calculate square root.
Definitely not talking about EDUC-8 computer from 1975. I think this
calculator was published a little bit earlier.
Unfortunately I'm no longer able to find it. Does anyone associate the name of
that magazine?
Regards,
Jacek
> From: geneb
>> When people decided Steve Jobs had become a god?
> Right about the time that whole "computer for the rest of us" started...
Yes, of course: nobody had thought of a cheap personal computer before him.
(Which reminds me, does the CHM have a Datapoint 2200? If not, we really out
to try to round one up for them.) Or even a personal computer. (Ditto for the
LINC.)
Although I suppose you might have been talking about the software. I mean,
without that whole display/windows/menu/mouse thing he invented, to allow
ordinary people to use a computer, where would we be?
Look, I fully admit that Steve Jobs was a _very_ sharp person who had a
_tremendous_ influence.
(Every time I hear someone saying marketing people are useless - first up
against the wall, etc - I reply 'No, only bad ones - which is a lot of them.
The very best ones, like Steve Jobs, are worth their weight in triple-refined
iridium. A _good_ marketing person can tell you what customers _want_. A
_truly great_ one can tell you what they _need_, but don't yet even realize
they do.')
However, the people (and there are quite a few of them) who have gone way off
the deep edge, and have turned him (and Apple) into some sort of overblown
cult, just don't have a balanced perspective.
There are plenty of people out there who deserve at least as much credit for
the information society we now live in, who are almost totally unknown to the
population at large; starting (probably) with Licklider.
Noel
Dear friends
Is it allowed to request a ROM code?
I lost my XT BASIC ROMS, can someone send me the code so I can burn it
and replace on my XT?
Thanks!
Alexandre
---
On Mar 19, 2017 12:47 PM, "Adam Sampson via cctalk" <cctalk at classiccmp.org>
wrote:
>
> Alexandre Souza via cctalk <cctalk at classiccmp.org> writes:
>
> > I lost my XT BASIC ROMS, can someone send me the code so I can burn it
> > and replace on my XT?
>
> minuszerodegrees.net has several versions of the XT ROM images, along
> with lots of other useful service information for PC/XT/AT machines:
>
> http://www.minuszerodegrees.net/bios/bios.htm
>
> --
> Adam Sampson <ats at offog.org> <http://offog.org/>
Has anyone made a ROM that runs BASIC and allows use of the disk drive to
save on an IBM PC? This always bugged me that if you forgot to insert your
dos disk before the computer powered up that one could not enter a basic
command to tell the system to boot up from the drive without
ctrl-alt-delete and wait....or to boot from the b drive, etc.
Bill Degnan
twitter: billdeg
vintagecomputer.net
FWIW, Dore'[1] doesn't compile out of the box on FreeBSD 10.3-stable:
tingo at kg-core1$ uname -a
FreeBSD kg-core1.kg4.no 10.3-STABLE FreeBSD 10.3-STABLE #0 r310083:
Wed Dec 14 21:00:13 CET 2016
root at kg-core1.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
Result
tingo at kg-core1$ make -f Makefile.ini World
Building Release 6.1 of Dore.
I hope you checked the configuration parameters in ./config/cf
to see if you need to pass BOOTSTRAPCFLAGS.
Sun Mar 19 22:31:44 CET 2017
cd ./config/imake; make -f Makefile.ini BOOTSTRAPCFLAGS="" clean;
make -f Makefile.ini BOOTSTRAPCFLAGS=""
rm -f ccimake imake.o imake
rm -f *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a tags TAGS make.log \#*
making imake with BOOTSTRAPCFLAGS=
cc -o ccimake -O -I../../include ccimake.c
ccimake.c:42:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
main()
^~~~
ccimake.c:44:2: warning: implicit declaration of function 'write' is
invalid in C99 [-Wimplicit-function-declaration]
write(1, imake_ccflags, sizeof(imake_ccflags) - 1);
^
ccimake.c:45:2: warning: implicitly declaring library function 'exit'
with type 'void (int) __attribute__((noreturn))'
exit(0);
^
ccimake.c:45:2: note: please include the header <stdlib.h> or
explicitly provide a declaration for 'exit'
3 warnings generated.
cc -c -O -I../../include `./ccimake` imake.c
imake.c:265:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
main(argc, argv)
^~~~
imake.c:274:2: warning: implicit declaration of function 'init' is
invalid in C99 [-Wimplicit-function-declaration]
init();
^
imake.c:275:2: warning: implicit declaration of function 'SetOpts' is
invalid in C99 [-Wimplicit-function-declaration]
SetOpts(argc, argv);
^
imake.c:278:2: warning: implicit declaration of function
'CheckImakefileC' is invalid in C99 [-Wimplicit-function-declaration]
CheckImakefileC(ImakefileC);
^
imake.c:285:2: warning: implicit declaration of function 'AddMakeArg'
is invalid in C99 [-Wimplicit-function-declaration]
AddMakeArg("-f");
^
imake.c:296:2: warning: implicit declaration of function 'cppit' is
invalid in C99 [-Wimplicit-function-declaration]
cppit(cleanedImakefile, Template, ImakefileC, tmpfd, tmpMakefile);
^
imake.c:300:4: warning: implicit declaration of function 'showit' is
invalid in C99 [-Wimplicit-function-declaration]
showit(tmpfd);
^
imake.c:302:3: warning: implicit declaration of function 'makeit' is
invalid in C99 [-Wimplicit-function-declaration]
makeit();
^
imake.c:303:2: warning: implicit declaration of function 'wrapup' is
invalid in C99 [-Wimplicit-function-declaration]
wrapup();
^
imake.c:307:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
showit(fd)
^~~~~~
imake.c:315:3: warning: implicit declaration of function
'writetmpfile' is invalid in C99 [-Wimplicit-function-declaration]
writetmpfile(stdout, buf, red, "stdout");
^
imake.c:318:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:320:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
wrapup()
^~~~~~
imake.c:328:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:345:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
init()
^~~~
imake.c:361:8: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
if (p = getenv("IMAKEINCLUDE")) {
~~^~~~~~~~~~~~~~~~~~~~~~~~
imake.c:361:8: note: place parentheses around the assignment to
silence this warning
if (p = getenv("IMAKEINCLUDE")) {
^
( )
imake.c:361:8: note: use '==' to turn this assignment into an equality
comparison
if (p = getenv("IMAKEINCLUDE")) {
^
==
imake.c:365:3: warning: implicit declaration of function 'AddCppArg'
is invalid in C99 [-Wimplicit-function-declaration]
AddCppArg(p);
^
imake.c:372:8: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
if (p = getenv("IMAKECPP"))
~~^~~~~~~~~~~~~~~~~~~~
imake.c:372:8: note: place parentheses around the assignment to
silence this warning
if (p = getenv("IMAKECPP"))
^
( )
imake.c:372:8: note: use '==' to turn this assignment into an equality
comparison
if (p = getenv("IMAKECPP"))
^
==
imake.c:374:8: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
if (p = getenv("IMAKEMAKE"))
~~^~~~~~~~~~~~~~~~~~~~~
imake.c:374:8: note: place parentheses around the assignment to
silence this warning
if (p = getenv("IMAKEMAKE"))
^
( )
imake.c:374:8: note: use '==' to turn this assignment into an equality
comparison
if (p = getenv("IMAKEMAKE"))
^
==
imake.c:379:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:381:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
AddMakeArg(arg)
^~~~~~~~~~
imake.c:389:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:391:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
AddCppArg(arg)
^~~~~~~~~
imake.c:399:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:401:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
SetOpts(argc, argv)
^~~~~~~
imake.c:479:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:505:14: warning: cast to 'char *' from smaller integer type
'int' [-Wint-to-pointer-cast]
LogFatal(s, (char *)i);
^
imake.c:527:27: warning: implicitly declaring library function
'strerror' with type 'char *(int)'
fprintf(stderr, "%s: ", strerror(errno));
^
imake.c:527:27: note: please include the header <string.h> or
explicitly provide a declaration for 'strerror'
imake.c:538:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
showargs(argv)
^~~~~~~~
imake.c:544:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:550:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
CheckImakefileC(masterc)
^~~~~~~~~~~~~~~
imake.c:561:8: warning: implicitly declaring library function
'strncmp' with type 'int (const char *, const char *, unsigned long)'
strncmp(mkcbuf, TmplDef, sizeof(TmplDef)-1)) ||
^
imake.c:561:8: note: please include the header <string.h> or
explicitly provide a declaration for 'strncmp'
imake.c:573:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:575:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
cppit(imakefile, template, masterc, outfd, outfname)
^~~~~
imake.c:626:2: warning: implicit declaration of function
'CleanCppOutput' is invalid in C99 [-Wimplicit-function-declaration]
CleanCppOutput(outfd, outfname);
^
imake.c:627:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:629:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
makeit()
^~~~~~
imake.c:662:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:706:7: warning: implicitly declaring library function 'strcmp'
with type 'int (const char *, const char *)'
if (strcmp(ptoken, "define") &&
^
imake.c:706:7: note: please include the header <string.h> or
explicitly provide a declaration for 'strcmp'
imake.c:747:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
CleanCppOutput(tmpfd, tmpfname)
^~~~~~~~~~~~~~
imake.c:754:14: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
while(input = ReadLine(tmpfd, tmpfname)) {
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
imake.c:754:14: note: place parentheses around the assignment to
silence this warning
while(input = ReadLine(tmpfd, tmpfname)) {
^
( )
imake.c:754:14: note: use '==' to turn this assignment into an
equality comparison
while(input = ReadLine(tmpfd, tmpfname)) {
^
==
imake.c:755:7: warning: implicit declaration of function 'isempty' is
invalid in C99 [-Wimplicit-function-declaration]
if (isempty(input)) {
^
imake.c:762:31: warning: implicitly declaring library function
'strlen' with type 'unsigned long (const char *)'
writetmpfile(tmpfd, input, strlen(input), tmpfname);
^
imake.c:762:31: note: please include the header <string.h> or
explicitly provide a declaration for 'strlen'
imake.c:775:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:782:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
isempty(line)
^~~~~~~
imake.c:819:7: warning: implicitly declaring library function 'strcpy'
with type 'char *(char *, const char *)'
strcpy(pend+1, pend+5);
^
imake.c:819:7: note: please include the header <string.h> or
explicitly provide a declaration for 'strcpy'
imake.c:915:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
writetmpfile(fd, buf, cnt, fname)
^~~~~~~~~~~~
imake.c:923:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
48 warnings generated.
cc -o imake imake.o
imake.o: In function `main':
imake.c:(.text+0xb2): warning: warning: mktemp() possibly used
unsafely; consider using mkstemp()
rm -f Makefile.bak; mv Makefile Makefile.bak
mv: rename Makefile to Makefile.bak: No such file or directory
*** Error code 1 (ignored)
./config/imake/imake -I./config/cf -DTOPDIR=. -DCURDIR=.
./config/imake/imake: No such file or directory: Cannot exec
/usr/libexec/cpp. Stop.
./config/imake/imake: Exit code 1. Stop.
*** Error code 1
Stop.
make: stopped in /zs/tingo/work/Dore-6.01
No, I haven't tried digging out the old FreeBSD port files from the
archives yet.
References:
1) https://www.ibiblio.org/pub/packages/development/graphics/Dore/
--
Regards,
Torfinn Ingolfsen
Yepper ...sure... I know that...
But.... we need the physical artifact or at lest the box and a real
manual to lay in the display.
remember 90 percent of what I have to do here is for .... the visual!
thnx Ed#
In a message dated 3/20/2017 2:55:35 A.M. US Mountain Standard Time,
cc at informatik.uni-stuttgart.de writes:
On Mon, 20 Mar 2017, Ed wrote:
> Looking for windows 1.x for HP-150 touchscreen Also looking for
Look at the obvious hpmuseum.net site, it's there.
Christian