GBASIC and GDOS is what I was thinking about that is the SIM and Documentation I was looking for!
Thanks
Mark
From: ajparent1 <kb1gmx@...> To: NorthStar_Computers@yahoogroups.com Sent: Tue, December 8, 2009 8:25:25 AM Subject: [NorthStar_Computers] Re: Advantage Simulator
The Advantage is a Horizon with a few added features. The basic used is the same (NS* Basic) and the Dave Dunfields Altair/Horizon simulator is good (plus there are disks of OSs and other applications for it.
I've used the sim and have real Advantage, HorizonI and HorizonII systems running.
Allison
--- In NorthStar_Computers @yahoogroups. com, "Agustus Finknottle IV \"Gussy\"" <john_crane_
59@...> wrote: > > > > --- In NorthStar_Computers @yahoogroups. com, "marko63" <marko_63@> wrote: > > > > Hello all, > > > > I am a Noob to this group so forgive me if I am asking an "answered" question. > > I used an Advantage in 1984 as part of the John Abbot computer lab in Montreal, Canada. > > > > Is there is a simulator available fop X86 Windows system? Also would be interested in documentation for the BASIC it ran. > > > > Thanks > > > > Mark > > > > > > > I've seen a Horizon simulator, but never an Advantage. The N* BASIC docs are available online at: > > http://maben. homeip.net/ static/S100/ northstar/ software/ index.html > > -John > > > > Thanks > > >
The new Internet Explorer® 8 - Faster, safer, easier. Optimized for Yahoo! Get it Now for Free!
Interesting I would have though the Advantage was "superior" to the Horizon. The built in display that I thought supported "hi-res" graphics that could be programmed via BASIC. Am I getting mixed up with another system. (it was a very long time ago)
Thanks
Mark
From: ajparent1 <kb1gmx@...> To: NorthStar_Computers@yahoogroups.com Sent: Tue, December 8, 2009 8:25:25 AM Subject: [NorthStar_Computers] Re: Advantage Simulator
The Advantage is a Horizon with a few added features. The basic used is the same (NS* Basic) and the Dave Dunfields Altair/Horizon simulator is good (plus there are disks of OSs and other applications for it.
I've used the sim and have real Advantage, HorizonI and HorizonII systems running.
Allison
--- In NorthStar_Computers @yahoogroups. com, "Agustus Finknottle IV \"Gussy\"" <john_crane_
59@...> wrote: > > > > --- In NorthStar_Computers @yahoogroups. com, "marko63" <marko_63@> wrote: > > > > Hello all, > > > > I am a Noob to this group so forgive me if I am asking an "answered" question. > > I used an Advantage in 1984 as part of the John Abbot computer lab in Montreal, Canada. > > > > Is there is a simulator available fop X86 Windows system? Also would be interested in documentation for the BASIC it ran. > > > > Thanks > > > > Mark > > > > > > > I've seen a Horizon simulator, but never an Advantage. The N* BASIC docs are available online at: > > http://maben. homeip.net/ static/S100/ northstar/ software/ index.html > > -John > > > > Thanks > > >
The Advantage is a Horizon with a few added features.
The basic used is the same (NS* Basic) and the Dave Dunfields
Altair/Horizon simulator is good (plus there are disks of OSs
and other applications for it.
See this page for sims.
http://www.classiccmp.org/dunfield/sim/index.htm
Main page:
http://www.classiccmp.org/dunfield/index.html
Tour the pages as there is great info there.
I've used the sim and have real Advantage, HorizonI and HorizonII
systems running.
Allison
--- In NorthStar_Computers@yahoogroups.com, "Agustus Finknottle IV \"Gussy\""
<john_crane_59@...> wrote:
>
>
>
> --- In NorthStar_Computers@yahoogroups.com, "marko63" <marko_63@> wrote:
> >
> > Hello all,
> >
> > I am a Noob to this group so forgive me if I am asking an "answered"
question.
> > I used an Advantage in 1984 as part of the John Abbot computer lab in
Montreal, Canada.
> >
> > Is there is a simulator available fop X86 Windows system? Also would be
interested in documentation for the BASIC it ran.
> >
> > Thanks
> >
> > Mark
> >
> >
>
>
> I've seen a Horizon simulator, but never an Advantage. The N* BASIC docs are
available online at:
>
> http://maben.homeip.net/static/S100/northstar/software/index.html
>
> -John
>
>
> > Thanks
> >
>
--- In NorthStar_Computers@yahoogroups.com, "marko63" <marko_63@...> wrote:
>
> Hello all,
>
> I am a Noob to this group so forgive me if I am asking an "answered" question.
> I used an Advantage in 1984 as part of the John Abbot computer lab in
Montreal, Canada.
>
> Is there is a simulator available fop X86 Windows system? Also would be
interested in documentation for the BASIC it ran.
>
> Thanks
>
> Mark
>
>
I've seen a Horizon simulator, but never an Advantage. The N* BASIC docs are
available online at:
http://maben.homeip.net/static/S100/northstar/software/index.html
-John
> Thanks
>
Hello all,
I am a Noob to this group so forgive me if I am asking an "answered" question.
I used an Advantage in 1984 as part of the John Abbot computer lab in Montreal,
Canada.
Is there is a simulator available fop X86 Windows system? Also would be
interested in documentation for the BASIC it ran.
Thanks
Mark
Thanks
Does anybody have any information on the 'Theory of Operation' for the N* HD5X
or HD18 hard drives?
I'm mainly looking for information on the port numbers, structure of the control
bytes sent to the HD controller, and structure of the status bytes returned from
the HD controller.
Basically I'm looking for the same sort of information given in the 'Theory of
Operation' for the floppy disk controller on pages 19-26 of the HORIZON
Computer System Manual (Double Density).
Thanks.
Jack
Why not store it in the files section of this group?
Allison
--- In NorthStar_Computers@yahoogroups.com, billdeg@... wrote:
>
>
> I have ported the code into MS Word format and uploaded to
http://www.vintagecomputer.net/northstar/
>
> NOTE: There was one colon that I changed to a semi-colon from the
original. Also, the proportional spacing in Word did not translate
some of the data columns perfectly, but this can be cleaned up.
>
> Bill
>
>
>
>
>
>
>
> -----Original Message-----
> From: Bill Sudbrink <wh.sudbrink@...>
> To: NorthStar_Computers@yahoogroups.com
> Sent: Sun, 4 Jan 2009 12:21 am
> Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Stinking yahoo wrapped the disassembly... unwrap any lines
> that
>
>
> don't
> start with an address or a semicolon.
>
>
>
>
>
>
>
> -----Original Message-----
> From:
> NorthStar_Computers@yahoogroups.com
> [mailto:NorthStar_Computers@yahoogroups.com]On Behalf Of Bill
> Sudbrink
> Sent: Sunday, January 04, 2009 12:00 AM
> To:
> NorthStar_Computers@yahoogroups.com
> Subject: RE:
> [NorthStar_Computers] N* Horizon Project Update -
>
>
>
>
>
>
>
>
>
> That
> is not correct. The boot address for an mds-ad3 is e800. I
> use
>
>
> one
> in my SOL. 'ex e800' boots it.
>
>
>
>
>
> When
> you say "both drives spin", does either access LED light?
>
>
> If
> both or neither do, you have a drive address conflict. 20
> seconds
>
>
> is
> about right for the access loop to time out. It is watching
> for
>
>
> the
> index pulse and for the sector marks. 20I'm sure you know
> it
>
>
> needs hard sectored floppies.
>
>
>
>
>
> I
> did a hand disassembly of the ROM on my ad3... here it is:
>
>
>
>
>
> E800 0E 0A MVI C, 0AH ;
> total number of retries (10)
> E802 3A 15 EB LDA
> EB15 ; controller command
> 15H:
>
> ; get A status, turn on
> motors
> E805 16 30 MVI D,
> 30H ; parameter to function
> call:
>
> ; number of sectors to wait
> (48)
> E807 21 0D E8 LXI H, E80D ; store return
> address in H, L
> E80A C3 D3 E8 JMP
> E8D3 ; "call" function to wait for D
> sectors
> E80D 3A 01 EA LDA EA01 ;
> controller order
> 01H:
>
> ; single
> density,
>
>
> ; side
> 0,
>
> ; step direction
> out,
>
> ; head step signal
> low,
>
> ; select drive 1
> E810
> 21 16 E8 LXI H, E816 ; store return address in H,
> L
> E813 C3 4D E8 JMP E84D ; "call"
> function to wait for 2 sectors
> E816 06
> 0C MVI B, 0CH ; loop counter, loop
> 12 times
> E818 21 1E E8 LXI H, E81E ; store return
> address in H, L
> E81B C3 D1 E8 JMP
> E8D1 ; "call" function to wait for 1
> sector
> E81E 3A 10 EB LDA EB10 ;
> controller command
> 10H:
>
> ; get A status, no
> command
> E821 E6 40 0 ANI
> 40H ; is the index flag bit set?
> E823
> C2 2D E8 JNZ E82D ; jump if we got the
> index flag
> E826 05
> DCR B ; decrement the loop
> count
> E827 C2 18 E8 JNZ E818 ;
> try again if there are tries remaining
> E82A C3 2A E8 JMP
> E82A ; STOP HERE!!!! loop here
> forever
>
>
>
>
>
> ;
> the following three instructions step the head in one track
> E82D 3A
> 21 EA LDA EA21 ; controller order
> 21H
>
> ; single
> density,
>
> ; side
> 0,
>
> ; step direction
> in,
>
> ; head step signal
> low,
>
>
> ; select drive 1
> E830
> 3A 31 EA LDA EA31 ; controller order
> 21H
>
> ; single
> density,
>
> ; side
> 0,
>
> ; step direction
> in,
>
> ; head step signal
> high,
>
> ; select drive 1
> E833
> 3A 21 EA LDA EA21 ; controller order
> 21H
>
> ; A
> 0 single
> density,
>
> ; side
> 0,
>
> ; step direction
> in,
>
> ; head step signal
> low,
>
> ; select drive
> 1
>
>
>
>
>
> E836 C3 4A E8 JMP E84A ;
> "call" function to wait for 2 sectors
> E839 3A 20 EB LDA
> EB20 ; controller command
> 20H:
>
> ; get B status, no
> operation
> E83C E6 01 ANI
> 01H ; is the track zero flag bit
> set
> E83E C2 52 E8 JNZ E852 ; if
> we're on track
> zero,
> C2
> ; jump out of the step out
> loop
>
>
>
>
>
> ;
> the following three instructions step the head out one track
> E841 3A
> 01 EA LDA EA01 ; controller order
> 01H
>
> ; single
> density,
>
> ; side
> 0,
>
> ; step direction
> out,
>
> ; head step signal
> low,
>
> ; select drive 1
> E844
> 3A 11 EA LDA EA11 ; controller order
> 01H
> C2
> ; single
> density,
>
> ; side
> 0,
>
> ; step direction
> out,
>
> ; head step signal
> high,
>
> ; select drive 1
> E847
> 3A 01 EA LDA EA01 ; controller order
> 01H
>
> ; single
> density,
>
> ; side
> 0,
>
>
> ; step direction
> out,
>
> ; head step signal
> low,
>
> ; select drive
> 1
>
>
>
>
>
> E84A 21 39 E8 LXI H, E839 ; load return address
> to above
> address
>
> ; (pretty funky, implements
> loop)
> E84D 16 02 MVI D, 02H
> ; parameter to function
> call:
>
> ; number of sectors to wait
> (2)
> E84F C3 D3 E8 JMP E8D3 ;
> "call" function to wait for D sectors
>
>
>
>
>
> ;
> we're now on track zero
> E852 21 58 E8 LXI H, E858 ;
> load return address in H, L
> E855 C3 D1 E8 JMP
> E8D1 ; "call" function to wait for 1
>
> sector
> E858 3A 35 EB LDA EB35 ;
> controller command
> 35H:
>
> ; get C status, turn on
> motors
> E85B E6 0F ANI
> 0FH ; mask off the sector counter
> E85D
> FE 04 CPI 04H ;
> are we on sector 4?
> E85F C2 52 E8 JNZ
> E852 ; loop to look for sector 4
> E862 3A 10
> EB LDA EB10 ; controller command
> 10H:
>
> ; get A status, no
> operation
> E865 E6 04 ANI
> 04H ; see if read enabled (phase locked
> loop?)
> E867 CA 62 E8 JZ
> E862 ; loop while we can't read
> E86A 3E
> 09 MVI A, 09H ; timing loop
> counter
> E86C 3D DCR
> A ; decrement timing loop
> counter
> E86D C2 6C E8 JNZ E86C ;
> timing loop jump
> E870 3A 10 EB LDA
>
> EB10 ; controller command
> 10H:
>
> ; get A status, no
> operation
> E873 E6 20 ANI
> 20H ; is the double density flag bit
> set
> E875 C2 97 E8 JNZ E897 ; jump
> if we're double density
>
>
>
>
>
> ;
> the following three instructions step the head in one track
> E878 3A
> 21 EA LDA EA21
> E87B 3A 31 EA LDA
> EA31
> E87E 3A 21 EA LDA EA21
>
>
>
>
>
> E881 21 87 E8 LXI H, E887 ; set the return
> address
> E884 C3 4D E8 JMP E84D ;
> "call" the function to wait for two sectors
> E887 21 8D E8
> LXI H, E88D ; set the return address
> E88A C3 D1 E8
> JMP E8D1 ; "call" the function to wait for 1
> sector
> E88D 3A 35 EB LDA EB35 ;
> controller command
> 35H:
>
> ; get C status, turn on
> motors
> E890 E6 0F ANI
> 0FH ; mask off20the sector counter
> E892
> FE 08 CPI 08H ;
> are we on sector 8?
> E894 C2 87 E8 JNZ
> E887 ; loop to look for sector 8
>
>
>
>
>
> E897 06 8C MVI B, 8CH ;
> loop count to skip header block (140)
> E899 11 40 EB LXI
> D, EB40 ; load D and E with controller command
> 40H:
>
> ; read data, no
> operation
> E89C 3A 10 EB LDA EB10
> ; controller command
> 10H:
>
> ; get A status, no
> operation
> E89F 0F
> RRC ; rotate the body
> flag bit into the carry flag
> E8A0 DA AE E8 JC
> E8AE ; jump if we're in the body
> E8A3
> 05 DCR
> B ; decrement loop
> counter
> E8A4 C2 9C E8 JNZ E89C ;
> check for the body again
> E8A7
> 0D DCR 0A C ; decrement the number
of major
> retries and...
> E8A8 C2 2D E8 JNZ
> E82D ; start the whole thing again if we have any
> retries left
> E8AB C3 AB E8 JMP
> E8AB ; STOP HERE!!!! loop here
> forever
> E8AE 1A LDAX
> D ; read a byte into A (read command
> loaded into D, E above)
> E8AF
> 67 MOV H,
> A ; move the read byte into H
> E8B0 2E
> 01 MVI L, 01H : set L to
> 1
> E8B2 77 MOV M,
> A ; store the read byte into <byte>01H
> (overwritten by E8B6)
> E8B3
> 07
> RLC ; start calculating
> the check character
> E8B4
> 47 MOV B,
> A ; store the check character in B
> E8B5
> 1A LDAX
> D ; read the next byte
> E8B6
> 77 MOV M,
> A ; store the byte
> E8B7
> A8 XRA
> B ; continue check character
> calc
> E8B8 070
> RLC ; continue check
> character calc
> E8B9
> 47 MOV B,
> A ; store the check character in B
> E8BA
> 2C INR
> L ; increment memory
> address
> E8BB C2 B5 E8 JNZ E8B5 ;
> reading all 256 bytes (loop if more)
> E8BE
> 24 INR
> H ; next 256 bytes...
> E8BF
> 1A LDAX
> D ; read the next byte
> E8C0
> 77 MOV M,
> A ; store the byte
> E8C1
> A8 XRA
> B ; continue check character
> calc
> E8C2 07
> RLC ; continue check
> character calc
> E8C3
> 47 MOV B,
> A ; store the check character in B
> E8C4
> 2C INR
> L ; increment memory
> address
> E8C5 C2 BF E8 JNZ E8BF ;
> reading all 256 bytes (loop if more)
> E8C8
> 1A
> LDAX
> D ; read the check character
> E8C9
> A8 XRA
> B ; compare to what we
> calculated
> E8CA C2 A7 E8 JNZ E8A7
> ; retry the whole thing if we fail
>
>
>
>
>
> ;
> read success, jump into the code
>
>
>
>
>
> E8CD 25 DCR
> H ; back to the first 256
> bytes
> E8CE 2E 0A MVI L, 0AH
> ; offset 10
> E8D0 E9
> PCHL ; jump to the read
> code
>
>
>
>
>
> ;
> the following code watches sectors go by
>
>
>
>
>
> E8D1 16 01 MVI D, 01H ;
> wait for 1 sector
> E8D3 3A 11 EB LDA
> EB11 ; controller command 11H: get A status, reset
> sector flag
> E8D6 3A 10 EB LDA
> EB10 ; controller command 10H: get A status, no
> operation
> E8D9 B7 ORA
> A ; set flags
> E8DA F2 D6
> E8 JP E8D6 ; loop if the sector flag
> status bit is not set
> E8DD
> 15 DCR
> D 0 ; decrement the loop
> count
> E8DE 3A 11 EB LDA EB11 ;
> controller command 11H: get A status, reset sector flag
> E8E1 C2 D3
> E8 JNZ E8D3 ; loop if the loop count is
> not zero
> E8E4 E9
> PCHL ; return (sort
> of)
>
>
>
>
>
> ;
> extra?
> E8E5 00 00 00 00 00 00 00 00 00 00 00
> E8F0 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 E1 E9
>
>
>
>
>
>
>
> -----Original Message-----
> From:
> NorthStar_Computers@yahoogroups.com
> [mailto:NorthStar_Computers@yahoogroups.com]On Behalf Of
> Chuck Magee
> Sent: Saturday, January 03, 2009 8:08
> PM
> To:
> northstar_computers@yahoogroups.com
> Subject: RE:
> [NorthStar_Computers] N* Horizon Project Update -
>
>
>
>
>
>
> Hmm, the boot address is supposed to be E900, not
> E800!
>
>
>
>
>
>
>
>
> To: NorthStar_Computers@yahoogroups.com
> From:
> billdeg@...
> Date: Sat, 3 Jan 2009 15:04:30 +0000
> Subject:
> [NorthStar_Computers] N* Horizon Project Update -
>
>
>
>
>
>
>
>
> I had written a while back looking for a processor
> card. I got one
> from Bill S (I think he may be a member of this group?)
> Anyway, here
> is a project update. This is a work in progress.
>
> 1)
>
> Not getting 5V to the A drive (less than 2V). Traced the problem
> to the
> 7805 inside heatsink, 6030B, the front-most 7805. I replaced
> the 7805 and
> now I get the correct voltage to everything.
>
> 2) I checked every card,
> they all seem to be getting the correct
> voltages (12 or 5)
>
> ZPB
> processor (also have a ZPB-2)
> MDS-AD3 (also have a MDS)
> IMS 4mhz 16K
> RAM set for top memory (I believe - checking to confirm)
> N* 16K RAM bd
> (8000-Bfff)
> n* 32K RAM bd (0-7fff)
>
> 3) I installed an in-circuit
> z80 emulator to check the memory (read /
> write test) - no errors through
> 7FFF. I can't write to anything above
> that, but the RAM is there, unsure
> why but I assume that this is part
> of an initial lockdown of RAM by
> design, as part of the bootstrap
> process (I have to confirm this). I
> checked location E800 and what
> appears to be bootstrap code is located in
> this location (which is
> where the manual says it should be). I don't at
> the moment have a
> copy of the bootstrap code, but I assume I can find
> this on the web to
> confirm it's loading into memory. Looking for that
> now.
>
> 4) When I power on the machine, both drives spin but neither
> engage
> the boot disk. After maybe 20 seconds the drives stop spinning.
> I
> verified that the drive dip switches were correct from when the
> system
> worked. I a
> lso tried other similar drives (using Tandon 100-2A's).
>
> It's possible that I have the wrong settings,. but this is what
> worked
> before:
> A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd
> (facing from the
> front) and inserting a T-RES terminator in TP7
> B
> DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
>
> I
> must be getting close. I will let you know if I make more progress.
>
>
> Bill
>
>
>
>
>
>
>
>
> It’s the same Hotmail®. If by “same” you mean up to 70%
faster. Get your account now.
>
Boot address can be either depending on the disk card used.
Single density is E900, double is E800 (more rom). However all
of single denisty cards also respond to E800 so E8000 always wins.
If the ram stops at 7fffh then you have a address bus problem
either a short, or the bus driver on the CPU card is cooked.
Maybe you only have a 32K card!
Allison
--- In NorthStar_Computers@yahoogroups.com, Chuck Magee
<chuckcmagee@...> wrote:
>
>
> Hmm, the boot address is supposed to be E900, not E800!
>
>
>
>
> To: NorthStar_Computers@...: billdeg@...: Sat, 3 Jan 2009 15:04:30
+0000Subject: [NorthStar_Computers] N* Horizon Project Update -
>
>
>
> I had written a while back looking for a processor card. I got
onefrom Bill S (I think he may be a member of this group?) Anyway,
hereis a project update. This is a work in progress.1) Not getting 5V
to the A drive (less than 2V). Traced the problemto the 7805 inside
heatsink, 6030B, the front-most 7805. I replacedthe 7805 and now I get
the correct voltage to everything.2) I checked every card, they all
seem to be getting the correctvoltages (12 or 5) ZPB processor (also
have a ZPB-2)MDS-AD3 (also have a MDS)IMS 4mhz 16K RAM set for top
memory (I believe - checking to confirm)N* 16K RAM bd (8000-Bfff)n*
32K RAM bd (0-7fff)3) I installed an in-circuit z80 emulator to check
the memory (read /write test) - no errors through 7FFF. I can't write
to anything abovethat, but the RAM is there, unsure why but I assume
that this is partof an initial lockdown of RAM by design, as part of
the bootstrapprocess (I have to confirm this). I checked location E800
and whatappears to be bootstrap code is located in this location
(which iswhere the manual says it should be). I don't at the moment
have acopy of the bootstrap code, but I assume I can find this on the
web toconfirm it's loading into memory. Looking for that now.4) When I
power on the machine, both drives spin but neither engagethe boot
disk. After maybe 20 seconds the drives stop spinning. Iverified that
the drive dip switches were correct from when the systemworked. I also
tried other similar drives (using Tandon 100-2A's). It's possible that
I have the wrong settings,. but this is what workedbefore:A DRIVE:
Tandon 100-2A jumpering TP11's 1st and 3rd (facing from thefront) and
inserting a T-RES terminator in TP7B DRIVE: MPI model 52 with G
jumpers on: 2-5-7, terminator installed.I must be getting close. I
will let you know if I make more progress. Bill
>
>
>
>
>
> _________________________________________________________________
> It's the same Hotmail. If by "same" you mean up to 70% faster.
>
http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_broad1_12200\
8
>
Using my z80 in-circuit emulator, I confirmed that the disk controller
bootstrap program was loading into memory. I researched the dip
switches for the drive and determined that my dip switch socket was one
place off. Moving the socket and resetting the dip switches, plus
setting my terminal to 9600 b (for the left/corner serial port) - voila
I am back in business.
I was able to boot N* DOS, a N* Turbo DOS, CP/M, etc.
Bill
Get a free MP3 every day with the Spinner.com Toolbar. Get it Now.
I had written a while back looking for a processor card. I got one
from Bill S (I think he may be a member of this group?) Anyway, here
is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem
to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced
the 7805 and now I get the correct voltage to everything.
2) I checked
every card, they all seem to be getting the correct
voltages (12 or 5)
ZPB processor (also have a ZPB-2)
MDS-AD3 (also have a MDS)
IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm)
N* 16K RAM bd (8000-Bfff)
n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read /
write test) - no errors through 7FFF. I can't write to anything above
that, but the RAM is there, unsure why but I assume that this is part
of an initial lockdown of RAM by design, as part of the bootstrap
process (I have to confirm this). I checked location E800 and what
appears to be bootstrap code is located in this location (which is
where the manual says it should be). I don't at the moment have a
copy of the bootstrap code, but I assume I can find this on the web to
confirm it's loading into memory. Looking for that now.
4) When I power on the
machine, both drives spin but neither engage
the boot disk. After maybe 20 seconds the drives stop spinning. I
verified that the drive dip switches were correct from when the system
worked. I also tried other similar drives (using Tandon 100-2A's).
It's possible that I have the wrong settings,. but this is what worked
before:
A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the
front) and inserting a T-RES terminator in TP7
B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
I have ported the code into MS Word format and uploaded to http://www.vintagecomputer.net/northstar/
NOTE: There was one colon that I changed to a semi-colon from the original. Also, the proportional spacing in Word did not translate some of the data columns perfectly, but this can be cleaned up.
Bill
-----Original Message-----
From: Bill Sudbrink <wh.sudbrink@...>
To: NorthStar_Computers@yahoogroups.com
Sent: Sun, 4 Jan 2009 12:21 am
Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
Stinking yahoo wrapped the disassembly... unwrap any lines that
That is not correct. The boot address for an mds-ad3 is e800. I use
one in my SOL. 'ex e800' boots it.
When you say "both drives spin", does either access LED light?
If both or neither do, you have a drive address conflict. 20 seconds
is about right for the access loop to time out. It is watching for
the index pulse and for the sector marks. I'm sure you know it
needs hard sectored floppies.
I did a hand disassembly of the ROM on my ad3... here it is:
E800 0E 0A MVI C, 0AH ; total number of retries (10)
E802 3A 15 EB LDA EB15 ; controller command 15H:
; get A status, turn on motors
E805 16 30 MVI D, 30H ; parameter to function call:
; number of sectors to wait (48)
E807 21 0D E8 LXI H, E80D ; store return address in H, L
E80A C3 D3 E8 JMP E8D3 ; "call" function to wait for D sectors
E80D 3A 01 EA
nbsp; LDA EA01 ; controller order 01H:
; single density,
; side 0,
; step direction out,
; head step signal low,
; select drive 1
E810 21 16 E8 LXI H, E816 ; store return address in H, L
E813 C3 4D E8 JMP E84D ; "call" function to wait for 2 sectors
E816 06 0C MVI B, 0CH ; loop counter, loop 12 times
E818 21 1E E8 LXI H, E81E ; store return address in H, L
E81B C3 D1 E8 JMP =0
A E8D1 ; "call" function to wait for 1 sector
E81E 3A 10 EB LDA EB10 ; controller command 10H:
; get A status, no command
E821 E6 40 ANI 40H ; is the index flag bit set?
E823 C2 2D E8 JNZ E82D ; jump if we got the index flag
E826 05 DCR B ; decrement the loop count
E827 C2 18 E8 JNZ E818 ; try again if there are tries remaining
E82A C3 2A E8 JMP E82A ; STOP HERE!!!! loop here forever
; the following three instructions step the head in one track
E82D 3A 21 EA LDA EA21 ; controller order 21H
; single density,
; side 0,
; step direction in,
; head step signal low,
; select drive 1
E830 3A 31 EA LDA EA31 ; controller order 21H
; single density,
; side 0,
; step direction in,
; head step signal high,
; select drive 1
E833 3A 21 EA LDA EA21 ; controller order 21H
; single density,
; side 0,
; step direction in,
; head step signal low,
; select drive 1
E836 C3 4A E8 JMP E84A ; "call" function to wait for 2 sectors
E839 3A 20 EB LDA EB20 ; controller command 20H:
; get B status, no operation
E83C E6 01 ANI 01H ; is the track zero flag bit set
E83E C2 52 E8 JNZ E852 ; if we're on track zero,
; jump out of the step out loop
; the following three instructions step the head out one track
E841 3A 01 EA LDA EA01 ; controller order 01H
; single d
ensity,
; side 0,
; step direction out,
; head step signal low,
; select drive 1
E844 3A 11 EA LDA EA11 ; controller order 01H
; single density,
; side 0,
; step direction out,
&n
bsp; ; head step signal high,
; select drive 1
E847 3A 01 EA LDA EA01 ; controller order 01H
; single density,
; side 0,
; step direction out,
; head step signal low,
; select drive 1
E84A 21 39 E8 LXI H, E839 ; load return address to above address
; (pretty funky, implements loop)
E84D 16 02 MVI D, 02H ; parameter to function call:
; number of sectors to wait (2)
E84F C3 D3 E8 JMP E8D3 ; "call" function to wait for D sectors
; we're now on track zero
E852 21 58 E8 LXI H, E858 ; load return address in H, L
E855 C3 D1 E8 JMP E8D1 ; "call" function to wait for 1 sector
E858 3A 35 EB LDA EB35 ; controller command 35H:
 
; ; get C status, turn on motors
E85B E6 0F ANI 0FH ; mask off the sector counter
E85D FE 04 CPI 04H ; are we on sector 4?
E85F C2 52 E8 JNZ E852 ; loop to look for sector 4
E862 3A 10 EB LDA EB10 ; controller command 10H:
; get A status, no operation
E865 E6 04 ANI 04H ; see if read enabled (phase locked loop?)
E867 CA 62 E8 JZ E862 ; loop while we can't read
E86A 3E 09 MVI A, 09H ; timing loop counter
E86C 3D DCR A ; decrement timing loop counter
E86D C2 6C E8 JNZ E86C ; timing loop jump
E870 3A 10 EB LDA EB10 ; controller command 10H:
; get A status, no operation
E873 E6 20 ANI 20H ; is the double density flag bit set
E875 C2 97 E8 JNZ E897 ; jump if we're double density
; the following three instructions step the head in one track
E878 3A 21 EA LDA EA21
E87B 3A 31 EA LDA EA31
E87E 3A 21 EA LDA EA21
E881 21 87 E8 LXI H, E887 ; set the return address
E884 C3 4D E8 JMP E84D ; "call" the function to wait for two sectors
E887 21 8D E8 LXI H, E88D ; set the return address
E88A C3 D1 E8 JMP E8D1 ; "call" the function to wait for 1 sector
E88D 3A 35 EB LDA EB35 ; controller command 35H:
; &n
bsp; get C status, turn on motors
E890 E6 0F ANI 0FH ; mask off the sector counter
E892 FE 08 CPI 08H ; are we on sector 8?
E894 C2 87 E8 JNZ E887 ; loop to look for sector 8
E897 06 8C MVI B, 8CH ; loop count to skip header block (140)
E899 11 40 EB LXI D, EB40 ; load D and E with controller command 40H:
; read data, no operation
E89C 3A 10 EB LDA EB10 ; controller command 10H:
; get A status, no operation
E89F 0F RRC ; rotate the body flag bit into the carry flag
E8A0 DA AE E8 JC E8AE &n
bsp; ; jump if we're in the body
E8A3 05 DCR B ; decrement loop counter
E8A4 C2 9C E8 JNZ E89C ; check for the body again
E8A7 0D DCR C ; decrement the number of major retries and...
E8A8 C2 2D E8 JNZ E82D ; start the whole thing again if we have any retries left
E8AB C3 AB E8 JMP E8AB ; STOP HERE!!!! loop here forever
E8AE 1A LDAX D ; read a byte into A (read command loaded into D, E above)
E8AF 67 MOV H, A ; move the read byte into H
E8B0 2E 01 MVI L, 01H : set L to 1
E8B2 77 MOV M, A ; store the read byte into <byte>01H (overwritten by E8B6)
E8B3 07 RLC ; start calculating the check character
E8B4 47 MOV B, A ; store the check character in B
E8B5 1A&nbs
p; LDAX D ; read the next byte
E8B6 77 MOV M, A ; store the byte
E8B7 A8 XRA B ; continue check character calc
E8B8 07 RLC ; continue check character calc
E8B9 47 MOV B, A ; store the check character in B
E8BA 2C INR L ; increment memory address
E8BB C2 B5 E8 JNZ E8B5 ; reading all 256 bytes (loop if more)
E8BE 24 INR H ; next 256 bytes...
E8BF 1A LDAX D ; read the next byte
E8C0 77 MOV M, A ; store the byte
E8C1 A8 XRA B ; continue check character calc
E8C2 07 RLC ; continue check character calc
E8C3&n
bsp; 47 MOV B, A ; store the check character in B
E8C4 2C INR L ; increment memory address
E8C5 C2 BF E8 JNZ E8BF ; reading all 256 bytes (loop if more)
E8C8 1A LDAX D ; read the check character
E8C9 A8 XRA B ; compare to what we calculated
E8CA C2 A7 E8 JNZ E8A7 ; retry the whole thing if we fail
; read success, jump into the code
E8CD 25 DCR H ; back to the first 256 bytes
E8CE 2E 0A MVI L, 0AH ; offset 10
E8D0 E9 PCHL ; jump to the read code
; the following code watches sectors go by
E8D1 16 01 MVI D, 01H ; wait for 1 sector
E8D3 3A 11 EB LDA EB11 ; controller command 11H: get A status, reset sector flag
E8D6 3A 10 EB LDA EB10 ; controller command 10H: get A status, no operation
E8D9 B7 ORA A ; set flags
E8DA F2 D6 E8 JP E8D6 ; loop if the sector flag status bit is not set
E8DD 15 DCR D ; decrement the loop count
E8DE 3A 11 EB LDA EB11 ; controller command 11H: get A status, reset sector flag
E8E1 C2 D3 E8 JNZ E8D3 ; loop if the loop count is not zero
E8E4 E9 PCHL ; return (sort of)
-----Original Message----- From: NorthStar_Computers@yahoogroups.com [mailto:NorthStar_Computers@yahoogroups.com]On Behalf Of Chuck Magee Sent: Saturday, January 03, 2009 8:08 PM To: northstar_computers@yahoogroups.com Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
Hmm, the boot address is supposed to be E900, not E800!
To: NorthStar_Computers@yahoogroups.com
From: billdeg@aol.com
Date: Sat, 3 Jan 2009 15:04:30 +0000
Subject: [NorthStar_Computers] N* Horizon Project Update -
I had written a while back looking for a processor card. I got one
from Bill S (I think he may be a member of this group?) Anyway, here
is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem
to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced
the 7805 and now I get the correct voltage to everything.
2) I checked every card, they all seem to be getting the correct
voltages (12 or 5)
ZPB processor (also have a ZPB-2)
MDS-AD3 (also have a MDS)
IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm)
N* 16K RAM bd (8000-Bfff)
n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read /
write test) - no errors through 7FFF. I can't write to anything above
that, but the RAM is there, unsure why but I assume that this is part
of an initial lockdown of RAM by design, as part of the bootstrap
process (I have to confirm this). I checked location E800 and what
appears to be bootstrap code is located in this location (which is
where the manual says it should be). I don't at the moment have a
copy of the bootstrap code, but I assume I can find this on the web to
confirm it's loading into memory. Looking for that now.
4) When I power20on the machine, both drives spin but neither engage
the boot disk. After maybe 20 seconds the drives stop spinning. I
verified that the drive dip switches were correct from when the system
worked. I also tried other similar drives (using Tandon 100-2A's).
It's possible that I have the wrong settings,. but this is what worked
before:
A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the
front) and inserting a T-RES terminator in TP7
B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
Bill
It’s the same Hotmail®. If by “same” you mean up to 70% faster. Get your account now.
Get a free MP3 every day with the Spinner.com Toolbar. Get it Now.
Thanks Bill and all who responded. I will verify the code at E800. I agree that there must be a drive address conflict. So far I tried each drive by itself. I need to double check the drive jumpers, but I purposely wrote down what I had when it was working for future reference so that I would not have to guess/re-look it up. Maybe there is a jumper on the controller card that is in the middle or accidentally moved. I should also test with a different system, etc. There is more I can do, I will let you all know.
Bill
-----Original Message-----
From: Bill Sudbrink <wh.sudbrink@...>
To: NorthStar_Computers@yahoogroups.com
Sent: Sun, 4 Jan 2009 12:21 am
Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
Stinking yahoo wrapped the disassembly... unwrap any lines that
don't start with an address or a semicolon.
Get a free MP3 every day with the Spinner.com Toolbar. Get it Now.
Stinking yahoo wrapped the disassembly... unwrap any lines that
don't start with an address or a semicolon.
-----Original Message----- From: NorthStar_Computers@yahoogroups.com [mailto:NorthStar_Computers@yahoogroups.com]On Behalf Of Bill Sudbrink Sent: Sunday, January 04, 2009 12:00 AM To: NorthStar_Computers@yahoogroups.com Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
That is not correct. The boot address for an mds-ad3 is e800. I use
one in my SOL. 'ex e800' boots it.
When you say "both drives spin", does either access LED light?
If both or neither do, you have a drive address conflict. 20 seconds
is about right for the access loop to time out. It is watching for
the index pulse and for the sector marks. I'm sure you know it
needs hard sectored floppies.
I did a hand disassembly of the ROM on my ad3... here it is:
E800 0E 0A MVI C, 0AH ; total number of retries (10) E802 3A 15 EB LDA EB15 ; controller command 15H: ; get A status, turn on motors E805 16 30 MVI D, 30H ; parameter to function call: ; number of sectors to wait (48) E807 21 0D E8 LXI H, E80D ; store return address in H, L E80A C3 D3 E8 JMP E8D3 ; "call" function to wait for D sectors E80D 3A 01 EA LDA EA01 ; controller order 01H: ; single density, ; side 0, ; step direction out, ; head step signal low, ; select drive 1 E810 21 16 E8 LXI H, E816 ; store return address in H, L E813 C3 4D E8 JMP E84D ; "call" function to wait for 2 sectors E816 06 0C MVI B, 0CH ; loop counter, loop 12 times E818 21 1E E8 LXI H, E81E ; store return address in H, L E81B C3 D1 E8 JMP E8D1 ; "call" function to wait for 1 sector E81E 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no command E821 E6 40 ANI 40H ; is the index flag bit set? E823 C2 2D E8 JNZ E82D ; jump if we got the index flag E826 05 DCR B ; decrement the loop count E827 C2 18 E8 JNZ E818 ; try again if there are tries remaining E82A C3 2A E8 JMP E82A ; STOP HERE!!!! loop here forever
; the following three instructions step the head in one track E82D 3A 21 EA LDA EA21 ; controller order 21H ; single density, ; side 0, ; step direction in, ; head step signal low, ; select drive 1 E830 3A 31 EA LDA EA31 ; controller order 21H ; single density, ; side 0, ; step direction in, ; head step signal high, ; select drive 1 E833 3A 21 EA LDA EA21 ; controller order 21H ; single density, ; side 0, ; step direction in, ; head step signal low, ; select drive 1
E836 C3 4A E8 JMP E84A ; "call" function to wait for 2 sectors E839 3A 20 EB LDA EB20 ; controller command 20H: ; get B status, no operation E83C E6 01 ANI 01H ; is the track zero flag bit set E83E C2 52 E8 JNZ E852 ; if we're on track zero, ; jump out of the step out loop
; the following three instructions step the head out one track E841 3A 01 EA LDA EA01 ; controller order 01H ; single density, ; side 0, ; step direction out, ; head step signal low, ; select drive 1 E844 3A 11 EA LDA EA11 ; controller order 01H ; single density, ; side 0, ; step direction out, ; head step signal high, ; select drive 1 E847 3A 01 EA LDA EA01 ; controller order 01H ; single density, ; side 0, ; step direction out, ; head step signal low, ; select drive 1
E84A 21 39 E8 LXI H, E839 ; load return address to above address ; (pretty funky, implements loop) E84D 16 02 MVI D, 02H ; parameter to function call: ; number of sectors to wait (2) E84F C3 D3 E8 JMP E8D3 ; "call" function to wait for D sectors
; we're now on track zero E852 21 58 E8 LXI H, E858 ; load return address in H, L E855 C3 D1 E8 JMP E8D1 ; "call" function to wait for 1 sector E858 3A 35 EB LDA EB35 ; controller command 35H: ; get C status, turn on motors E85B E6 0F ANI 0FH ; mask off the sector counter E85D FE 04 CPI 04H ; are we on sector 4? E85F C2 52 E8 JNZ E852 ; loop to look for sector 4 E862 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no operation E865 E6 04 ANI 04H ; see if read enabled (phase locked loop?) E867 CA 62 E8 JZ E862 ; loop while we can't read E86A 3E 09 MVI A, 09H ; timing loop counter E86C 3D DCR A ; decrement timing loop counter E86D C2 6C E8 JNZ E86C ; timing loop jump E870 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no operation E873 E6 20 ANI 20H ; is the double density flag bit set E875 C2 97 E8 JNZ E897 ; jump if we're double density
; the following three instructions step the head in one track E878 3A 21 EA LDA EA21 E87B 3A 31 EA LDA EA31 E87E 3A 21 EA LDA EA21
E881 21 87 E8 LXI H, E887 ; set the return address E884 C3 4D E8 JMP E84D ; "call" the function to wait for two sectors E887 21 8D E8 LXI H, E88D ; set the return address E88A C3 D1 E8 JMP E8D1 ; "call" the function to wait for 1 sector E88D 3A 35 EB LDA EB35 ; controller command 35H: ; get C status, turn on motors E890 E6 0F ANI 0FH ; mask off the sector counter E892 FE 08 CPI 08H ; are we on sector 8? E894 C2 87 E8 JNZ E887 ; loop to look for sector 8
E897 06 8C MVI B, 8CH ; loop count to skip header block (140) E899 11 40 EB LXI D, EB40 ; load D and E with controller command 40H: ; read data, no operation E89C 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no operation E89F 0F RRC ; rotate the body flag bit into the carry flag E8A0 DA AE E8 JC E8AE ; jump if we're in the body E8A3 05 DCR B ; decrement loop counter E8A4 C2 9C E8 JNZ E89C ; check for the body again E8A7 0D DCR C ; decrement the number of major retries and... E8A8 C2 2D E8 JNZ E82D ; start the whole thing again if we have any retries left E8AB C3 AB E8 JMP E8AB ; STOP HERE!!!! loop here forever E8AE 1A LDAX D ; read a byte into A (read command loaded into D, E above) E8AF 67 MOV H, A ; move the read byte into H E8B0 2E 01 MVI L, 01H : set L to 1 E8B2 77 MOV M, A ; store the read byte into <byte>01H (overwritten by E8B6) E8B3 07 RLC ; start calculating the check character E8B4 47 MOV B, A ; store the check character in B E8B5 1A LDAX D ; read the next byte E8B6 77 MOV M, A ; store the byte E8B7 A8 XRA B ; continue check character calc E8B8 07 RLC ; continue check character calc E8B9 47 MOV B, A ; store the check character in B E8BA 2C INR L ; increment memory address E8BB C2 B5 E8 JNZ E8B5 ; reading all 256 bytes (loop if more) E8BE 24 INR H ; next 256 bytes... E8BF 1A LDAX D ; read the next byte E8C0 77 MOV M, A ; store the byte E8C1 A8 XRA B ; continue check character calc E8C2 07 RLC ; continue check character calc E8C3 47 MOV B, A ; store the check character in B E8C4 2C INR L ; increment memory address E8C5 C2 BF E8 JNZ E8BF ; reading all 256 bytes (loop if more) E8C8 1A LDAX D ; read the check character E8C9 A8 XRA B ; compare to what we calculated E8CA C2 A7 E8 JNZ E8A7 ; retry the whole thing if we fail
; read success, jump into the code
E8CD 25 DCR H ; back to the first 256 bytes E8CE 2E 0A MVI L, 0AH ; offset 10 E8D0 E9 PCHL ; jump to the read code
; the following code watches sectors go by
E8D1 16 01 MVI D, 01H ; wait for 1 sector E8D3 3A 11 EB LDA EB11 ; controller command 11H: get A status, reset sector flag E8D6 3A 10 EB LDA EB10 ; controller command 10H: get A status, no operation E8D9 B7 ORA A ; set flags E8DA F2 D6 E8 JP E8D6 ; loop if the sector flag status bit is not set E8DD 15 DCR D ; decrement the loop count E8DE 3A 11 EB LDA EB11 ; controller command 11H: get A status, reset sector flag E8E1 C2 D3 E8 JNZ E8D3 ; loop if the loop count is not zero E8E4 E9 PCHL ; return (sort of)
-----Original Message----- From: NorthStar_Computers@yahoogroups.com [mailto:NorthStar_Computers@yahoogroups.com]On Behalf Of Chuck Magee Sent: Saturday, January 03, 2009 8:08 PM To: northstar_computers@yahoogroups.com Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
Hmm, the boot address is supposed to be E900, not E800!
To: NorthStar_Computers@yahoogroups.com From: billdeg@aol.com Date: Sat, 3 Jan 2009 15:04:30 +0000 Subject: [NorthStar_Computers] N* Horizon Project Update -
I had written a while back looking for a processor card. I got one from Bill S (I think he may be a member of this group?) Anyway, here is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced the 7805 and now I get the correct voltage to everything.
2) I checked every card, they all seem to be getting the correct voltages (12 or 5)
ZPB processor (also have a ZPB-2) MDS-AD3 (also have a MDS) IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm) N* 16K RAM bd (8000-Bfff) n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read / write test) - no errors through 7FFF. I can't write to anything above that, but the RAM is there, unsure why but I assume that this is part of an initial lockdown of RAM by design, as part of the bootstrap process (I have to confirm this). I checked location E800 and what appears to be bootstrap code is located in this location (which is where the manual says it should be). I don't at the moment have a copy of the bootstrap code, but I assume I can find this on the web to confirm it's loading into memory. Looking for that now.
4) When I power on the machine, both drives spin but neither engage the boot disk. After maybe 20 seconds the drives stop spinning. I verified that the drive dip switches were correct from when the system worked. I also tried other similar drives (using Tandon 100-2A's). It's possible that I have the wrong settings,. but this is what worked before: A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the front) and inserting a T-RES terminator in TP7 B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
That is not correct. The boot address for an mds-ad3 is e800. I use
one in my SOL. 'ex e800' boots it.
When you say "both drives spin", does either access LED light?
If both or neither do, you have a drive address conflict. 20 seconds
is about right for the access loop to time out. It is watching for
the index pulse and for the sector marks. I'm sure you know it
needs hard sectored floppies.
I did a hand disassembly of the ROM on my ad3... here it is:
E800 0E 0A MVI C, 0AH ; total number of retries (10) E802 3A 15 EB LDA EB15 ; controller command 15H: ; get A status, turn on motors E805 16 30 MVI D, 30H ; parameter to function call: ; number of sectors to wait (48) E807 21 0D E8 LXI H, E80D ; store return address in H, L E80A C3 D3 E8 JMP E8D3 ; "call" function to wait for D sectors E80D 3A 01 EA LDA EA01 ; controller order 01H: ; single density, ; side 0, ; step direction out, ; head step signal low, ; select drive 1 E810 21 16 E8 LXI H, E816 ; store return address in H, L E813 C3 4D E8 JMP E84D ; "call" function to wait for 2 sectors E816 06 0C MVI B, 0CH ; loop counter, loop 12 times E818 21 1E E8 LXI H, E81E ; store return address in H, L E81B C3 D1 E8 JMP E8D1 ; "call" function to wait for 1 sector E81E 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no command E821 E6 40 ANI 40H ; is the index flag bit set? E823 C2 2D E8 JNZ E82D ; jump if we got the index flag E826 05 DCR B ; decrement the loop count E827 C2 18 E8 JNZ E818 ; try again if there are tries remaining E82A C3 2A E8 JMP E82A ; STOP HERE!!!! loop here forever
; the following three instructions step the head in one track E82D 3A 21 EA LDA EA21 ; controller order 21H ; single density, ; side 0, ; step direction in, ; head step signal low, ; select drive 1 E830 3A 31 EA LDA EA31 ; controller order 21H ; single density, ; side 0, ; step direction in, ; head step signal high, ; select drive 1 E833 3A 21 EA LDA EA21 ; controller order 21H ; single density, ; side 0, ; step direction in, ; head step signal low, ; select drive 1
E836 C3 4A E8 JMP E84A ; "call" function to wait for 2 sectors E839 3A 20 EB LDA EB20 ; controller command 20H: ; get B status, no operation E83C E6 01 ANI 01H ; is the track zero flag bit set E83E C2 52 E8 JNZ E852 ; if we're on track zero, ; jump out of the step out loop
; the following three instructions step the head out one track E841 3A 01 EA LDA EA01 ; controller order 01H ; single density, ; side 0, ; step direction out, ; head step signal low, ; select drive 1 E844 3A 11 EA LDA EA11 ; controller order 01H ; single density, ; side 0, ; step direction out, ; head step signal high, ; select drive 1 E847 3A 01 EA LDA EA01 ; controller order 01H ; single density, ; side 0, ; step direction out, ; head step signal low, ; select drive 1
E84A 21 39 E8 LXI H, E839 ; load return address to above address ; (pretty funky, implements loop) E84D 16 02 MVI D, 02H ; parameter to function call: ; number of sectors to wait (2) E84F C3 D3 E8 JMP E8D3 ; "call" function to wait for D sectors
; we're now on track zero E852 21 58 E8 LXI H, E858 ; load return address in H, L E855 C3 D1 E8 JMP E8D1 ; "call" function to wait for 1 sector E858 3A 35 EB LDA EB35 ; controller command 35H: ; get C status, turn on motors E85B E6 0F ANI 0FH ; mask off the sector counter E85D FE 04 CPI 04H ; are we on sector 4? E85F C2 52 E8 JNZ E852 ; loop to look for sector 4 E862 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no operation E865 E6 04 ANI 04H ; see if read enabled (phase locked loop?) E867 CA 62 E8 JZ E862 ; loop while we can't read E86A 3E 09 MVI A, 09H ; timing loop counter E86C 3D DCR A ; decrement timing loop counter E86D C2 6C E8 JNZ E86C ; timing loop jump E870 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no operation E873 E6 20 ANI 20H ; is the double density flag bit set E875 C2 97 E8 JNZ E897 ; jump if we're double density
; the following three instructions step the head in one track E878 3A 21 EA LDA EA21 E87B 3A 31 EA LDA EA31 E87E 3A 21 EA LDA EA21
E881 21 87 E8 LXI H, E887 ; set the return address E884 C3 4D E8 JMP E84D ; "call" the function to wait for two sectors E887 21 8D E8 LXI H, E88D ; set the return address E88A C3 D1 E8 JMP E8D1 ; "call" the function to wait for 1 sector E88D 3A 35 EB LDA EB35 ; controller command 35H: ; get C status, turn on motors E890 E6 0F ANI 0FH ; mask off the sector counter E892 FE 08 CPI 08H ; are we on sector 8? E894 C2 87 E8 JNZ E887 ; loop to look for sector 8
E897 06 8C MVI B, 8CH ; loop count to skip header block (140) E899 11 40 EB LXI D, EB40 ; load D and E with controller command 40H: ; read data, no operation E89C 3A 10 EB LDA EB10 ; controller command 10H: ; get A status, no operation E89F 0F RRC ; rotate the body flag bit into the carry flag E8A0 DA AE E8 JC E8AE ; jump if we're in the body E8A3 05 DCR B ; decrement loop counter E8A4 C2 9C E8 JNZ E89C ; check for the body again E8A7 0D DCR C ; decrement the number of major retries and... E8A8 C2 2D E8 JNZ E82D ; start the whole thing again if we have any retries left E8AB C3 AB E8 JMP E8AB ; STOP HERE!!!! loop here forever E8AE 1A LDAX D ; read a byte into A (read command loaded into D, E above) E8AF 67 MOV H, A ; move the read byte into H E8B0 2E 01 MVI L, 01H : set L to 1 E8B2 77 MOV M, A ; store the read byte into <byte>01H (overwritten by E8B6) E8B3 07 RLC ; start calculating the check character E8B4 47 MOV B, A ; store the check character in B E8B5 1A LDAX D ; read the next byte E8B6 77 MOV M, A ; store the byte E8B7 A8 XRA B ; continue check character calc E8B8 07 RLC ; continue check character calc E8B9 47 MOV B, A ; store the check character in B E8BA 2C INR L ; increment memory address E8BB C2 B5 E8 JNZ E8B5 ; reading all 256 bytes (loop if more) E8BE 24 INR H ; next 256 bytes... E8BF 1A LDAX D ; read the next byte E8C0 77 MOV M, A ; store the byte E8C1 A8 XRA B ; continue check character calc E8C2 07 RLC ; continue check character calc E8C3 47 MOV B, A ; store the check character in B E8C4 2C INR L ; increment memory address E8C5 C2 BF E8 JNZ E8BF ; reading all 256 bytes (loop if more) E8C8 1A LDAX D ; read the check character E8C9 A8 XRA B ; compare to what we calculated E8CA C2 A7 E8 JNZ E8A7 ; retry the whole thing if we fail
; read success, jump into the code
E8CD 25 DCR H ; back to the first 256 bytes E8CE 2E 0A MVI L, 0AH ; offset 10 E8D0 E9 PCHL ; jump to the read code
; the following code watches sectors go by
E8D1 16 01 MVI D, 01H ; wait for 1 sector E8D3 3A 11 EB LDA EB11 ; controller command 11H: get A status, reset sector flag E8D6 3A 10 EB LDA EB10 ; controller command 10H: get A status, no operation E8D9 B7 ORA A ; set flags E8DA F2 D6 E8 JP E8D6 ; loop if the sector flag status bit is not set E8DD 15 DCR D ; decrement the loop count E8DE 3A 11 EB LDA EB11 ; controller command 11H: get A status, reset sector flag E8E1 C2 D3 E8 JNZ E8D3 ; loop if the loop count is not zero E8E4 E9 PCHL ; return (sort of)
-----Original Message----- From: NorthStar_Computers@yahoogroups.com [mailto:NorthStar_Computers@yahoogroups.com]On Behalf Of Chuck Magee Sent: Saturday, January 03, 2009 8:08 PM To: northstar_computers@yahoogroups.com Subject: RE: [NorthStar_Computers] N* Horizon Project Update -
Hmm, the boot address is supposed to be E900, not E800!
To: NorthStar_Computers@yahoogroups.com From: billdeg@aol.com Date: Sat, 3 Jan 2009 15:04:30 +0000 Subject: [NorthStar_Computers] N* Horizon Project Update -
I had written a while back looking for a processor card. I got one from Bill S (I think he may be a member of this group?) Anyway, here is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced the 7805 and now I get the correct voltage to everything.
2) I checked every card, they all seem to be getting the correct voltages (12 or 5)
ZPB processor (also have a ZPB-2) MDS-AD3 (also have a MDS) IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm) N* 16K RAM bd (8000-Bfff) n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read / write test) - no errors through 7FFF. I can't write to anything above that, but the RAM is there, unsure why but I assume that this is part of an initial lockdown of RAM by design, as part of the bootstrap process (I have to confirm this). I checked location E800 and what appears to be bootstrap code is located in this location (which is where the manual says it should be). I don't at the moment have a copy of the bootstrap code, but I assume I can find this on the web to confirm it's loading into memory. Looking for that now.
4) When I power on the machine, both drives spin but neither engage the boot disk. After maybe 20 seconds the drives stop spinning. I verified that the drive dip switches were correct from when the system worked. I also tried other similar drives (using Tandon 100-2A's). It's possible that I have the wrong settings,. but this is what worked before: A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the front) and inserting a T-RES terminator in TP7 B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
Hmm, the boot address is supposed to be E900, not E800!
To: NorthStar_Computers@yahoogroups.com From: billdeg@... Date: Sat, 3 Jan 2009 15:04:30 +0000 Subject: [NorthStar_Computers] N* Horizon Project Update -
I had written a while back looking for a processor card. I got one from Bill S (I think he may be a member of this group?) Anyway, here is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced the 7805 and now I get the correct voltage to everything.
2) I checked every card, they all seem to be getting the correct voltages (12 or 5)
ZPB processor (also have a ZPB-2) MDS-AD3 (also have a MDS) IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm) N* 16K RAM bd (8000-Bfff) n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read / write test) - no errors through 7FFF. I can't write to anything above that, but the RAM is there, unsure why but I assume that this is part of an initial lockdown of RAM by design, as part of the bootstrap process (I have to confirm this). I checked location E800 and what appears to be bootstrap code is located in this location (which is where the manual says it should be). I don't at the moment have a copy of the bootstrap code, but I assume I can find this on the web to confirm it's loading into memory. Looking for that now.
4) When I power on the machine, both drives spin but neither engage the boot disk. After maybe 20 seconds the drives stop spinning. I verified that the drive dip switches were correct from when the system worked. I also tried other similar drives (using Tandon 100-2A's). It's possible that I have the wrong settings,. but this is what worked before: A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the front) and inserting a T-RES terminator in TP7 B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
I had written a while back looking for a processor card. I got one
from Bill S (I think he may be a member of this group?) Anyway, here
is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem
to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced
the 7805 and now I get the correct voltage to everything.
2) I checked
every card, they all seem to be getting the correct
voltages (12 or 5)
ZPB processor (also have a ZPB-2)
MDS-AD3 (also have a MDS)
IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm)
N* 16K RAM bd (8000-Bfff)
n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read /
write test) - no errors through 7FFF. I can't write to anything above
that, but the RAM is there, unsure why but I assume that this is part
of an initial lockdown of RAM by design, as part of the bootstrap
process (I have to confirm this). I checked location E800 and what
appears to be bootstrap code is located in this location (which is
where the manual says it should be). I don't at the moment have a
copy of the bootstrap code, but I assume I can find this on the web to
confirm it's loading into memory. Looking for that now.
4) When I power on the
machine, both drives spin but neither engage
the boot disk. After maybe 20 seconds the drives stop spinning. I
verified that the drive dip switches were correct from when the system
worked. I also tried other similar drives (using Tandon 100-2A's).
It's possible that I have the wrong settings,. but this is what worked
before:
A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the
front) and inserting a T-RES terminator in TP7
B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
From: billdeg <billdeg@...> Subject: [NorthStar_Computers] N* Horizon Project Update - To: NorthStar_Computers@yahoogroups.com Date: Saturday, January 3, 2009, 10:04 AM
I had written a while back looking for a processor card. I got one from Bill S (I think he may be a member of this group?) Anyway, here is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced the 7805 and now I get the correct voltage to everything.
2) I checked
every card, they all seem to be getting the correct voltages (12 or 5)
ZPB processor (also have a ZPB-2) MDS-AD3 (also have a MDS) IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm) N* 16K RAM bd (8000-Bfff) n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read / write test) - no errors through 7FFF. I can't write to anything above that, but the RAM is there, unsure why but I assume that this is part of an initial lockdown of RAM by design, as part of the bootstrap process (I have to confirm this). I checked location E800 and what appears to be bootstrap code is located in this location (which is where the manual says it should be). I don't at the moment have a copy of the bootstrap code, but I assume I can find this on the web to confirm it's loading into memory. Looking for that now.
4) When I power on the
machine, both drives spin but neither engage the boot disk. After maybe 20 seconds the drives stop spinning. I verified that the drive dip switches were correct from when the system worked. I also tried other similar drives (using Tandon 100-2A's). It's possible that I have the wrong settings,. but this is what worked before: A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the front) and inserting a T-RES terminator in TP7 B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
I had written a while back looking for a processor card. I got one
from Bill S (I think he may be a member of this group?) Anyway, here
is a project update. This is a work in progress.
1) Not getting 5V to the A drive (less than 2V). Traced the problem
to the 7805 inside heatsink, 6030B, the front-most 7805. I replaced
the 7805 and now I get the correct voltage to everything.
2) I checked every card, they all seem to be getting the correct
voltages (12 or 5)
ZPB processor (also have a ZPB-2)
MDS-AD3 (also have a MDS)
IMS 4mhz 16K RAM set for top memory (I believe - checking to confirm)
N* 16K RAM bd (8000-Bfff)
n* 32K RAM bd (0-7fff)
3) I installed an in-circuit z80 emulator to check the memory (read /
write test) - no errors through 7FFF. I can't write to anything above
that, but the RAM is there, unsure why but I assume that this is part
of an initial lockdown of RAM by design, as part of the bootstrap
process (I have to confirm this). I checked location E800 and what
appears to be bootstrap code is located in this location (which is
where the manual says it should be). I don't at the moment have a
copy of the bootstrap code, but I assume I can find this on the web to
confirm it's loading into memory. Looking for that now.
4) When I power on the machine, both drives spin but neither engage
the boot disk. After maybe 20 seconds the drives stop spinning. I
verified that the drive dip switches were correct from when the system
worked. I also tried other similar drives (using Tandon 100-2A's).
It's possible that I have the wrong settings,. but this is what worked
before:
A DRIVE: Tandon 100-2A jumpering TP11's 1st and 3rd (facing from the
front) and inserting a T-RES terminator in TP7
B DRIVE: MPI model 52 with G jumpers on: 2-5-7, terminator installed.
I must be getting close. I will let you know if I make more progress.
Bill
--- In NorthStar_Computers@yahoogroups.com, Steven Hirsch
<snhirsch@...> wrote:
>
> On Sun, 5 Oct 2008, Andrew Lynch wrote:
>
> > --- In NorthStar_Computers@yahoogroups.com, "snhirsch5"
> > <snhirsch@> wrote:
> >>
> >> Andrew,
> >>
> >> What is the status with CWNS? I cannot seem to find any
discussion
> >> later than Fall 2007. Did you ever get it to the point of
reliably
> >> imaging and re-creating N* hard-sectored (and/or mixed density)
> > diskettes?
> >>
> >
> >
> > Hi!
> >
> > I did get CWNS to work reliably to make disk images of NorthStar
> > disks. It was never really intended to be able to recreate images
> > since the Dave Dunfield NST program did that already. I suppose
it
> > could be extended to write disks but I never had the need for it.
>
> Thanks for the quick response! Doesn't the NST program require N*
> hardware? Is there a way to write N* diskettes on PC hardware?
>
> Steve
>
>
> --
>
Hi Steve,
Yes, NST requires NS* hardware but if you need real disk images then
you probably already have access to it. At least that is the
reasoning. The disk images are useful in the Dave Dunfield NS
simulator which does not require NS* hardware.
Thanks! Have a nice day!
Andrew Lynch
On Sun, 5 Oct 2008, Andrew Lynch wrote:
> --- In NorthStar_Computers@yahoogroups.com, "snhirsch5"
> <snhirsch@...> wrote:
>>
>> Andrew,
>>
>> What is the status with CWNS? I cannot seem to find any discussion
>> later than Fall 2007. Did you ever get it to the point of reliably
>> imaging and re-creating N* hard-sectored (and/or mixed density)
> diskettes?
>>
>
>
> Hi!
>
> I did get CWNS to work reliably to make disk images of NorthStar
> disks. It was never really intended to be able to recreate images
> since the Dave Dunfield NST program did that already. I suppose it
> could be extended to write disks but I never had the need for it.
Thanks for the quick response! Doesn't the NST program require N*
hardware? Is there a way to write N* diskettes on PC hardware?
Steve
--
--- In NorthStar_Computers@yahoogroups.com, "snhirsch5"
<snhirsch@...> wrote:
>
> Andrew,
>
> What is the status with CWNS? I cannot seem to find any discussion
> later than Fall 2007. Did you ever get it to the point of reliably
> imaging and re-creating N* hard-sectored (and/or mixed density)
diskettes?
>
Hi!
I did get CWNS to work reliably to make disk images of NorthStar
disks. It was never really intended to be able to recreate images
since the Dave Dunfield NST program did that already. I suppose it
could be extended to write disks but I never had the need for it.
As of late, I have been focusing on a home brew computing project
which has consumed my hobby time for the last several months. I
offered the CWNS as an open source project on the CCTALK list but it
was in general poorly received. I believe the "classic" computer
community is pre-disposed against the CW for some reason but I am
unsure why. The CWNS files are available on this website if you are
looking for them in the FILES section.
Thanks and have a nice day!
Andrew Lynch
Andrew,
What is the status with CWNS? I cannot seem to find any discussion
later than Fall 2007. Did you ever get it to the point of reliably
imaging and re-creating N* hard-sectored (and/or mixed density) diskettes?
Thank you very much for the offer, Steve. Someone else on another
forum sent me their NDOS master disk about a week ago. My system
booted fine, and I now have a full set of CP/M and NDOS disks. I had
one problem/challenge to overcome. Many CP/M programs I wanted to
run were not contained inside an image. And from what I have been
able to ascertain, the Dunfield utilties only can export/import text
files. I have tried others, but corruption seems to occur (in CP/M,
that is). I was able to work around this by using a KERMIT transfer
program on the NSTAR and a PC. Now I can transfer any files. I also
purchased a 1/8 inch hole punch. It's a slow process, but I have
been able to make working hard sector disks.
Thanks again for the offer. If it wasnt for generous collectors like
you, I would still be staring at a 150 pound paperweight (antique
papereight, that is!)
-Brian
--- In NorthStar_Computers@yahoogroups.com, "Steve Walker"
<automusic63@...> wrote:
>
> --- In NorthStar_Computers@yahoogroups.com, "brianties" <btt@>
> wrote:
> >
> > I just acquired a really nice N* horizon with 64k ram. Had to
> make a
> > small repair when a tantalum capacitor exploded. However, I
> replaced
> > it, and I am ready to test. Problem is, none of the tools out
> there
> > are going to get me anywhere without n*dos or a PROM monitor.
> Would
> > anyone out there be willing to sell me a boot disk? I should be
> able
> > to transfer anything I want from that point forward.
> >
> > Thanks for any help,
> > -Brian
> >
>
> Hi Brian,
> Welcome to the group! I acquired my Northstar Horizon about a year
> ago and had the same problem. Dave Dunfield's simulator is a must
> have and is great to transfer disks with. However, you cannot
> transfer disks with it unless you have a Northstar dos boot disk to
> start with! You could use a monitor in ROM to do the initial
> transfer of the NST stub program in order to make your own boot
disk
> but I don't know of any available. Also you would probably need to
> modify it anyway for your own I/O. If you can modify the I/O
> routines then you can probably write your own monitor but then you
> would still need a ROM card to be able to use it. Very frustrating!
> Usually the only ROM in a basic Northstar Horizon is a small
program
> to boot the floppy. It's a classic Chicken and Egg story. You need
a
> chicken (Northstar running a monitor program) in order to make an
> egg (a boot disk) but in order to make the chicken you need the
> egg!!
>
> Now for the good news. Andrew came to my rescue with boot disks
when
> I needed them. Now it's my turn to help. I can and will make the
> boot disks you need. I have a working hard sector disk punch and
can
> make 10 and 16 sector disks from soft sector disks. The disks I
make
> are identical to factory made 10 and 16 sector disks and work
> perfectly. Media is not a problem for me. I can make you a
NorthStar
> DOS Boot disk and a CP/M Boot disk. You need to be careful with
CP/M
> disks because CP/M can be set up for fast disk access (stepping) or
> normal disk access. If the CP/M you are trying to boot is set up
for
> fast disk access and your drives can't handle it you will have all
> kinds of weird things happen. You will think (as I did) your
> hardware or memory is bad. Some programs load while others do not.
> The directory may look fine but the file names are not correct or
> have illegal characters. The CP/M disk I send will be set for
normal
> stepping. Please let me know if you still need boot disks. If so,
> also let me know what disk controller you have so I can make the
> correct disks.
>
> Steve
>
--- In NorthStar_Computers@yahoogroups.com, "brianties" <btt@...>
wrote:
>
> I just acquired a really nice N* horizon with 64k ram. Had to
make a
> small repair when a tantalum capacitor exploded. However, I
replaced
> it, and I am ready to test. Problem is, none of the tools out
there
> are going to get me anywhere without n*dos or a PROM monitor.
Would
> anyone out there be willing to sell me a boot disk? I should be
able
> to transfer anything I want from that point forward.
>
> Thanks for any help,
> -Brian
>
Hi Brian,
Welcome to the group! I acquired my Northstar Horizon about a year
ago and had the same problem. Dave Dunfield's simulator is a must
have and is great to transfer disks with. However, you cannot
transfer disks with it unless you have a Northstar dos boot disk to
start with! You could use a monitor in ROM to do the initial
transfer of the NST stub program in order to make your own boot disk
but I don't know of any available. Also you would probably need to
modify it anyway for your own I/O. If you can modify the I/O
routines then you can probably write your own monitor but then you
would still need a ROM card to be able to use it. Very frustrating!
Usually the only ROM in a basic Northstar Horizon is a small program
to boot the floppy. It's a classic Chicken and Egg story. You need a
chicken (Northstar running a monitor program) in order to make an
egg (a boot disk) but in order to make the chicken you need the
egg!!
Now for the good news. Andrew came to my rescue with boot disks when
I needed them. Now it's my turn to help. I can and will make the
boot disks you need. I have a working hard sector disk punch and can
make 10 and 16 sector disks from soft sector disks. The disks I make
are identical to factory made 10 and 16 sector disks and work
perfectly. Media is not a problem for me. I can make you a NorthStar
DOS Boot disk and a CP/M Boot disk. You need to be careful with CP/M
disks because CP/M can be set up for fast disk access (stepping) or
normal disk access. If the CP/M you are trying to boot is set up for
fast disk access and your drives can't handle it you will have all
kinds of weird things happen. You will think (as I did) your
hardware or memory is bad. Some programs load while others do not.
The directory may look fine but the file names are not correct or
have illegal characters. The CP/M disk I send will be set for normal
stepping. Please let me know if you still need boot disks. If so,
also let me know what disk controller you have so I can make the
correct disks.
Steve
Allison wrote:
>If anything someday I'd like to try and interface NS*basic to CP/M
>as I feel it's better. To do that I'd minimally need source or a
>disassembled version to reassemble to a different address and tweek
>the interface for CP/M.
N* BASIC running on CP/M. It's been done already by InfoSoft Systems
in 1981. I found it on a Lifeboat CP/M disk I downloaded from the
web. The file is NS5BAS.COM. It says "N* Basic revision 5.2 for CP/M
By InfoSoft" when run. Also included on the same disk is a program
to copy N* basic programs from an N* disk to a CP/M disk. That file
is called NSDD.COM. It says "N*DOS -> CP/M File Transfer (NSDD
01.00) (c) 1981 InfoSoft Systems" when run. I have used both
programs and they seem to work fine.
Brian wrote:
>I did have a questions about BASIC,
> though. I understand the NorthStar basic is not the standard basic-
80
> or Mbasic found in the CP/M opertating system. My question is, how
> diffiuclt will it be, or has anyone already done, a port of
> mbasic/basic-80 in CP/M that works with the Northstar disk
controller?
> I really don't like the idea of working with a non-standard
version of
> basic (again!)
I have been going through the disk images I have downloaded from the
web and found Mbasic ver 4.51 and Mbasic 5.1. I copied them to a new
disk image. Mbasic 5.1 I renamed Mbasic5 because I wanted both
versions on the same disk and both files were named MBASIC.COM. I
think mbasic 5.1 is the same as Basic-80. Not sure though. Mbasic
4.51 is the same or very close to Altair Disk BASIC. I run a copy of
Star Trek written for the Altair on it. This version of star trek
will not work on Mbasic 5.1 without modification. I can't remember
exactly which disks I found these programs on. I would copy them as
I found them to my own disks. I can post a disk image with the files
on it if anyone would like them. So you don't need to go looking for
them. Everything on the image is already on disks available on the
net. Nothing is new except Altair Star Trek and even that is
available with the Altair simulator.
Steve
I just acquired a really nice N* horizon with 64k ram. Had to make a
small repair when a tantalum capacitor exploded. However, I replaced
it, and I am ready to test. Problem is, none of the tools out there
are going to get me anywhere without n*dos or a PROM monitor. Would
anyone out there be willing to sell me a boot disk? I should be able
to transfer anything I want from that point forward.
Thanks for any help,
-Brian