mirror of
https://github.com/cmosher01/Epple-II.git
synced 2024-08-14 10:29:12 +00:00
222 lines
6.5 KiB
Markdown
222 lines
6.5 KiB
Markdown
[home](index.md)
|
|
[download](https://github.com/cmosher01/Epple-II/releases/latest)
|
|
screenshots
|
|
[configuration](configuration.md)
|
|
[reference](usermanual.md)
|
|
|
|
---
|
|
|
|
### DOS 3.3 System Master boot
|
|
|
|
image::dos330boot.png[]
|
|
|
|
Here we've configured an Apple \]\[ plus, with a disk
|
|
controller in slot 6, and a language card in slot 0.
|
|
We've booted the **DOS 3.3 System Master** disk. It correctly
|
|
identifies the machine as an Apple \]\[ plus, and then
|
|
loads Integer BASIC into the language card. You can switch
|
|
between Applesoft and Integer BASIC by using the `FP` and
|
|
`INT` commands.
|
|
|
|
|
|
|
|
### DOS 3.1 System Master on Revision 0 motherboard
|
|
|
|
image::dos310rev0.png[]
|
|
|
|
Here we've configured an Apple \]\[ (Integer BASIC ROMs),
|
|
with a Revision Zero motherboard, and a disk
|
|
controller (with 13-sector ROMs) in slot 6. With a
|
|
revision 0 motherboard, when the machine is powered-on,
|
|
the CPU doesn't start actually running until you
|
|
manually press the RESET button. Also, the old Monitor
|
|
ROMs do not boot from the disk drives automatically;
|
|
you need to type `C600G` to boot.
|
|
We've booted the DOS 3.1 System Master disk and done a
|
|
catalog of it. As you can see, with a revision 0 motherboard,
|
|
the text is displayed in green and purple, which are also the
|
|
only two Hi-Res colors. Later revisions
|
|
of the motherboard added a *color burst killer* which is
|
|
active during text mode, so the text would be strictly white.
|
|
Two more Hi-Res colors, blue and orange, were also added in
|
|
later revisions.
|
|
|
|
|
|
|
|
### PRODOS 1.1.1 boot
|
|
|
|
image::prodos.png[]
|
|
|
|
Here we've configured an Apple \]\[ plus with language card
|
|
and disk drive. We're booting a PRODOS 1.1.1 disk.
|
|
|
|
|
|
|
|
### Bishop's Apple Split
|
|
|
|
image::applesplit.png[]
|
|
|
|
The October 1982 issue of [Softalk](http://en.wikipedia.org/wiki/Softalk)
|
|
featured an article by Bob Bishop entitled
|
|
[Have an Apple Split](http://rich12345.tripod.com/aiivideo/softalk.html), which describes
|
|
in some detail the inner workings of the Apple \]\['s video processing. Listings 1 and 2 from that
|
|
article show a short Applesoft program and assembly language subroutine that allow the Apple \]\[
|
|
to have a screen split between text and graphics display. To achieve this on the EPPLE \]\[,
|
|
copy the following text and paste it into the emulator (at the Applesoft `]` prompt). Since the
|
|
EPPLE \]\[ accurately emulates the video scanning and timing of the original Apple \]\[s, this
|
|
*split screen* technique works successfully.
|
|
The rest of the behavior described in the article (the floating data bus) is also emulated
|
|
faithfully by the EPPLE \]\[.
|
|
|
|
``` visualbasic
|
|
CALL -151
|
|
|
|
300:8D 52 C0 A9 E0 A2 04 CD 51 C0 D0 F9 CA D0 F8 A9
|
|
310:A0 A2 04 CD 50 C0 D0 F9 CA D0 F8 8D 51 C0 60
|
|
|
|
E000G
|
|
|
|
100 HOME
|
|
|
|
200 FOR K = 0 TO 39
|
|
210 POKE 1448+K, 14*16
|
|
220 POKE 2000+K, 10*16
|
|
230 COLOR = K+4
|
|
240 VLIN 24, 45 AT K
|
|
250 NEXT K
|
|
|
|
300 VTAB 6 : HTAB 17
|
|
310 PRINT "APPLE II"
|
|
|
|
400 CALL 768
|
|
500 GOTO 400
|
|
|
|
RUN
|
|
```
|
|
|
|
|
|
|
|
### Mysterious Pink Line
|
|
|
|
image::pinkmystery.png[]
|
|
|
|
Jim Sather's book
|
|
[*Understanding the Apple \]\[*](https://archive.org/details/understanding_the_apple_ii/),
|
|
which is the primary
|
|
reference for the internal design of the EPPLE \]\[ emulator, describes the video
|
|
generation process of the Apple \]\[, in great detail, in Chapter 8.
|
|
On page 8-21 he shows a simple Applesoft BASIC program (shown below)
|
|
that shows an example of one of the hi-res idiosyncrasies on the Apple \]\[.
|
|
The program would logically draw three orange lines, but due to the
|
|
video cutoff and extension of half-dot shifted pixels, instead the right
|
|
line is brown, and there is a *mysterious pink line* (actually magenta)
|
|
on the far left of the screen. The EPPLE \]\[ faithfully emulates this behavior.
|
|
|
|
``` visualbasic
|
|
NEW
|
|
|
|
10 HGR : HCOLOR = 5 : HPLOT 5,159 TO 5,0 TO 279,0 TO 279,159
|
|
|
|
RUN
|
|
```
|
|
|
|
|
|
|
|
### Display Aspect Ratio
|
|
|
|
image::aspectratio.png[]
|
|
|
|
Jim Sather also describes the aspect ratio of the Apple \]\[ when
|
|
displayed on a TV screen (p. 8-28). Software developers would need
|
|
to take this into account when trying to draw accurate shapes.
|
|
The EPPLE \]\[ emulates the correct aspect ratio.
|
|
For example, the following Applesoft BASIC program draws a
|
|
rectangle, and a proper square:
|
|
|
|
``` visualbasic
|
|
NEW
|
|
|
|
10 HGR
|
|
15 REM
|
|
16 REM RECTANGLE (VIOLET)
|
|
20 A = 36 : B = 136
|
|
30 HCOLOR = 2
|
|
40 HPLOT A,A TO A,B TO B,B TO B,A TO A,A
|
|
45 REM
|
|
46 REM SQUARE (GREEN)
|
|
50 A = 25 : B = 147
|
|
60 HCOLOR = 1
|
|
70 HPLOT A,A TO A,B TO (B*1.19+.5),B TO (B*1.19+.5),A TO A,A
|
|
|
|
RUN
|
|
HOME
|
|
```
|
|
|
|
|
|
|
|
### Split Screen HIRES/LORES colors
|
|
|
|
image::splitcolorstv.png[]
|
|
image::splitcolorsmon.png[]
|
|
|
|
Jim Sather's book also shows an Applesoft BASIC
|
|
program and assembly language subroutine on pages 3-16 and 3-17 (reproduced
|
|
below) that produce the display shown here. The screen is split between HIRES
|
|
and LORES graphics by a timed loop that manipulates the screen switches.
|
|
(Press any key repeatedly to move the position of the split.)
|
|
|
|
Notice that the Apple \]\[ can actually produce more HIRES colors than are
|
|
documented in the standard Apple reference manuals. White, black, green,
|
|
purple, blue, and orange are normally documented, but by careful manipulation
|
|
of the high-bit (half-dot shift indicator) of the HIRES display byte, many
|
|
other colors can be produced. The additional colors match some LORES colors.
|
|
Also notice that the text at the bottom of the screen is colored green and
|
|
purple while in mixed text/graphics mode. This is because the *color
|
|
burst killer* circuit is not active while displaying graphics on the
|
|
Apple \]\[ machines.
|
|
|
|
``` visualbasic
|
|
CALL -151
|
|
1F00:AC 54 C0 A0 27 20 27 1F
|
|
1F08:AC 10 C0 AC 00 C0 30 F3
|
|
1F10:69 01 29 01 AA BC 56 C0
|
|
1F18:A2 08 20 31 1F A0 31 20
|
|
1F20:27 1F 18 90 E6 D0 01 88
|
|
1F28:88 EA D0 F9 60 48 68 EA
|
|
1F30:EA A0 62 20 27 1F EA CA
|
|
1F38:D0 F3 60
|
|
|
|
E000G
|
|
30 HGR : HOME : VTAB 21 : PRINT "1 7 D 2 8 E B 4 5 A 3 6 C 9 F 8"
|
|
40 DIM COLR(39), X(21)
|
|
100 FOR A = 0 TO 39 : READ COLR(A) : COLOR = COLR(A) : VLIN 0, 39 AT A : NEXT A
|
|
200 FOR A = 0 TO 21 : READ COLR(A) : READ X(A) : HCOLOR = COLR(A)
|
|
210 HPLOT X(A), 0 TO X(A), 159 : NEXT A
|
|
220 FOR A = 8319 TO 16383 STEP 128 : POKE A, 64 : NEXT A
|
|
300 CALL 7936
|
|
400 REM LORES DATA
|
|
410 DATA 1,0,7,7,0,13,13,0,2,2,0,8,8,0,14,14,0,11,11,0
|
|
420 DATA 4,4,0,0,5,0,0,10,0,3,0,6,0,12,0,9,0,15,0,8
|
|
500 REM HIRES DATA
|
|
510 DATA 4,0,3,20,4,21,3,41,4,42,7,62,7,83,7,104,3,105,7,125,3,126,7,159,3,161
|
|
520 DATA 7,180,3,182,3,206,7,220,3,233,7,247,3,262,3,263,7,279
|
|
|
|
RUN
|
|
```
|
|
|
|
|
|
|
|
### Miscellaneous
|
|
|
|
image::gplrom.png[]
|
|
|
|
Example of the Demo System ROM provided with the EPPLE \]\[ emulator.
|
|
|
|
image::static.png[]
|
|
|
|
Random TV "static" when no video signal is present.
|
|
|
|
image::apple2.png[]
|
|
|
|
Apple System ROM showing the APPLE \]\[ title.
|