Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351958 is a reply to message #351948] Tue, 05 September 2017 23:36 Go to previous messageGo to next message
gids.rs is currently offline  gids.rs
Messages: 1395
Registered: October 2012
Karma: 0
Senior Member
On Tuesday, September 5, 2017 at 2:09:37 PM UTC-6, Jorge wrote:
> On Tuesday, September 5, 2017 at 10:03:23 PM UTC+2, roger....@gmail.com wrote:
>>
>> Does anyone have a ROM dump of the 128EX?
>
> I can do it, I have a 128EX.


I guess I am missing slots 4 and 7 firmware and the ROM for the serial ports and the video expansion ROM and smartport.

If you want to do it Jorge, then I won't have to pull out my Laser. :)

I can post the code for reading the ROMs if you need it.

Do you know how to access the serial ports control panel? I didn't know how for quite awhile after I got mine.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351987 is a reply to message #351946] Wed, 06 September 2017 01:41 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: inexorabletash

On Tuesday, September 5, 2017 at 12:57:04 PM UTC-7, roger....@gmail.com wrote:
> It's likely that I'll need to restrict the list of supported accelerators..
>
> NORMFAST is rapidly approaching the $D0 size for page 3. I do not think it will be very useful if it no longer fits in page 3.

I'm envisioning building the logic into a program launcher - the launcher can run accelerated, but slow the processor down for the launched app (e.g. a game). Not quite the same use case, but definitely building on what you've started and the research that's being shared/consolidated here!
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351993 is a reply to message #351950] Wed, 06 September 2017 20:38 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Tuesday, September 5, 2017 at 3:39:46 PM UTC-5, I am Rob wrote:
> I have version 4.2 from a 128EX, but it is broken into parts with the internal ROMs for each slot in separate files. C100, C200 .. C700.

Thanks for the offer.

I was a doofus and didn't check the Apple II Documentation Project first. It has the 4.2, 4.5 and EX/2 ROMs.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351994 is a reply to message #351987] Wed, 06 September 2017 20:43 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Wednesday, September 6, 2017 at 12:41:41 AM UTC-5, inexora...@gmail.com wrote:
> I'm envisioning building the logic into a program launcher - the launcher can run accelerated, but slow the processor down for the launched app (e.g.. a game). Not quite the same use case, but definitely building on what you've started and the research that's being shared/consolidated here!

Thanks for letting me know.

My expectation is that once source gets posted, it will have a life of its own.

If you do write a launcher, it may be tempting to add options for more finely controlled accelerators like the FASTChip and Zip Chip to run just a little slower or faster than 1Mhz for certain games.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351995 is a reply to message #351958] Wed, 06 September 2017 20:49 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Tuesday, September 5, 2017 at 10:36:16 PM UTC-5, I am Rob wrote:
> Do you know how to access the serial ports control panel? I didn't know how for quite awhile after I got mine.

The Laser 128 documentation says Control-P-Reset. (P being pressed with Control-Reset.)
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351996 is a reply to message #351459] Wed, 06 September 2017 20:51 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

NORMFAST release 4 adds Laser 128EX, the trademarked accelerator from Germany, and TransWarp I to the IIgs, //c+, FASTChip and Zip Chip support.

Any testers and/or a copy of the "TransWarp II Programmer's Guide" would be appreciated! I can only test the IIgs and //c+, which is fine with me.

WARNING: The memory location to set the accelerator speed may overlap existing locations such as: annuciators, Apple //c specific hardware, or the paddle trigger.

BRUN NORMFAST or CALL 768 to disable the accelerator.
CALL 771 to enable the accelerator.
Enabling an older accelerator may set maximum speed.
Accelerators such as the FASTChip or Zip Chip can run slower than 1Mhz when enabled.

NORMFAST is position independent and can be loaded most anywhere.

The Laser 128 is problematic. It's not clear how identify a plain 128 from a 128EX (with accelerator). When NORMFAST finds a 128, it assumes that it's an EX. This means that a plain 128 with an accelerator gets ignored.

=====

Boot DOS or start BASIC.SYSTEM in your favorite emulator and copy/paste the following.

CALL -151
300:A9 0 2C A9 1 A2 4 AE B3 FB E0 6 D0
:52 AE C0 FB F0 2B AE FF FF E0 C4 D0 E
:4A AD 74 C0 29 3F 90 2 9 C0 8D 74 C0
:60 48 38 20 1F FE 68 B0 30 4A AD 36
:C0 29 7F 90 2 9 80 8D 36 C0 60 AE BF
:FB E0 5 D0 1B 49 1 1A A6 0 8 78 48 A9
:4 48 20 C7 C7 20 C7 C7 A9 3 48 20 C7
:C7 28 86 0 60 A0 9 AA F0 2 A0 28 A9
:6A 8 78 8D 6A C0 8D 6A C0 8D 6A C0 8D
:6A C0 8D 6B C0 2C 6B C0 10 A 8C 6D C0
:A9 A6 8D 6A C0 28 60 A9 5A 8D 5A C0
:8D 5A C0 8D 5A C0 8D 5A C0 4A 9D 5A
:C0 A9 A5 8D 5A C0 28 8A 49 1 AA 9D 5C
:C0 8E 74 C0 60
3D0G
BSAVE NORMFAST,A$300,L$AC

=====

;;; NORMFAST Disable/enable Apple II compatible accelerator
;
; Release 4 2017-09-06 Add Laser 128EX, TransWarp I, UW
;
; Release 3 2017-08-29 Change FASTChip partially back to
; release 1, which seems to work the way release 2 was
; intended?!
;
; Release 2 2017-08-27 change enable entry point, add Zip
; Chip, change setting FASTChip speed to disable/enable
;
; Release 1 2017-08-25 IIGS, //c+ and FASTChip
;
; WARNING: The memory location to set the accelerator
; speed may overlap existing locations such as:
; annuciators or Apple //c specific hardware
; paddle trigger
;
; Known to work: IIGS, //c+
; Theoretically: FASTChip, Laser 128EX, TransWarp I,
; trademarked German product, Zip Chip
;
; BRUN NORMFAST or CALL 768 to disable the accelerator.
; CALL 771 to enable the accelerator.
; Enabling an older accelerator may set maximum speed.
; Accelerators such as the FASTChip or Zip Chip can run
; slower than 1Mhz when enabled.
;
; NORMFAST is position independent and can be loaded most
; anywhere in the first 48K of memory.
; The ROMs must be enabled to identify the model of the
; computer.
;
; This was originally for the //c+ which is normally
; difficult to set to 1Mhz speed.
; The other expected use is to set the speed in a program.
;
; Written for Andrew Jacobs' Java based dev65 assembler at
; http://sourceforge.net/projects/dev65 but has portability
; in mind.

.65C02 ; when on a //c+

; addresses are lowercase, constant values are in CAPS

romid .equ $FBB3
; $38=][, $EA=][+, $06=//e compatible
ROMID_IIECOMPAT .equ 6
romid_ec .equ $FBC0
; $EA=//e original, $E0=//e enhanced, $E1=//e EDM, $00=//c
; Laser 128s are $E0
romid_c .equ $FBBF
; $FF=original, $00=Unidisk 3.5 ... $05=//c+
ROMID_CPLUS .equ 5

; IIGS
idroutine .equ $FE1F ; SEC, JSR $FE1F, BCS notgs
gsspeed .equ $C036 ; bit 7: fast mode

; //c+ Cache Glue Gate Array (accelerator)
cgga .equ $C7C7 ; entry point
CGGA_ENABLE .equ 1 ; fast
CGGA_DISABLE .equ 2 ; normal
CGGA_LOCK .equ 3
CGGA_UNLOCK .equ 4 ; required to make a change

l128irqpage .equ $C4
; From the 4.2, 4.5 and EX2 ROM dumps at the Apple II
; Documentation Project, the Laser 128 IRQ handlers are
; in the $C4 page.
; A comp.sys.apple2 post says the 6.0 ROM for the 128 and
; 128EX are identical, so there may not be an easy way to
; tell a plain 128 from an (accelerated) 128EX.
irq .equ $FFFE ; 6502 IRQ vector

; may overlap with paddle trigger
ex_cfg .equ $C074 ; bits 7 & 6 for speed
EX_NOTSPEED .equ $3F
EX_1MHZMASK .equ $0
EX_2MHZMASK .equ $80 ; 2.3Mhz
EX_3MHZMASK .equ $C0 ; 3.6Mhz

; FASTChip
fc_lock .equ $C06A
FC_UNLOCK .equ $6A ; write 4 times
FC_LOCK .equ $A6
fc_enable .equ $C06B
fc_speed .equ $C06D
FC_1MHZ .equ 9
FC_ON .equ 40 ; doco says 16.6Mhz

; TransWarp I
; may overlap with paddle trigger
tw1_speed .equ $C074
TW1_1MHZ .equ 1
TW1_MAX .equ 0

; Trademarked German accelerator
; overlaps annunciator 2 & //c mouse interrupts
uw_fast .equ $C05C
uw_1mhz .equ $C05D

; Zip Chip
; overlaps annunciator 1 & //c vertical blank
zc_lock .equ $C05A
ZC_UNLOCK .equ $5A ; write 4 times
ZC_LOCK .equ $A5
zc_enable .equ $C05B

.org $300

; disable accelerator
lda #0 ; offset to disable Zip
.byte $2C ; BIT <ABSOLUTE>, hide next lda #

; enable accelerator
lda #1 ; offset to enable Zip

ldx #4 ; our release number

;; first check built-in accelerators

ldx romid
cpx #ROMID_IIECOMPAT
bne fc ; not a //e, try FASTChip

ldx romid_ec
beq iic ; //c family

; not worth the bytes for enhanced //e check
ldx irq+1
cpx #l128irqpage
bne gscheck

; a Laser 128, hopefully harmless on a non EX

lsr ; set carry for fast
lda ex_cfg
and #EX_NOTSPEED ; 1Mhz is zero
bcc exset
ora #EX_3MHZMASK
exset
sta ex_cfg
rts

gscheck
pha
sec
jsr idroutine
pla
bcs fc ; not a IIGS, try FASTChip

; set IIGS speed

lsr ; set carry for enable
lda gsspeed
and #$7F ; normal
bcc gsset
ora #$80 ; fast
gsset
sta gsspeed
rts

iic
ldx romid_c
cpx #ROMID_CPLUS
bne fc ; not a //c+, try FASTChip

; Set //c+ speed. Uses the horrible firmware in case other
; code works "by the book", that is can check and set
; whether the accelerator is enabled.
; The //c+ is Zip compatible.

; change 0 and 1 to 2 and 1
eor #1
inc a ; 65C02

; cgga calls save X and Y regs but sets $0 to 0
; (this will get a laugh from C programmers)
ldx $0
php
sei ; timing sensitive
pha ; action after CGGA_UNLOCK

lda #CGGA_UNLOCK ; unlock to change
pha
jsr cgga

jsr cgga ; disable/enable

lda #CGGA_LOCK ; should lock after a change
pha
jsr cgga

plp ; restore interrupt state
stx $0
rts

;; At this point, the computer does not have a built-in
;; accelerator

; FASTChip tried first because its registers do not overlap
; any known motherboard locations

fc
ldy #FC_1MHZ
tax ; also sets X for Zip
beq fcset
ldy #FC_ON ; enable set speed?
fcset
lda #FC_UNLOCK
php
sei ; timing sensitive
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_enable
bit fc_enable
bpl zip ; FASTChip not enabled
sty fc_speed
lda #FC_LOCK
sta fc_lock
plp ; restore interrupt state
rts

; Zip Chip registers used here overlap annunciator 1 /
; //c vertical blank registers
; A Zip Chip can be detected, but that would require
; accessing other overloaded memory locations.
; enter here with X = 0 to disable, 1 to enable
; processor status on stack and interrupts disabled

zip
lda #ZC_UNLOCK
sta zc_lock
sta zc_lock
sta zc_lock
sta zc_lock
lsr ; not ZC_LOCK or ZC_UNLOCK
sta zc_lock,x ; disable/enable
lda #ZC_LOCK
sta zc_lock
plp ; restore interrupt state

; trademarked accelerator from Germany

txa
eor #1 ; swap 0 and 1
tax
sta uw_fast,x ; value does not matter

; TransWarp I

stx tw1_speed

rts
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #351998 is a reply to message #351996] Wed, 06 September 2017 22:20 Go to previous messageGo to next message
gids.rs is currently offline  gids.rs
Messages: 1395
Registered: October 2012
Karma: 0
Senior Member
> The Laser 128 is problematic. It's not clear how identify a plain 128 from a 128EX (with accelerator). When NORMFAST finds a 128, it assumes that it's an EX. This means that a plain 128 with an accelerator gets ignored.


Does it matter what $C074 is set to on the Laser 128? If it doesn't have any effect, would it matter?

I believe it is also possible for any of the Laser 128 series to have an 8 Mhz Zip Chip as well or is the Zip chip identified before Laser 128 series?
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352022 is a reply to message #351998] Thu, 07 September 2017 12:07 Go to previous messageGo to next message
qkumba is currently offline  qkumba
Messages: 1597
Registered: March 2013
Karma: 0
Senior Member
May I suggest a change from:

; set IIGS speed

lsr ; set carry for enable
lda gsspeed
and #$7F ; normal
bcc gsset
ora #$80 ; fast
gsset
sta gsspeed


to

; set IIGS speed

lsr ; set carry for enable
lda gsspeed
php
asl
plp
ror ; normal or fast based on carry
sta gsspeed
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352024 is a reply to message #352022] Thu, 07 September 2017 12:19 Go to previous messageGo to next message
qkumba is currently offline  qkumba
Messages: 1597
Registered: March 2013
Karma: 0
Senior Member
And this:

fc
ldy #FC_1MHZ
tax ; also sets X for Zip
beq fcset
ldy #FC_ON ; enable set speed?

can be

fc
tax ; also sets X for Zip
ldy fc_defs,x
....

fc_defs
..db FC1MHZ, FC_ON
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352103 is a reply to message #351998] Sat, 09 September 2017 11:55 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Wednesday, September 6, 2017 at 9:20:33 PM UTC-5, I am Rob wrote:
>> The Laser 128 is problematic. It's not clear how identify a plain 128 from a 128EX (with accelerator). When NORMFAST finds a 128, it assumes that it's an EX. This means that a plain 128 with an accelerator gets ignored.
>
> Does it matter what $C074 is set to on the Laser 128? If it doesn't have any effect, would it matter?

A good question. The related question is whether or not $C074 triggers the paddle timer on a Laser 128 or not.

> I believe it is also possible for any of the Laser 128 series to have an 8 Mhz Zip Chip as well or is the Zip chip identified before Laser 128 series?

Indeed, that is the loop hole. NORMFAST doesn't check for Zip Chip, which would access even more already used memory addresses.

The problem with an accelerator in a Laser 128 is the TransWarp I, which also uses $C074.

Testers are still wanted!
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352104 is a reply to message #352022] Sat, 09 September 2017 11:59 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Thursday, September 7, 2017 at 11:07:36 AM UTC-5, qkumba wrote:
> May I suggest a change from:
>
> ; set IIGS speed
>
> lsr ; set carry for enable
> lda gsspeed
> and #$7F ; normal
> bcc gsset
> ora #$80 ; fast
> gsset
> sta gsspeed
>
>
> to
>
> ; set IIGS speed
>
> lsr ; set carry for enable
> lda gsspeed
> php
> asl
> plp
> ror ; normal or fast based on carry
> sta gsspeed

Code crunching already, eh? (I sympathize, it's a hard habit to break.)

Okay, if I don't invert the lsb of the accumulator, I'll make that change.

Unfortunately using 0 for normal and 1 for fast is mostly useful for the Zip. I'm likely to switch it around and make the Zip code pay the price.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352105 is a reply to message #352024] Sat, 09 September 2017 12:08 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Thursday, September 7, 2017 at 11:19:35 AM UTC-5, qkumba wrote:
> And this:
>
> fc
> ldy #FC_1MHZ
> tax ; also sets X for Zip
> beq fcset
> ldy #FC_ON ; enable set speed?
>
> can be
>
> fc
> tax ; also sets X for Zip
> ldy fc_defs,x
> ...
>
> fc_defs
> .db FC1MHZ, FC_ON

Tempting, but would break relocating the binary. There seem to be enough just getting started programmers, so if they want to use NORMFAST I think it would be convenient for them to load it whereever they have the bytes.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352106 is a reply to message #352103] Sat, 09 September 2017 12:43 Go to previous messageGo to next message
Michael J. Mahon is currently offline  Michael J. Mahon
Messages: 1770
Registered: October 2012
Karma: 0
Senior Member
<roger.shimada@gmail.com> wrote:
> On Wednesday, September 6, 2017 at 9:20:33 PM UTC-5, I am Rob wrote:
>>> The Laser 128 is problematic. It's not clear how identify a plain 128
>>> from a 128EX (with accelerator). When NORMFAST finds a 128, it assumes
>>> that it's an EX. This means that a plain 128 with an accelerator gets ignored.
>>
>> Does it matter what $C074 is set to on the Laser 128? If it doesn't
>> have any effect, would it matter?
>
> A good question. The related question is whether or not $C074 triggers
> the paddle timer on a Laser 128 or not.
>
>> I believe it is also possible for any of the Laser 128 series to have an
>> 8 Mhz Zip Chip as well or is the Zip chip identified before Laser 128 series?
>
> Indeed, that is the loop hole. NORMFAST doesn't check for Zip Chip, which
> would access even more already used memory addresses.

The only Apple softswitch accessed by Zip Chip controls is the "unlock"
address, $C05A. Once the chip is unlocked, other accesses in that range are
intercepted by the ASIC and don't reach the Apple bus.

--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352157 is a reply to message #352104] Sun, 10 September 2017 15:47 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: John Brooks

On Saturday, September 9, 2017 at 8:59:24 AM UTC-7, roger....@gmail.com wrote:
> On Thursday, September 7, 2017 at 11:07:36 AM UTC-5, qkumba wrote:
>> May I suggest a change from:
>>
>> ; set IIGS speed
>>
>> lsr ; set carry for enable
>> lda gsspeed
>> and #$7F ; normal
>> bcc gsset
>> ora #$80 ; fast
>> gsset
>> sta gsspeed
>>
>>
>> to
>>
>> ; set IIGS speed
>>
>> lsr ; set carry for enable
>> lda gsspeed
>> php
>> asl
>> plp
>> ror ; normal or fast based on carry
>> sta gsspeed
>
> Code crunching already, eh? (I sympathize, it's a hard habit to break.)
>
> Okay, if I don't invert the lsb of the accumulator, I'll make that change.
>
> Unfortunately using 0 for normal and 1 for fast is mostly useful for the Zip. I'm likely to switch it around and make the Zip code pay the price.

I'm not sure how much code size matters for NORMFAST, but I think 10-20 bytes could be saved by combining the GS/EX code path and the Zip/FastCHIP code path.

-JB
@JBrooksBSI
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352263 is a reply to message #352104] Sun, 10 September 2017 22:18 Go to previous messageGo to next message
qkumba is currently offline  qkumba
Messages: 1597
Registered: March 2013
Karma: 0
Senior Member
> Code crunching already, eh? (I sympathize, it's a hard habit to break.)

Based on the earlier mention of being short on space, I thought that I would look.

> Okay, if I don't invert the lsb of the accumulator, I'll make that change.
>
> Unfortunately using 0 for normal and 1 for fast is mostly useful for the Zip. I'm likely to switch it around and make the Zip code pay the price.

Fair enough.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #352279 is a reply to message #352104] Mon, 11 September 2017 12:59 Go to previous messageGo to next message
Michael J. Mahon is currently offline  Michael J. Mahon
Messages: 1770
Registered: October 2012
Karma: 0
Senior Member
<roger.shimada@gmail.com> wrote:
> On Thursday, September 7, 2017 at 11:07:36 AM UTC-5, qkumba wrote:
>> May I suggest a change from:
>>
>> ; set IIGS speed
>>
>> lsr ; set carry for enable
>> lda gsspeed
>> and #$7F ; normal
>> bcc gsset
>> ora #$80 ; fast
>> gsset
>> sta gsspeed
>>
>>
>> to
>>
>> ; set IIGS speed
>>
>> lsr ; set carry for enable
>> lda gsspeed
>> php
>> asl
>> plp
>> ror ; normal or fast based on carry
>> sta gsspeed
>
> Code crunching already, eh? (I sympathize, it's a hard habit to break.)
>
> Okay, if I don't invert the lsb of the accumulator, I'll make that change.
>
> Unfortunately using 0 for normal and 1 for fast is mostly useful for the
> Zip. I'm likely to switch it around and make the Zip code pay the price.
>

Given the function of the code, it's hard to imagine how performance could
be an issue.

--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #353471 is a reply to message #351459] Tue, 26 September 2017 13:07 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Saturday, August 26, 2017 at 8:34:00 AM UTC-7, roger....@gmail.com wrote:
> I would appreciate if someone can test this with a FastChip.
>
> NORMFAST sets normal (1Mhz) or fast speed on the IIGS, //c+, or hopefully on an Apple II with a FASTChip.
> (Not yet tested with a FASTChip. The source is based on the documentation.)
>
> This is primarily for the //c+ which is normally difficult to set to 1Mhz speed.
>
> The other expected use is to set the speed in a program.
>
> If the Apple is an original, ][ Plus, or //e, a FASTChip is assumed.
> It is *probably* harmless if there is no FASTChip.
> Does nothing on a //c that is not a //c+.

You could add support for the Apple IIe Card for Macintosh fairly cheaply.

; See if IIe Card is present
detect_IIe_Card:
lda $fbdd
cmp #$02
bne notiiecard

Set normal/fast info can be found here:

http://www.1000bit.it/support/manuali/apple/technotes/aiie/t n.aiie.10.html
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #353607 is a reply to message #353471] Thu, 28 September 2017 20:38 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Tuesday, September 26, 2017 at 12:07:26 PM UTC-5, MG wrote:
> You could add support for the Apple IIe Card for Macintosh fairly cheaply.. ...

Support for the Mac IIe Card? Ugh.

Anyway, added - and as usual untested - in NORMFAST 5.

Warning: NORMFAST now blindly sets add on accelerators. Annuciator/IIc specific locations and the paddle timer may be triggered.

Known to work: IIGS, //c+
Theoretically: FASTChip, Laser 128EX, Mac IIe Card, TransWarp I, trademarked German product, Zip Chip

BRUN NORMFAST or CALL 768 to disable the accelerator.
CALL 771 to enable the accelerator.
Enabling an older accelerator may set maximum speed.
Accelerators such as the FASTChip or Zip Chip can run slower than 1Mhz when enabled.

NORMFAST is position independent and can be loaded most anywhere in the first 48K of memory.

The size of $B5 is a good omen regarding a @Straczynski creation.

====

Boot a copy of DOS or start BASIC.SYSTEM in your favorite Apple II emulator, then copy and paste the following.

CALL -151
300:A9 1 2C A9 0 A2 5 AE B3 FB E0 6 D0
:62 AE C0 FB F0 3D AE FF FF E0 C4 D0
:16 A0 C0 A2 74 4A 98 B0 5 1D 0 C0 D0
:5 49 FF 3D 0 C0 9D 0 C0 60 48 38 20
:1F FE 68 B0 6 A0 80 A2 36 D0 E0 AE BE
:FB D0 2D AE DD FB E0 2 D0 26 A0 4 A2
:2B D0 CE AE BF FB E0 5 D0 19 1A A6 0
:8 78 48 A9 4 48 20 C7 C7 20 C7 C7 A9
:3 48 20 C7 C7 28 86 0 60 8D 74 C0 A8
:49 1 AA A9 5A 8 78 8D 5A C0 8D 5A C0
:8D 5A C0 8D 5A C0 4A 9D 5A C0 A9 A5
:8D 5A C0 99 5C C0 A2 9 98 D0 2 A2 28
:A9 6A 8D 6A C0 8D 6A C0 8D 6A C0 8D
:6A C0 8D 6B C0 8E 6D C0 A9 A6 8D 6A
:C0 28 60
3D0G
BSAVE NORMFAST,A$300,L$B5

====

Testing on the //c+ includes an in memory patch to use the generic code. This failed because the //c+ happened to report the FastCHIP enabled bit as true, so never tried the Zip Chip. Testing for the FASTChip enable has been removed. There are not enough bytes to test for the acclerators, so all add on accelerators are now set blindly.

Qkumba is correct that lookups would make the code shorter; however this would require position dependant code, or extra code to calculate the table address.

John Brooks was correct about shortening the GS and EX code which became obvious with the Mac IIe Card.

Antoine mentioned the Saturn Systems Accelerator so I looked into it. The Saturn Systems uses the slot firmware addresses ($C<slot>x0) for control. I have never seen this before. A slot search would be necessary, so requires way too many bytes.

====

;;; NORMFAST Disable/enable Apple II compatible accelerator
;
; Release 5 2017-09-27 Add Macintosh IIe Card. Addon
; accelerators are now set blindly, so will access
; annunciators/IIc locations and may trigger the
; paddle timer.
; No plans for the Saturn Systems Accelerator which would
; require a slot search.
;
; Release 4 2017-09-06 Add Laser 128EX, TransWarp I, UW
;
; Release 3 2017-08-29 Change FASTChip partially back to
; release 1, which seems to work the way release 2 was
; intended?!
;
; Release 2 2017-08-27 change enable entry point, add Zip
; Chip, change setting FASTChip speed to disable/enable
;
; Release 1 2017-08-25 IIGS, //c+ and FASTChip
;
; WARNING: The memory location to set the accelerator
; speed may overlap existing locations such as:
; annuciators or Apple //c specific hardware
; paddle trigger
;
; Known to work: IIGS, //c+
; Theoretically: FASTChip, Laser 128EX, Mac IIe Card,
; TransWarp I, trademarked German product, Zip Chip
;
; BRUN NORMFAST or CALL 768 to disable the accelerator.
; CALL 771 to enable the accelerator.
; Enabling an older accelerator may set maximum speed.
; Accelerators such as the FASTChip or Zip Chip can run
; slower than 1Mhz when enabled.
;
; NORMFAST is position independent and can be loaded most
; anywhere in the first 48K of memory.
; The ROMs must be enabled to identify the model of the
; computer.
;
; This was originally for the //c+ which is normally
; difficult to set to 1Mhz speed.
; The other expected use is to set the speed in a program.
;
; Written for Andrew Jacobs' Java based dev65 assembler at
; http://sourceforge.net/projects/dev65 but has portability
; in mind.

.65C02 ; only used for //c+
; 6502 opcodes are preferred to be friendly to the old
; monitor disassemblers

; addresses are lowercase, constant values are in CAPS

RELEASE .equ 5 ; our version

romid .equ $FBB3
; $38=][, $EA=][+, $06=//e compatible
ROMID_IIECOMPAT .equ 6
romid_ec .equ $FBC0
; $EA=//e original, $E0=//e enhanced, $E1=//e EDM, $00=//c
; Laser 128s are $E0
romid_c .equ $FBBF
; $FF=original, $00=Unidisk 3.5 ... $05=//c+
ROMID_CPLUS .equ 5
romid_maciie_0 .equ $FBBE ; 0
romid_maciie_2 .equ $FBDD ; 2

; IIGS
idroutine .equ $FE1F ; SEC, JSR $FE1F, BCS notgs
gsspeed .equ $C036
GS_FAST .equ $80 ; mask

; //c+ Cache Glue Gate Array (accelerator)
cgga .equ $C7C7 ; entry point
CGGA_ENABLE .equ 1 ; fast
CGGA_DISABLE .equ 2 ; normal
CGGA_LOCK .equ 3
CGGA_UNLOCK .equ 4 ; required to make a change

; Macintosh IIe Card
maciie .equ $C02B
MACIIE_FAST .equ 4 ; mask

l128irqpage .equ $C4
; From the 4.2, 4.5 and EX2 ROM dumps at the Apple II
; Documentation Project, the Laser 128 IRQ handlers are
; in the $C4 page.
; A comp.sys.apple2 post says the 6.0 ROM for the 128 and
; 128EX are identical, so there may not be an easy way to
; tell a plain 128 from an (accelerated) 128EX.
irq .equ $FFFE ; 6502 IRQ vector

; may overlap with paddle trigger
ex_cfg .equ $C074 ; bits 7 & 6 for speed
EX_NOTSPEED .equ $3F
EX_1MHZMASK .equ $0
EX_2MHZMASK .equ $80 ; 2.3Mhz
EX_3MHZMASK .equ $C0 ; 3.6Mhz

; FASTChip
fc_lock .equ $C06A
FC_UNLOCK .equ $6A ; write 4 times
FC_LOCK .equ $A6
fc_enable .equ $C06B
fc_speed .equ $C06D
FC_1MHZ .equ 9
FC_ON .equ 40 ; doco says 16.6Mhz

; TransWarp I
; may overlap with paddle trigger
tw1_speed .equ $C074
TW1_1MHZ .equ 1
TW1_MAX .equ 0

; Trademarked German accelerator
; overlaps annunciator 2 & //c mouse interrupts
uw_fast .equ $C05C
uw_1mhz .equ $C05D

; Zip Chip
; overlaps annunciator 1 & //c vertical blank
zc_lock .equ $C05A
ZC_UNLOCK .equ $5A ; write 4 times
ZC_LOCK .equ $A5
zc_enable .equ $C05B

iobase .equ $C000 ; easily confused with kbd

.org $300

; disable accelerator
lda #1
.byte $2C ; BIT <ABSOLUTE>, hide next lda #

; enable accelerator
lda #0

ldx #RELEASE ; our release number

;; first check built-in accelerators

ldx romid
cpx #ROMID_IIECOMPAT
bne addon ; not a //e

ldx romid_ec
beq iic ; //c family

; not worth the bytes for enhanced //e check
ldx irq+1
cpx #l128irqpage
bne gscheck

; a Laser 128, hopefully harmless on a non EX

ldy #EX_3MHZMASK ; phew, all needed bits set
ldx #lo(ex_cfg)

;; setspeed - set 1Mhz with AND and fast with OR
;
; A = lsb set for normal speed
; X = low byte address of speed location
; Y = OR mask for fast

setspeed
lsr
tya
bcs setnorm
ora iobase,x
bne setsta ; always

setnorm
eor #$FF
and iobase,x
setsta
sta iobase,x
rts

gscheck
pha
sec
jsr idroutine
pla
bcs maccheck ; not a gs

; set IIGS speed

ldy #GS_FAST
ldx #lo(gsspeed)
bne setspeed ; always

maccheck
ldx romid_maciie_0
bne addon ; no built-in accelerator
ldx romid_maciie_2
cpx #2
bne addon ; no built-in accelerator

; the IIe Card in a Mac

ldy #MACIIE_FAST
ldx #lo(maciie)
bne setspeed ; always

iic
ldx romid_c
cpx #ROMID_CPLUS
bne addon ; not a //c+, eventually hit Zip

; Set //c+ speed. Uses the horrible firmware in case other
; code works "by the book", that is can check and set
; whether the accelerator is enabled.
; The //c+ is otherwise Zip compatible.

inc a ; 65C02 $1A

; cgga calls save X and Y regs but sets $0 to 0
; (this will get a laugh from C programmers)
ldx $0
php
sei ; timing sensitive
pha ; action after CGGA_UNLOCK

lda #CGGA_UNLOCK ; unlock to change
pha
jsr cgga

jsr cgga ; disable/enable

lda #CGGA_LOCK ; should lock after a change
pha
jsr cgga

plp ; restore interrupt state
stx $0
rts

;; At this point, the computer does not have a built-in
;; accelerator
;
; Previous versions had tested fc_enable, which was not
; enough. Running low on space so just set blindly.

addon
; TransWarp I

sta tw1_speed

; Zip Chip

tay
eor #1
tax
lda #ZC_UNLOCK
php
sei ; timing sensitive
sta zc_lock
sta zc_lock
sta zc_lock
sta zc_lock
lsr ; not ZC_LOCK or ZC_UNLOCK
sta zc_lock,x ; disable/enable
lda #ZC_LOCK
sta zc_lock

;; current products are subject to change so do
;; these last

; trademarked accelerator from Germany

sta uw_fast,y ; value does not matter

; FASTChip

ldx #FC_1MHZ
tya
bne fcset
ldx #FC_ON ; enable set speed?
fcset
lda #FC_UNLOCK
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_enable
stx fc_speed
lda #FC_LOCK
sta fc_lock
plp ; restore interrupt state
rts
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #353621 is a reply to message #353607] Fri, 29 September 2017 12:20 Go to previous messageGo to next message
qkumba is currently offline  qkumba
Messages: 1597
Registered: March 2013
Karma: 0
Senior Member
Two more suggestions:

lda #CGGA_UNLOCK ; unlock to change
pha
jsr cgga
jsr cgga ; disable/enable
lda #CGGA_LOCK ; should lock after a change
pha
jsr cgga

->

ldy #CGGA_LOCK ; should lock after a change
phy
pha ; action after CGGA_UNLOCK
iny ;#CGGA_UNLOCK ; unlock to change
phy
jsr cgga
jsr cgga ; disable/enable
jsr cgga

and

ldx #FC_1MHZ
tya
bne fcset
ldx #FC_ON ; enable set speed?
fcset
lda #FC_UNLOCK
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_enable
stx fc_speed
lda #FC_LOCK
sta fc_lock

->

ldx #FC_1MHZ
dey
beq fcset
ldx #FC_ON ; enable set speed?
fcset
ldy #FC_UNLOCK
sty fc_lock
sty fc_lock
sty fc_lock
sty fc_lock
sty fc_enable
stx fc_speed
inc a ; 65C02 $1A ;#FC_LOCK
sta fc_lock
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #353840 is a reply to message #353607] Wed, 04 October 2017 17:26 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Thursday, September 28, 2017 at 5:38:48 PM UTC-7, roger....@gmail.com wrote:
> romid_maciie_0 .equ $FBBE ; 0
[SNIP]
> ldx romid_maciie_0
> bne addon ; no built-in accelerator

Omit this check, as that byte is the version of the Apple IIe Card firmware and is different among several versions of the "IIe Startup" application (2.2.2d1 is $03 at $FBBE).

tn.misc.07 probably should have put it in square brackets per its own commentary.

MG
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #353879 is a reply to message #353840] Thu, 05 October 2017 22:45 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: roger.shimada

On Wednesday, October 4, 2017 at 4:26:03 PM UTC-5, MG wrote:
> On Thursday, September 28, 2017 at 5:38:48 PM UTC-7, roger....@gmail.com wrote:
>> romid_maciie_0 .equ $FBBE ; 0
>
>> ldx romid_maciie_0
>> bne addon ; no built-in accelerator
>
> Omit this check, as that byte is the version of the Apple IIe Card firmware and is different among several versions of the "IIe Startup" application (2.2.2d1 is $03 at $FBBE).
>
> tn.misc.07 probably should have put it in square brackets per its own commentary.
>
> MG

Thanks! Deleting code for a fix is always appreciated, especially in page 3.

NORMFAST 6 - Disable/enable Apple II accelerator

Warning: NORMFAST now blindly sets add on accelerators. Annuciator/IIc specific locations and the paddle timer may be triggered.

Known to work: IIGS, //c+
Theoretically: FASTChip, Laser 128EX, Mac IIe Card, TransWarp I, trademarked German product, Zip Chip

BRUN NORMFAST or CALL 768 to disable the accelerator.
CALL 771 to enable the accelerator.
Enabling an older accelerator may set maximum speed.
Accelerators such as the FASTChip or Zip Chip can run slower than 1Mhz when enabled.

NORMFAST is position independent and can be loaded most anywhere in the first 48K of memory.

====

Boot a copy of DOS or start BASIC.SYSTEM in your favorite Apple II emulator, then copy and paste the following.

CALL -151
300:A9 1 2C A9 0 A2 6 AE B3 FB E0 6 D0
:5D AE C0 FB F0 38 AE FF FF E0 C4 D0
:16 A0 C0 A2 74 4A 98 B0 5 1D 0 C0 D0
:5 49 FF 3D 0 C0 9D 0 C0 60 48 38 20
:1F FE 68 B0 6 A0 80 A2 36 D0 E0 AE DD
:FB E0 2 D0 26 A0 4 A2 2B D0 D3 AE BF
:FB E0 5 D0 19 1A A6 0 8 78 48 A9 4 48
:20 C7 C7 20 C7 C7 A9 3 48 20 C7 C7 28
:86 0 60 8D 74 C0 A8 49 1 AA A9 5A 8
:78 8D 5A C0 8D 5A C0 8D 5A C0 8D 5A
:C0 4A 9D 5A C0 A9 A5 8D 5A C0 99 5C
:C0 A2 9 98 D0 2 A2 28 A9 6A 8D 6A C0
:8D 6A C0 8D 6A C0 8D 6A C0 8D 6B C0
:8E 6D C0 A9 A6 8D 6A C0 28 60
3D0G
BSAVE NORMFAST,A$300,L$B0

====

;;; NORMFAST Disable/enable Apple II compatible accelerator
;
; Release 6 2017-10-05 Fix Mac IIe card check
;
; Release 5 2017-09-27 Add Macintosh IIe Card. Addon
; accelerators are now set blindly, so will access
; annunciators/IIc locations and may trigger the
; paddle timer.
; No plans for the Saturn Systems Accelerator which would
; require a slot search.
;
; Release 4 2017-09-06 Add Laser 128EX, TransWarp I, UW
;
; Release 3 2017-08-29 Change FASTChip partially back to
; release 1, which seems to work the way release 2 was
; intended?!
;
; Release 2 2017-08-27 change enable entry point, add Zip
; Chip, change setting FASTChip speed to disable/enable
;
; Release 1 2017-08-25 IIGS, //c+ and FASTChip
;
; WARNING: The memory location to set the accelerator
; speed may overlap existing locations such as:
; annuciators or Apple //c specific hardware
; paddle trigger
;
; Known to work: IIGS, //c+
; Theoretically: FASTChip, Laser 128EX, Mac IIe Card,
; TransWarp I, trademarked German product, Zip Chip
;
; BRUN NORMFAST or CALL 768 to disable the accelerator.
; CALL 771 to enable the accelerator.
; Enabling an older accelerator may set maximum speed.
; Accelerators such as the FASTChip or Zip Chip can run
; slower than 1Mhz when enabled.
;
; NORMFAST is position independent and can be loaded most
; anywhere in the first 48K of memory.
; The ROMs must be enabled to identify the model of the
; computer.
;
; This was originally for the //c+ which is normally
; difficult to set to 1Mhz speed.
; The other expected use is to set the speed in a program.
;
; Written for Andrew Jacobs' Java based dev65 assembler at
; http://sourceforge.net/projects/dev65 but has portability
; in mind.

.65C02 ; only used for //c+
; 6502 opcodes are preferred to be friendly to the old
; monitor disassemblers

; addresses are lowercase, constant values are in CAPS

RELEASE .equ 6 ; our version

romid .equ $FBB3
; $38=][, $EA=][+, $06=//e compatible
ROMID_IIECOMPAT .equ 6
romid_ec .equ $FBC0
; $EA=//e original, $E0=//e enhanced, $E1=//e EDM, $00=//c
; Laser 128s are $E0
romid_c .equ $FBBF
; $FF=original, $00=Unidisk 3.5 ... $05=//c+
ROMID_CPLUS .equ 5
romid_maciie_2 .equ $FBDD ; 2

; IIGS
idroutine .equ $FE1F ; SEC, JSR $FE1F, BCS notgs
gsspeed .equ $C036
GS_FAST .equ $80 ; mask

; //c+ Cache Glue Gate Array (accelerator)
cgga .equ $C7C7 ; entry point
CGGA_ENABLE .equ 1 ; fast
CGGA_DISABLE .equ 2 ; normal
CGGA_LOCK .equ 3
CGGA_UNLOCK .equ 4 ; required to make a change

; Macintosh IIe Card
maciie .equ $C02B
MACIIE_FAST .equ 4 ; mask

l128irqpage .equ $C4
; From the 4.2, 4.5 and EX2 ROM dumps at the Apple II
; Documentation Project, the Laser 128 IRQ handlers are
; in the $C4 page.
; A comp.sys.apple2 post says the 6.0 ROM for the 128 and
; 128EX are identical, so there may not be an easy way to
; tell a plain 128 from an (accelerated) 128EX.
irq .equ $FFFE ; 6502 IRQ vector

; may overlap with paddle trigger
ex_cfg .equ $C074 ; bits 7 & 6 for speed
EX_NOTSPEED .equ $3F
EX_1MHZMASK .equ $0
EX_2MHZMASK .equ $80 ; 2.3Mhz
EX_3MHZMASK .equ $C0 ; 3.6Mhz

; FASTChip
fc_lock .equ $C06A
FC_UNLOCK .equ $6A ; write 4 times
FC_LOCK .equ $A6
fc_enable .equ $C06B
fc_speed .equ $C06D
FC_1MHZ .equ 9
FC_ON .equ 40 ; doco says 16.6Mhz

; TransWarp I
; may overlap with paddle trigger
tw1_speed .equ $C074
TW1_1MHZ .equ 1
TW1_MAX .equ 0

; Trademarked German accelerator
; overlaps annunciator 2 & //c mouse interrupts
uw_fast .equ $C05C
uw_1mhz .equ $C05D

; Zip Chip
; overlaps annunciator 1 & //c vertical blank
zc_lock .equ $C05A
ZC_UNLOCK .equ $5A ; write 4 times
ZC_LOCK .equ $A5
zc_enable .equ $C05B

iobase .equ $C000 ; easily confused with kbd

.org $300

; disable accelerator
lda #1
.byte $2C ; BIT <ABSOLUTE>, hide next lda #

; enable accelerator
lda #0

ldx #RELEASE ; our release number

;; first check built-in accelerators

ldx romid
cpx #ROMID_IIECOMPAT
bne addon ; not a //e

ldx romid_ec
beq iic ; //c family

; not worth the bytes for enhanced //e check
ldx irq+1
cpx #l128irqpage
bne gscheck

; a Laser 128, hopefully harmless on a non EX

ldy #EX_3MHZMASK ; phew, all needed bits set
ldx #lo(ex_cfg)

;; setspeed - set 1Mhz with AND and fast with OR
;
; A = lsb set for normal speed
; X = low byte address of speed location
; Y = OR mask for fast

setspeed
lsr
tya
bcs setnorm
ora iobase,x
bne setsta ; always

setnorm
eor #$FF
and iobase,x
setsta
sta iobase,x
rts

gscheck
pha
sec
jsr idroutine
pla
bcs maccheck ; not a gs

; set IIGS speed

ldy #GS_FAST
ldx #lo(gsspeed)
bne setspeed ; always

maccheck
ldx romid_maciie_2
cpx #2
bne addon ; no built-in accelerator

; the IIe Card in a Mac

ldy #MACIIE_FAST
ldx #lo(maciie)
bne setspeed ; always

iic
ldx romid_c
cpx #ROMID_CPLUS
bne addon ; not a //c+, eventually hit Zip

; Set //c+ speed. Uses the horrible firmware in case other
; code works "by the book", that is can check and set
; whether the accelerator is enabled.
; The //c+ is otherwise Zip compatible.

inc a ; 65C02 $1A

; cgga calls save X and Y regs but sets $0 to 0
; (this will get a laugh from C programmers)
ldx $0
php
sei ; timing sensitive
pha ; action after CGGA_UNLOCK

lda #CGGA_UNLOCK ; unlock to change
pha
jsr cgga

jsr cgga ; disable/enable

lda #CGGA_LOCK ; should lock after a change
pha
jsr cgga

plp ; restore interrupt state
stx $0
rts

;; At this point, the computer does not have a built-in
;; accelerator
;
; Previous versions had tested fc_enable, which was not
; enough. Running low on space so just set blindly.

addon
; TransWarp I

sta tw1_speed

; Zip Chip

tay
eor #1
tax
lda #ZC_UNLOCK
php
sei ; timing sensitive
sta zc_lock
sta zc_lock
sta zc_lock
sta zc_lock
lsr ; not ZC_LOCK or ZC_UNLOCK
sta zc_lock,x ; disable/enable
lda #ZC_LOCK
sta zc_lock

;; current products are subject to change so do
;; these last

; trademarked accelerator from Germany

sta uw_fast,y ; value does not matter

; FASTChip

ldx #FC_1MHZ
tya
bne fcset
ldx #FC_ON ; enable set speed?
fcset
lda #FC_UNLOCK
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_lock
sta fc_enable
stx fc_speed
lda #FC_LOCK
sta fc_lock
plp ; restore interrupt state
rts
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #353904 is a reply to message #353879] Fri, 06 October 2017 11:43 Go to previous messageGo to next message
qkumba is currently offline  qkumba
Messages: 1597
Registered: March 2013
Karma: 0
Senior Member
Were my recent suggestions not acceptable?
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416920 is a reply to message #353840] Thu, 06 October 2022 05:23 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Wages

On Thursday, October 5, 2017 at 6:26:03 AM UTC+9, MG wrote:
> On Thursday, September 28, 2017 at 5:38:48 PM UTC-7, roger....@gmail.com wrote:
>> romid_maciie_0 .equ $FBBE ; 0
> ...that byte is the version of the Apple IIe Card firmware and is different among several versions of the "IIe Startup" application (2.2.2d1 is $03 at $FBBE).

Actually, "FBBE" appears to pertain exclusively to FIRMWARE (not the IIe Startup application SOFTWARE), because when I type the following two commands at a BASIC prompt (with the IIe Card installed in an LC575 motherboard)...

CALL -151
FBBE

....it says FBBE is 03 regardless of whether I use version 2.2.1 or 2.2.2d1 of the IIe Startup app. (I cannot run II Setup app versions older than 2.2.1 because when I try, it throws the error: "Unable to continue because of a fatal error. Error # 10019.")

Interesting aside: when I try the same commands on the Virtual ][ emulator, it says FBBE is 00.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416925 is a reply to message #416920] Thu, 06 October 2022 12:14 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Thursday, October 6, 2022 at 2:23:53 AM UTC-7, james... wrote:
> On Thursday, October 5, 2017 at 6:26:03 AM UTC+9, MG wrote:
>> On Thursday, September 28, 2017 at 5:38:48 PM UTC-7, roger... wrote:
>>> romid_maciie_0 .equ $FBBE ; 0
>> ...that byte is the version of the Apple IIe Card firmware and is different among several versions of the "IIe Startup" application (2.2.2d1 is $03 at $FBBE).
>
> Actually,

....

> "FBBE" appears to pertain exclusively to FIRMWARE (not the IIe Startup application SOFTWARE), because when I type the following two commands at a BASIC prompt (with the IIe Card installed in an LC575 motherboard)...
>
> CALL -151
> FBBE
>
> ...it says FBBE is 03 regardless of whether I use version 2.2.1 or 2.2.2d1 of the IIe Startup app. (I cannot run II Setup app versions older than 2.2.1 because when I try, it throws the error: "Unable to continue because of a fatal error. Error # 10019.")

I fail to see how any of that contradicts what I said. I literally said "that byte is the version of the Apple IIe Card firmware," which, BTW, is contained in the IIe Startup Application and loaded into the card when it starts - there is no actual ROM on the card. I said it was different among several versions of IIe Startup (as they vary on which firmware they ship), not unique to each version of IIe Startup.

> Interesting aside: when I try the same commands on the Virtual ][ emulator, it says FBBE is 00.

That's because Virtual II is emulating a normal Apple IIe, not a IIe Card, and the normal Apple IIe firmware has $FBBE=$00.

MG

P.S. if you wish to examine the Apple IIe Card firmware as contained in the IIe Startup application: http://apple2.guidero.us/doku.php/mg_notes/iie_card/iie_star tup_resources
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416929 is a reply to message #416925] Thu, 06 October 2022 21:42 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Wages

On Friday, October 7, 2022 at 1:14:46 AM UTC+9, MG wrote:
> I literally said "that byte is the version of the Apple IIe Card firmware," which, BTW, is contained in the IIe Startup Application and loaded into the card when it starts - there is no actual ROM on the card. I said it was different among several versions of IIe Startup (as they vary on which firmware they ship), not unique to each version of IIe Startup.
>> Interesting aside: when I try the same commands on the Virtual ][ emulator, it says FBBE is 00.
> That's because Virtual II is emulating a normal Apple IIe, not a IIe Card, and the normal Apple IIe firmware has $FBBE=$00.
>
> MG
>
> P.S. if you wish to examine the Apple IIe Card firmware as contained in the IIe Startup application: http://apple2.guidero.us/doku.php/mg_notes/iie_card/iie_star tup_resources

Thank you for making time to kindly offer me a great explanation. I appreciate it very much.

So FBBE=00 applies to the original Apple IIe (enhanced or not, numerical keyboard version or older) as well as Virtual][, but FBBE=01/02/03 apply exclusively to the IIe Card?

Please know that I tested version 2.2.1 and 2.2.2d1 of the IIe Startup app, and FBBE = 03 on both app versions. Based on what you told me, that indicates 03 the IIe Card's hardware firmware revision. If FBBE numbers 01, 02 & 03 are exclusively used by the IIe Card, then such indicates Apple revised that card 3 times. However, I cannot find any information about what the differences would be between those 3 hardware/firmware revisions. Would you know?

Yes, I have read that "LC //e Card - IIe Startup Resources" web page you linked for me earlier this week, but it didn't shed light on what the actual hardware/firmware differences are between FBBE 01, 02 & 03.

To give some context to what promoted me to post a reply to your old 2017 post in the first place, I have been discussing issues with the Total Replay folks on their Github, and it was mentioned by Frank Milliron in the post below that he suspected IIe Startup versions 1.0 through 2.2.21d might have differing numbers that would allow him to differentiation between the various IIe Startup app versions on a code level...
https://github.com/a2-4am/4cade/issues/503#issuecomment-1266 309227

You may find the GitHub discussion interesting, as I state my experience there about using the IIe Card in an overclocked Mystic (LC575) motherboard, citing how different versions of the IIe Startup app react to that particular Macintosh motherboard its 68040 CPU clock speed.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416936 is a reply to message #416929] Fri, 07 October 2022 17:50 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Thursday, October 6, 2022 at 6:42:20 PM UTC-7, james...@ wrote:
> On Friday, October 7, 2022 at 1:14:46 AM UTC+9, MG wrote:
>> I literally said "that byte is the version of the Apple IIe Card firmware," which, BTW, is contained in the IIe Startup Application and loaded into the card when it starts - there is no actual ROM on the card. I said it was different among several versions of IIe Startup (as they vary on which firmware they ship), not unique to each version of IIe Startup.
>>> Interesting aside: when I try the same commands on the Virtual ][ emulator, it says FBBE is 00.
>> That's because Virtual II is emulating a normal Apple IIe, not a IIe Card, and the normal Apple IIe firmware has $FBBE=$00.
>>
>> MG
>>
>> P.S. if you wish to examine the Apple IIe Card firmware as contained in the IIe Startup application: http://apple2.guidero.us/doku.php/mg_notes/iie_card/iie_star tup_resources
> Thank you for making time to kindly offer me a great explanation. I appreciate it very much.
>
> So FBBE=00 applies to the original Apple IIe (enhanced or not, numerical keyboard version or older) as well as Virtual][, but FBBE=01/02/03 apply exclusively to the IIe Card?

FBBE=00 also apples to old versions of IIe Startup, which may be hard to find.

> Please know that I tested version 2.2.1 and 2.2.2d1 of the IIe Startup app, and FBBE = 03 on both app versions. Based on what you told me, that indicates 03 the IIe Card's hardware firmware revision. If FBBE numbers 01, 02 & 03 are exclusively used by the IIe Card, then such indicates Apple revised that card 3 times. However, I cannot find any information about what the differences would be between those 3 hardware/firmware revisions. Would you know?

It is not a hardware version. As far as I know, there is only one production version of the IIe Card. The card contains a (possibly custom) 65C02, RAM, IWM, Gemini, and some support chips. In particular, the only ROM chip on the card is a small 256-byte PROM that identifies the card to the Macintosh, it does not contain any on-board firmware.

The card "firmware" is entirely contained in the IIe Startup application. It is loaded into the card when the application starts via address+data byte registers in the card's mapped memory on the Macintosh bus (very much like an Apple II "slinky" card). The card has 256K of memory, which is divided into four parts, one main RAM bank, two Aux RAM banks (the second of which probably no software knows about), and a fourth bank that becomes the "ROM" from the Apple IIe perspective.

The fourth bank is divided into four parts as well, one of which is the main firmware bank (AppleSoft + the monitor), two auxiliary firmware banks, and the slot ROMs.

Again, this is not actual firmware in ROM, it is RAM acting like ROM.

> Yes, I have read that "LC //e Card - IIe Startup Resources" web page you linked for me earlier this week, but it didn't shed light on what the actual hardware/firmware differences are between FBBE 01, 02 & 03.

FBBE does not indicate any hardware differences whatsoever. It comes from the "Monx" resource in the IIe Startup application. If you use an old enough version of IIe Startup, you will see a different value in FBBE. All of the "firmware" / "ROM" in the fourth bank of RAM I mentioned above is loaded into the card by the IIe Startup application.

>
> To give some context to what promoted me to post a reply to your old 2017 post in the first place, I have been discussing issues with the Total Replay folks on their Github, and it was mentioned by Frank Milliron in the post below that he suspected IIe Startup versions 1.0 through 2.2.21d might have differing numbers that would allow him to differentiation between the various IIe Startup app versions on a code level...
> https://github.com/a2-4am/4cade/issues/503#issuecomment-1266 309227

Frank is correct, they do have different numbers at FBBE. As for any meaningful difference between the different versions, I haven't really investigated them or even map the IIe Startup -> FBBE numbers.

> You may find the GitHub discussion interesting, as I state my experience there about using the IIe Card in an overclocked Mystic (LC575) motherboard, citing how different versions of the IIe Startup app react to that particular Macintosh motherboard its 68040 CPU clock speed.

I run one in a Color Classic with a Mystic board, one in a Quadra 605, and one in an LC III. But I generally run 2.2.2d1 on all of them.

I will check out the discussion.

MG
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416940 is a reply to message #416936] Fri, 07 October 2022 23:19 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Wages

On Saturday, October 8, 2022 at 6:50:06 AM UTC+9, MG wrote:
> ...The card has 256K of memory, which is divided into four parts, one main RAM bank, two Aux RAM banks (the second of which probably no software knows about), and a fourth bank that becomes the "ROM" from the Apple IIe perspective.
> The fourth bank is divided into four parts as well, one of which is the main firmware bank (AppleSoft + the monitor), two auxiliary firmware banks, and the slot ROMs.
> Again, this is not actual firmware in ROM, it is RAM acting like ROM.

Very interesting! I humbly appreciate your time in providing such an amazingly helpful information.

So 128K of the card's physical 256K is being used as the IIe's "one main RAM bank," while the remaining 128K is divided into 2 Aux RAM banks (56K each?) and the "ROM" bank (16K divided into 4 parts).

When I launch IIe Startup and display the IIe Option Panel, I see the virtual Memory Expansion Card in virtual slot 7 is set to 256K, which apparently uses the Mac's RAM. If I then enter the IIe environment and check, it says the total RAM is 384K. That 384K indicates 128K (physical RAM on the IIe Card) + 256K (memory expansion card, which uses the Mac's RAM) is being used..


> FBBE does not indicate any hardware differences whatsoever. It comes from the "Monx" resource in the IIe Startup application. If you use an old enough version of IIe Startup, you will see a different value in FBBE. All of the "firmware" / "ROM" in the fourth bank of RAM I mentioned above is loaded into the card by the IIe Startup application.
> Frank is correct, they do have different numbers at FBBE. As for any meaningful difference between the different versions, I haven't really investigated them or even map the IIe Startup -> FBBE numbers.
> I run one in a Color Classic with a Mystic board, one in a Quadra 605, and one in an LC III. But I generally run 2.2.2d1 on all of them.

Very interesting.

In that Github discussion, Frank mentions 7 different versions of the IIe Startup app, and yet it seems that only FBBE = 00, 01, 02 & 03 were used as identifiers. Since I know by my own testing that v.2.2.1 & v.2.2.2d1 share FBBE = 03, we then have the following (based on what Frank wrote on Github):

v1.0
$FBBE = 00

v2.0
$FBBE = 01?

v2.0.1
$FBBE = ?

v2.1
$FBBE = 02

v2.2
$FBBE = 02?

v2.2.1
$FBBE = 03

v2.2.2d1
$FBBE = 03

Separately from that...

I recently posted a YouTube video on my experience with the IIe Card installed in my overclocked Color Classic Mystic with the standard 60Hz VGA mod installed. Please understand that I have a lot of vintage Mac experience, but the IIe Card is my first use of an Apple II of any kind, so I am basically sharing that experience with others here:

https://youtu.be/iKF_zGshSWY?t=1973

At that particular timestamp in my video, I show how the IIe Card environment looks with the VGA mod. Instead of spanning the same horizontal width of the CRT as the Macintosh environment does when you have the stock 512x384 resolution, with the VGA mod, the IIe environment displays as 560x384 within the 640x480 VGA resolution. I don't see that as a problem, but I found it interesting. When you have the stock 512x384 resolution, the Color Classic can switch to 560x384 (spanning the same physical width on the CRT as the stock 512x384 resolution), but with the 60Hz VGA mod (I don't know if the 67Hz VGA mod will work), 560x384 is displayed within the 640x480. This means the IIe environment will display smaller when you have the VGA mod, as compared to a Color Classic with its stock resolution.

Anyway, if you continue watching you will see that I show how ProDOS icons vanish off the desktop when you enter the IIe environment (which is normal), and then I present a problem I encountered -- not being able to Format disks inserted into the Mac's internal Floppy drive (or even Write any data to it). I can Read data from it just fine though.

For some reason I don't fully understand, the solution is to use older version 2.2.1 of IIe Startup, which amazingly works on with the LC575 motherboard (even at a 40MHz overclock). That allows me to Format and Write data within the IIe environment, whereas v2.2.2d1 will not (at any Mac clock speed). But when I overclock the Mac's 68040 to 44MHz or higher, the version 2.2.1 app throws an error saying the IIe Card is damaged (it's not), and only 2.2.2.d1 will launch. Even with the 040 overclocked to 50MHz, the v2.2.2d1 app still launches and enters the IIe environment. The lone caveat with v.2.2.2d1, as shown in my video, is that you cannot (1) Format or (2) Write Data to a ProDOS formatted 3.5" floppy disk inserted into the Mac's internal floppy drive. Drives attached via Y-cable (in my case, using a FloppyEMU) still allow me to write data to them just fine, even with the Mystic motherboard highly overclocked.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416942 is a reply to message #416940] Sat, 08 October 2022 05:15 Go to previous messageGo to next message
Steve Nickolas is currently offline  Steve Nickolas
Messages: 2039
Registered: October 2012
Karma: 0
Senior Member
On Fri, 7 Oct 2022, James Wages wrote:

> At that particular timestamp in my video, I show how the IIe Card
> environment looks with the VGA mod. Instead of spanning the same
> horizontal width of the CRT as the Macintosh environment does when you
> have the stock 512x384 resolution, with the VGA mod, the IIe environment
> displays as 560x384 within the 640x480 VGA resolution. I don't see that
> as a problem, but I found it interesting. When you have the stock
> 512x384 resolution, the Color Classic can switch to 560x384 (spanning
> the same physical width on the CRT as the stock 512x384 resolution), but
> with the 60Hz VGA mod (I don't know if the 67Hz VGA mod will work),
> 560x384 is displayed within the 640x480. This means the IIe environment
> will display smaller when you have the VGA mod, as compared to a Color
> Classic with its stock resolution.

I have a VGA dongle and it does the same thing.

-uso.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416943 is a reply to message #416942] Sat, 08 October 2022 05:35 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Wages

On Saturday, October 8, 2022 at 6:13:46 PM UTC+9, Steve Nickolas wrote:
> I have a VGA dongle and it does the same thing.

VGA "dongle"???

In my case, I have performed the VGA "mod" where you physically alter the Analog Board of a Color Classic, as shown in my VGA Mod video here:
https://youtu.be/q_CB7gQTy38?t=886
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416945 is a reply to message #416943] Sat, 08 October 2022 12:22 Go to previous messageGo to next message
Steve Nickolas is currently offline  Steve Nickolas
Messages: 2039
Registered: October 2012
Karma: 0
Senior Member
On Sat, 8 Oct 2022, James Wages wrote:

> On Saturday, October 8, 2022 at 6:13:46 PM UTC+9, Steve Nickolas wrote:
>> I have a VGA dongle and it does the same thing.
>
> VGA "dongle"???

It plugs in the monitor jack, you plug the monitor into that.

-uso.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416947 is a reply to message #416940] Sat, 08 October 2022 15:39 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Friday, October 7, 2022 at 8:19:49 PM UTC-7, james... wrote:
> On Saturday, October 8, 2022 at 6:50:06 AM UTC+9, MG wrote:
>> ...The card has 256K of memory, which is divided into four parts, one main RAM bank, two Aux RAM banks (the second of which probably no software knows about), and a fourth bank that becomes the "ROM" from the Apple IIe perspective.
>> The fourth bank is divided into four parts as well, one of which is the main firmware bank (AppleSoft + the monitor), two auxiliary firmware banks, and the slot ROMs.
>> Again, this is not actual firmware in ROM, it is RAM acting like ROM.
> Very interesting! I humbly appreciate your time in providing such an amazingly helpful information.
>
> So 128K of the card's physical 256K is being used as the IIe's "one main RAM bank," while the remaining 128K is divided into 2 Aux RAM banks (56K each?) and the "ROM" bank (16K divided into 4 parts).

64K is the main RAM, 64K is one aux memory bank just like a normal IIe, 64K is a second aux bank that can be selected via bit 4 of $C02B, and 64K is the "ROM."

To understand how it's addressed, we go back to the original Apple IIe. The Apple IIe memory map itself is somewhat complicated. In a stock machine with no expansion there is 64K of memory, which (up to) 56K is visible at any given time. The extra 4K is switchable into $D000-$DFFF, allowing access to the full 64K. This precedent was set by the Apple II/II+ (48K) with a 16K expansion. The memory can be selected for write-only (reads come from ROM), read-only, or read+write.

When a 64K memory card is inserted into the IIe Aux slot, it creates a second ("aux") 64K bank alongside the regular memory that may be switched in two large regions. Addressing what is switched in works the same as above. There are also some features that make it so you can write into the aux memory while reading the main memory.

The Apple IIe Card adds a second aux memory bank that can be switched in that is otherwise addressed the same way. I haven't figured out what it is used for though I suspect the AppleTalk stuff might buffer things there. A notable thing is that this extra bank of memory is not selected the same way that extra aux memory cards for a standard IIe are selected, so it's not compatible with software that understand "ramworks-style" memory.

> When I launch IIe Startup and display the IIe Option Panel, I see the virtual Memory Expansion Card in virtual slot 7 is set to 256K, which apparently uses the Mac's RAM. If I then enter the IIe environment and check, it says the total RAM is 384K. That 384K indicates 128K (physical RAM on the IIe Card) + 256K (memory expansion card, which uses the Mac's RAM) is being used.

That's a totally different type of expansion RAM, known as "slinky" memory. The memory is addressed by a 3-byte address register and a single-byte data register. Accessing the data register reads or writes to the byte pointed to by the address register, and then increments the address register. You can't execute program code out of this style of memory, and it normally functions as a RAM disk. The physical equivalent to this is the "Apple II Memory Expansion Card" and there were more-functional clones like the AE RAMFactor card. In fact, the RAMFactor card firmware can work with the emulated memory card and add the firmware features (but no battery backup). I did this as a proof-of-concept for modifying the IIe Card's "firmware": http://apple2.guidero.us/doku.php/projects/rf_lc

>> FBBE does not indicate any hardware differences whatsoever. It comes from the "Monx" resource in the IIe Startup application. If you use an old enough version of IIe Startup, you will see a different value in FBBE. All of the "firmware" / "ROM" in the fourth bank of RAM I mentioned above is loaded into the card by the IIe Startup application.
>> Frank is correct, they do have different numbers at FBBE. As for any meaningful difference between the different versions, I haven't really investigated them or even map the IIe Startup -> FBBE numbers.
>> I run one in a Color Classic with a Mystic board, one in a Quadra 605, and one in an LC III. But I generally run 2.2.2d1 on all of them.
> Very interesting.
>
> In that Github discussion, Frank mentions 7 different versions of the IIe Startup app, and yet it seems that only FBBE = 00, 01, 02 & 03 were used as identifiers. Since I know by my own testing that v.2.2.1 & v.2.2.2d1 share FBBE = 03, we then have the following (based on what Frank wrote on Github):
[snip]
> Separately from that...
>
> I recently posted a YouTube video on my experience with the IIe Card installed in my overclocked Color Classic Mystic with the standard 60Hz VGA mod installed. Please understand that I have a lot of vintage Mac experience, but the IIe Card is my first use of an Apple II of any kind, so I am basically sharing that experience with others here:
>
> https://youtu.be/iKF_zGshSWY?t=1973
>
> At that particular timestamp in my video, I show how the IIe Card environment looks with the VGA mod. Instead of spanning the same horizontal width of the CRT as the Macintosh environment does when you have the stock 512x384 resolution, with the VGA mod, the IIe environment displays as 560x384 within the 640x480 VGA resolution. I don't see that as a problem, but I found it interesting. When you have the stock 512x384 resolution, the Color Classic can switch to 560x384 (spanning the same physical width on the CRT as the stock 512x384 resolution), but with the 60Hz VGA mod (I don't know if the 67Hz VGA mod will work), 560x384 is displayed within the 640x480. This means the IIe environment will display smaller when you have the VGA mod, as compared to a Color Classic with its stock resolution.

This is normal. The Macintosh will switch to the 560x384 resolution if, and only if, the machine is capable of displaying 512x384. Furthermore, if a resolution larger than that is selected, on some Macs that are otherwise capable of 512x384, you will get 560x384 centered in that display rather than the native resolution. This is due to how the circuitry is wired in the machine. The IIe Card contains a crystal that generates the horizontal frequency for that resolution and switches it in to the video generation circuit. The machine has to support that.

> Anyway, if you continue watching you will see that I show how ProDOS icons vanish off the desktop when you enter the IIe environment (which is normal), and then I present a problem I encountered -- not being able to Format disks inserted into the Mac's internal Floppy drive (or even Write any data to it). I can Read data from it just fine though.

Hmm, I don't recall running in to that. I don't have any of my machines set up right now to test, unfortunately. I keep hoping someone comes along that is an expert on the Mac side who wants to reverse-engineer the 68K code in the IIe Startup application, that would increase the overall level of understanding of the card, probably let me complete the picture for the IIe side of the card, and maybe even allow the IIe Startup application to be patched or outright replaced. All of the IIe-side code that I've looked at is the same between 2.2.1 and 2.2.2d1, so the blame for disk problems is likely in the 68K code.

> For some reason I don't fully understand, the solution is to use older version 2.2.1 of IIe Startup, which amazingly works on with the LC575 motherboard (even at a 40MHz overclock). That allows me to Format and Write data within the IIe environment, whereas v2.2.2d1 will not (at any Mac clock speed). But when I overclock the Mac's 68040 to 44MHz or higher, the version 2.2.1 app throws an error saying the IIe Card is damaged (it's not), and only 2.2.2.d1 will launch. Even with the 040 overclocked to 50MHz, the v2.2.2d1 app still launches and enters the IIe environment. The lone caveat with v.2.2.2d1, as shown in my video, is that you cannot (1) Format or (2) Write Data to a ProDOS formatted 3.5" floppy disk inserted into the Mac's internal floppy drive. Drives attached via Y-cable (in my case, using a FloppyEMU) still allow me to write data to them just fine, even with the Mystic motherboard highly overclocked.

It doesn't surprise me that you eventually run in to trouble at higher speeds, as this will mess with timing on the bus and in the overall system. It's possible that at higher clock speeds the electrical interface becomes a problem or the software just doesn't wait long enough for the card to finish doing things.

MG
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416948 is a reply to message #416947] Sat, 08 October 2022 20:09 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Saturday, October 8, 2022 at 12:39:22 PM UTC-7, MG wrote:
> To understand how it's addressed, we go back to the original Apple IIe. The Apple IIe memory map itself is somewhat complicated. In a stock machine with no expansion there is 64K of memory, which (up to) 56K is visible at any given time. The extra 4K is switchable into $D000-$DFFF, allowing access to the full 64K. This precedent was set by the Apple II/II+ (48K) with a 16K expansion. The memory can be selected for write-only (reads come from ROM), read-only, or read+write.

Bah, up to 60K, not 56K :-)

MG
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416950 is a reply to message #416948] Sun, 09 October 2022 10:00 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Wages

On Sunday, October 9, 2022 at 9:09:39 AM UTC+9, MG wrote:
> On Saturday, October 8, 2022 at 12:39:22 PM UTC-7, MG wrote:
>> To understand how it's addressed, we go back to the original Apple IIe. The Apple IIe memory map itself is somewhat complicated. In a stock machine with no expansion there is 64K of memory, which (up to) 56K is visible at any given time. The extra 4K is switchable into $D000-$DFFF, allowing access to the full 64K. This precedent was set by the Apple II/II+ (48K) with a 16K expansion. The memory can be selected for write-only (reads come from ROM), read-only, or read+write.
> Bah, up to 60K, not 56K :-)
>
> MG

Thank you for the detailed information. Perhaps you could assist me in understanding something that is maybe memory related or maybe just a bug. I don't know which. Here is a 3.5" 800K HDV image that contains A2 Desktop and BeagleWrite:

https://kiramek.com/21test95/A2DeskTop-1.2-alpha48-en_800k.h dv.zip

I can use the emulator Virtual ][ on my modern Mac running MacOS Monterey to boot a IIe from this image just fine. (I use a virtual SCSI II card in slot 7, then add OmniDisk, then load the HDV into that virtual drive.) After booting, if I then open the Beaglewrite folder and then open Bw.System, BeagleWrite launches just fine and I can use it normally. No issues with the emulator at all,

However, if I put that same HDV image on my FloppyEMU (with the AppleII Firmware installed), connect the FloppyEMU to the Y-cable of my IIe Card (installed on an LC575 motherboard), then boot the Mac and launch IIe Startup v.2.2.2d1, the click on SmartPort, drag the icon from Spare Disk Drives into Slot 5 Drive 1, then click the Restart IIe button, I can boot into A2D just fine. If I then try to launch Bw.System, it starts to load. I see the splash screen, and then is says:

Ram drive detected in slot 7 drive 1.
OK to load BeagleWrite into it?
OK Cancel

(The Virtual ][ emulator doesn't show me that for some reason.)
Sometimes it will freeze right there. But even when it doesn't freeze there, regardless of whether I click OK or Cancel, it continues to load but then freezes just as the new word processor page displays. There is no flashing I-beam cursor and mouse and keyboard are frozen. It's totally locked up..

I've repeated this multiple times running the IIe environment at 1MHz, 1.9MHz, with the virtual Clock card removed from Slot 2, with more memory all the way up to 1MB -- all to no avail.

If I return to the Macintosh environment, quite IIe Startup, then use IIe Startup v.2.2.1 instead to try the same exact thing, BeagleWrite opens without freezing.

I am doing this with the Mac's CPU set to 40MHz, which allows v.2.2.1 of the IIe Startup app to load. At higher CPU clock frequencies v.2.2.1 will never launch. But even at 40MHz, it takes maybe 4 or 5 launch attempts before IIe Startup v.2.2.1 fully loads without that "IIe card is damaged" error dialog. IIe Startup v.2.2.2d1 always loads perfectly with no error dialog ever, regardless of the Mac's CPU clock frequency; but as I said, v.2.2.2d1 has some quirks. I cannot Format or Write to 800K ProDOS disk inserted into he Mac's internal floppy drive, and I now see that I cannot use BeagleWrite because of the aforementioned freeze.

Maybe this has nothing to do with memory and is just a bug in v.2.2.2d1. Not sure. Just wanted to report my experience as I continue to test the IIe Card in this Color Classic Mystic.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416951 is a reply to message #416950] Sun, 09 October 2022 14:38 Go to previous messageGo to next message
Steve Nickolas is currently offline  Steve Nickolas
Messages: 2039
Registered: October 2012
Karma: 0
Senior Member
ISTR there was a bug in the Apple II Desktop involving hitting a
softswitch that only actually did anything on the Mac card.

-uso.
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416952 is a reply to message #416950] Sun, 09 October 2022 23:09 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Joshua Bell

On Sunday, October 9, 2022 at 7:00:24 AM UTC-7, james...@gmail.com wrote:
> Ram drive detected in slot 7 drive 1.
> OK to load BeagleWrite into it?
> OK Cancel

So... do you have a RAM drive (memory expansion card) configured in your Slot 7? If not... sounds like a BW bug. If so, try disabling it, and see if the problem still occurs.

> (The Virtual ][ emulator doesn't show me that for some reason.)

Virtual ][ doesn't support "Slinky" memory expansion cards, so you presumably don't have a RAM drive in Slot 7.

> Sometimes it will freeze right there. But even when it doesn't freeze there, regardless of whether I click OK or Cancel, it continues to load but then freezes just as the new word processor page displays. There is no flashing I-beam cursor and mouse and keyboard are frozen. It's totally locked up.

It would be interesting to drop to BASIC.SYSTEM and see if Slot 7 Drive 1 behaves there, or if this is a red herring. Put BASIC.SYSTEM on your disk image, invoke it, and at the ] prompt type: CAT,S7,D1

It could also be interesting to see what devices ProDOS thinks you have. Try:

CALL-151 (at the ] prompt)
BF10.BF3F (at the * prompt)

BF10..BF2F are the device driver entry points (slots 0...7 drive 1, followed by slots 0...7 drive 2).
BF31 is the number of devices, followed by the device unit numbers.
If you have a Slot 7 Drive 1 device then I'd expect BF1E /BF1F to have $C7xx and there to be a $7x device unit number in the list.

FWIW, I configured a //e system in MAME (using Ample) with a memory expansion card in Slot 7, booted into A2D, launched BW, got the prompt about copying to RAM, selected OK, and everything seemed fine.

On Sunday, October 9, 2022 at 11:37:07 AM UTC-7, Steve Nickolas wrote:
> ISTR there was a bug in the Apple II Desktop involving hitting a
> softswitch that only actually did anything on the Mac card.

We fixed that a while ago. It's unclear from the repro steps given if A2D is necessary or a distraction. Glad to hear someone's trying alpha48 though!
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416953 is a reply to message #416952] Sun, 09 October 2022 23:49 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Wages

On Monday, October 10, 2022 at 3:37:07 AM UTC+9, Steve Nickolas wrote:
> ISTR there was a bug in the Apple II Desktop involving hitting a
> softswitch that only actually did anything on the Mac card.

I don't know what a "softswitch" is, but as I said in my previous message, IIe Setup version 2.2.2d1 (a Macintosh app that loads the IIe environment when the IIe Card is installed) has the freezing issue when trying to launch BeageWrite, but the slightly older version 2.2.1 does not have the BeagleWrite freezing issue.

On Monday, October 10, 2022 at 12:09:39 PM UTC+9, inexora...@gmail.com wrote:
> So... do you have a RAM drive (memory expansion card) configured in your Slot 7? If not... sounds like a BW bug. If so, try disabling it, and see if the problem still occurs.

In Virtual ][ on my modern Mac, I have a virtual SCSI II card in Slot 7, which has two OmniDisks setup. Virtual ][ by default puts a 64K virtual Ramworks card into the AUX slot.

On my Color Classic Mystic with IIe Card installed, I have the IIe Option Panel configured with a virtual memory card in slot 7 (the default slot for that, which uses the Mac's RAM). Slot 5 is used by SmartPort, where I have my Omnidisks setup to boot from the aforementioned 800K disks and also ProDOS hard drive images. I removed both the Clock card in slot 2 and that virtual memory card in slot 7 and tried it again, but it still freezes.

I confirmed just now that it absolutely is not an A2D-related bug because if I download the following bootable 800K disk image of BeagleWrite only (no A2D files at all) and try it with IIe Setup v.2.2.2d1 on my Color Classic Mystic, it too shows the freezing problem:
https://macgui.com/downloads/?file_id=9171

But when I test BeagleWrite with the slightly older v.2.2.1 of IIe Setup, there is no freeze.

So why not just use v.2.2.1 instead of v.2.2.2d1? Because only v.2.2.2d1 can be used when the Color Classic's 68040 CPU is overclocked higher than 40MHz. Another reason is because it's hard to get v.2.2.1 to load without an error dialog even at lower Mac CPU clock speeds, due to some bug, which I guess Apple tried to fix in v.2.2.2d1.

> It would be interesting to drop to BASIC.SYSTEM and see if Slot 7 Drive 1 behaves there, or if this is a red herring. Put BASIC.SYSTEM on your disk image, invoke it, and at the ] prompt type: CAT,S7,D1

First, please note that the IIe Option Panel (which is used by the IIe Card installed in a vintage Mac), only allows you to put the SmartPort card in slot 5, not any other slot.

Next, if I put the virtual RAMcard back into slot 7 on my Color Classic and then boot from my A2D 800K OmniDisk (which is using Slot 5), I then get to the Desktop and launch Basic.System. Then at the "]" prompt, I type:

CAT,S7,D1

Which then says:

/RAM7
NAME TYPE BLOCKS MODIFIED
DESKTOP DIR 1 10-OCT-22
BLOCKS FREE: 1543 BLOCKS USED: 505

I then typed the following at the "]" prompt:

CALL-151

It then showed me an asterisk prompt, at which I then typed:

BF10.BF3F

Which it then response with:

BF10- A3 DE A3 DE A3 DE A3 DE
BF18- A3 DE 16 C5 00 D0 4E C7
BF20- A3 DE A3 DE A3 DE 00 FF
BF28- A3 DE 16 C5 00 D0 A3 DE
BF30- 70 05 E0 60 DB 5B 74 BF
BF38- 00 00 00 00 00 00 00 00

At the time I rand that test, the IIe Option Panel was setup as follows:

Slot1: empty
Slot2: clock card
Slot3: display (operated by the Mac and cannot be changed)
Slot4: mouse card
Slot5: SmartPort card (cannot be moved to any other slot)
Slot6: 5.25" drive card
Slot7: RAM card (with 1024K assigned)
Mac //e card resources [message #416956 is a reply to message #416947] Mon, 10 October 2022 09:04 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Andrew Roughan

Hi MG,

I see that you have put a lot of effort into trying to understand the inner
workings of the Mac LC //e card.

Are you aware of any public resource that identifies issues with the
software?
I imagine that Apple probably has an internal bug list that we are unlikely
to see.
If someone was to take a look at the source with the view to improve it,
they would undoubtedly appreciate a list of issues to consider fixing.

Eg:
I know that 2.2.2d1 has a problem with the DGR colors.
Elsewhere in this NORMFAST thread there was a disk access issue declared.

In the absence of other candidates, perhaps you would consider hosting such
a list alongside your other resources?

Regards
Andrew
Re: NORMFAST - set normal or fast speed on the IIGS, //c+ and hopefully FASTChip [message #416969 is a reply to message #416950] Tue, 11 October 2022 12:35 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On Sunday, October 9, 2022 at 7:00:24 AM UTC-7, james...@gmail.com wrote:
> Maybe this has nothing to do with memory and is just a bug in v.2.2.2d1. Not sure. Just wanted to report my experience as I continue to test the IIe Card in this Color Classic Mystic.

v2.2.2d1 specifically addresses issues with the LC 550/575 systems. https://archive.org/details/IIe_Startup_Vers_2.2.2d1_Desc/mo de/1up. That's probably why you are not getting the the "damaged" message.

It's entirely possible that it introduces new bugs. As a developer preview it seems likely that other code may have snuck in besides the 550/575 fix.

MG
Re: Mac //e card resources [message #416970 is a reply to message #416956] Tue, 11 October 2022 12:44 Go to previous message
Anonymous
Karma:
Originally posted by: MG

On Monday, October 10, 2022 at 6:04:23 AM UTC-7, Andrew Roughan wrote:
> Hi MG,
>
> I see that you have put a lot of effort into trying to understand the inner
> workings of the Mac LC //e card.
>
> Are you aware of any public resource that identifies issues with the
> software?

I have not seen any. I have compiled a list of some anomalies vs a standard IIe, some of which are "as designed", the only "real" bug I've capture there is the DGR palette issue you mention below.

http://apple2.guidero.us/doku.php/mg_notes/iie_card/problem_ software

> I imagine that Apple probably has an internal bug list that we are unlikely
> to see.
> If someone was to take a look at the source with the view to improve it,
> they would undoubtedly appreciate a list of issues to consider fixing.
>
> Eg:
> I know that 2.2.2d1 has a problem with the DGR colors.

I believe this problem exists on all versions, but I have not verified that.. As I've mentioned, it'd wonderful to have someone who is intimately familiar with 68K Mac architecture and reverse engineering take on the Mac side of the system.

> Elsewhere in this NORMFAST thread there was a disk access issue declared.

I would like to see some more data on that one. The hardware configuration in that case is non-standard, it will be interesting to see if this is consistently reproducible across models, especially standard vs non-standard configuration. Perhaps this will serve as motivation to get my office cleaned up so I can get an LC set up again.

> In the absence of other candidates, perhaps you would consider hosting such
> a list alongside your other resources?

I'm not opposed to doing so, it is probably best done as a GitHub project, even if there is no code involved (yet). That way issues can simply be logged and commented on by anyone.

MG
Pages (2): [ «    1  2]  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Problem with App Store
Next Topic: Re: Applicard CP/M partition on CFFA3000?
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat May 18 21:15:23 EDT 2024

Total time taken to generate the page: 0.74495 seconds