Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #803 > unrolled thread

IIgs Text toolset questions

Started byAntoine Vignau <antoine.vignau@laposte.net>
First post2013-08-20 02:13 -0700
Last post2013-08-28 10:05 -0700
Articles 9 — 5 participants

Back to article view | Back to comp.sys.apple2.programmer


Contents

  IIgs Text toolset questions Antoine Vignau <antoine.vignau@laposte.net> - 2013-08-20 02:13 -0700
    Re: IIgs Text toolset questions Dagen Brock <DagenBrock@gmail.com> - 2013-08-20 06:14 -0700
    Re: IIgs Text toolset questions David Schmenk <dschmenk@gmail.com> - 2013-08-20 07:46 -0700
      Re: IIgs Text toolset questions Antoine Vignau <antoine.vignau@laposte.net> - 2013-08-20 10:02 -0700
    Re: IIgs Text toolset questions gids.rs@sasktel.net - 2013-08-20 22:58 -0700
      Re: IIgs Text toolset questions Antoine Vignau <antoine.vignau@laposte.net> - 2013-08-20 23:59 -0700
        Re: IIgs Text toolset questions David Schmenk <dschmenk@gmail.com> - 2013-08-21 07:09 -0700
    Re: IIgs Text toolset questions Sheppy <sheppy@sheppyware.net> - 2013-08-28 08:14 -0400
      Re: IIgs Text toolset questions Antoine Vignau <antoine.vignau@laposte.net> - 2013-08-28 10:05 -0700

#803 — IIgs Text toolset questions

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2013-08-20 02:13 -0700
SubjectIIgs Text toolset questions
Message-ID<5ec417c0-b104-4baf-be3d-15a053b3e46c@googlegroups.com>
Hello There,
I am playing with the Text toolset of the IIgs.
It is pretty ease to in/out-put text but I need more and would like to POS X,Y the cursor wherever I want.

I believe that sending commands to the 80-col firmware is the solution to set my X & Y but I am wondering whether I should use the old 80-col manual for the //e or use the IIgs firmware references to get all the available commands.

Any ideas or reco please?

Thank you,
antoine

[toc] | [next] | [standalone]


#804

FromDagen Brock <DagenBrock@gmail.com>
Date2013-08-20 06:14 -0700
Message-ID<9e76c955-fbf4-4f91-8571-62a76c569409@googlegroups.com>
In reply to#803
Honestly, it seems like Apple practically discouraged the use of text mode for IIgs application development.  The text tools aren't very full featured from my understanding.  (I don't have the Toolbox Refs in front of me, but looking at the Merlin macros and Cortland ref from your site.)  I can't say I've tried to do anything non-trivial with them, so you probably have a better understanding than I. 

I can't think of anything more standard and well documented than the firmware, or the memory map.  You could always make a more full-featured toolset using either of those, but I'd feel safe using regular firmware calls.  The one exception is if you think you want to also support output to a device like a printer.  I believe the text tools have some design to handle that. 

Good luck.  What are you working on?  ;)

[toc] | [prev] | [next] | [standalone]


#805

FromDavid Schmenk <dschmenk@gmail.com>
Date2013-08-20 07:46 -0700
Message-ID<2ee28207-4265-4197-b691-59557c1123a6@googlegroups.com>
In reply to#803
From my only experiment with Complete Pascal:
program Test;

uses Types, QuickDraw,TextTool;

var
	inchar : integer;	

procedure Text;
	begin
		GrafOff;
		TextStartUp;
		SetInGlobals(255, 128);
		SetOutGlobals(255, 128);
		SetErrGlobals(255, 128);
		SetInputDevice(1, 3); { BASIC driver, slot #3 }
		SetOutputDevice(1, 3);
		SetErrorDevice(1, 3);
		InitTextDev(0); { Init Input }
		InitTextDev(1); { Init Output }
		InitTextDev(2)  { Init Error }
	end;

procedure Home(clear :  boolean);
	begin
		if clear then
			WriteChar(12)
		else
			WriteChar(25)
	end;

procedure WriteCR;
	begin
		WriteChar(10);
		WriteChar(13)
	end;
	
procedure Inverse;
	begin
		WriteChar(15)
	end;
	
procedure Normal;
	begin
		WriteChar(14)
	end;

procedure MouseText(enable : boolean);
	begin
		if enable then
			WriteChar(27)
		else
			WriteChar(18)
	end;
		
procedure GotoXY(x, y : integer);
	begin
		WriteChar(30);
		WriteChar(x+32);
		WriteChar(y+32)
	end;

begin
	Text;
	Home(true);
	GotoXY(32,4);
	WriteString('Hello, World.');
	GotoXY(0, 10);
	WriteLine('Normal Characters:');
	for inchar := 32 to 127 do
		WriteChar(inchar);
	WriteCR;
	WriteCR;
	WriteLine('Inverse Characters:');
	Inverse;
	for inchar := 32 to 127 do
		WriteChar(inchar);
	Normal;
	WriteCR;
	WriteCR;
	WriteLine('MouseText Characters:');
	MouseText(true);
	Inverse;
	for inchar := 32 to 127 do
		WriteChar(inchar);
	inchar := ReadChar(0);
end.

[toc] | [prev] | [next] | [standalone]


#806

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2013-08-20 10:02 -0700
Message-ID<a316a35a-f620-4a82-9bec-8d5212ec30ff@googlegroups.com>
In reply to#805
Thanks to both of you. This was my understanding in terms of limitation and usage.

Am I working on something? Hum, dunno...

Antoine

[toc] | [prev] | [next] | [standalone]


#807

Fromgids.rs@sasktel.net
Date2013-08-20 22:58 -0700
Message-ID<df53c633-9afc-4e67-bd60-f19312561382@googlegroups.com>
In reply to#803
On Tuesday, August 20, 2013 3:13:34 AM UTC-6, Antoine Vignau wrote:
> Hello There,
> I am playing with the Text toolset of the IIgs.
> It is pretty ease to in/out-put text but I need more and would like to POS X,Y the cursor wherever I want.

> I believe that sending commands to the 80-col firmware is the solution to set my X & Y but I am wondering whether I should use the old 80-col manual for the //e or use the IIgs firmware references to get all the available commands.

> Any ideas or reco please?


Could it possibly be, whether you want to stay in 16-bit mode or not.  You would have to enter emulation mode to enter the 80-col firmware.

Rob

[toc] | [prev] | [next] | [standalone]


#808

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2013-08-20 23:59 -0700
Message-ID<7bf1ce79-0404-4bdd-80ea-8ab54beb3b5b@googlegroups.com>
In reply to#807
Oh no! No use of _FWEntry, i'll stay in the 16-bit mode. Otherwise, I'd rather write directly to the screen!

Antoine

[toc] | [prev] | [next] | [standalone]


#809

FromDavid Schmenk <dschmenk@gmail.com>
Date2013-08-21 07:09 -0700
Message-ID<2f257a7a-ee73-46d7-ba7e-7c26b83bf8ef@googlegroups.com>
In reply to#808
On Tuesday, 20 August 2013 23:59:12 UTC-7, Antoine Vignau  wrote:
> Oh no! No use of _FWEntry, i'll stay in the 16-bit mode. Otherwise, I'd rather write directly to the screen!
> 
> 
> 
> Antoine

I was investigating the TextTool speed and support when I played around with Complete Pascal.  If you were to do anything more than console emulation, I would think writing directly to the screen would be the way to go.  Especially if you were going to code up some CUI using MouseText characters.

Dave...

[toc] | [prev] | [next] | [standalone]


#823

FromSheppy <sheppy@sheppyware.net>
Date2013-08-28 08:14 -0400
Message-ID<2013082808142146310-sheppy@sheppywarenet>
In reply to#803
On 2013-08-20 09:13:34 +0000, Antoine Vignau said:

> I am playing with the Text toolset of the IIgs.
> It is pretty ease to in/out-put text but I need more and would like to 
> POS X,Y the cursor wherever I want.

You'd be much better off using the GS/OS Console Driver. It's much 
faster, better supported, and much more feature complete.  See page 235 
in the GS/OS Reference for details on how to use it.

The Console Driver supports all the usual screen functionality, plus 
any-direction scrolling, saving and restoring of arbitrary rectangles 
of the screen for windowing, etc.

It also supports, for input, both raw input and "line input" mode, 
which supports things like basic editing of the entered text. In 
addition, you can do things like set up hotkeys that implement special 
functionality while in line input mode, overstrike vs. insertion mode, 
customization of text input termination keys (for example, making enter 
and return do different things), and so on.

The Console Driver is pretty nice, really, and it got some substantial 
performance improvements in System 6 (including support for doing 
character output by bypassing the GS/OS vector and calling its I/O 
functions directly; there are vectors for them -- see Programmer's 
Reference for System 6.0, pages 319-320. (Caveat: As noted in 
Programmer's Reference for System 6.0.1, these vectors didn't work 
right in 6.0, but do in 6.0.1).

Of course, even better (for performance, anyway) is to just write your 
own text screen routines, but that can be overkill for a lot of 
projects.

-- 

Eric Shepherd (Sheppy)
http://www.sheppyware.net

[toc] | [prev] | [next] | [standalone]


#827

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2013-08-28 10:05 -0700
Message-ID<28e08ad9-1b32-4e93-9f79-19190be818b2@googlegroups.com>
In reply to#823
Thanks, Sheppy, I'll think about it.

My project is over with the Text toolset :-(
av

[toc] | [prev] | [standalone]


Back to top | Article view | comp.sys.apple2.programmer


csiph-web