[Coco] Trouble with check
flexser at fiu.edu
Sat Oct 4 17:26:17 EDT 2008
You say, "This program does not work with RGBDOS as $16A is changed." But the
program copies the 3 bytes initially at $16A-16C before it changes them, and
falls into these stored bytes at the end (CONT). So, shouldn't it work okay,
even if the initial contents of $16A-16C are different under RGBDOS?
On Wed, 1 Oct 2008, Robert Gault wrote:
> Michael C. Robinson wrote:
> > I'm having trouble getting Rainbow check plus to work. I'm on a 512k
> > coco3 with a drivewire rom pack. Has anyone else with my setup
> > experienced problems with check? I copied check out of the September
> > 1986 Rainbow. I've been typing in a game that I should be able to use
> > check on. Do some of the lines need to be changed?
> > 10 CLS:X=256*PEEK(35)+178
> > 20 CLEAR 25,X-1
> > 30 X=256*PEEK(35)+178
> > 40 FOR Z=X TO X+77
> > 50 READ Y:W=W+Y:PRINT Z,Y;W
> > 60 POKE Z,Y:NEXT
> > 70 IFW=7985THEN80ELSEPRINT"DATA ERROR":STOP
> > 80 EXEC X:END
> > ...
> > The rest is on page 15 of the September 1986 Rainbow.
> See also Rainbow, 1984, p.21
> You have not said what your problem is, so it's hard to tell what went
> wrong. Here is the actual program that you typed in.
> ORG $7FB2
> * MODIFY A BASIC RAM HOOK
> START LDA $16A CONSOLE IN MSB
> STA <CONT,PCR
> LDA #$7E JMP
> STA $16A CONSOLE IN MSB
> LDX $16B CONSOLE IN LSW
> STX <CONT+1,PCR
> LEAX <CHKPLS,PCR
> STX $16B CONSOLE IN LSW
> CHKPLS CMPA #10 DOWN ARROW
> BNE CONT BACK TO BASIC RAM HOOK
> PSHS X,D
> * Get Pointer to beginning of Basic program in memory
> LDX <$19
> C@ LDB ,X++ get POINTER content
> BEQ A@
> ADDA ,X+ get one byte of Line
> B@ ADDA ,X+ get one byte of Line
> LDB ,X test for end of Line
> BNE B@
> LEAX 1,X skip over marker
> BRA C@
> A@ STA $2DE line input buffer +3
> LEAX <CHARAD,PCR get Pointer
> STX <$A6 give new Pointer to Basic
> LDA ,X get content of Pointer
> ANDCC #%11111110 clear Carry
> JSR $ADC6 tell Basic to process data
> PULS D,X
> CONT JMP $ADC6
> * This is a tokenized program line.
> * translation: PRINT PEEK(734)
> * 734=$2DE which contains checksum.
> CHARAD FCB $87,$FF,$86,$28,$37,$33,$34,$29,0
> END START
> This program will work with disk systems even though it seems to have
> been written for tape systems. However, it expects the hooks and other
> low RAM system content to be intact. If drivewire or any DOS
> modifications have made use of the above hard coded addresses, then
> CheckPlus will fail.
> This program does not work with RGBDOS as $16A is changed. Probably
> CheckPlus won't work with HDBDOS.
> Coco mailing list
> Coco at maltedmedia.com
More information about the Coco