[comp.sys.ibm.pc.digest] Info-IBMPC Digest V89 #22

Info-IBMPC@WSMR-SIMTEL20.ARMY.MIL (02/15/89)

Info-IBMPC Digest           Tue, 14 Feb 89       Volume 89 : Issue  22

Today's Editor:
         Gregory Hicks - Chinhae Korea <COMFLEACT@Taegu-EMH1.army.mil>

Today's Topics:
                 Fitted-Software Modula-2 compiler
                        AT&T 6386 Info wanted
                   elongating PATH string (2 msgs)
                           Multi-user BBS
                 IBM PC Convertible Hard Disk Drives
             Motorola-68000/68020 Cross Assembler wanted
                          microsecond timing
                       Microsecond Timing on PC
              MS PASCAL, HLLAPI and expert system combo.
          Multitasking and modems under DesqView and Windows
                 Plug-in processor boards for AT bus
              Turbo Pascal V5.0, Hercules & ClearDevice
                    Re: Microsecond Timing on a PC

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

Date: 02/07/89 15:07:48 MEZ
From: <BD50180%DHHUNI4.BITNET@CUNYVM.CUNY.EDU>
Subject: Fitted-Software Modula-2 compiler

 I read about a shareware MODULA-2 compiler from Fitted-Software.  Does
anyone know about a fileserver where I can obtain the compiler via network
file transfer over the Internet or BITNET/EARN.  Thanks in advance...

    Dipl. Inform. Wolfram Reinken
    Universitt Hamburg, Arbeitsbereich fr
    Betriebswirtschaftliche Datenverarbeitung
    Von-Melle-Park 5, D-2000 Hamburg 13
    E-Mail : <BITNET>  BD50180@DHHUNI4.BITNET
             <EUNET>   REINKEN@INFOHH.RMI.DE.UUCP

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

Date: 07 Feb 89 11:55:31 EDT
From: RSPELLMAN@BAT.Bates.EDU
Subject: AT&T 6386 Info wanted

In response to Nick Lemberos <OPER013%UMUC.BITNET@CUNYVM.CUNY.EDU>:

We are using several AT&T 6386's running at 16 MHz.  All in all, we are
very satisfied with their performance.  We have had a few problems
installing large hard drives which AT&T doesn't seem to support within the
BIOS.

Let me know what type of information you are looking for, and I'll try and
help.

Rob Spellman
RSpellman@Bat.Bates.EDU
Computing Services
Bates College

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

Date: Tue, 7 Feb 89 20:10:32 MST
From: Gregory Hicks <GHICKS@WSMR-SIMTEL20.ARMY.MIL>
Subject: elongating PATH string

No...  Unless you explicitly state what the last drive letter will be, DOS
defaults to LASTDRIVE=E:  (That's a command for your CONFIG.SYS file BTW)

Thus, if you want a drive higher than E:, you need to put the line
"LASTDRIVE=x:"  Where 'X' is the letter of the last drive you want to
access.

Good Luck!
Gregory Hicks
-------

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

Date: Tue, 07 Feb 89 21:49:29 EST
From: "Dr. A.Bykat" <BYKAT%UTCVM.BITNET@CUNYVM.CUNY.EDU>
Subject: elongating PATH string

>You COULD do the following:
>SUBST <drive-name> <long-path-name>
>
>Where <drive-name> is the LETTER of the NEW DRIVE you've just created
>    (similar to a ram disk)
>and    <long-path-name> is most, if not all, of the path you want to refer
>    to...
>
>See your DOS manual.  I'm sorry I don't know the page to look at, but it
>should be there...  The limit is 128 chars for a path name..
>
>It SHOULD work..  You can substitute most, if not all, of your
>'very-long-path' this way.
>
>Gregory Hicks

Gregory, thanks. I tried it and the it works. But it seems limited to
only two aliases. Is that your experience too?

That is, I've set:      subst d: <path1>
                        subst e: <path2>

and these work, but the third
                        subst f: <path3>

yields "Invalid parameter" error!

Alex Bykat
Acknowledge-To: <BYKAT@UTCVM>

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

Date: 7 February 1989, 17:51:33 ITA
From: M. De Bernardinis <CHIRUR2%IPRUNIV.bitnet@cunyvm.cuny.edu>
Subject: Multi-user BBS

Hi,
is there someone that knows if exist a software to run a BBS with several
users connected at any time in MSDOS or, better I think, in UNIX/XENIX.

                                           Thank You
                                            -MAX-
                                      <CHIRUR2 at IPRUNIV>

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

Date: Tue, 7 Feb 89 09:22 EST
From: <TLEWIS%UTKVX3.BITNET@CUNYVM.CUNY.EDU>
Subject: IBM PC Convertible Hard Disk Drives

I've been through my computer magazines without any sucess for a hard disk
drive for a IBM PC Convertible.  Can someone point me in the right
direction?

Thanks,

Terry Lewis
University of Tennessee at Martin
TLEWIS@UTKVX  (bitnet)

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

Date: Tue, 7 Feb 89 09:21:23 PST
From: Lance Keigwin <lance@ubvax>
Subject: Motorola-68000/68020 Cross Assembler wanted

> Date: Fri, 3 Feb 89 01:36:22 PST
> From: xjyan@Romeo.Caltech.Edu (Xiaojian Yan)
> 
> WE NEED TO FIND A COMPILER THAT COMPILES MOTOROLA-68000(OR 68020) ASSEMBLY
> LANGUAGE ON IBM COMPUTER. IS THERE ANYONE KNOWS ABOUT THIS.  PLEASE GIVE
> ME A CALL OR LEAVE A MESSAGE. THANKS!
> 

Intermetrics builds a family of cross compilers/assemblers for numerous
hosts, among them MSDOS systems.  I have a copy of their 68000/010/020/881
assembler for the PC but haven't used it yet (or their C 68000/020
toolkit).  We've had good luck with their unix-based cross compilers for
80x86, Z80, and 68k which we run on our 750's.

Intermetrics is located at 733 Concord Avenue, Cambridge, MA 02138, tel#
617-661-0072.  You might want to ask for a reference for the PC 68k tools,
to talk to a real customer.

Lance P. Keigwin   lance@ubvax.ub.com (uucp) lance@Engr.UB.Com (CSNET)
		   {pyramid,vsi1,ames,lll-winken,weitek,sco}!ubvax!lance

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

Date: Tue Feb  7 10:04:37 1989
From: microsoft!neilb@beaver.cs.washington.edu
Subject: microsecond timing

In Info-IBMPC Digest Vol 89:issue 19 Mon, 6 Feb 89 there is a request from
George Nassas @ cornell about microsecond timing on the IBM PC.

Please see article in PC TECH JOURNAL, April 1984 page 62, LIFE IN THE
FAST LANE.  [Techniques for obtaining timing information with microsecond
resolution on the PC] by Bob Smith and Tom Puckett

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

Date: Wed, 8 Feb 1989 11:13:12 PST
From: Billy Brackenridge <billy@venera.isi.edu>
Subject: Microsecond Timing on PC

FTP Software sells a NetWatch program that collects packets from an
Ethernet and displays them on a screen. At Interop 88 the net was pretty
busy and the screen was rolling fast and furious. Packet arrival was
displayed to an accuracy of .1 MS. Steve Knolls of FTP informed me that
they had reprogrammed the timer chip in the PC and could have displayed
more accuracy if they needed it.

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

Date: Tue, 7 Feb 89 07:35 EDT
From: "Picard, Ronald V." <"RCVAX::GMRCMSA::RPICARD%gmr.com"@RELAY.CS.NET>
Subject: MS PASCAL, HLLAPI and expert system combo.

 I know there are several expert system shells that can be linked to MS
PASCAL (or C) programs.  We are currently running a MS PASCAL program with
IBM HLLAPI that monitors our MVS console.  This program has grown to be a
series of jumbled tasks that could better be implemented in an expert
system.

 Anybody out there have any experience combining the three?  Any comments
would be most appreciated.

 Ron Picard
 (rpicard%gmrcmsa%gmr.com@relay.cs.net)

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

Date: Tue, 7 Feb 89 19:50:48 CST
From: Brian D. Carlton <carlton@rice.edu>
Subject: Multitasking and modems under DesqView and Windows

Has anyone has successfully ran a bbs in the background under a
multi-tasking program such as DesqView and Windows?  I am particularly
interested in what will work on a 286.  What have people tried, and what
are the minimum system requirements, and the system requirements anyone
has found actually necessary.  Also what doesn't work well might be useful
to know.  Please reply to me and I will summarize to the list.  Thanks in
advance.

Brian Carlton
carlton@rice.edu  (Internet)
BCARL01@RICE      (Bitnet)

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

Date: Tue, 7 Feb 89 14:58:19 EST
From: Robert Carpenter <rc@cmr.icst.nbs.gov>
Subject: Plug-in processor boards for AT bus?????

A friend needs a coprocessor BOARD for a PC-AT which will plug into the
bus and run ** simultaneously ** with the normal processor. The new board
should allow a math processor as well as. The idea is to off-load some of
the calculation from the PC.  He needs quite a bit of memory on the new
board; some of it should be dual-ported to the AT bus to allow the new
board to be handled like "smart" memory ... write some data ... read the
answer.

Mature software support is a must (under DOS, please).  Presumably a board
using a '286 or '386 would offer the least software confusion.  I haven't
followed the field ....  can someone please comment on the availability
and merits of specific boards of this type?  I've seen NS 32016 and TI DSP
boards, are more ordinary things on the market?

Thanks to all.

Bob (W3OTC)  rc@cmr.icst.nbs.gov

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

Date: Wed, 08 Feb 89 14:17:05 SET
From: Karl Keyte <ESC1332%ESOC.BITNET@CUNYVM.CUNY.EDU>
Subject: Turbo Pascal V5.0, Hercules & ClearDevice

I have a program which needs to run with Hercules, EGA and VGA adapters.
I use SetVisualPage and SetActivePage to toggle screen pages (for a kind
of animation), and ClearDevice to clear the screen. It works perfectly
well for VGA and EGA, but for the Hercules it all seems to go terribly
wrong. The screen switching doesn't seem to work properly, and the call to
ClearDevice just clears the screen (very slowly), and then re-paints the
picture on to it. Weird! Any ideas anyone???

Oh..just to put it into perspective..I've tried it on load of different
machines including REAL ones!!

Karl
Darmstadt, West Germany

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

Date: Tue, 7 Feb 89 18:01:49 EST
From: Michael J. Tighe <mjt@super.org>
Subject: Re: A few things cleaned up in the Random Number Generator

     The code is a direct adaption of routines by Steve K. Park and Keith
W. Miller in their article, "Random Number Generators: Good Ones are Hard
to Find", published by Communications of the ACM, October 1988 (Volume 31,
Number 10).
 
     The Turbo Pascal (5.0) code segment as shown in the Digest will NOT
work CORRECTLY on 16 bit (8088/8086/80286) machines. (not having a 32 bit
(80386) machine I do not know if it will work on a 32 bit machine). This
is due to overflow. Oh sure, the code will compile, and it will spit out
numbers, but the seed will soon overflow, and then the numbers will not be
random.
 
     It can only be made to work if the variables of type integer are
converted to type longint. Turbo Pascal uses 16 bits to store an integer,
and 32 bits to store a longint. In the code, m is const defined to be
2^31-1, and it will be stored as a longint. However, seed is an integer,
and eventually it is given the value:
 
                           seed := test + m;
 
     This will cause and overflow when executed.
 
     The article provides numerous insights on the subject of generating
random numbers and those wishing a further explanation are encouraged to
read it. Most important, the article provides a way to check the
generator. If after 10,000 runs with an initial seed of 1, the seed is not
1043618065, then an error has occurred.

Michael Tighe
internet: mjt@super.org
   uunet: ...!uunet!super!mjt

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

Date: Tue, 7 Feb 89 18:01:56 EST
From: Michael J. Tighe <mjt@super.org>
Subject: Re: Microsecond timing on a PC

     In issue 19, volume 89 of the IBM-PC Digest, one of the topics is
titled, "microsecond timing on a PC". The following code segments, in
Turbo Pascal 5.0 and Turbo C 2.00, show how to access the clock.

PROGRAM ticktock(input,output);
{
       Name: ticktock.pas
     Author: Michael Tighe
     System: IBM PC/XT/AT/PS2, MS-DOS 3.30
   Language: Turbo Pascal Version 5.0
Description: Demo of IBM PC's high resolution clock
 
    INFO FOR TICKTOCK:
 
    The TICKTOCK programs demonstrate how to obtain accurate timing
information from the IBM PC/XT/AT family of computers. The next few
paragraphs should give you a basic idea of how the time is stored in these
computer systems.
 
    In the PC family, an internal clock runs at 1.193180 Mhz. This clock
is divided by 65536 to give 18.206482 clock pulses per second (.0549255
seconds per clock pulse). Therefore, the clock 'ticks' every .0549255
seconds.
 
    Two addresses in low memory are used to keep track of the tick count.
They are both 1 word (two bytes) in length. The first is at address
0000:046C. It is incremented 18.2 times a second. When it overflows, it is
reset to 0 and another word at address 0000:046E is incremented.
 
    It should be noted that the word at address 0000:046E is also the
current hour, in 24 hour format. The address at 0000:046C when divided by
18.2, is the current time past the hour, in seconds.

}
{ compiler directives }
{$a+}               {word alignment         (+=on,-=off                  (+)}
{$b+}               {boolean evaluation     (+=complete,-=short circuit) (-)}
{$d-}               {debug information      (+=on,-=off)                 (+)}
{$e-}               {emulation              (+=on,-=off)                 (+)}
{$f-}               {force far calls        (+=all far,-=as needed)      (-)}
{$i-}               {i/o error checking     (+=on,-=off)                 (+)}
{$l-}               {local symbols          (+=on,-=off)                 (+)}
{$m 16384,0,655360} {memory allocation      (stk,minhp,maxhp)   (16k,0,640k)}
{$n+}               {numeric data processor (+=true,-=false              (-)}
{$o-}               {overlays               (+=on,-=off                  (+)}
{$r-}               {range checking         (+=on,-=off                  (+)}
{$s-}               {stack checking         (+=on,-=off                  (+)}
{$v-}               {var string checking    (+=on,-=off)                 (+)}
 
USES
crt;
 
CONST
version_number = '[TICKTOCK Version 87.365]';
 
VAR
t1,t2     : byte;
tick,tock : real;
 
BEGIN
   writeln(version_number); writeln;
 
   t1 := 0; t2 := 0;
   t1 := mem[$0000:$046c]; t2 := mem[$0000:$046d];
   tick := int(t1) + int(t2)*256;
   t1 := mem[$0000:$046e]; t2 := mem[$0000:$046f];
   tock := int(t1) + int(t2)*256;
   writeln('Tick value is ',tick:6:0,', Tock value is ',tock:6:0);
 
   writeln('Sleeping for 5 seconds (~91 ticks)...');
   delay(5000);
 
   t1 := 0; t2 := 0;
   t1 := mem[$0000:$046c]; t2 := mem[$0000:$046d];
   tick := int(t1) + int(t2)*256;
   t1 := mem[$0000:$046e]; t2 := mem[$0000:$046f];
   tock := int(t1) + int(t2)*256;
   writeln('Tick value is ',tick:6:0,', Tock value is ',tock:6:0);
END.
 
/*
     Name: ticktock.c
     Author: Michael Tighe
     System: IBM PC/XT/AT/PS2, MS-DOS 3.30
   Language: Turbo C Version 2.00
Description: Demo of the IBM-PC's high resolution clock
 
    INFO FOR TICKTOCK:
 
    The TICKTOCK programs demonstrate how to obtain accurate timing
information from the IBM PC/XT/AT family of computers. The next few
paragraphs should give you a basic idea of how the time is stored in these
computer systems.
 
    In the PC family, an internal clock runs at 1.193180 Mhz. This clock
is divided by 65536 to give 18.206482 clock pulses per second (.0549255
seconds per clock pulse). Therefore, the clock 'ticks' every .0549255
seconds.
 
    Two addresses in low memory are used to keep track of the tick count.
They are both 1 word (two bytes) in length. The first is at address
0000:046C. It is incremented 18.2 times a second. When it overflows, it is
reset to 0 and another word at address 0000:046E is incremented.
 
    It should be noted that the word at address 0000:046E is also the
current hour, in 24 hour format. The address at 0000:046C when divided by
18.2, is the current time past the hour, in seconds.
 
*/
# include <stdio.h>
 
# define TIMER_LO 0X46C
# define TIMER_HI 0X46E
 
void geticktock();
 
float tick, tock;
 
main()
{
  printf("[TICKTOCK Version 87.365]\n\n");
  getticktock();
  printf("tick value is %6.0f, tock value is %6.0f\n",tick,tock);
  printf("Sleeping for 5 seconds (~91 ticks)...\n"); sleep(5);
  getticktock();
  printf("tick value is %6.0f, tock value is %6.0f\n",tick,tock);
  return;
}
 
getticktock()
{
  unsigned char t1,t2;
 
  t1 = 0; t2 = 0;
  t1 = peekb(0,TIMER_LO); t2 = peekb(0,TIMER_LO+1);
  tick = (float) t1 + (float) t2 * 256;
  t1 = peekb(0,TIMER_HI); t2 = peekb(0,TIMER_HI+1);
  tock = (float) t1 + (float) t2 * 256;
  return;
}
 
Michael Tighe
internet: mjt@super.org
   uunet: ...!uunet!super!mjt

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

End of Info-IBMPC Digest
************************
-------