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- SWBYT 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 breath yet. Bad programmers (shame on you) do somthing like this when they init there hardware. INIT SEI LDY SLOT LDA #%10000001 STA .... etc etc etc init init init.... RTS More experienced programmers (I love you guys) do somthing like this. INIT PHP 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 PRINTLOOP INY 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 Call my catsend 24hrs 5meg (312) 665-0264 Put your boards here- VIEW FILE # OR ( M ):