166 lines
5.6 KiB
Erlang
166 lines
5.6 KiB
Erlang
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
|
||
(312) 665-0264
|
||
|