Help using/fixing Apple // europlus

81 posts / 0 new
Last post
tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Help using/fixing Apple // europlus
AttachmentSize
Image icon IMG_6657.JPEG227.04 KB
Image icon IMG_6661.JPG405.21 KB
Image icon IMG_6662.JPG485.48 KB
Image icon IMG_6663.JPG368.2 KB
Image icon IMG_6664.JPG347.02 KB
Image icon IMG_6665.JPG586.03 KB
Image icon IMG_6666.JPG237.79 KB

Hi all,

 

I'm trying to prepare an Apple // europlus for a small local no-profit museum so visitors can use it. 

 

I am familiar with Apple //e and I am a bit lost here.

 

I understand the original Apple 2 did not auto-start so you had to type PR#6 to boot from floppy. However, ROM F8 is 341-0020-00 which I understand it should be the auto-boot one.

 

The other ROMS are

341-0015-00

341-0014-E8

341-0013

341-0012-00

(D0 is unreadable from the pic I have)

 

If I power up with a floppy controller in slot 6 and drive connected (which I don't know if it works) I have "Apple ][" displayed. If I hit "RESET" it takes me to Monitor. I tried CTRL-C, CTRL-B, CTRL-P and 6 and nothing works. The only key which works is RESET.

Without the floppy controller, the Apple beeps twice and drops me to monitor straight away.

I see that 1 RAM chip at row E is missing and I understand that one might connect a language card there with a memory expansion. But I don't have a language card with this system. 

 

What I have is pictured below, plus the controller card. I haven't  tested the board with the VS1000 on it as it has tantalum on the 12V line and I'd rather replace them before I use it. 

 

I've re-seated and contact-cleaned all the RAM and ROM but nothing changes. 

I don't know whether I am doing something wrong or maybe there is something wrong with the system.

 

Someone recommended I checked the ROM are still correct but I understand they cannot be read directly with my TL866II? A link online suggests I can just use an inverter to make them (2316B) compatible with something the TL866II can read (2716).

 

https://www.dmcmillan.co.uk/blog/testing-apple-ii-europlus-roms

 

Can someone help me? And is an inverter and some re-wiring really required to just read those ROMs with the TL866II? It feels weird.

Also, what would be the best way to replace those ROMs if needed? Is there a modern rewritable IC available? Does it have to be something which requires 21V programming?

 

Thanks for your help!

Tony

CVT
CVT's picture
Offline
Last seen: 1 day 22 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1170
You need that one RAM chip.

You need that one RAM chip. The machine will not work without it. When you put a language card, this chip is simply moved to the language card and you connect the ribbon cable in its socket.

 

If you don't have a RAM chip to put in the empty socket, you can still test the machine, but you have to remove the entire row. Then the computer will have only 32K of RAM instead of 48K, but it will boot.

 

I can also see that you have a 16K RAM card. You can take one of the 8 identical RAM chips on the right side of the card and put it in the empty RAM socket on the motherboard. Then you should have the full 48K.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Thanks I suspected that. So I

Thanks I suspected that. So I suppose there was a language card in this machine at some point. What does a language card do? I think we might have one somewehere. 

 

However I did try that and it did not change the behaviour. I also tested the Floppy EMU and it wouldn't read so that removes the drive from the equation.

 

Can you - or someone - explain me what's the boot process of an Apple //? Would it be the same of an Apple //e if the auto-boot ROM is installed?

CVT
CVT's picture
Offline
Last seen: 1 day 22 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1170
With no cards, you simply get

With no cards, you simply get a beep and a Basic prompt:

 

                         APPLE ][

]■

 

 

Try to find the missing Language card. It probably has the missing RAM chip.

MacFly's picture
Offline
Last seen: 13 hours 59 min ago
Joined: Nov 7 2019 - 13:49
Posts: 484
RAM + ROM

The language card adds another 16KB of RAM to your system, so it has 64KB. And if it's an original Apple Language Card (not a clone) then it will also contain a newer version of the boot ROM with the "autostart" feature. Another reason to be looking for the missing card... :)

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
ah ok so there is something

ah ok so there is something wrong with it then as I tested it without that row of RAM.

 

I will try to find the language ROM but we might not have it. 

So what about testing/replacing the ROMs?

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
Having a missing RAM chip in

Having a missing RAM chip will not prevent the computer from working unless it's in the bottom row. You're missing chip will only disable the top row and leave you with a 32K machine.  

As for the ROM, you might want to take a look at the ROMX  .

Offline
Last seen: 1 month 4 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
jeffmazur wrote:Having a
jeffmazur wrote:

Having a missing RAM chip will not prevent the computer from working unless it's in the bottom row. You're missing chip will only disable the top row and leave you with a 32K machine.  

As for the ROM, you might want to take a look at the ROMX  .

 

I don't think the system is smart enough to realize it has only 32K complete if just one chip is missing unless I'm mistaken, which is possible.

I think, but I'd have to try it to verify that with no disk (boot device) installed it will go to Applesoft (or IntBASIC) but any memory access in the 3rd bank will be bad because one bit will be missing of every byte.  Since the Apple II doesn't do any kind of memory checks to speak of it will work up to a point. 

A missing chip in the 3rd row will cause DOS loading to fail unless the DOS is INITed for 32K or a MASTER.

 

I think the reason why you have to INIT for a particular size is that's the only way it knows where to try to load DOS.  I'm not sure how a MASTER disk knows what the memory size is 32K or 48K (since DOS 3.x doesn't know how to load to a 16K language card without additional software).  I suspect it does some kind of memory test in software loaded with the DOS boot process.  Like trying to write bytes and read them back maybe?  I don't remember if I knew at one time.

 

 

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
 softwarejanitor wrote:I don

 

softwarejanitor wrote:
I don't think the system is smart enough to realize it has only 32K complete if just one chip is missing unless I'm mistaken, which is possible.

BASIC (both flavors) will do a memory check and set HIMEM accordingly. That's the only way the computer can detect how much memory it has. And a single bad/missing RAM chip will disable the entire row.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Gotcha. However I did try

Gotcha.

 

However I did try removing the remaining 7 ICs and I still end up in Monitor. So I feel there is an issue here.

 

ROMX looks cool but really I don't need the extra features it brings. Is there a writable IC I could use to replace the ROMs, possibly with no or little modification? And what is the easiest way to check those ROMs with the TL866? I'm still puzzled that I need an inverter to read them, that would have been added in the IC library, no? I see the latest T48 programmer can use 25V to program, maybe upgrading my TL866II to the T48 would be a good option?

 

Also I tried connecting a drive to the system. It does change its behaviour a bit: no drive = double beep and monitor. Drive = it sits on "Apple ][" doing nothing until I hit RESET, then it lands on monitor. 

 

I think start from a working set of RAM and confirming the ROMs are working should be my priority.

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
tony359 wrote:Is there a
tony359 wrote:
Is there a writable IC I could use to replace the ROMs, possibly with no or little modification?

 Unfortunately, if you replace the ROMs with EPROMs you are going to need adapter sockets (with inverters) for each chip. That will cosrt way more than the ROMX. You could also butcher the motherboard with your own EPROM modification but that's a bit more difficult.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Ok I need to understand this

Ok I need to understand this a bit more.

The original ICs are PROMs if I understand correctly? Particularly 2316B. My TL866II+ doesn't even read them so I sold it and ordered the T48. 

Once I have it, I can at least check the ROMs against known good images. 

 

If one ROM is defective, which IC can I use and will it require an adaptor regardless? 

 

I see the RomX for the Apple II is $50 but I am in the UK so it makes things a bit more complicated. 

 

Meanwhile I watched the last two videos of Adrian's digital basement and I see how the Apple II should boot, which is a step forward :) 

 

|Thanks!

Offline
Last seen: 1 month 4 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
jeffmazur wrote:
jeffmazur wrote:

 

softwarejanitor wrote:
I don't think the system is smart enough to realize it has only 32K complete if just one chip is missing unless I'm mistaken, which is possible.

BASIC (both flavors) will do a memory check and set HIMEM accordingly. That's the only way the computer can detect how much memory it has. And a single

 

I stand corrected on that.  It's been too long, I didn't remember all of that.  I still think the part about DOS 3.3 boot failing on a 32K matchine if it was INITed on a 48K machine is true unless you used MASTER CREATE.  Somehow I have a weird recollection of that being needed.  Let me know if that is wrong also.

 

Offline
Last seen: 1 month 4 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
tony359 wrote:Ok I need to
tony359 wrote:

Ok I need to understand this a bit more.

The original ICs are PROMs if I understand correctly? Particularly 2316B. My TL866II+ doesn't even read them so I sold it and ordered the T48. 

Once I have it, I can at least check the ROMs against known good images. 

 

If one ROM is defective, which IC can I use and will it require an adaptor regardless? 

<

The TL866 won't read some of the weird old PROMs like a 2316 w/o an adapter. but that's true of a lot of them.  I don't think that just to read a 2316 chip you need an adapter with an actual inverter though, the simplistic ones made with two sockets should probably work.

 

The T48 programmer looks interesting though.  I will have to see if there is Linux support for it.

 

Not sure if it will read a 2316B either though.  It seems to be touted as the next iteration of TL866.  It looks like it may support some newer chips that the older versions don't.  But FWIW, support for extremely old chips, the original TL866CS that I have will program a lot of 27xx chips that the newer TL866-II that I have won't.  However, I've found the TL866-II seems to do a better job on some GALs.  So I keep both.

 

 

 

Offline
Last seen: 3 hours 50 min ago
Joined: Feb 27 2021 - 18:59
Posts: 605
no PROMs
tony359 wrote:

Ok I need to understand this a bit more.

The original ICs are PROMs if I understand correctly?

Any IC that has a customer part number and copyright (e.g. "APPLE") is not a programmable anything. It was manufactured with data permanently wired at the fab as a Mask ROM.

These were sometimes called "mask *programmable" chips, but the term is confusing, because there is no way for a device programmer to write to them, and they never existed as a blank device.

You will not find bipolar PROMs used in any Apple II. They simply hold too few bits and are too expensive and laborious to program.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
The T48 features Vpp up to

The T48 features Vpp up to 25V but you're right the 2316 is not on the list. LOL! 

The T48 should be able to program those old 27XX which the TL866-CS used to be able to program.

 

Well, the out of pocket in the upgrade is £15 so I was just looking for an excuse to buy one.

I might email Xgecu, there is no need why the programmer shouldn't read the 2316. However, the 2316 datasheet says "pin compatible with 2716" and the 2716 is supported by the T48 *AND* the TL866II. So I am wondering if Xgecu just needs to fix the profile for the 2716 :) 

Am I mistaken in thinking that the 2316 is not rewritable but the 2716 is - though with 25V Vpp - and which also needs to be UV erased? In that case, wouldn't I be able to replace a faulty 2316 with a 2716?

 

Reason I am asking is that the T48 supports the 2716 and I do have the UV light. 

 

https://www.dmcmillan.co.uk/blog/testing-apple-ii-europlus-roms/2316%20Datasheet.pdf

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
 tony359 wrote:In that case,

 

tony359 wrote:

In that case, wouldn't I be able to replace a faulty 2316 with a 2716?

Yes you can replace the 2316 with a 2716 EPROM. But you will need to use an adapter to re-map a couple of the pins. At the bare minimum you can do this with two sockets (see Sather, "Understanding the Apple II" page 6-15). Without an inverter however, there will be a conflict with the Apple ROM and Language Cards as well as any other board that uses the INH signal. So you should always use a proper adapter.

 

If you want to read a 2316 ROM in your programmer, ReActiveMicro does make an adapter.

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
robespierre wrote:You will
robespierre wrote:
You will not find bipolar PROMs used in any Apple II.

 

 

 Except for the DISK II controller board...

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
softwarejanitor wrote:...DOS
softwarejanitor wrote:
...DOS 3.3 boot failing on a 32K matchine if it was INITed on a 48K machine... Let me know if that is wrong also.

 

You are correct on this. The INIT command creates a "slave" diskette which needs at least as much memory as the system that created it. And won't use any excess memory if booted on a larger system.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Thank you. That chapter is

Thank you. That chapter is what I was looking for to understand. 

So Apple programmed those 2316 so that CS is active high - while 2716 are active low, hence the need for the inverter, even for the programmer to just read them.

 

Let's move in steps: first let me check those ROMs. For that I just need a inverter which I can borrow from the Apple itself. The T48 is on its way anyways - I sold my 866II in 2 hours and the T48 is not expensive so that's a "nice to have" anyways.

IF some ROMs are bad, I could either use RomX or I could make my own adaptor (which has an inverter on the PCB) and program some 2716, bearing in mind that not all 2716s are the same. Am I correct?

 

To test the RAM, which other device uses 4116 ICs? I can't use my Apple //e, can I? Or the Commodore 64. I remember there was an Arduino sketch to test those chips, maybe I can take a look.

 

Are there any Diagnostic ROMs I could use with the Apple II?

 

Thanks so far!

 

Online
Last seen: 1 hour 3 min ago
Joined: Jun 18 2010 - 13:54
Posts: 795
 tony359 wrote:... not all

 

tony359 wrote:

... not all 2716s are the same. Am I correct?

Just stay away from the TI 2716; it is not compatible. But a TI 2516 will work.

There are plenty of RAM testers like the Arduino one you mentioned but they don't always find every bad chip. Some may pass the test but still fail when used in the Apple II.

As for Diagnostic ROMs, there is an Apple Diagnostic Card but they're hard to find. Or the MultiROM card. But honestly, the ROMX includes a dead RAM Memory test, a full, burn-in quality RAM tester, as well as the Apple Diagnostics Program in one of its ROM banks. I know the shipping cost is an issue - maybe you can find a used one locally.

 

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
are those open source

are those open source projects? I might think of putting one together for my toolbox. 

Offline
Last seen: 3 days 19 hours ago
Joined: Mar 7 2019 - 08:20
Posts: 70
Apple Diagnostics Card

If anyone want a Apple II Diagnostic Card I have a couple available for €55 plus €15 postage doesn't matter where you live. Alternatively you can just use the eBay link 

https://www.ebay.com/itm/125980776422?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=BxWC1D9HRTK&sssrc=4429486&ssuid=BxWC1D9HRTK&var=&widget_ver=artemis&media=COPY

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
jeffmazur wrote:robespierre
jeffmazur wrote:
robespierre wrote:
You will not find bipolar PROMs used in any Apple II.

 

 Except for the DISK II controller board...

There's also the original Centronics Interface card and their original Parallel Printer card.  (These were two distinct cards.)

Plus Apple's original serial interface card, the version before the "super" serial card.

And don't forget Apple's 1982 combo Printer/Centronics card, which employed an LS472 to double the quantity of bipolar PROM in order to include the firmware from both the Centronics Interface and Parallel Printer cards.

(In short, there are a lot of Apple branded cards that use bipolar PROMs.  A lot of third-party printer cards do too.)

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Well the RomX is a tad

Well the RomX is a tad expensive to ship so I'll think of alternatives :) 

 

 

CVT
CVT's picture
Offline
Last seen: 1 day 22 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1170
You can also boot without any

You can also boot without any of the ROM chips if you have a MultiROM card. I have one for sale that I don't need any more. I bought it when I also thought that something is wrong with my ROMs. They turned out to be fine and I wouldn’t be surprised if yours are fine too. PM me if you are interested. Shipping it from Bulgaria to the UK will not be more than $7.

 

 

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Hi, I've built myself a "ROM

Hi,

 

I've built myself a "ROM replacement" adaptor.

 

https://oshwlab.com/kris.garrein/apple-ii-rom-replacement-board_copy

 

I wanted to test the ROM on my Apple //e and if not mistaken this adaptor won't work there so I wanted to whip one together just to make sure the ROM is working - so I know it should work on the unhappy Apple II.

 

I cannot find a schematic of the adaptor needed, can someone point me to the right direction please?

Also, is there a pre-made ROM for a 27C256? I can try to append together the ones I find online as directed in the manual but I suppose someone must have done this before!

 

I'll also test Adrian's digital basement ROM which seems very good!

 

Finally, I have several 27C512. Can I use them leaving half of the ROM empty?

 

Thanks!

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Ok so I managed to replace

Ok so I managed to replace the ROM with the ROM Replacement and it works - only from one of the banks though but maybe I made a mistake concatenating things together.

 

To start the drive I have to type PR#6 though, which is weird as I used the autostart ROM of course. 

My next questions are:

- what is the difference between Integer and Applesoft basic? 

- How do I run "inspector" or "Watson" which I put on the ROM?

- The latest diagnostic ROM from Adrian's digital basement seem to say the RAM is correct but it fails to display the final table with the result. Instead, it shows a screen of "@". Could that be because it's a PAL version with UK keyboard - UK Rom I guess? Or does it indicate a fault somwehere?

- What is a good diagnostic software I can use with an Apple II europlus?

 

I've managed to run XPS but didn't realise it was the Apple //e version so obviously that fails memory test. I ran Frogger and that ran fine but I'm not sure about colours as m capture device was having issues displaying the signal altogether. 

 

Thank you!

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
Watson
tony359 wrote:

- How do I run "inspector" or "Watson" which I put on the ROM?

To run Inspector or Watson, just jump to the base address of the ROM socket it's in.  If you have both Inspector and Waton installed, it will start as Watson (the sector viewer/editor).  I regularly use Watson, but I don't have any experience with the Inspector.

So if you installed your Watson ROM in the  D0  socket, run Watson with the command   D000G  in the Monitor.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Ah I see.  The ROM is a

Ah I see. 

 

The ROM is a single large one and it's made like this:

 

"The EPROM is structured as follows: first it contains 4K empty data, followed by the 4x INTEGER ROMs, 1x Inspector ROM and 1x Watson ROM. Then 4K empty space again, followed by the 6x Applesoft ROMs in order D0, D8, E0, E8, F0 and F8"

 

Can someone explain me how to match the numbers I get using an Hex converter to the memory map please?

 

If I use Windows calculator, 2K are 800.  So I have

0K-2K - 000 - 800

2K - 4K - 801 - 1000

4K - 6K - 1001 - 1800

 

etc.

How does work that with a memory map I find here for example? http://apple2.guidero.us/doku.php/mg_notes/general/mem_map

 

Maybe I can answer myself: D000 = 52KB. So that 2K ROM is mapped to that location The position in the ROM doesn't mean anything, the ROM will then be mapped into RAM at location D000, is that correct? 

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
EPROM adapter memory map

The web page doesn't give a schematic diagram, but it's straightforward to follow the circuit of the ROM Replacement Board from the PCB.

The circuit interfaces a 27256 by lifting three address lines (A11, A12, A13) from the motherboard, and controlling A14 with the bank-selection jumper.

So, here's how the contents of the EPROM appear to be mapped to the motherboard sockets D0, D8, E0, E8, F0, F8.

    
ROM regionaddress rangesocketcontents
0000-07FF(not accessible) empty
0800-0FFF(not accessible) empty
1000-17FFD000-D7FFD0Watson
1800-1FFFD800-DFFFD8The Inspector
2000-27FFE000-E7FFE0341-0001 (Integer BASIC)
2800-2FFFE800-EFFFE8341-0002 (Integer BASIC)
3000-37FFF000-F7FFF0341-0003 (Integer BASIC)
3800-3FFFF800-FFFFF8341-0004 (Apple Monitor)
4000-47FF(not accessible) empty
4800-4FFF(not accessible) empty
5000-57FFD000-D7FFD0341-0011 (Applesoft)
5800-5FFFD800-DFFFD8341-0012 (Applesoft)
6000-67FFE000-E7FFE0341-0013 (Applesoft)
6800-6FFFE800-EFFFE8341-0014 (Applesoft)
7000-77FFF000-F7FFF0341-0015 (Applesoft)
7800-7FFFF800-FFFFF8341-0020 (Autostart Monitor)

The bank-selection jumper chooses which set of ROMs will be present.

When the bank-selection jumper is placed in the first position, then the EPROM adapter behaves as though the sockets contain ROMs for Watson, The Inspector, Integer BASIC, and the original Apple Monitor.  When you switch-on the computer, it will start with a Monitor prompt.  To start Integer BASIC, press CTRL-B and press return.  To run Watson, type D000G and press return.  (The Applesoft ROMs and Autostart Monitor are not available in this configuration.)

When the bank-selection jumper is placed in the second position, then the EPROM adapter behaves as though the sockets contain ROMs for Applesoft BASIC and the Autostart Monitor.  When you switch-on the computer, it will automatically start BASIC or boot a disk drive if one is installed.  (Watson, Integer BASIC, and the original Monitor are not available in this configuration.)

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Thank you for taking the time

Thank you for taking the time to write that for me, appreciated!

My issue was with a 512 ROM IC and someone has pointed me to the right direction (indeed the 512 comes with an extra address line which ended up being shorted to 5V on that socket hence my configuration wouldn't work).

 

Rather than fiddling with the 512 I've sourced a 256 to test.

I got to the point of "where to put what" (*) but you explained the "why" which I appreciate.

One thing I am not sure is: the manual mentions "Integer Basic, Inspector, Watson" but you are listing "Watson, Inspector, Integer Basic". I suppose your table is correct as F8 is the monitor for both configurations.

 

I'll make another set with this order.

 

One basic question I still haven't found an answer to is: what is the difference between Applesoft and Integer Basic? Also, Watson is a diagnostic software, right? But what is the inspector?

 

Thanks so far, I'll share the final ROMs once I have confirmed they work.

Offline
Last seen: 3 hours 50 min ago
Joined: Feb 27 2021 - 18:59
Posts: 605
Integer BASIC was the first

Integer BASIC was the first ROM BASIC for the Apple ][, adapted by Woz from a prior BASIC he wrote for the Apple I. By its name, you can see how it is special: the only numbers it supports are integers from -32768 to 32767.

Applesoft BASIC was based on Microsoft's BASIC and supports floating-point numbers (9 decimal digits with a two-digit exponent). There are a few other syntax differences.

The principal difference between an original Apple II and an Apple II+ (plus) is the former came with Integer BASIC ROMs and the original Monitor ROM; the latter came with Applesoft BASIC ROMs and the Autostart Monitor ROM. The hardware of a II and a II+ are identical.

Either a II or a II+ could run the "other" version of BASIC by installing a Firmware Card or a Language Card in Slot 0. The Firmware Card has sockets for the alternate BASIC in ROMs, and a switch to select whether the card's ROMs or the motherboard ROMs are used. A Language Card has 16KB of RAM into which the alternate BASIC can be loaded by a "Master" boot floppy. Once booted from DOS, the "INT" and "FP" commands switch between the two versions of BASIC.

The two BASICs used different prompts: the Integer BASIC prompt is a greater-than sign, ">"

The Applesoft BASIC has a right-bracket sign, "]"

Some software requires either Integer or Applesoft BASIC, so having a Firmware or Language Card was important, besides the possibility of using the additional 16KB of RAM (on the Language Card) for machine-code programs.

The Apple IIe and GS don't have a Slot 0, so can't use either of these cards. Their AUX slots are used for different memory expansion options (such as the 80 column-64KB card for the IIe).

CVT
CVT's picture
Offline
Last seen: 1 day 22 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1170
robespierre wrote:Integer
robespierre wrote:

Integer BASIC was the first ROM BASIC for the Apple ][, adapted by Woz from a prior BASIC he wrote for the Apple I. By its name, you can see how it is special: the only numbers it supports are integers from -32768 to 32767.

...

 

Actually it's from -32767 to +32767. Integer Basic doesn't support -32768.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Thanks Robespierre, very

Thanks Robespierre, very comprehensive explanation!

Offline
Last seen: 1 month 4 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
robespierre wrote:Integer
robespierre wrote:

Integer BASIC was the first ROM BASIC for the Apple ][, adapted by Woz from a prior BASIC he wrote for the Apple I. By its name, you can see how it is special: the only numbers it supports are integers from -32768 to 32767.

Applesoft BASIC was based on Microsoft's BASIC and supports floating-point numbers (9 decimal digits with a two-digit exponent). There are a few other syntax differenc

 

Actually you can use an INTBASIC ROM Card in a //e if you do a little mod.  Because of where the switch is on the board it won't fit into a //e so you have to unsolder the swittch and put it on some wire you can feed out the back.  The ROM card won't automatically be enabled like it is on a ][+ in slot 0, but you can put it into another slot and then flip the switch and hit CTRL-RESET and get into INTBASIC.  It will also work when modified like this in slots other than those where the switch would normally like up in a ][+.  I used to use a ROM Card like that for copy protection cracking.

 

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
Firmware card

Forgive me for nit-picking, but some of these details are worth straightening out because some useful features are being clouded in confusion: 

  • The Apple Firmware Card (aka "ROM card")  is not limited to slot 0.  Its hardware works in any slot, but DOS 3.3 is hard-coded to use slot 0 so you can't use DOS's FP and INT commands if the Firmware Card is installed in a different slot -- you'll just need to use POKEs or Monitor commands to activate the Firmware Card.  (See below for addresses.)
  • The Apple Firmware Card will fit inside the Apple //e and Apple IIGS without modification.  Apple shifted the slots away from the backplane to make room for cards that formerly poked through the cutouts in the old Apple ][ case.
  • The Apple Firmware Card is especially suitable for slot 3 in the Apple //e because it doesn't use IOSEL, the signal that's pre-empted by the Apple //e 80-column card.  (IOSEL is also missing from slot 0.)
  • The Apple Firmware Card can accept 2716 EPROMs by modifying the wires labeled "2716" in the silkscreen.  It can further be modified for two ROM banks by using 2732 EPROMs, disconnecting the Vpp resistor and routing it to the 7474's spare flip-flop for bank-selection.
  • As noted by robespierre and softwarejanitor, a ROM card provides quick access to hacking tools like Watson, a ROM-based sector editor from Omega Microware.  (But Watson requires RWTS16 to be loaded in RAM, so it's not a complete ROM solution.)

Here are the IO addresses and POKE commands for activating the Apple Firmware Card.  It's best to use the Monitor or machine-code to switch ROM banks, as the POKE commands will crash if you activate a ROM configuration that doesn't include the same BASIC interpreter. 

Apple Firmware Card IO addresses
SLOTHexadecimal addressPOKE command
0

C080 - ROM card on

C081 - ROM card off

C082 - ROM on, second bank

POKE 49280,0

POKE 49281,0

POKE 49282,0

3

C0B0 - ROM card on

C0B1 - ROM card off

C0B2 - ROM on, second bank

POKE 49328,0

POKE 49329,0

POKE 49330,0

 

 

macnoyd's picture
Offline
Last seen: 19 hours 53 min ago
Joined: Oct 15 2012 - 08:59
Posts: 855
S.Elliot, do you have the schematic handy for the mod...

S.Elliot, do you have the schematic or photo handy for the Apple ROM Card mod?

Also, what is the difference with Watson 4.0 and Watson 6.0?  (I thought there was only one release of Watson)

Offline
Last seen: 1 month 4 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
It will barely fit, but it

It will barely fit, but it more or less requires having the top cover off and even then is often difficult to flip the switch in a //e unless you relocate the switch on some wire like I did for mine.   It's a simple mod and although possibly not technically necessary for a //e, it is extremely convenient to have the switch outside the case.

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
Firmware card 12K to 24K mod using 2732 EPROMs
macnoyd wrote:

S.Elliot, do you have the schematic or photo handy for the Apple ROM Card mod?

I don't have a schematic.  Any paper notes of the modification would have been discarded long ago.

But here's a quick summary and photo of it: 

  • Remove resistor R2.  This disconnects the pullup resistor at pin 21 of the ROM/EPROM sockets, an unused chip-select for Apple's 2516 ROMs.  (Or the Vpp programming voltage for 2716 EPROMs.)
  • Attach a bodge-wire from pin 11 of the 7474 socket to pin 3 of the 7474 socket.  This attaches CLK2 to CLK1 so that both flip-flops are now activated by DEVSEL.  (The original design only used flip-flop #2, for the purpose of turning the ROM card on or off.)  This enables the spare flip-flop to be used, as described below.
  • Attach a bodge-wire from pin 21 of any ROM socket to pin 5 of the 7474 socket.  A 2732 EPROM uses pin21 as address bit A11, so this attachment enables the flip-flop to switch A11 on or off -- effectively dividing the 4K address space of a 2732 into two 2K banks, chosen by the flip-flop.
  • Attach a bodge-wire from pin 7 of any ROM socket to pin 2 of the 7474 socket.  This attaches address bit A1 to the flip-flop input D1, so this attachment enables the flip-flop to capture a address bit A1 from the bus when DEVSEL is strobed, thereby adding bank-selection to the card's existing IO.  (The ROM card already uses the other flip-flop to capture address bit A0 when DEVSEL is strobed, which toggles the card on and off.)
  • Attach a bodge-wire from pin 14 of the 7474 socket to pin 4 of the 7474 socket.  This attaches Vcc to PR1, which serves no apparent purpose.  It would have been more sensible to attach CLR1 to CLR2.

 

macnoyd wrote:

Also, what is the difference with Watson 4.0 and Watson 6.0?  (I thought there was only one release of Watson)

I don't know what's different.  I don't actually know where I got a second version of Watson -- I had saved Watson 4.0 onto a floppy disk so I could use it in the computer lab, and I modified most of my disks to load Watson into the Language Card along with Integer BASIC.  Some time around 1987, I noticed that some of my copies started with "VER 6.0" instead of "VER 4.0".  (second line, right edge)  A binary comparison shows they're totally different, suggesting they really are distinct versions -- not just a patched/hacked version string.

 

macnoyd's picture
Offline
Last seen: 19 hours 53 min ago
Joined: Oct 15 2012 - 08:59
Posts: 855
Thank you S.Elliot!

Thank you S.Elliot!  The mod is now added to my archive. 

Maybe I will create a complete schematic for the mod in the near future based upon the pic.

Do you by chance have a source for the 2 Watson verions?  (4 & 6)  Thank you in advance!

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
An update. I have sourced a

An update. I have sourced a 256 ROM and programmed as you suggested. I think it works. I have integer with the > and I can run code. On the other bank I get Applesoft and I can run code.

 

HOWEVER.

 

It does not autostart. Unless I misunderstand that? With "autostart" I expect to flip the power switch and the Apple immediately starts booting from the disk.

 

At present, it sits on "Apple ][". If I press RESET I end up to Basic prompt ]

 

If I type PR#6, it boots from the floppy and runs programs.

 

With no controller card in it, when I power up I immediately end up on Basic prompt ]

 

What am I missing? I am using these ROMs:

http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Computers/Apple%20II/Apple%20II%20plus/ROM%20Images/

 

Thanks so far!

Offline
Last seen: 3 hours 50 min ago
Joined: Feb 27 2021 - 18:59
Posts: 605
Autostart or not

The F8 Monitor ROM in an original Apple II does not autostart; the F8 Autostart ROM was part of the package on an Apple II+.

The Language Card also has a socket for a substitute F8 Autostart ROM that overrides the motherboard F8 socket.

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
But I chose the "Autostart"

But I chose the "Autostart" ROM, which was also what was installed.

 

The ROM I programmed in F8 is called "Apple II+ - 341-0020 - Applesoft BASIC Autostart Monitor F800 - 2716"

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
tony359 wrote:At present, it
tony359 wrote:

At present, it sits on "Apple ][". If I press RESET I end up to Basic prompt ]

 

If I type PR#6, it boots from the floppy and runs programs.

 

With no controller card in it, when I power up I immediately end up on Basic prompt ]

 

Taken together, those three behaviors might indicate a faulty 74LS138 at position H12 on the motherboard.  That's the 3-to-8 Line Decoder that sends IOSEL to each slot, which activates the bootstrap ROMs for each card.   If the 74LS138 has developed a fault that causes it to erroneously activate IOSEL on slot 6 when the Autostart ROM searches for a boot ROM in slot 7, then it would erroneously try to boot from slot 7.  Since slot 7 doesn't actually contain a disk controller, it would get stuck waiting at the Apple ][ message until you press RESET.

But that's just a guess, a shot in the dark.

Because the disk controller can operate in any slot between 1 and 7, you can test it in another slot and make note of how it behaves.  For example, with the controller installed in slot 7 does Autostart boot it automatically?  With the controller installed in slot 7, can you boot it manually with PR#7?

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
Ok so the first breakthrough

Ok so the first breakthrough for me is: it's not supposed to behave like this! Thanks for that!

 

I'll have to study the schematics and the service manual, thanks for your input. 

 

I have tried and you were spot on! :) Drive spun on slot 7. I swapped H12 and it works now - it only boots from slot 6 but I believe some disks were hardcoded to look for slot 6 so I think that's fine (*yes, other disks boot fine from other slots). The drive does automatically spin with the controller in any slot now.

 

I'm now curious to see what the fault is using an oscilloscope. I understand the ROM will look for a sign of the disk drive controller in all the slots. So, without a disk controller, am I expecting to see the I/O Select lines to become low one by one from 7 to 1? And with a controller in slot 6, I'd expect 7 to be come low, then 6 and then it would stop there every time the drive is being accessed. 

So if I understand correctly, pin 9 of that 138 is probably stuck low. That way slot 6 is always selected. So at boot up the ROM checks for the drive in slot 7 - but the IC is selecting 6. The ROM finds the controller and thinks it's in slot 7, hence it tries to boot the drive in slot 7, which is not there.

 

My question is: it looks like there are two paths to reach a slot: the I/O select line but the ROM can also access it independently. Otherwise with a stuck low pin 9, slot 6 would be used all the time regardless. The behaviour I'd expect in that case is that "only slot 6 works". 

I've looked through a few manuals, the picture is getting clearer and wondering if you could help me understanding better! :)

 

But thanks so much so far!

 

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
Alternative guesses
 
 

Ooo, you're a quick study!

Slow down, though...we need to go back one step:

 
tony359 wrote:

So if I understand correctly, pin 9 of that 138 is probably stuck low. That way slot 6 is always selected. So at boot up the ROM checks for the drive in slot 7 - but the IC is selecting 6. The ROM finds the controller and thinks it's in slot 7, hence it tries to boot the drive in slot 7, which is not there.

Almost, but not quite.  Yes, pin 9 must be going low at the wrong times...but it can't be stuck low.  The Disk II controller connects IOSEL directly to its 6309 ROM; if pin 9 was stuck low then IOSEL would continually drive the controller's ROM onto the data bus, causing a conflict with the motherboard's RAM and ROM.  But the motherboard's RAM and ROM are working fine, so we can infer that IOSEL is not being asserted...and therefore pin 9 is not always low.

So, here are a few alternative guesses how the LS138 might malfunctioning:

  • A fault in the enable logic or decode logic might be causing it to set all 8 outputs to low, ignoring the whole 3-bit input.  eg: IO to any individual slot might activate IOSEL on all slots simultaneously
  • A fault in the decode logic might be causing it to activate 2 adjacent outputs at a time, ignoring just one bit of the 3-bit input.  eg: IO to slot 7 or slot 6 might activate IOSEL on both slots together as a pair
  • A faulty NOT-gate in its decode logic might be causing it to activate even-numbered outputs when an odd-number is selected on the 3-bit input.  eg: IO to slot 7 might activate IOSEL on both slot 6 and slot 7, but IO to slot 6 might activate IOSEL on only slot 6.
  • Or maybe there's some other mode of failure that I didn't think of...

 

Luckily there's a simple test to distinguish among all of those cases: install the controller in any slot, then use Monitor commands to list the ROM at each slot's assigned address.  Slot 7 is assigned ROM address $C700-C7FF, while slot 6 is assigned $C600-C6FF, slot 5 is assigned $C500-C5FF, etc.  When the controller is installed in slot 7, you should see a listing of the boot firmware (pictured below) when you enter the command C700L in the Monitor.  But it will just list random byts if you attempt to list the address for some other slot; eg: if you enter the command C500L it shouldn't match the listing below, and it will probably give different results each time.

 

Bonus Trivia: the 6309 ROM is equivalent to 74LS471.  Some [rare] Disk II controllers have Texas Instruments ROM chips marked "74LS471" at locations B3 and D3.  Does yours?  (Other part numbers are more typical.)

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
This is very cool, thanks for

This is very cool, thanks for that.

 

I did check with the scope before you posted and noticed that slots 7,6,5,4 have pulsing happening all the time - slots 3-2-1-0 show pulsing but at a slower pace.

Replacing the 138 brings things back as expected: there is ONE pulse on each slot with no controller starting from slot 7 until a controller is found - then no more pulses on remaining slots. The slot with the controller then shows activity on the Select line of course but the others are quiet. 

 

I checked via monitor and indeed with the controller installed in say slot 6, I can see the controller ROM on slot 7,6,5,4 simultaneously but the controller ROM does not show when I check on 3,2,1 and 0. So it's as you suggested: the routine is scanning the slots, the ROM appears on slot 7 and the software tries to boot from slot 7.

How does that work with the binary of the 3 inputs?

 

I've also noticed that if I place the controller on slots 0,1,2 or 3, (this is with the faulty 138) when I power up I land on BASIC but the computer is inoperative, keyboard doesn't work and/or I get two (non-functional) prompts - suggesting maybe the controller ROM is conflicting on the BUS?

There is still something I am not sure I understand. 

Let's assume slots 4,5,6 and 7 are being "selected" simultaneously - this is what the monitor seems to suggest, right? So the controller appears simultaneously on all those slots. Shouldn't a SINGLE controller card plugged in any of those slots work with no issues then? In other words, let's say the controller is in slot 6. The fault makes it appear in 4-5-6 and 7 at the same time. The computer starts scanning from slot 7 and since it can see the controller there, it assumes it's in slot 7. Then the computer tries to boot from slot 7. When it selects slot 7, it's actually selecting 4-5-6 and 7 at the same time. But if only ONE card is in one of those slots, I would expect that not to make any difference and I would expect the drive to boot ok?

 

But thanks so far, it's amazing to diagnose issues at this level rather than replacing the faulty part and "it works" :) 

S.Elliott's picture
Offline
Last seen: 3 hours 47 min ago
Joined: Jun 23 2022 - 16:26
Posts: 239
Learning even more motherboard circuits...
tony359 wrote:

I did check with the scope before you posted and noticed that slots 7,6,5,4 have pulsing happening all the time - slots 3-2-1-0 show pulsing but at a slower pace.

Ooo, that means none of my guesses were entirely right.  And I totally missed a clue!

So the motherboard's built-in IO occupies addresses $C000-C0FF. That's why slot 0 doesn't support devices with ROM -- those addresses are taken by the motherboard IO.  So the 138's  Z0 output (pin 15) is used to activate on-board IO, instead of being the IO SELECT for slot 0.

Here's the schematic of the decoding circuitry for IO SELECT and DEVICE SELECT, with labels for the address wires.  Z0 is used for all motherboard IO and for the DEVICE SELECT for all slots.  Z1, Z2, and Z3 are used to activate device ROMs in slot 1, slot 2, and slot 3.  Your faulty LS138 at H12 always activates all four outputs Z0, Z1, Z2, Z3 at the same time -- so the ROM for any card in slot 1, slot 2, or slot 3 would cause a conflict with all motherboard IO and all slot IO!

So that's why your computer wouldn't work when you installed the Disk Controller in slots 0-3.

 

Let's follow the signals to the ON BOARD I/O DECODE stage...

Ordinarily, the motherboard would only activate this decoding if you attempted to access motherboard IO and soft-switches.  But your faulty LS138 will also activate these circuits if you try to read the ROMs for devices in slot 1, slot 2, or slot 3.  Conversely, any device in slot 1, slot 2, or slot 3 will assert its ROM onto the data bus if you try to access any motherboard IO ports.

 

So, here's a weird experiment...

With the faulty LS138 installed, and slots 0-3 empty, try using the Monitor command  C100.C13F  to print the first 64 bytes of the ROM in slot 1.  I'm guessing it will behave like this:

  • The first 16 bytes will contain 0D, the hexadecimal value you generated by pressing the RETURN key.
  • The next 16 bytes will just cause the motherboard to acknowledge the RETURN key.  The printed values will be random-ish.
  • The next 16 bytes will activate the tape port, generating a brief signal.
  • The next 16 bytes will activate the Apple's speaker, generating a burst of noise.

(Note: this picture is just a mockup, my best-guess at how it will behave)

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
I need to digest the

I need to digest the explanation a bit - but I tried the last command and I get the below, plus some very faint noise on the speaker but not beeps. (sorry, capture device was unhappy)

 

tony359's picture
Offline
Last seen: 4 months 14 min ago
Joined: Jun 16 2020 - 16:58
Posts: 291
One more question about the

One more question about the Apple II Europlus.

I understand this machine is NTSC so it was released for the European market when it comes to input voltage but Apple did not change the video output so a monochrome picture is to be expected with it.

 

However, shouldn't colours appear on a capture device NTSC capable - or an NTSC capable monitor?

Pages

Log in or register to post comments