[sebhc] Fw: Re-creating actual floppies from archive

Dwight Elvey dwight.elvey at amd.com
Thu Mar 23 18:56:32 CST 2006


Hi Robin
 When I'm debugging serial, I often change things to have a simple
loopback. I then set the serial port of my PC to a slow baud rate
( usually 300 buad ). This way I can actually see the blinking
lights of the serial light test box.
 I believe, a few simple modifications to my ~50 bytes could
give you this at the H89 level so that you could test out the
H89's LP port. If you have an oscilloscope or logic probe, you
can watch the signals at the chips on the serial board as well.
 Here is some patches that should put the H89 into simple loop
back running at 300 buad. First enter all the bytes for the
BOOTSTRP.OCL as you normally do. Next, make the following
changes:

at 043 013   enter  200, 303, 053, 043
at 043 035   enter  060, 043
at 043 050   enter  323, 340, 351, 076, 001, 303, 017, 043

 I hope the listing I have is the same because I'm not
on the machine that has the most current listing. Right
after you enter the first values location 043 051 should
be 351 ( E9h ). After the patch it should be moved to 043 052.
 Also, rather than step dwon through memory, the value
recieved by the serial port is placed at 043 060. This
is useful to see which function is working or not working,
RX or TX. You can send a bunch of 'A's and look for that
in that location.
 You need to run a terminal program with 300 baud and 8 bits.
 I hope this helps you debug your problem.
Dwight



>From: "Robin England" <robin.england at dial.pipex.com>
>
>Hi Dwight
>
>I replied to your email off-list (please see below) but I think you may not
>have received it due to spam filter?
>
>Apologies if you've already seen it and haven't had time to reply. Also I
>was wondering what 8080 assembler
>you recommend for writing code on the H89? I think I need to write something
>to test the LP port!
>
>Regards
>Robin
>
>----- Original Message ----- 
>From: "Robin England" <robin.england at dial.pipex.com>
>To: "Dwight Elvey" <***********>
>Sent: Monday, March 20, 2006 10:34 PM
>Subject: Re: Re-creating actual floppies from archive
>
>
>> Hi Dwight
>>
>> Thanks for your help so far. Sorry to hear about your video problem;
>funnily
>> enough the same happened to one of my H/Z89s the other day when the 53v
>> regulator transistor decided to go short circuit for no reason!
>>
>> No, unfortunately I've still not got to the bottom of the problem with the
>> loader. Quite simply, the H89 does not appear to be dealing with the
>serial
>> input from the PC. The area of memory that should be overwritten by the
>> loader (starting at 046-133) remains unchanged when I go back & check it.
>>
>> I've thoroughly tested my serial cable and the wiring right up to the LP
>> connector on the serial card. I've checked the schematic I have to confirm
>> that the correct signals are connected to the right pins on the 8250 (via
>> the RS232 / TTL level shifters of course). The -12v, +12v and +5v rails
>are
>> present and correct.
>>
>> I'm not sure but I think that perhaps the 8250 is not at the right address
>> (you've got 0x0E0 as the base address for the LP 8250 in your bootloader).
>> There are no jumpers on the serial card (other than IRQ) and I guess that
>> the address decoding for the three 8250s on the serial card is done in the
>> I/O map decoder U550. Is the address for the LP port fixed in all H89
>> variants?
>>
>> As mentioned before, if I connect the brown molex connector to the
>terminal
>> board instead of the LP port, I can send and receive characters between
>the
>> H89 terminal and the DOS PC. If I send a ? to your H89TRANS program after
>> I've sent the loader (which gets dumped to the H89's screen of course)
>then
>> it returns to the command menu, however this does not happen when the LP
>> port is connected.
>>
>> In case I've missed anything, and as you've suggested, here is a
>> step-by-step account of what I have done :-
>>
>> 1) Connect a serial cable between COM1 of a PC running (pure) DOS and the
>> Line Printer serial connector on the H89. The LP port is wired as a DCE
>and
>> connects to P603 (top connector, marked LP) on the serial card. The serial
>> cable has been made up by me and I have checked that the wiring is
>correct.
>> It is a 9-way to 25-way d-type lead (the DOS PC has a 9-way port) so the
>> TX/RX pins go 2-2, 3-3 etc.. I've wired the handshaking lines up correctly
>> too (rather than just loopback).
>>
>> 2) Switch on the H89. With no disk in the drive, press B followed by
>return.
>> The disk drive spins. At this point I have tried waiting for the "Boot
>> Error?" message to appear, or have pressed right-shift RESET to interrupt
>> the load attempt and go back to the H: prompt, with the same results.
>>
>> 3) At the H: prompt, I then enter the octal listing you have given in the
>> file BOOTSTRP.OCL using the S (substitute) command and beginning at
>address
>> 43000. I enter each value for each address, pressing space to
>automatically
>> go to the next value. After entering the value for the last address, I
>press
>> enter to return to the H: prompt.
>>
>> 4) At the H: prompt, I then start the bootstrap loader with G 43000. The
>> cursor on the H89 jumps to the next line. No other characters are printed
>on
>> the H89 screen.
>>
>> 5) On the DOS PC, I change to a directory in which I have all the files
>that
>> are included in the archive H89LDR9. I start H89TRANS.COM and the program
>> prompts me for the COM port. I enter 1 (there is only one COM port on the
>> DOS machine). The program displays the value "1AC" followed by the command
>> menu. I then press L to send the next loader to the H89.
>>
>> At this point nothing further happens. I've left it for ten minutes plus
>> with no change. The command menu is never redisplayed. I can escape the
>DOS
>> program with the ESC key. On the H89, I can do a shift-RESET and then look
>> at the locations from 43000 where I find the bootstrap loader still in
>> memory, but nothing has changed!
>>
>> Do you think that the address of the LP port's 8250 could be the problem?
>> Unfortunately I don't have an 8080 assembler, so I'm unable to do what you
>> suggested with the code changes.
>>
>> Thanks for any further ideas you may have, hope you had a good weekend !
>>
>> Robin
>>
>> ----- Original Message ----- 
>> From: "Dwight Elvey" <***********>
>> To: <robin.england at dial.pipex.com>
>> Sent: Monday, March 20, 2006 9:55 PM
>> Subject: Re: Re-creating actual floppies from archive
>>
>>
>> > Hi Robin
>> >  I was wondering if you made any progress?
>> > Dwight
>> >
>> >
>> > >From: "Robin England" <robin.england at dial.pipex.com>
>> > >
>> > >Dwight, many thanks for your suggestions. The one about the TX/RX lines
>> > >being swapped on the header to the serial card is an interesting one. I
>> have
>> > >got an RS232 light box somewhere, so I'll dig it out and have a look.
>> > >Incidentally yes I was pressing B with return, then shift-reset and
>then
>> > >entering and starting the 50 or so bytes of boot code from location
>43000
>> > >and the DOS program was not responding with the command menu or an
>error,
>> so
>> > >I guess it never got a ? back from the H89.
>> > >
>> > >I'll try a few things out and will let you know how I get on. Hope your
>> > >weekend in the mountains goes well, cheers Robin.
>> > >
>> > >----- Original Message ----- 
>> > >From: "Dwight Elvey" <***********>
>> > >To: <sebhc at sebhc.org>
>> > >Sent: Friday, March 17, 2006 1:20 AM
>> > >Subject: Re: [sebhc] Re-creating actual floppies from archive
>> > >
>> > >
>> > >> >From: "Robin England" <robin.england at dial.pipex.com>
>> > >> >
>> > >> >Hi Dwight
>> > >> >
>> > >> >Thanks for your comments. Well I've tried it but cannot get it to
>> work.
>> > >I've
>> > >> >followed the instructions to the letter, but can you clarify a
>couple
>> of
>> > >> >points for me? First, when you initially turn on the H/Z89 and press
>B
>> > >with
>> > >> >no disk in the drive, I assume that it *is* necessary to press enter
>> at
>> > >this
>> > >> >stage to actually start the boot attempt in order that the BIOS
>> variables
>> > >> >are initialised? Secondly, what should the DOS utility H89TRANS
>> respond
>> > >with
>> > >> >after you've pressed L and it has successfully sent the loader (e.g.
>> > >should
>> > >> >the command prompt re-appear?).
>> > >>
>> > >> I assume that after doing the B ( and yes, on some machines you need
>> > >> the return. I don't think it is need on the old H89's ) you then
>> > >> enter the 50 or so bytes from the monitor and started that program?
>> > >> Note that you need to use the reset button and not cycle the power
>> > >> to restart after the B command ( I had another fellow do this.
>> > >> See my note at the end of the post. I took forever for me to
>> > >> get him to tell me what he was doing. ).
>> > >>
>> > >> >
>> > >> >I'm finding that when I start H89TRANS and select the correct COM
>port
>> > >> >(COM1) I get the command menu. Then I press L (obviously with cable
>> > >> >connected and H/Z89 running the loader code) and it just sits there.
>> As
>> > >the
>> > >> >loader seems to be only about 800 bytes I'd expect it to complete
>> fairly
>> > >> >quickly at 9600 baud, but it does nothing. I can exit the DOS
>program
>> > >with
>> > >> >ESC, so the DOS PC hasn't hung.
>> > >>
>> > >> It shouldn't hang, it should return with the menu. ( 686 bytes to be
>> exact
>> > >> or about 6 seconds ). I think you also need the H89LDR2.BIN file
>> > >> to be in the same directory you were in when you started H89TRANS.
>> > >> I think that error aborts back to DOS,though.
>> > >>
>> > >> >
>> > >> >I'm pretty sure that the problem is not with the RS232 side of
>things
>> > >(cable
>> > >> >etc). If I connect the internal serial cable (brown molex conn) to
>the
>> > >> >terminal board instead of the serial card, I can happily send
>> characters
>> > >> >from the DOS PC (using Procomm) and receive them from the Z/89
>> keyboard,
>> > >> >which suggests all is OK there. If I keep this setup and run your
>> > >H89TRANS
>> > >> >on the DOS PC, upon pressing L the loader is clearly sent because I
>> can
>> > >see
>> > >> >it dumped to the H/Z89 screen.
>> > >> >
>> > >> >So, I believe that the problem I have is related to the internal
>H/Z89
>> > >> >serial configuration. On my serial card, the LP port is labelled on
>> the
>> > >> >silkscreen of the PCB as being the topmost connector (when viewed
>with
>> > >the
>> > >> >card as mounted normally). However I have tried both the other
>serial
>> > >ports
>> > >> >without success. I have also looped the CTS/RTS DSR/DTR handshaking
>> lines
>> > >at
>> > >> >the Z/89 connector just in case the BIOS serial routines require the
>> 8250
>> > >to
>> > >> >use these.
>> > >>
>> > >>  Then, I suspect that the top one is the right one but you may
>> > >> have to swap lines 2 and 3 or move the brown connector cable.
>> > >> As I recall, there are some jumpers to select this on the serial
>> > >> board but my memory is a little fuzzy here as to if that was
>> > >> the H8 or the H89 that had the jumpers to swap these lines.
>> > >> I do recall that the LP port had the 2 and 3 wires swapped
>> > >> relative to the normal serial port. Do you have a serial status
>> > >> light box? If not, you should have one.
>> > >>
>> > >> >
>> > >> >The serial card itself only has jumpers for IRQ setting. In the case
>> of
>> > >both
>> > >> >my machines, the IRQ setting is OFF for all three 8250s. I'm not
>sure
>> > >what
>> > >> >other jumper / switch settings may be important? As far as I can
>tell,
>> > >the
>> > >> >DIP switch on the logic board is concerned only with the serial I/O
>> > >between
>> > >> >terminal board and logic board.
>> > >>
>> > >>  I don't use interrupts so that is correct, IRQ off. I'll check these
>> > >> this weekend.
>> > >>
>> > >> >
>> > >> >Also, is it possible that your code will not work on certain BIOS
>> > >versions?
>> > >> >I'm not sure but I think I've got MTR-90 on this machine (it
>supports
>> the
>> > >> >(V)iew function).
>> > >>
>> > >>  There was an issue with the motor timeout that another had
>> > >> with a Z90. He was able to get it to work after I patched
>> > >> the code so I suspect it should work with your code. The first
>> > >> part of the code doesn't use any of the ROM code so it is
>> > >> unlikely that this is an issue. It isn't until it is actually
>> > >> reading and writing a disk that it uses anything in the ROMs.
>> > >>
>> > >> >
>> > >> >Have you any suggestions or perhaps some code that will dump input
>> from
>> > >the
>> > >> >LP serial channel to the H/Z89 screen as a test? I will look at
>> writing
>> > >this
>> > >> >myself if not, however my time with these machines has been more
>> focussed
>> > >on
>> > >> >restoring the hardware itself and not the programming yet!
>> > >>
>> > >>  Look to make sure that the 2 and 3 signal lines are both driven.
>> > >> Use the top connector if that says LP. I suspect that that is the
>> > >> correct port if the board says LP. I won't be able to check my
>hardware
>> > >> setup until this weekend and won't be at a computer on the web
>> > >> until Monday ( the place is in the mountains ).
>> > >>
>> > >>  For the loader part, the boot strap you enter into the H89 just
>> > >> sets up the serial port and reads the bytes into memory. It writes
>> > >> the data starting at the high end of the code and then continues
>> > >> to write until it writes over the last byte of the loader. This
>> > >> causes the code to go forward to where there is some code that isn't
>> > >> position sensitive to reposition the actual code such that if there
>> > >> were any additional bytes ( up to 3 more or less bytes by 1 ) that
>the
>> > >> code was off, it'll put things in the right place.
>> > >>  Once the code is moved, it will then flush any remaining '0'
>> > >> from the serial ( NOP's )  and wait for the PC to send the first
>> > >> real command. The command ( as I recall ) an illegal command.
>> > >> As I recall, the H89 should then respond with a '?'. If so,
>> > >> the PC believes that the main code has been loaded and is
>> > >> ready to run.
>> > >>  Knowing this, you could setup your terminal program on the H89
>> > >> and wait until you think the loader is done loading. You can then
>> > >> reply with a '?' character sent from the H89 to the PC. It
>> > >> should then bring the menu back. This will tell you that the
>> > >> serial connection is working both ways for the PC program.
>> > >> I don't think that the terminal program should echo for
>> > >> the first part as the code is load but you might try it
>> > >> both ways, with and without echo ).
>> > >>  I'll try and look at my code on the PC tonight and see if
>> > >> I'm correct about the last handshake. I believe the assembly
>> > >> source code is in the release for the part that is transferred
>> > >> to the H89 from the PC as H89LDR2.ASM. After the code has been
>> > >> transferred, you can drop back to the monitor on the H89 and look
>> > >> to see what is in the location 043 141 (split octal) and on.
>> > >> This code should match what the assembly code would create
>> > >> at the location of MAININT in the assembly code. Bytes before
>> > >> that may not match exactly the posistion.
>> > >>  I don't recall if the H89LDR2.BIN file is stored byte reverse
>> > >> order or if I just reverse send it on the fly from the PC.
>> > >>  One other thing. When talking to others to trouble shoot, I
>> > >> find that they tend leave out important details about what
>> > >> they did( similar to me not having the 'CR' after the B ). In
>> > >> order to make sure I know just what you've done could you
>> > >> give me a complete step by step report of what you did?
>> > >> Please be complete or it will be a waste of both our time.
>> > >> Include an estimate of the delay in time between each step.
>> > >> This may seem trivial to you but otherwise I'm working blind.
>> > >>  This should give you enough to get things get started.
>> > >> Dwight
>> > >>
>> > >> >
>> > >> >Regards
>> > >> >Robin
>> > >> >
>> > >> >----- Original Message ----- 
>> > >> >From: "Dwight Elvey" <***********>
>> > >> >To: <sebhc at sebhc.org>
>> > >> >Sent: Thursday, March 16, 2006 12:36 AM
>> > >> >Subject: Re: [sebhc] Re-creating actual floppies from archive
>> > >> >
>> > >> >
>> > >> >> Hi
>> > >> >>  Do make sure and let me know how it works for you!!!
>> > >> >> Also, make sure and follow the steps. When I do it,
>> > >> >> I forget to do the first disk attempt after powering on.
>> > >> >> It just won't work because I depend on the bios to
>> > >> >> initialize the variables and the controller. I need
>> > >> >> to carefully read my own instructions.
>> > >> >> Later
>> > >> >> Dwight
>> > >> >>
>> > >> >>
>> > >> >> >From: "Dwight Elvey" <***********>
>> > >> >> >
>> > >> >> >Hi Robin
>> > >> >> > I don't recall which jumper setup was correct for the
>> > >> >> >serial but as I recall, things were just what was the
>> > >> >> >
>> > >> >> ---snip---
>> > >> >>
>> > >> >>
>> > >>
>> > >>
>> > >> --
>> > >> Delivered by the SEBHC Mailing List
>> > >
>> > >--
>> > >Delivered by the SEBHC Mailing List
>> >
>> >
>>
>
>--
>Delivered by the SEBHC Mailing List


--
Delivered by the SEBHC Mailing List



More information about the Sebhc mailing list