[sebhc] Re-creating actual floppies from archive

Dwight Elvey dwight.elvey at amd.com
Fri Mar 17 12:53:17 CST 2006


Hi Robin
 I was looking at the code on the machine I used to write
the code and my video went flaky. I did look at one thing
before it went bad on me and that was that in the directory
that I called the release, there was may have been an error
in the handshake for the ? at the end of the loader. I didn't
get a chance to confirm this or look for the location to
patch the value. If somehow, I used this source to create
the last version I released, it can be worked around.
 Also, you can use a terminal program to check things on
the PC end. After the load of the main program to the
H89, it will respond with a ? for any character that isn't
in the command jump table( as I mentioned before ). Try
exiting the program on the PC and then using a terminal
program, send it a character like the letter A.
If the load was successful, it will respond with the ?.
If this is working, just restart the transfer program
and don't use the L command because it is not longer needed.
 If it didn't load, you should look at the values in the
H89's memory as I mentioned before. I was intending
to get a listing file for the program on the H89 but
the video failed before I could write to the floppy :(
 If you have an 8080 assembler handy, you can create a
listing of the part that is suppose to go to the H89.
 One can do such things as check the first location
that the program is suppose to write the data into to
see if it is even starting. After the load, it should
over write data in memory from 046-133 ( split octal )
down to 043-051 ( split octal ). If you look at that
last location and see something other than the PCHL
instruction, you know that it loaded something. If it
is still PCHL, it didn't finish the load. If the first
two locations at 046-133 and 046-132 are not over written,
is didn't start the load. 046-133 could be over written
because there may have been a character in the serial
chip at the start but 046-132 should be a valid character.
 Two other things. Make sure it is BOOTSTRP.OCL that
you enter and not BOTSTRP8.OCL ( for a H8 ). Also,
you need to boot DOS on the PC, not just a DOS window in
windows.
 As Lee states, you always need a return after the B.
This was an omission on my part( it is really hard to
state exact sequences but for me to help in debugging
I need exact sequences. ).
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" <dwight.elvey at amd.com>
>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" <dwight.elvey at amd.com>
>> >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" <dwight.elvey at amd.com>
>> >> >
>> >> >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



More information about the Sebhc mailing list