TIP: Click on subject to list as thread! ANSI
echo: apple
to: comp.sys.apple2
from: John B. Matthews
date: 2008-07-01 17:00:56
subject: Re: 80 Columns under cc65?

In article , ol.sc{at}web.de (Oliver Schmidt) 
wrote:

> >> How do I get an 80-column text mode on an Apple 2 under cc65?
> 
> >It looks like the cc65 conio library goes to some lengths to avoid 
> >changing whatever your program loader sets.
> 
> That's very true. And in fact it goes beyond that: In contrast to at
> least some other cc65 targets the Apple2 conio implementation allows
> you to mix stdio and conio. Additionally you can use the well-known
> Apple2 zero-page variables to restrict the output to a certain window
> both for stdio and conio.

Oliver: thanks for expanding on this. I'm still new to cc65:-)

> >          LDA MACHID
> >          AND #2
> >          BEQ NO80COL
> >          JSR $C300
> 
> I've tried recently to do that from within a cc65 program via inline
> assembler but that mixed up something with ProDOS so file I/O didn't
> work anymore. I'll have to investigate but my current work life
> situation doesn't allow for that. So the current workaround is to set
> 80-column mode before starting the cc65 program.

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:

BE30:  VECTOUT   DW  COUT1       ;Current character output routine
BE32:  VECTIN    DW  CHIN1       ;Current character input routine

I'll have to learn enough inline assembler to try it myself, but 
experimenting from the Basic prompt seems to confirm this. I'm tempted 
to just try printing control-DPR#3.

Interestingly, not updating the vectors appears to turn on trace!

]mtr
*c300g
*^c
]10 ?"Hello"
]run
#10 Hello

ProDOS is also disconnected, but call 976 ($3d0) restores normalcy.

-- 
John B. Matthews
trashgod at gmail dot com
home dot woh dot rr dot com slash jbmatthews
--- SBBSecho 2.12-Win32
* Origin: Derby City BBS - Louisville, KY - derbycitybbs.com (1:2320/100)
SEEN-BY: 10/1 3 34/999 106/1 120/228 123/500 140/1 222/2 226/0 236/150 249/303
SEEN-BY: 250/306 261/20 38 100 1404 1406 1410 1418 266/1413 280/1027 320/119
SEEN-BY: 393/11 396/45 633/260 267 712/848 800/432 801/161 189 2222/700
SEEN-BY: 2320/100 105 200 2905/0
@PATH: 2320/100 261/38 633/260 267

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.