[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IIe info wanted!
In article <13329@gos.ukc.ac.uk>, Monts <jsr4@ukc.ac.uk> wrote:
>
> Can anyone tell me more about the IIe? It's history, specs etc?
No-one else seems to be replying, so lets see what I can come up with.
See below.
> I gained acouple of these things over summer, but so far have
> had no luck with booting either of them (BASIC works, but they
> don't seem to want to talk to the disk drives).
If you turn the IIe on or reboot using Ctrl-Apple-Reset, it should try
to boot from the drive. Without a boot disk, you won't get very far.
Pressing Ctrl-Reset at this point will put you into Applesoft BASIC,
with no support for accessing the drive. You can load and save
programs on tape, though. :-)
To be able to use the disk drive from BASIC, you have to boot a system
disk containing an operating system, either DOS 3.3 (the last version
of the original Apple II operating system) or ProDOS (the current
operating system). A ProDOS boot disk must also contain BASIC.SYSTEM
to be able to access BASIC.
An Apple II user group is probably your best source of either - most
user groups have libraries of public domain software that is likely to
include many bootable disks, and they should be able to supply you
with a current ProDOS boot disk.
> One of the machines is a genuine IIe, the other is a machine made
> by Mitac, some Japanese characters on the keyboard. Seems like a
> IIe inside though, with a disk, joystick, and TV interface built
> in.
The IIe has joystick and video interfaces built in, but the disk
controller is a plug-in card (normally goes into slot number 6,
counting from the left).
Now, about the general history of the IIe:
The IIe was originally released in 1983. It is an improvement on the
design of the earlier Apple ][ and ][+. The main improvements are:
- A full ASCII keyboard (the ][+ didn't have lowercase support and was
missing several special characters). The keyboard also has "Open
Apple" and "Solid Apple" keys, which are used by many IIe-specific
programs for special commands (in conjunction with other keys). These
keys correspond to the pushbuttons on a pair of paddles or a joystick.
- 64K of RAM built in, instead of 4K to 48K. The ][/][+ can be brought
up to 64K though the addition of a "language card" in slot 0. This
provides 16K of RAM that is bank-switched into the memory area
normally occupied by the ROM. The language card function is built into
the IIe, and slot number zero is not physically present.
- An auxiliary slot, for supporting IIe-specific memory cards, including
some video cards. A 64K memory expansion card is supported, through
bank switching. Most IIes have this card installed, giving them
128K memory. Many current IIe-specific programs require 128K.
The extra memory is not directly supported by Applesoft BASIC. It
can be used as a RAM disk by ProDOS, or directly by programs that
need more memory.
- Built-in hardware and firmware to support 80-column text display (a
1K or larger memory expansion card is required in the auxiliary slot)
and "double high resolution" graphics (requires a 64K memory card in
the auxiliary slot). Double hi-res graphics was not supported by the
original IIe motherboard, but this was quickly replaced by a second
revision.
- Two character sets are supported ("primary" and "alternate"). The
primary character set is the same as the ][+ (with the addition of
the lowercase characters), while the alternate set removes support
for flashing characters and replaces them with inverse lower case.
- A self-test function is provided in the firmware.
- General improvements to the hardware design to reduce the manufacturing
costs and simplify the motherboard.
An upgrade was released in 1985 (the "enhanced IIe"). An original IIe
can be upgraded to an enhanced IIe by replacing four chips: the
microprocessor (65C02 instead of 6502), the two firmware ROMs and the
video ROM.
The enhancement's main features are:
- The 65C02 processor has several new instructions. Many current programs
require an enhanced IIe because they use these instructions. The
processor also consumes less power than the original 6502.
- The firmware adds mini-assembler and search functions to the system
monitor program, supports lower case command entry in BASIC and the
monitor, has many improvements in the 80-column and diagnostic
firmware, and has a much improved interrupt handler.
- The video ROM has a set of "MouseText" characters, which include various
symbols (e.g. open and solid Apple) and elements for implementing a
windowed user interface on the text screen.
There are some old programs that are not compatible with an enhanced
IIe. The main reasons are the use of undocumented 6502 instructions,
or reliance on undocumented entry points in the ROM.
There are also several old programs that are affected by the MouseText
characters (this is a cosmetic problem only, but it can make the
program unusable becuase you cannot read its text output). In the
original IIe video ROM, the alternate character set had two sets of
inverse upper-case letters. The enhanced IIe replaces one of these
sets with MouseText. The programs that were using the "wrong" set of
characters will now display MouseText instead.
If you aren't sure whether you have an original or enhanced IIe, look
at the title which is displayed at the top of the screen when you boot
the machine. An original IIe says "Apple ][", while an enhanced IIe
says "Apple //e".
A new version of the IIe was released in 1987. This has a redesigned
motherboard and has a numeric keypad to the right of the keyboard. The
firmware, video ROM and all other features are identical to the
enhanced IIe.
Different versions of the IIe were released in the USA and other
countries. The international versions have a different motherboard
layout (the auxiliary slot is in the middle of the motherboard in line
with slot 3, instead of in the lower left corner) and support the
standard video system and power frequency of the country of issue (e.g.
the UK version is PAL/50 Hz) instead of NTSC/60 Hz.
In addition, the international IIe has a different video ROM and
keyboard layout, both of which are dependent on the country. The
video ROM supports two character sets: the US set and the local set.
A switch on the underside of the keyboard selects between them.
The UK IIe is very similar to the US IIe in this area - the only
difference is the shape and labelling of the keys, and a UK "pound"
symbol on the '3' key in addition to the "hash" symbol. The "local"
character set has a pound symbol in place of hash.
These differences mean that a different enhancement kit is required
for each country. For example, in the UK version, you need an
enhanced UK video ROM. As far as I know, it is no longer possible to
get hold of these ROMs - only the US version of the enhancement kit is
still available. Alltech Electronics _might_ be able to supply the
appropriate video ROM, but I doubt it.
It is possible to enhance a IIe by replacing just the processor and
firmware ROMs, leaving the original video ROM, but this will cause
problems with programs that are expecting MouseText to be available.
Given a local unenhanced version of the local video ROM and an
enhanced version of the US video ROM, it is possible to copy the
relevant parts from each ROM to create a local enhanced video ROM (you
will need a 2764-type EPROM and an EPROM programmer that can handle
the 2764 and 2732). I haven't worked out the details, but it wouldn't
take me long to do so.
General specifications not mentioned in the above:
- The microprocessor runs at 1.023 MHz.
- 15.75K of ROM.
- Seven expansion slots along the back of the computer, which are fully
compatible with the Apple ][ and ][+ (there are minor differences which
affect some obscure cards).
- The game I/O connector supports one to four paddles or one to two
joysticks (four analog inputs, three digital inputs) plus four
digital outputs and a general purpose "strobe" output are available
on the internal 16-pin connector.
- cassette tape input and output connectors.
- internal speaker (square wave sound generation under direct software
control).
Video modes:
- 40x24 or 80x24 text. Two pages are available, but the second one is
almost never used and is not supported by the firmware. 80-column
mode requires a RAM card in the auxiliary slot (providing at least 1K
of RAM in the right place).
- 40x40 lo-res graphics in 16 colours (with 4 lines of text, or 48 rows
without text). There is also an undocumented 80x40 (or 48) "double
lo-res" mode that is not supported by the firmware and is rarely used.
Two pages are available, but the second one is almost never used.
- hi-res graphics: 280x192 monochrome or 140x192 in six colours (with
position restrictions). 4 lines of text may be provided, limiting the
graphics area to 160 lines. Two graphics pages are available.
- double hi-res graphics: 560x192 monochrome or 140x192 in 16 colours.
Requires a 64K RAM card in the auxiliary slot.
On the software side, you have Applesoft BASIC and the system monitor
built into the ROM. You've already found BASIC. It was mostly
written by Microsoft, and is similar to early implementations of
Microsoft BASIC. It has Apple-specific extensions to support
graphics, text output, slots and cassette tape.
The system monitor is a general utility for doing machine-level stuff,
such as moving, setting or examining memory and disassembling machine
language programs. It is entered by typing CALL-151 from BASIC. To
get back to BASIC, press Ctrl-C followed by RETURN.
Warning: be very careful what you do while in the monitor. It can be
fun to poke around and see what is in memory, but a little knowledge
of the memory architecture of the IIe is vital to avoid serious
problems (such as locking up the computer and having to reboot). If
you use memory modification commands, you can easily overwrite areas
of memory used by BASIC or the operating system, causing them to crash
or misbehave at a later point.
The monitor commands are very simple. Most of them take the form of a
memory address (in hexadecimal) followed by a command letter. Some
commands have more than one argument. The common commands, with
examples of their use, are:
start.end Dump a memory range e.g. 8000.807F
dest<start.endM Copy (move) a memory range e.g. 300<1000.107FM
addrL Disassemble e.g. F800L
addr:byte byte ... Enter data e.g. 300:20 58 FC 60
addrG Go - call a subroutine e.g. 300G
There are several shortcuts, e.g. you can continue to enter data
immediately after the preceding line by starting the command with a
colon instead of an explicit address. You can also dump memory one
line at a time by entering a start address by itself, and pressing
RETURN for each subsequent line.
In most cases you can put multiple commands on one line. Data entry
cannot be followed by a command that starts with a hexadecimal digit.
Disassembly remembers where it was up to, so you can see the next page
of instructions by typing L by itself, or disassemble several pages at
once by typing several L's in a row (use Ctrl-S to pause the display).
In the enhanced IIe, the mini-assembler is entered from the monitor by
entering ! and pressing RETURN. You can then enter assembly language
instructions, using the same general format as the diassembler. The
accepted syntax is either of:
addr:instruction (Assemble at a particular address)
or
instruction (leading space - Assemble after last instruction)
e.g.
300:JSR FC58
RTS
As you enter each line, it will be redisplayed in the disassembler's form.
You can return to the monitor by pressing RETURN on an empty line.
The disassembler and mini-assembler in the enhanced IIe do not support
65C02 instructions or addressing modes.
Here is a quick summary of the IIe memory organisation, so you can
look around without causing too much damage. All addresses are in
hexadecimal.
0000 to 00FF Zero page. This is used extensively by BASIC, the operating
system and the monitor. It is also very important for many
machine language programs.
0100 to 01FF System stack, used for push/pull instructions,
subroutine calls and interrupts.
0200 to 02FF Input buffer for BASIC and the monitor.
0300 to 03CF Normally unused. A popular location for small machine
language routines called from BASIC programs.
03D0 to 03EC Used by the operating system (unused if you haven't booted
from a disk).
03ED to 03FF Used by the system firmware for various vectors (break, reset,
extended commands and interrupts).
0400 to 07FF Text screen and Lo-res graphics memory.
0800 to 0BFF Second text screen - normally used to hold BASIC programs.
0C00 to 1FFF May be unused, depending on the size of any BASIC program
and where its variables are located.
2000 to 3FFF Hi-res graphics screen, page 1. May be used by BASIC for
program and/or variable storage if hi-res graphics is
not needed.
4000 to 5FFF Hi-res graphics screen, page 2. May be used by BASIC for
program and/or variable storage if not needed for graphics.
6000 to 95FF May be unused, depending on the size of any BASIC program
and where its variables are located. May be used by the
operating system for file I/O buffers (from the top).
9600 to BFFF Normally used by the operating system (DOS 3.3 or ProDOS).
C000 to C08F I/O space - soft switches for controlling all hardware
functions of the IIe.
C090 to C0FF I/O locations for each slot.
C100 to C7FF ROM locations for each slot (256 bytes each). Some cards
have I/O in this area as well. Part of the system firmware
can be switched into this area. The built-in 80-column
firmware appears in the slot 3 space (C300 to C3FF).
C800 to CFFF Expansion ROM area, shared by all slots. Some cards
have I/O and/or RAM in this area as well, and may use
bank-switching to access even more memory. The 80-column
firmware also uses this area.
D000 to FFFF Firmware ROM and bank-switched "language card" RAM area,
with two RAM banks from D000 to DFFF. The bank-switched
RAM is used by ProDOS and by some third-party versions of
DOS 3.3. This area cannot be used by BASIC programs.
Memory on a card in the auxiliary slot is accessed by bank switching
parts of main memory out and replacing them with auxiliary memory.
The zero page, stack and language card can be switched as a single
unit. The main 48K area from 0200 to BFFF can be switched separately
for read and write accesses. In addition, the first page of the text
and hi-res graphics pages can be switched, providing access to the
other half of the 80-column and double hi-res screen memory.
That will probably do for starters. I have hardly touched on
software.
Now, where is the author of the FAQ for comp.sys.apple2.programmer? I
think I've just written a large chunk of it. :-)
If you have any more specific questions about the IIe, I'll be happy
to answer them here or in E-Mail.
--
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand