Advanced Programming Information Fixed
30-MAR-85 By Homer Brothers Software
Please upload this doc on every bbs you use so that everyone will start
programming your Cat correctly.
Along time ago when the Novation Apple Cat was first released, Novation
thought that they would be nice people and give all you hackers information on how to diddle with there hardware. Well since that time many of us have found that they messed up in a few places, in fact, Advanced Programming Information has more bugs than COM-WARE did. To my knowledge the API manual has never been de-bugged.
So please throw away your programming ego for a few minutes and take the time
to read this file.
Thanks Homer Brothers
P.S. I never want to see another 212 card turn on unless it was suppose to!
The most important bug in the API manual is the 212 card bug. Please turn to
page 7 students. If you will notice the SQUBYT register's hi order bit is the 212 disable/enable bit. Yes dreaded ol' bit number 7 must be on to disable the 212 card just like it says here. That means to have the handset squelched the cassette off and the 212 card off, you would need to store a $81 in SQUBYT. Now your saying well thats not a bug in the manual, well your correct, that actual bug that has confused so many is on another page. Please turn to page 24 students. Please notice the modem INIT routine where they load the accum with binary 00000001, a hex 01… Right about now your saying damn I shouldn't have cluged that code I knew it sucked the second I looked at it. Well give him a break, he wrote this thing probably before the 212 card was finished.
Ok class, you have learned of the most common error in programming the Cat.
Well now, if all you stud programmers have managed to stay with us, let me please point out some of the more obscure mistakes in programming the cat. (Ones even total stud programmers have made)
Please turn to page 15 students. Ah yes, the dreaded XMTBYT. The cause of so
many early apple-cat repairs. Yes believe it or not, many programmers never bother to shut off the carrier when they hang up the phone line (As the micron did in his Catsend bbs). Leaving on the carrier after hanging up the phone is not good for the poor little heat sensitive LSI chips that Novation designed, so you can only add to the life of them by giving the carrier a rest after the caller is logged of by powering there bod's down. That means a $1F to the XMTBYT and a extended life time for the Cat.
Ok, well so what that wasn't a bug in the manual heres another for you.
Please turn to page 4 students. Ah yes the much loved SWBYT. This do all
register has been so misunderstood because of the mistakes in API. Ah those lovely firmware switches, when used with the firmware protocol they can tell you your modem defaults, ie 212 installed? Welp as you may have already noticed they botched the bit order on the switches. The register should read-
7 6 5 4 3 2 1 0 DV BSR CD AD SW3 SW2 SW1 SW4
Ok well you thought I would never find more than one bug... So whats next?
Well students flip to page 21. On the bottom of the page you should see the
Label CHKRNG, as you can see they check ACBYT's ring bit. If the phone is ringing, they print a nice little message and wait for the line to stop ringing. Now if your saying, well thats stupid, why don't they just pickup the phone?, well that would be okay with most modems. BUT! Novation botched the hardware on the Cat, and if you pick up the line while the 55 volt ring pulse is there, WHAM! the cat takes a jolt that nocks its registers silly.
Well by now your saying, thats it, nothing else... Well I am not out of
Bad programmers (shame on you) do somthing like this when they init there
LDY SLOT LDA #%10000001 STA .... etc etc etc init init init.... RTS
More experienced programmers (I love you guys) do somthing like this.
SEI LDY SLOT LDA #%10000001 STA .... etc etc etc init init init.... PLP RTS
Hey, he knows that other devices use interupts besides the CAT... boy that
guy must use ProDOS.
Well thats realy about all the bad things I can say right now. I will try to
come up with some more. Please take the time to make sure you understand what I did here if you plan on programming your cat from 6502 machine code, then rip it up and say you knew that a lot longer than Homer did.
Boy don't we programmers have big easily dented ego's? I know I do.
OH! I cant end this file without saying this.
REAL MEN USE EDASM ProDOS! Boys play with Merlin and its wimpy little symbol
tables. Oh yeah and,
REAL MEN USE A DCI BASED PRINT
Whats that? This-
* * PRINT, DCI based of course * By Homer Brothers, some time in * the late 80's *
TINDR0 EQU $E0
LDA #0 STA TINDR0
* Above only need be done once in the * begining of your program.
LOOP JSR PRINT
DCI "How the hell are you? " JMP LOOP
PRINT EQU *
PLA TAY PLA STA TINDR0+1
BNE GETNCHAR INC TINDR0+1
GETNCHAR LDA (TINDR0),Y
PHP ORA #$80 JSR COUT PLP BPL PRINTLOOP LDA TINDR0+1 PHA TYA PHA RTS
Make sure that when you use this, you tell everyone that you used it long
before Homer did, or that you would have thought of it anyways.
God would somone please beat my ego up please.
Homer Brothers (312) 665-0264