Search the web
Sign In
New User? Sign Up
NorthStar_Computers · NorthStar
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want to share photos of your group with the world? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
N* Horizon Project Update -   Message List  
Reply | Forward Message #167 of 171 |
Re: N* Horizon Project Update -

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.
>





Tue Jan 6, 2009 3:31 am

ajparent1
Offline Offline
Send Email Send Email

Forward
Message #167 of 171 |
Expand Messages Author Sort by Date

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....
billdeg
Offline Send Email
Jan 3, 2009
3:04 pm

knock 'em dead Billy boy. ... From: billdeg <billdeg@...> Subject: [NorthStar_Computers] N* Horizon Project Update - To:...
Chris M
chrism3667
Offline Send Email
Jan 3, 2009
6:28 pm

Chris! Do you have a N*? bd ... From: Chris M <chrism3667@...> To: NorthStar_Computers@yahoogroups.com Sent: Sat, 3 Jan 2009 1:28 pm Subject: Re:...
billdeg@...
billdeg
Offline Send Email
Jan 4, 2009
12:18 am

Hmm, the boot address is supposed to be E900, not E800! To: NorthStar_Computers@...: billdeg@...: Sat, 3 Jan 2009 15:04:30...
Chuck Magee
chuckcmagee
Offline Send Email
Jan 4, 2009
1:07 am

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...
Bill Sudbrink
bsudbrink
Offline Send Email
Jan 4, 2009
4:59 am

Stinking yahoo wrapped the disassembly... unwrap any lines that don't start with an address or a semicolon. ... From: NorthStar_Computers@yahoogroups.com ...
Bill Sudbrink
bsudbrink
Offline Send Email
Jan 4, 2009
5:21 am

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...
billdeg@...
billdeg
Offline Send Email
Jan 4, 2009
6:17 am

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...
billdeg@...
billdeg
Offline Send Email
Jan 4, 2009
3:43 pm

Why not store it in the files section of this group? Allison ... http://www.vintagecomputer.net/northstar/ ... original. Also, the proportional spacing in...
Allison Parent
ajparent1
Offline Send Email
Jan 6, 2009
3:31 am

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...
Allison Parent
ajparent1
Offline Send Email
Jan 6, 2009
3:29 am

nyet. But I do have a N* Dimension lined up. Off topic for this discussion though. ... From: billdeg@... <billdeg@...> Subject: Re:...
Chris M
chrism3667
Offline Send Email
Jan 4, 2009
6:22 pm
Advanced

Copyright 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help