Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!mailrus!usenet.ins.cwru.edu!usenet.INS.CWRU.Edu!bammi From: bammi@curie.ces.cwru.edu (Jwahar R. Bammi) Newsgroups: comp.sys.atari.st Subject: Re: How do you create non-scrolling screen regions? Message-ID: Date: 8 Mar 90 06:27:05 GMT References: <2344@ultb.isc.rit.edu> Sender: news@usenet.ins.cwru.edu Organization: Case Western Reserve University Lines: 37 In-reply-to: ajy2208@ultb.isc.rit.edu's message of 6 Mar 90 22:07:13 GMT In article <2344@ultb.isc.rit.edu> ajy2208@ultb.isc.rit.edu (A.J. Yarusso) writes: > Hopefully I won't have to write custom screen i/o routines to do No you wont have to! there is an advertised lineA variable (V_CEL_MY) just to do this: the short (16 bit) at offset -0x2a (-42 decimal) bytes from the lineA base can be set to a number N to get effectively a N+1 line scrolling region vt52. For instance if you want the N'th line to be a status line, and have a (N-1)x80 vt52, you would set char *linea_base = (base of lineA from linea0 (0xA000)); short *V_CEL_MY = (short *)(linea_base - 42L); short save; save = *V_CEL_MY; *V_CEL_MY = save - 1; .... and before terminating: *V_CEL_MY = save; its probably not a good idea to assume that the screen is 25 lines high (or even 80 wide (with can be determined from V_CEL_MX at offset -44)). To write to the bottom line(s): - you can use something like v_gtext() - or you can change *V_CEL_Y, write to the line using Bcon/Ccon traps, and change *V_CEL_Y back, and so on.. Some of this stuff is documented in that i posted here a while back, or in the more current version of that file that comes with the Gnu C library (available via FTP from dsrgsun.ces.crwu.edu). -- -- bang: {any internet host}!dsrgsun.CES.CWRU.Edu!bammi jwahar r. bammi domain: bammi@dsrgsun.ces.CWRU.edu GEnie: J.Bammi