[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Two friendly questions to Apple II users...



Fabrice Frances <frances@ensica.fr> writes:
>In this minimal core, I only spotted on difference: the ELSE is missing
>in Applesoft. It is present in Oric Basic but in v1.0 it was rather
>buggy,
>and not completely fixed in v1.1. Also Oric Basic is 16KB, isn't
>Applesoft 12KB ?

My Ohio Scientific (OSI) Challenger 1P (the model 600 Superboard when not in
the case) has an 8KB Microsoft BASIC. It only has floating point (no integer)
and the floats are 1 byte shorter than in the Applesoft ROM. Other than that
the code is extremely similar. The non-Microsoft code (screen driver) is
dreadful. It copies a routine out of ROM into RAM and modifies it for each bank
of 256 bytes to be scrolled... I rewrote this using (ZP),Y mode code and ended
up with a routine that more functionality (HOME/CLEAR/GOTOXY/LEFT/RIGHT/UP/DOWN/
RETURN vs the original RETURN/LINEFEED) and could scroll the screen faster than
it would refresh (on my 2MHz overdriven board).

>One funny thing would be if some Applesoft floating point routines
>don't know the existence of the ROR instruction, when rotating the
>mantissa (each "ROR var" being replaced by a sequence of 
>      LSR var
>      LDA #0
>      BCC *+2
>      LDA #$80
>      ORA var
>      STA var
>or something like that, I don't have Oric Basic listing here)
>Is this the case, or did Apple programmers discover that some
>Microsoft guys weren't so familiar with the 6502 ?-)

I think you will find that Microsoft were very familiar with the 6502 in the
early days. The first revision of the 6502 did not have the ROR instruction.
It was added in the next rev chip. I have never seen a 6502 old enough not
to have the ROR instruction. The disk BASIC from OSI also contained no ROR
instructions and I have a patch that replaces the sequences mentioned with
the appropriate ROR instructions (and some padding I guess). 
--
David Wilson	Dept CompSci Uni Wollongong Australia	david@cs.uow.edu.au