SOL floppy subsystem options

From: ajp166 <ajp166_at_bellatlantic.net>
Date: Thu Sep 7 21:45:08 2000

From: Robert Stek <r.stek_at_snet.net>


>lesser known makes. The 10 hole hard sectored disks were not that
difficult
>to get (you can still buy them at California Digital - www.cadigital.com
I
>think). NorthStar was one of the first, if not THE first on the market
with
>a 5.25" system, and at $699 list with controller, they were $300 cheaper
>than an 8" drive. A LOT of IMSAI owners also went with N*'s. For 8"
drives


Commentary and minor history items.

What truely made the NS* popular was not only was there a drive and
controller for $699 it included a DOS, Monitor and BASIC and in 1977
Billy G was getting 350$ for casette basic and 500$ for disk basic!!
NS* filled two aching niches, lack of reliable inexpensive storage and
a decent OS with a useful language. FYI: NS* Basic was one of the
few that would support multiling functions and even recusive subroutine
calls. While it had it's flaws at the DOS level (lacking in dynamic disk
space allocation) it made up for in memory efficientcy, reliability,
speed and ease of programming. There were better and more
sophisticated products they all came for a bigger price.

>finicky, and CP/M became the universal standard. Someone eventually did
>adapt CP/M to run on the Helios, but by that time PT had disappeared.


CP/M was adapted to everything! I wonder if by 1980 everything was
adapting to CP/M.

>And yes, N* DOS has four entry points -

These are the basic bare bone NS* drivers for Horizon (8251 USART).
The drivers shown do not use the device selection capability in NS*
DOS, up to 7 devices could exist and the device was passed in ACC
at call. Here the rough code.

Loc 02 in this case is data buffer
Loc 03 is the status port
Bit 0 is tx buffer empty
Bit 1 is RX buffer full

Character-IN,
    test for and get a character from the input device. 2013h JMP CIN
 ; CIN
 ; CONSOLE IN RETURN CHAR IN Acc
 ;
 CIN: IN 03
  ANI 02
  JZ CIN
  IN 02
  ANI 07Fh
  RET

C-OUT,
   Test port for ready and output char in B. 200Dh JMP cout
 ; COUT
 ; CHARACTER OUTPUT ROUTINE GOES HERE
 ; CHAR TO GO IS IN 'B'
 ;
 ; SIO DRIVER
 COUT: IN 03
  ANI 1
  JZ COUT
  MOV A,B
  OUT 02
  RET

cont-C,
 Test char stream return with Z set if there was Ctrl-C. 201Ch JMP ctrlc

 ; CTLC
 ; CONTROL C ROUTINE GOES HERE
 ; RET Z=1 if control C otherwise Z=0
 ;
 ; SIO DRIVER
 ;
 CTRLC: IN 03
    ani 02 ; test for char wating
    XRI 02 ; use Xor to flip the Z bit
    RNZ NONE ; none? then bail
    IN 02 ; get data
    ANI 07Fh ; mask to ascii
   CPI "CTRLC" ; is it CTRLc
   RET


Terminal-INIT
 used to setup or initalize the terminal (if needed). 2013h JMP TINIT
(if needed) or RET (if not)

- which must be patched to corresponding SOLOS routines in
>ROM. If you are really stuck, email off list for some helpful info.


Allison
Received on Thu Sep 07 2000 - 21:45:08 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:19 BST