[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question on ProDOS SmartPort drive remapping
"glen herrmannsfeldt" <gah@ugcs.caltech.edu> wrote in message
DP-dnQ07A72l6sXanZ2dnUVZ_vninZ2d@comcast.com">news:DP-dnQ07A72l6sXanZ2dnUVZ_vninZ2d@comcast.com...
> Peter Watson wrote:
>> The problem was that also by convention a program's return code should be
>> loaded into register 15, but in IEFBR14 it still contained the value on
>> entry, which just happens to be the program's entry point address! So the
>> do-nothing program was always reported as ending with an non-zero error
>> if anything checked the return code! (The fix doubled the size of the
>> program to four bytes! Register 15 was cleared before returning.)
>
> There was a long discussion on this once. Only the low 12 bits are
> used for the return code. It has been suggested that on early OS/360
> programs were loaded on a 4K byte boundary, so the return code was zero.
OK, now it's my turn to learn something! (Assuming that's what actually
happened.)
It actually makes some sense, and would better explain why it took a while
for the "bug" to be reported. (Of course, the fact is that I don't actually
know how long IEFBR14 had been around before the bug report. It may have
been during beta testing! Although I doubt it...)
As an aside, I'm amazed at the number of people reading csa2 who knew what I
was talking about! :-)
And as another aside (given some other comments in this thread about ideas
lifted from the IBM 360), any IBM mainframe programmers would immediately
recognise where Mike Westerfield got many of the ideas for his macro
language in the ORCA/M assembler! (Confirmed by Mike himself.)
--
Peter Watson
-- Write to MS-DOS disks on the Apple IIgs?
-- Impossible! ;-)