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


Groups > comp.sys.apple2.programmer > #5368

Getting started with ORCA/M and IIGS programming

From James Kruth <james@kruth.org>
Newsgroups comp.sys.apple2.programmer
Subject Getting started with ORCA/M and IIGS programming
Date 2020-01-18 00:32 -0500
Organization A noiseless patient Spider
Message-ID <87sgkdba8h.fsf@wardenclyffe.jk7.org> (permalink)

Show all headers | View raw


Howdy!

I'm interested in writing some text based IIGS programs, mainly to
experiment with the MIDI capabilities of the IIGS. I have some
experience doing small 8-bit programs with Merlin, but this is my first
foray into doing anything with the IIGS toolbox.

I ended up buying a copy of all the byteworks tools from juiced.gs and
now I'm going through the process of slowly learning how to use ORCA/M,
but seemingly right away, I ran into a problem. In the manual on page 3
there's a Hello World program listed as such:

                keep    Hello
                mcopy   Hello.Macros
     Main       start
                phk
                plb
                puts    #'Hello world!',cr=t
                lda     #0
                rtl
                end

This compiles and links just fine using the instructions in the manual,
but produces no output. Further example programs in the manual seem to
have the same problem. Now I noticed that the example program on the
disk has a few extra calls that aren't mentioned in the manual:

                jsl     SystemEnvironmentInit
                jsl     SysIOStartup
                puts    #'Hello world.',cr=t
                jsl     SysIOShutDown

So now I have a few questions. Is there a reference for these system
calls? Why are they left out of the manual? How does ORCA/M know how to
resolve these symbols?

As if that wasn't enough I started looking for other books on IIGS
assembly programming and found that the following code prints something
without all the extra calls:

                pea     testmsg|-16
                pea     testmsg
                ldx     #$200c
                jsl     $E10000

     testmsg    dc      c'Hello world.',h'00'

I understand that this is making a toolbox call to WriteCString and I've
also read that it should have probably called TextStartUp ($020c) first.
What I'm wondering is why the puts ORCA macro is making me do so much
more work than this relatively simple bit of code.

Thanks in advance for you advice and experience!

- James

Back to comp.sys.apple2.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Getting started with ORCA/M and IIGS programming James Kruth <james@kruth.org> - 2020-01-18 00:32 -0500
  Re: Getting started with ORCA/M and IIGS programming spectrumdaddy@nospam.com (Ewen) - 2020-01-18 07:51 +0000
    Re: Getting started with ORCA/M and IIGS programming James Kruth <james@kruth.org> - 2020-01-20 01:41 -0500
  Re: Getting started with ORCA/M and IIGS programming Andy McFadden <thefadden@gmail.com> - 2020-01-18 07:42 -0800
    Re: Getting started with ORCA/M and IIGS programming James Kruth <james@kruth.org> - 2020-01-20 01:44 -0500
  Re: Getting started with ORCA/M and IIGS programming Stephen Heumann <stephen.heumann@gmail.com> - 2020-01-18 11:01 -0600
    Re: Getting started with ORCA/M and IIGS programming James Kruth <james@kruth.org> - 2020-01-20 02:11 -0500
      Re: Getting started with ORCA/M and IIGS programming spectrumdaddy@nospam.com (Ewen) - 2020-01-20 07:45 +0000
      Re: Getting started with ORCA/M and IIGS programming kelvin@pro-kegs.uucp (Kelvin Sherlock) - 2020-01-20 23:21 -0500
        Re: Getting started with ORCA/M and IIGS programming James Kruth <james@kruth.org> - 2020-01-26 00:25 -0500

csiph-web