Can anyone provide definitions for what the following HALO graphics
library functions did?
SUBROUTINE SetText(x1, y1, x2, y2)
Seems to be often called as SetText(1, 1, 0, 1) or similar, so
doesn't seem right to be sizing a text window.
SUBROUTINE SetTextC(iFore, iBack)
Looks straightforward - set text fore & background colour.
SUBROUTINE MovTCurA(x, y) ! Move text to (x, y)
Seems to be move text cursor to absolute location (x, y)
SUBROUTINE Text(s)
Display text string s
SUBROUTINE SetColor(iColour)
Set ?graphics? colour
SUBROUTINE MovAbs(x, y)
Move to (x, y) without drawing a line/making a point?
SUBROUTINE LnAbs(x, y)
Draw a line from the current location to (x, y)
SUBROUTINE Bar(x1, y1, x2, y2)
Draw a bar
SUBROUTINE PtAbs(x1, y1)
Move to (x1, y1) and mark a point at that location?
SUBROUTINE SetLnSty
Set line style, but no idea as to what line style maps to what code
I may just take the mapping offered by the replacement graphics
package (currently envisgaed as
QuickWin with Intel Fortran)
SUBROUTINE CloseG ! Close graphics window
Close & clear the graphics screen
SUBROUTINE SetDev(s) ! Open graphics window
Open a graphics screen
SUBROUTINE SetPrn(s) ! Set printer for graphics output
Divert output to printer
May not be required under Windows ...
SUBROUTINE SetPattr
Set a point attribute, but no idea what attributes are set, and how
they map to codes
SUBROUTINE InitGraph
Initialise graphics window
SUBROUTINE SetIEEE(x)
?Declare that HALO routines should use IEEE numbers?
May be a relic I can ignore from the need to define beween IEEE and
Microsoft floating point format
SUBROUTINE InitCur
?Why initialise a cursor?
SUBROUTINE InqText
?Retrieve text from the screen?
SUBROUTINE GPrint
Print a screen; may be possible to ignore under Windows
SUBROUTINE SetViewP
Set a view point - not sure what this is! Possibly just defining
screen extents,
So that there is a split between text & graphics screens
SUBROUTINE MapNtoD
?
SUBROUTINE SetWorld
?How does this differ from SetViewP?
SUBROUTINE SetHatch
Set a hatch routine for a fill, but not sure much beyond this
SUBROUTINE MovTCurR
Move text cursor - I am assuming relative, rather than absolute
SUBROUTINE PolyCAbs
?Draw a polyline defined by an array? And fill it when drawing with
the hatch?
|
|
0
|
|
|
|
Reply
|
dudley (1)
|
12/15/2010 4:34:12 PM |
|
bendel_boy wrote:
> Can anyone provide definitions for what the following HALO graphics
> library functions did?
Ah, that hit a few old memories!
I have used that package, together with ms f77 V3.31(1985).
Only on the Hercules graphics card, so (almost) no color commands used.
I agree with most of your guesses,
The init cursor routine changes the shape of the cursor,
from a horizontal line of 8 pixels, to a 8X8 block of pixels
in 8 steps, defining the vertical size of the cursor.
Those were the only ones possible, it was a hardware generated cursor.
I found the autoexec.bat, loading the halo routines and the routines
themselves, but not a trace of the library or sourcecode, because
we shortly after that switched to Microsoft(R) FORTRAN Professional
Development System, Version 5.1, which I still occasionally use.
|
|
0
|
|
|
|
Reply
|
Sjouke
|
12/15/2010 6:02:57 PM
|
|
On 15 dec, 17:34, bendel_boy <dud...@wrcplc.co.uk> wrote:
> Can anyone provide definitions for what the following HALO graphics
> library functions did?
>
Indeed, this brings back almost faded memories - so my recollection
is imperfect. I have annotated what I remember with enough confidence
(and you
have a question there or got something wrong/incomplete).
>
> SUBROUTINE MovTCurA(x, y) ! Move text to (x, y)
> =A0 Seems to be move text cursor to absolute location (x, y)
>
HALO loved using both absolute and relative coordinates, keeping a
cursor position, IIRC
> SUBROUTINE SetColor(iColour)
> =A0 Set ?graphics? colour
>
A colour from the colour table. You could set the actual entries
with another subroutine.
> SUBROUTINE MovAbs(x, y)
> =A0 Move to (x, y) without drawing a line/making a point?
>
Yes, moves the cursor position
>
> SUBROUTINE PtAbs(x1, y1)
> =A0 Move to (x1, y1) and mark a point at that location?
Yes
>
> SUBROUTINE SetLnSty
> =A0 Set line style, but no idea as to what line style maps to what code
> =A0I may just take the mapping offered by the replacement graphics
> package (currently envisgaed as
> =A0QuickWin with Intel Fortran)
>
Not sure whether they were predefined styles or not. It could be that
they were simply the entries in the list of styles provided by the
graphics card.
> SUBROUTINE CloseG =A0 =A0 ! Close graphics window
> =A0 Close & clear the graphics screen
>
> SUBROUTINE SetDev(s) =A0! Open graphics window
> =A0 Open a graphics screen
>
More or less: you also defined what driver to use (s is a string
indicating the
device driver)
>
> SUBROUTINE SetIEEE(x)
> =A0 ?Declare that HALO routines should use IEEE numbers?
> =A0 May be a relic I can ignore from the need =A0to define beween IEEE an=
d
> Microsoft floating point format
>
In those days floating-point arithmetic was a lot less comfortable
than
today. Remember mathematical coprocessors?
> SUBROUTINE InitCur
> =A0 ?Why initialise a cursor?
>
You could hide it too - mouse pointers were pretty uncommon back then
and
required specific support.
> SUBROUTINE InqText
> =A0 ?Retrieve text from the screen?
>
No, I think attributes.
> SUBROUTINE SetViewP
> =A0 Set a view point - not sure what this is! Possibly just defining
> screen extents,
> =A0 So that there is a split between text & graphics screens
>
Set a _viewport_ - a separated piece of the screen real estate.
Supports independent scaling of the world coordinates and clipping.
> SUBROUTINE MapNtoD
> =A0 ?
>
Convert pixel coordinates from device (0.0 - 1.0) coordinates.
MapDtoN did the reverse.
> SUBROUTINE SetWorld
> =A0?How does this differ from SetViewP?
>
Sets the extremes for the world coordinates for the current viewport.
> SUBROUTINE MovTCurR
> =A0 Move text cursor - I am assuming relative, rather than absolute
>
Yes
> SUBROUTINE PolyCAbs
> =A0 ?Draw a polyline defined by an array? And fill it when drawing with
> the hatch?
No idea.
Regards,
Arjen
|
|
0
|
|
|
|
Reply
|
Arjen
|
12/16/2010 12:38:24 PM
|
|
On Dec 16, 3:34=A0am, bendel_boy <dud...@wrcplc.co.uk> wrote:
> Can anyone provide definitions for what the following HALO graphics
> library functions did?
>
> SUBROUTINE SetText(x1, y1, x2, y2)
> =A0 Seems to be often called as SetText(1, 1, 0, 1) or similar, so
> doesn't seem right to be sizing a text window.
>
> SUBROUTINE SetTextC(iFore, iBack)
> =A0 Looks straightforward - set text fore & background colour.
>
> SUBROUTINE MovTCurA(x, y) ! Move text to (x, y)
> =A0 Seems to be move text cursor to absolute location (x, y)
>
> SUBROUTINE Text(s)
> =A0 Display text string s
>
> SUBROUTINE SetColor(iColour)
> =A0 Set ?graphics? colour
>
> SUBROUTINE MovAbs(x, y)
> =A0 Move to (x, y) without drawing a line/making a point?
>
> SUBROUTINE LnAbs(x, y)
> =A0 Draw a line from the current location to (x, y)
>
> SUBROUTINE Bar(x1, y1, x2, y2)
> =A0 Draw a bar
>
> SUBROUTINE PtAbs(x1, y1)
> =A0 Move to (x1, y1) and mark a point at that location?
>
> SUBROUTINE SetLnSty
> =A0 Set line style, but no idea as to what line style maps to what code
> =A0I may just take the mapping offered by the replacement graphics
> package (currently envisgaed as
> =A0QuickWin with Intel Fortran)
>
> SUBROUTINE CloseG =A0 =A0 ! Close graphics window
> =A0 Close & clear the graphics screen
>
> SUBROUTINE SetDev(s) =A0! Open graphics window
> =A0 Open a graphics screen
>
> SUBROUTINE SetPrn(s) =A0! Set printer for graphics output
> =A0 Divert output to printer
> =A0 May not be required under Windows ...
>
> SUBROUTINE SetPattr
> =A0 Set a point attribute, but no idea what attributes are set, and how
> they map to codes
>
> SUBROUTINE InitGraph
> =A0 Initialise graphics window
>
> SUBROUTINE SetIEEE(x)
> =A0 ?Declare that HALO routines should use IEEE numbers?
> =A0 May be a relic I can ignore from the need =A0to define beween IEEE an=
d
> Microsoft floating point format
>
> SUBROUTINE InitCur
> =A0 ?Why initialise a cursor?
>
> SUBROUTINE InqText
> =A0 ?Retrieve text from the screen?
>
> SUBROUTINE GPrint
> =A0 Print a screen; may be possible to ignore under Windows
>
> SUBROUTINE SetViewP
> =A0 Set a view point - not sure what this is! Possibly just defining
> screen extents,
> =A0 So that there is a split between text & graphics screens
>
> SUBROUTINE MapNtoD
> =A0 ?
>
> SUBROUTINE SetWorld
> =A0?How does this differ from SetViewP?
>
> SUBROUTINE SetHatch
> =A0 Set a hatch routine for a fill, but not sure much beyond this
>
> SUBROUTINE MovTCurR
> =A0 Move text cursor - I am assuming relative, rather than absolute
>
> SUBROUTINE PolyCAbs
> =A0 ?Draw a polyline defined by an array? And fill it when drawing with
> the hatch?
Those routines pretty much match the ones I wrote for similar F77
V3.31 use under MSDOS; but I posted here a similar set with my same
subroutine names to do the same effects in Native Windows, so that you
were running Windows, but your program seemed to be running MSDOS.
(So you could compile and run the same source program is real DOS or
real Windows without changes).
But the most useful routines, apart from changing colours of anything
anywhere, were those that wrote to the screen at a cursor location,
and allowed editing or entry, and (obviously) could read text OFF te
screen. And any keyboard codes and pada and function keys other than
Alt-tab were valid, unlike what happens in a Fortran Formatted Read.
|
|
0
|
|
|
|
Reply
|
Terence
|
12/18/2010 10:41:22 AM
|
|
On 12/16/2010 5:38 AM, Arjen Markus wrote:
> On 15 dec, 17:34, bendel_boy<dud...@wrcplc.co.uk> wrote:
>> Can anyone provide definitions for what the following HALO graphics
>> library functions did?
>>
>
> Indeed, this brings back almost faded memories - so my recollection
> is imperfect. I have annotated what I remember with enough confidence
> (and you
> have a question there or got something wrong/incomplete).
>
>>
>> SUBROUTINE MovTCurA(x, y) ! Move text to (x, y)
>> Seems to be move text cursor to absolute location (x, y)
>>
>
> HALO loved using both absolute and relative coordinates, keeping a
> cursor position, IIRC
>
>> SUBROUTINE SetColor(iColour)
>> Set ?graphics? colour
>>
> A colour from the colour table. You could set the actual entries
> with another subroutine.
>
>
>> SUBROUTINE MovAbs(x, y)
>> Move to (x, y) without drawing a line/making a point?
>>
>
> Yes, moves the cursor position
>
>>
>> SUBROUTINE PtAbs(x1, y1)
>> Move to (x1, y1) and mark a point at that location?
>
> Yes
>
>>
>> SUBROUTINE SetLnSty
>> Set line style, but no idea as to what line style maps to what code
>> I may just take the mapping offered by the replacement graphics
>> package (currently envisgaed as
>> QuickWin with Intel Fortran)
>>
>
> Not sure whether they were predefined styles or not. It could be that
> they were simply the entries in the list of styles provided by the
> graphics card.
>
>> SUBROUTINE CloseG ! Close graphics window
>> Close& clear the graphics screen
>>
>> SUBROUTINE SetDev(s) ! Open graphics window
>> Open a graphics screen
>>
>
> More or less: you also defined what driver to use (s is a string
> indicating the
> device driver)
>
>>
>> SUBROUTINE SetIEEE(x)
>> ?Declare that HALO routines should use IEEE numbers?
>> May be a relic I can ignore from the need to define beween IEEE and
>> Microsoft floating point format
>>
>
> In those days floating-point arithmetic was a lot less comfortable
> than
> today. Remember mathematical coprocessors?
>
>> SUBROUTINE InitCur
>> ?Why initialise a cursor?
>>
>
> You could hide it too - mouse pointers were pretty uncommon back then
> and
> required specific support.
>
>> SUBROUTINE InqText
>> ?Retrieve text from the screen?
>>
>
> No, I think attributes.
>
>
>> SUBROUTINE SetViewP
>> Set a view point - not sure what this is! Possibly just defining
>> screen extents,
>> So that there is a split between text& graphics screens
>>
>
> Set a _viewport_ - a separated piece of the screen real estate.
> Supports independent scaling of the world coordinates and clipping.
>
>> SUBROUTINE MapNtoD
>> ?
>>
>
> Convert pixel coordinates from device (0.0 - 1.0) coordinates.
> MapDtoN did the reverse.
>
>> SUBROUTINE SetWorld
>> ?How does this differ from SetViewP?
>>
>
> Sets the extremes for the world coordinates for the current viewport.
>
>> SUBROUTINE MovTCurR
>> Move text cursor - I am assuming relative, rather than absolute
>>
>
> Yes
>
>> SUBROUTINE PolyCAbs
>> ?Draw a polyline defined by an array? And fill it when drawing with
>> the hatch?
>
> No idea.
>
This can't be the same "Halo" game that I saw my nephews playing on
T-day. I couldn't even figure out the controller to play along. I
don't know if I'd rather have the memories or the sheer tonnage in
quarters I put into standups like space invaders, asteroids, donkey
kong, galaxia, missile command, Mr. Do ....
--
Uno
|
|
0
|
|
|
|
Reply
|
Uno
|
12/25/2010 9:52:25 PM
|
|
On 25 dec, 22:52, Uno <merrilljen...@q.com> wrote:
> On 12/16/2010 5:38 AM, Arjen Markus wrote:
>
>
>
>
>
> > On 15 dec, 17:34, bendel_boy<dud...@wrcplc.co.uk> =A0wrote:
> >> Can anyone provide definitions for what the following HALO graphics
> >> library functions did?
>
> > Indeed, this brings back almost faded memories - so my recollection
> > is imperfect. I have annotated what I remember with enough confidence
> > (and you
> > have a question there or got something wrong/incomplete).
>
> >> SUBROUTINE MovTCurA(x, y) ! Move text to (x, y)
> >> =A0 =A0Seems to be move text cursor to absolute location (x, y)
>
> > HALO loved using both absolute and relative coordinates, keeping a
> > cursor position, IIRC
>
> >> SUBROUTINE SetColor(iColour)
> >> =A0 =A0Set ?graphics? colour
>
> > A colour from the colour table. You could set the actual entries
> > with another subroutine.
>
> >> SUBROUTINE MovAbs(x, y)
> >> =A0 =A0Move to (x, y) without drawing a line/making a point?
>
> > Yes, moves the cursor position
>
> >> SUBROUTINE PtAbs(x1, y1)
> >> =A0 =A0Move to (x1, y1) and mark a point at that location?
>
> > Yes
>
> >> SUBROUTINE SetLnSty
> >> =A0 =A0Set line style, but no idea as to what line style maps to what =
code
> >> =A0 I may just take the mapping offered by the replacement graphics
> >> package (currently envisgaed as
> >> =A0 QuickWin with Intel Fortran)
>
> > Not sure whether they were predefined styles or not. It could be that
> > they were simply the entries in the list of styles provided by the
> > graphics card.
>
> >> SUBROUTINE CloseG =A0 =A0 ! Close graphics window
> >> =A0 =A0Close& =A0clear the graphics screen
>
> >> SUBROUTINE SetDev(s) =A0! Open graphics window
> >> =A0 =A0Open a graphics screen
>
> > More or less: you also defined what driver to use (s is a string
> > indicating the
> > device driver)
>
> >> SUBROUTINE SetIEEE(x)
> >> =A0 =A0?Declare that HALO routines should use IEEE numbers?
> >> =A0 =A0May be a relic I can ignore from the need =A0to define beween I=
EEE and
> >> Microsoft floating point format
>
> > In those days floating-point arithmetic was a lot less comfortable
> > than
> > today. Remember mathematical coprocessors?
>
> >> SUBROUTINE InitCur
> >> =A0 =A0?Why initialise a cursor?
>
> > You could hide it too - mouse pointers were pretty uncommon back then
> > and
> > required specific support.
>
> >> SUBROUTINE InqText
> >> =A0 =A0?Retrieve text from the screen?
>
> > No, I think attributes.
>
> >> SUBROUTINE SetViewP
> >> =A0 =A0Set a view point - not sure what this is! Possibly just definin=
g
> >> screen extents,
> >> =A0 =A0So that there is a split between text& =A0graphics screens
>
> > Set a _viewport_ - a separated piece of the screen real estate.
> > Supports independent scaling of the world coordinates and clipping.
>
> >> SUBROUTINE MapNtoD
> >> =A0 =A0?
>
> > Convert pixel coordinates from device (0.0 - 1.0) coordinates.
> > MapDtoN did the reverse.
>
> >> SUBROUTINE SetWorld
> >> =A0 ?How does this differ from SetViewP?
>
> > Sets the extremes for the world coordinates for the current viewport.
>
> >> SUBROUTINE MovTCurR
> >> =A0 =A0Move text cursor - I am assuming relative, rather than absolute
>
> > Yes
>
> >> SUBROUTINE PolyCAbs
> >> =A0 =A0?Draw a polyline defined by an array? And fill it when drawing =
with
> >> the hatch?
>
> > No idea.
>
> This can't be the same "Halo" game that I saw my nephews playing on
> T-day. =A0I couldn't even figure out the controller to play along. =A0I
> don't know if I'd rather have the memories or the sheer tonnage in
> quarters I put into standups like space invaders, asteroids, donkey
> kong, galaxia, missile command, Mr. Do ....
> --
> Uno- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -
Not a game - a graphics library that was rather popular in the late
eighties
early nineties (in the DOS era)
Regards,
Arjen
|
|
0
|
|
|
|
Reply
|
arjen.markus895 (634)
|
12/28/2010 8:03:29 AM
|
|
|
5 Replies
351 Views
(page loaded in 0.127 seconds)
|