<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=Professional_GEM</id>
	<title>Professional GEM - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=Professional_GEM"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;action=history"/>
	<updated>2026-05-02T05:08:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;diff=16342&amp;oldid=prev</id>
		<title>&gt;Wongck at 14:57, 12 October 2011</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;diff=16342&amp;oldid=prev"/>
		<updated>2011-10-12T14:57:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:57, 12 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Professional GEM''' was a series of articles by [[Tim Oren]]. The articles {{--}} published by the [[ANTIC online]] magazine in 1985/86 {{--}} provide a good introduction in [[GEM]] programming.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Professional GEM''' was a series of articles by [[Tim Oren]]. The articles {{--}} published by the [[ANTIC online]] magazine in 1985/86 {{--}} provide a good introduction in [[GEM]] programming.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Programming]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GEM]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Wongck</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;diff=16341&amp;oldid=prev</id>
		<title>&gt;Rb at 23:21, 11 October 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;diff=16341&amp;oldid=prev"/>
		<updated>2006-10-11T23:21:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;amp;diff=16341&amp;amp;oldid=16340&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>&gt;Rb</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;diff=16340&amp;oldid=prev</id>
		<title>&gt;Zorro 2 at 12:00, 13 September 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Professional_GEM&amp;diff=16340&amp;oldid=prev"/>
		<updated>2006-09-13T12:00:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* [[Go to Professional GEM page 01 to 06]]&lt;br /&gt;
        PART - I.  Windows       ..................................    1&lt;br /&gt;
           IN THE BEGINNING      ..................................    1&lt;br /&gt;
              windcreate().........................................    1&lt;br /&gt;
              windget()............................................    1&lt;br /&gt;
           OPEN SESAME!       .....................................    3&lt;br /&gt;
              windopen()...........................................    3&lt;br /&gt;
              windget()............................................    3&lt;br /&gt;
              windcalc()...........................................    3&lt;br /&gt;
              windset()............................................    3&lt;br /&gt;
           CLEANING UP       ......................................    4&lt;br /&gt;
              windclose()..........................................    4&lt;br /&gt;
              winddelete().........................................    4&lt;br /&gt;
           THOSE FAT SLIDERS      .................................    4&lt;br /&gt;
              windset()............................................    5&lt;br /&gt;
              windset()............................................    5&lt;br /&gt;
              windget()............................................    5&lt;br /&gt;
           COMING UP NEXT      ....................................    6&lt;br /&gt;
           FEEDBACK        ........................................    6&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 07 to 15]]&lt;br /&gt;
        PART - II.  Windows       .................................    7&lt;br /&gt;
           EXCELSIOR        .......................................    7&lt;br /&gt;
           REDRAWING WINDOWS       ................................    7&lt;br /&gt;
           CAVEAT EMPTOR       ....................................    7&lt;br /&gt;
           INTO THE BITS      .....................................    8&lt;br /&gt;
           A SMALL CONFESSION      ................................    9&lt;br /&gt;
           WINDOW CONTROL REQUESTS      ...........................   10&lt;br /&gt;
              windset()............................................   10&lt;br /&gt;
              rcconstrain()........................................   10&lt;br /&gt;
              align()..............................................   10&lt;br /&gt;
              windset()............................................   12&lt;br /&gt;
           WINDOW SLIDER MESSAGES      ............................   12&lt;br /&gt;
              windset..............................................   12&lt;br /&gt;
           A COMMON BUG      ......................................   13&lt;br /&gt;
           DEPT. OF DIRTY TRICKS     ..............................   14&lt;br /&gt;
              windget()............................................   14&lt;br /&gt;
              windset()............................................   14&lt;br /&gt;
           A SIN OF OMISSION     ..................................   15&lt;br /&gt;
           COMING SOON       ......................................   15&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 16 to 23]]&lt;br /&gt;
        PART - III.  THE DIALOG HANDLER     .......................   16&lt;br /&gt;
           A MEANINGFUL DIALOG      ...............................   16&lt;br /&gt;
           DEFINING TERMS       ...................................   16&lt;br /&gt;
              rsrcload()...........................................   17&lt;br /&gt;
              rsrcgaddr()..........................................   17&lt;br /&gt;
           BUG ALERT!       .......................................   17&lt;br /&gt;
           A HANDY TRICK      .....................................   19&lt;br /&gt;
           CLEAN UP       .........................................   20&lt;br /&gt;
              deselobj()...........................................   20&lt;br /&gt;
           RECAP        ...........................................   20&lt;br /&gt;
           BUTTON BUTTON       ....................................   20&lt;br /&gt;
              selobj().............................................   21&lt;br /&gt;
           WHO'S GOT THE BUTTON?     ..............................   21&lt;br /&gt;
              selobj().............................................   22&lt;br /&gt;
           COMING UP NEXT      ....................................   22&lt;br /&gt;
           DISPELL GREMLINS       .................................   23&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 24 to 30]]&lt;br /&gt;
        PART - IV.  Resource Structure      .......................   24&lt;br /&gt;
           A MAZE OF TWISTY LITTLE PASSAGES.   ....................   24&lt;br /&gt;
           PUTTING IT TO WORK     .................................   28&lt;br /&gt;
           LETTERS WE GET LETTERS     .............................   30&lt;br /&gt;
           STRAW POLL!       ......................................   30&lt;br /&gt;
           STAY TUNED!       ......................................   30&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 32 to 37]]&lt;br /&gt;
        PART - V.  Resource Tree Structures     ...................   32&lt;br /&gt;
           HOW GEM DOES IT.     ...................................   34&lt;br /&gt;
           THOUGHT EXPERIMENTS       ..............................   36&lt;br /&gt;
           A TREEWALKER OF OUR OWN    .............................   37&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 39 to 48]]&lt;br /&gt;
        PART - VI.  Raster operations      ........................   39&lt;br /&gt;
           SEASONS GREETINGS       ................................   39&lt;br /&gt;
           DEFINING TERMS       ...................................   39&lt;br /&gt;
           MONOCHROME VS. COLOR      ..............................   39&lt;br /&gt;
           STANDARD VS. DEVICE-SPECIFIC FORMAT     ................   40&lt;br /&gt;
           EVEN-WORD VS. FRINGES      .............................   41&lt;br /&gt;
           MFDB's        ..........................................   41&lt;br /&gt;
           LET'S OPERATE       ....................................   42&lt;br /&gt;
           TRANSFORM FORM       ...................................   42&lt;br /&gt;
              vrtrnfm()............................................   42&lt;br /&gt;
           COPY RASTER OPAQUE      ................................   43&lt;br /&gt;
              vrocpyfm()...........................................   43&lt;br /&gt;
           COPY RASTER TRANSPARENT      ...........................   44&lt;br /&gt;
              vrtcpyfm()...........................................   44&lt;br /&gt;
           THE MODE PARAMETER      ................................   44&lt;br /&gt;
           REPLACE MODE       .....................................   45&lt;br /&gt;
           ERASE MODE       .......................................   45&lt;br /&gt;
           XOR MODE       .........................................   45&lt;br /&gt;
           TRANSPARENT MODE       .................................   45&lt;br /&gt;
           REVERSE TRANSPARENT MODE      ..........................   45&lt;br /&gt;
           THE PROBLEM OF COLOR     ...............................   45&lt;br /&gt;
           OPTIMIZING RASTER OPERATIONS      ......................   46&lt;br /&gt;
           AVOID MERGED COPIES      ...............................   46&lt;br /&gt;
           MOVE TO CORRESPONDING PIXELS     .......................   46&lt;br /&gt;
           AVOID FRINGES       ....................................   47&lt;br /&gt;
           USE ANOTHER METHOD      ................................   47&lt;br /&gt;
           FEEDBACK RESULTS       .................................   47&lt;br /&gt;
           THE NEXT QUESTION      .................................   47&lt;br /&gt;
           COMING UP SOON      ....................................   48&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 49 to 56]]&lt;br /&gt;
        PART - VII.  Menu Structures      .........................   49&lt;br /&gt;
           HAPPY NEW YEAR      ....................................   49&lt;br /&gt;
           MENU BASICS       ......................................   49&lt;br /&gt;
           MENU STRUCTURES       ..................................   49&lt;br /&gt;
           USING THE MENU      ....................................   51&lt;br /&gt;
              rsrcgaddr()..........................................   51&lt;br /&gt;
              menubar()............................................   51&lt;br /&gt;
              menutnormal()........................................   52&lt;br /&gt;
           GETTING FANCY       ....................................   52&lt;br /&gt;
              menuienable()........................................   52&lt;br /&gt;
              setmenu()............................................   53&lt;br /&gt;
           CHECK PLEASE?       ....................................   53&lt;br /&gt;
              menuicheck().........................................   53&lt;br /&gt;
           NOW YOU SEE IT NOW YOU DON'T  ..........................   53&lt;br /&gt;
              menutext()...........................................   54&lt;br /&gt;
           LUNCH AND DINNER MENUS     .............................   54&lt;br /&gt;
           DO IT YOURSELF      ....................................   54&lt;br /&gt;
           MAKE PRETTY       ......................................   55&lt;br /&gt;
           THAT'S IT FOR NOW!     .................................   56&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 57 to 66]]&lt;br /&gt;
        PART - VIII.  USER INTERFACES      ........................   57&lt;br /&gt;
           AND NOW FOR SOMETHING COMPLETELY DIFFERENT!   ..........   57&lt;br /&gt;
           CREDIT WHERE IT'S DUE     ..............................   57&lt;br /&gt;
           FINGERTIPS        ......................................   57&lt;br /&gt;
           MUSCLES        .........................................   58&lt;br /&gt;
           EYES        ............................................   59&lt;br /&gt;
           SHORT-TERM MEMORY       ................................   60&lt;br /&gt;
           CHUNKING        ........................................   60&lt;br /&gt;
           THINK!        ..........................................   61&lt;br /&gt;
           ARE WE NOT MEN?     ....................................   61&lt;br /&gt;
           OF MODES AND BANDWIDTH     .............................   65&lt;br /&gt;
           TO DO IS TO BE!    .....................................   66&lt;br /&gt;
           AMEN...        .........................................   66&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 68 to 76]]&lt;br /&gt;
        PART - IX.  VDI Graphics: Lines and Solids   ..............   68&lt;br /&gt;
           A BIT OF HISTORY     ...................................   68&lt;br /&gt;
              vswrmode()...........................................   69&lt;br /&gt;
              vsclip().............................................   69&lt;br /&gt;
           THE LINE FORMS ON THE LEFT   ...........................   70&lt;br /&gt;
              vslcolor()...........................................   70&lt;br /&gt;
              vslwidth()...........................................   70&lt;br /&gt;
              vslends()............................................   70&lt;br /&gt;
              vsltype()............................................   70&lt;br /&gt;
              vsludsty()...........................................   71&lt;br /&gt;
              vpline().............................................   71&lt;br /&gt;
              vrbox()..............................................   72&lt;br /&gt;
              varc()...............................................   72&lt;br /&gt;
              vellarc()............................................   73&lt;br /&gt;
           SOLIDS        ..........................................   73&lt;br /&gt;
              vsfcolor()...........................................   74&lt;br /&gt;
              vsfperimeter().......................................   74&lt;br /&gt;
              vsfinterior()........................................   74&lt;br /&gt;
              vsfstyle()...........................................   74&lt;br /&gt;
              vsfudpat()...........................................   75&lt;br /&gt;
              vfillarea()..........................................   75&lt;br /&gt;
              vrrecfl()............................................   75&lt;br /&gt;
              vcircle()............................................   76&lt;br /&gt;
              vellipse()...........................................   76&lt;br /&gt;
              vpieslice()..........................................   76&lt;br /&gt;
              vellpie()............................................   76&lt;br /&gt;
              vrfbox().............................................   76&lt;br /&gt;
           TO BE CONTINUED      ...................................   76&lt;br /&gt;
&lt;br /&gt;
* [[Go to Professional GEM page 77 to 114]]&lt;br /&gt;
        APPENDICES.................................................   77&lt;br /&gt;
           Appendix - I Sample Code for Part II....................   78&lt;br /&gt;
           Appendix - II Sample Code for Part III..................   83&lt;br /&gt;
           Appendix - III Sample Code for Part IV..................   88&lt;br /&gt;
           Appendix - IV Sample Code for Part V....................   98&lt;br /&gt;
           Appendix - V Sample Code for Part VI....................  103&lt;br /&gt;
           Appendix - VI Sample Code for Part VII..................  108&lt;br /&gt;
           Appendix - VII Sample Code for Part IX..................  112&lt;br /&gt;
           Appendix - VIII Sample Code for Part X..................  114&lt;/div&gt;</summary>
		<author><name>&gt;Zorro 2</name></author>
	</entry>
</feed>