[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 80 Columns under cc65?



In article <DFbdk.13731$jI5.8088@flpi148.ffdc.sbc.com>,
 "Dave Althoff, Jr." <dalloff.gcfn.org@sbcglobal.net> wrote:

> John B. Matthews <nospam@nospam.com> wrote:
> : In article 
> : <b10f1b65-7cdb-4864-9ed9-a46cd2c1898a@s21g2000prm.googlegroups.com>,
> :  David Wilson <mcs6502@gmail.com> wrote:
> : 
> : > On Jul 4, 4:02 am, "John B. Matthews" <nos...@nospam.com> wrote:
> : > > > > > Oliver: the code above was from a ProDOS system program. A 
> : > > > > > non-system cc65 program launched from the Basic prompt under 
> : > > > > > ProDOS is running alongside BASIC.SYSTEM. It might be 
> : > > > > > necessary to update the BASIC Global Page Default I/O vectors 
> : > > > > > after initializing the card:
> : > 
> : > If the cc65 program is running with BASIC.SYSTEM, wouldn't it just
> : > need to do the equivalent to PRINT CHR$(4);"PR#3"?
> : > 
> : > i.e.
> : > 
> : > puts("\004PR#3");
> : > 
> : > That way BASIC.SYSTEM will take care of the I/O vectors for you.
> : 
> : Not with conio. Looking at libsrc/apple2/cputc.s, putchar stores 
> : characters in video memory, bypassing the I/O hooks.
> : 
> : I'd have thought sdtio might work, as you suggest. It uses _write, which 
> : calls COUT, which in turn vectors through zero page CSWL/H, owned and 
> : operated by ProDOS. I don't know why it's not working.
> 
> Oh.  Now I see the problem.
> 
> If I remember correctly, BASIC.SYSTEM parses lines that are printed from 
> running BASIC programs, but NOT characters that are passed through COUT.  
> Sending the DOS command via COUT worked beautifully in DOS 3.3, but in 
> ProDOS you have to send the command to ProDOS directly.

I think you're right.

> The problem with THAT is that there is no equivalent for PR# in the 
> ProDOS MLI.  It looks like there is a method where you can put the 
> command string into the input buffer:
> 
> $200:D0 D2 A3 B3 8D
> 
> ...then JSR to DOSCMD at $BE03.  The reference I am looking at, though, 
> cautions that this only works in deferred mode...that is, while a BASIC 
> program is running.  I wonder how you can simulate that...Wasn't this 
> covered in one of the last issues of Softalk....?

Interesting, looks like CURLIN+1 ($76) has something other than $FF when 
running. It might be worth another try, although fixing up the ProDOS 
vectors worked fine, too.

1500 CURLIN         .EQ $75,76     CURRENT LINE NUMBER
1510 *                             ( = $FFXX IF IN DIRECT MODE)

-- 
John B. Matthews
trashgod at gmail dot com
home dot woh dot rr dot com slash jbmatthews