An Introduction to
Apple IIgs Programming
    in a High Level
       Language
              by
         Mike Stephens

   ...
Topics To Cover
   What programming languages are available?
   An overview of Complete Pascal
   A quick introduction ...
What programming languages are
           available?
BASIC Programming
   Applesoft BASIC with Toolbox extensions
    (Interpreted)
   TML BASIC
   Micol Advanced BASIC
  ...
ORCA Languages
   ORCA/Integer BASIC
   ORCA/Pascal
   ORCA/C
   ORCA/Modula-2
Complete Pascal
My recommendation for anyone wanting to get
started with high level language programming on
the Apple IIgs...
An overview of Complete Pascal
Complete Pascal
Positives:
 Is freely available

 Is a compiled language

 Has full access to the Apple IIgs Toolbox

...
Complete Pascal

Negatives:
 Has some bugs in the GUI resource editor

 Produces larger & less efficient compiled code
 ...
A quick introduction to Pascal
Pascal Overview (continued)
   In Complete Pascal, comments start with
    a (* and end with a *) OR comments may start
 ...
Pascal Overview
The basic structure of a Pascal program is:
PROGRAM ProgramName (FileList);

CONST
     (* Constant declar...
Pascal Overview (continued)
   Rules for identifiers:
       Must begin with a letter from the English alphabet.
      ...
Pascal Overview (continued)
   Pascal is not case sensitive!
       MyProgram, MYPROGRAM,
        and mYpRoGrAm are all ...
Pascal Array Types
   An array type defines a structure that has a set
    number of components, and all of the
    compo...
Pascal Record Types
   A record type consists of a specified collection
    of components called fields, each one capable...
Complete Pascal Strings
   A string type is a succession of characters having a dynamic
    length attribute and a consta...
Pascal Assignment
   Once you have declared a variable, you can store
    values in it. This is called assignment.
   To...
Pascal Relational Operators
   The operand types and the corresponding results for
    Relational operations are shown in...
Complete Pascal Control Statements
   The GOTO statement will pass control to another part
    of the program located in ...
Pascal Procedures
   A procedure declaration associates an identifier with a block of
    statements.
   A procedure is ...
Pascal Functions
   A function declaration associates an identifier with a block of statements, able
    to be called in ...
Pascal Units
   Complete Pascal supports the use of Units,
    which are stand alone modules (or libraries)
    which may...
Your very first program!
Hello Mt Keira Fest!
   Open Complete Pascal and select FileNew
    from the menu.
   In the Create File box, type Hell...
Hello Mt Keira Fest! (continued)
   Type in the following:
    Program HelloKFest;

    begin
      writeln(‘Hello (Mt) K...
Compile Your Code
   You can check the syntax of your code without
    compiling it by clicking CompileCheck Syntax,
   ...
Running Your Program
   You can execute your program by:
     Exiting Complete Pascal and running your program
      fro...
Introducing the Toolbox
The Apple IIgs Toolbox
   The Apple IIgs Toolbox is comprised of a number of
    specialised tool sets.
   Each tool set...
What Do the Toolsets Provide?
   Quickdraw II - Graphics routines
   Memory Manager – allocating/deallocating
    memory...
Using the Toolbox
Complete Pascal & the Toolbox
   Complete Pascal comes complete with interface
    files necessary to hook directly into ...
Upcoming SlideShare
Loading in …5
×

Apple IIgs Programming (K Fest)

2,351 views

Published on

My presentation on "An Introduction to Apple IIgs Programming in a High Level Language" presented at Mt Keira Fest 2009.

Published in: Technology, Business
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,351
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
19
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Apple IIgs Programming (K Fest)

  1. 1. An Introduction to Apple IIgs Programming in a High Level Language by Mike Stephens First Presented at Mt Keira Fest 2009
  2. 2. Topics To Cover  What programming languages are available?  An overview of Complete Pascal  A quick introduction to Pascal  Your very first program!  Introducing the Toolbox  Using the Toolbox
  3. 3. What programming languages are available?
  4. 4. BASIC Programming  Applesoft BASIC with Toolbox extensions (Interpreted)  TML BASIC  Micol Advanced BASIC  GSoft BASIC (Interpreted)
  5. 5. ORCA Languages  ORCA/Integer BASIC  ORCA/Pascal  ORCA/C  ORCA/Modula-2
  6. 6. Complete Pascal My recommendation for anyone wanting to get started with high level language programming on the Apple IIgs is…. You guessed it! Complete Pascal.
  7. 7. An overview of Complete Pascal
  8. 8. Complete Pascal Positives:  Is freely available  Is a compiled language  Has full access to the Apple IIgs Toolbox  Has an uncomplicated and easy to learn development environment  Has some nice extensions to Pascal
  9. 9. Complete Pascal Negatives:  Has some bugs in the GUI resource editor  Produces larger & less efficient compiled code (as compared to ORCA/Pascal)  Can not link to assembly code (however, inline assembly code is possible)  No debugger
  10. 10. A quick introduction to Pascal
  11. 11. Pascal Overview (continued)  In Complete Pascal, comments start with a (* and end with a *) OR comments may start with a { and end with a } .  Examples of comments:  (* this is a comment *)  { so is this! }
  12. 12. Pascal Overview The basic structure of a Pascal program is: PROGRAM ProgramName (FileList); CONST (* Constant declarations *) TYPE (* Type declarations *) VAR (* Variable declarations *) (* Subprogram definitions *) BEGIN (* Executable statements *) END.
  13. 13. Pascal Overview (continued)  Rules for identifiers:  Must begin with a letter from the English alphabet.  Can be followed by alphanumeric characters (alphabetic characters and numerals) and possibly the underscore (_).  May not contain certain special characters, many of which have special meanings in Pascal. ~ ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' < > ? , . / |  May be any of the reserved words (see the TML Pascal II manual for details).
  14. 14. Pascal Overview (continued)  Pascal is not case sensitive!  MyProgram, MYPROGRAM, and mYpRoGrAm are all equivalent.  For readability purposes, it is a good idea to use meaningful capitalization.  An identifier can be any length so long as it can fit on one line, however, in Complete Pascal only the first 255 characters are significant.
  15. 15. Pascal Array Types  An array type defines a structure that has a set number of components, and all of the components are of the same type.  Array types in Pascal take the form: ARRAY[ <INDEX TYPE> ] OF <COMPONENT TYPE>  For example, an array of 100 real numbers: array[1..100] of real
  16. 16. Pascal Record Types  A record type consists of a specified collection of components called fields, each one capable of being a different type. Each field of a record type must specify its type, and the name of its identifier. For example: record year: integer; month: 1..12; day: 1..31; end
  17. 17. Complete Pascal Strings  A string type is a succession of characters having a dynamic length attribute and a constant dimension attribute of 1 to 255.  The current value of the length attribute for a string type is returned by the standard function length.  A null string is a string type value that has a dynamic length of zero.  For example: var myString : string; myLength : Integer; myString := ‘Hello Mt Keira Fest!’; myLength := Length(myString); { myLength equals 20 }
  18. 18. Pascal Assignment  Once you have declared a variable, you can store values in it. This is called assignment.  To assign a value to a variable, follow this syntax: variable_name := expression;  For example: myFloat := 10.559;
  19. 19. Pascal Relational Operators  The operand types and the corresponding results for Relational operations are shown in the following table: Operator Meaning < Less than > Greater than = Equal to <= Less than or equal to >= Greater than or equal to <> Not equal to
  20. 20. Complete Pascal Control Statements  The GOTO statement will pass control to another part of the program located in the same block.  The CYCLE statement forces a repetition statement to immediately execute the next iteration of a loop.  The LEAVE statement forces the immediate exit from a repetition statement loop.  The HALT statement will stop the execution of the program immediately.
  21. 21. Pascal Procedures  A procedure declaration associates an identifier with a block of statements.  A procedure is called by using the procedure identifier and the current parameters required by it.  An example of a procedure declaration: procedure Num2String (N: integer; var S: string); var V: integer; begin V := Abs(N); S:=''; repeat S:= concat(Chr(V mod 10 + ord('0')),S); V:= V div 10; until V = 0; if V<0 then S := Concat(('-',S); end;
  22. 22. Pascal Functions  A function declaration associates an identifier with a block of statements, able to be called in order to calculate and return a value of the specified type.  An example of a function declaration: function Num2String(N: integer;) : string; var V: integer; S: string; begin V := Abs(N): S := ''; repeat S := concat(Chr(V mod 10 + ord('0')),S); V := V div 10; until V = 0; if V<0 then S := concat('-',S); Num2String := S; end;
  23. 23. Pascal Units  Complete Pascal supports the use of Units, which are stand alone modules (or libraries) which may define any number of procedures and functions.  Units are compiled separately.  Units are made accessible to a main program or to other Units via the USES clause.
  24. 24. Your very first program!
  25. 25. Hello Mt Keira Fest!  Open Complete Pascal and select FileNew from the menu.  In the Create File box, type HelloKFest.p and click New.  You will then be presented with a new window in which to type your first Complete Pascal program.
  26. 26. Hello Mt Keira Fest! (continued)  Type in the following: Program HelloKFest; begin writeln(‘Hello (Mt) K(eira)Fest!!’); readln; end.
  27. 27. Compile Your Code  You can check the syntax of your code without compiling it by clicking CompileCheck Syntax, however, most times you will probably just want to compile to disk by clicking CompileTo Disk.  If everything went smoothly, you should have just created your first Complete Pascal textbook application!
  28. 28. Running Your Program  You can execute your program by:  Exiting Complete Pascal and running your program from the Finder; or  From within Complete Pascal click GSOSTransfer and select your HELLOKFEST application and click Transfer.
  29. 29. Introducing the Toolbox
  30. 30. The Apple IIgs Toolbox  The Apple IIgs Toolbox is comprised of a number of specialised tool sets.  Each tool set is made up of a number of routines that you can use from within your own programs.  The Toolbox routines are designed to hide the complexity of dealing with the IIgs hardware.  To become really familiar with the Apple IIgs Toolbox, you need to have the 3 Toolbox reference manuals + the GS/OS manual.
  31. 31. What Do the Toolsets Provide?  Quickdraw II - Graphics routines  Memory Manager – allocating/deallocating memory  Sound Toolset – load and play digitized sounds  SANE – floating point routines  Window Manager – create & handle windows  Event Manager – handle system events  Plus more!
  32. 32. Using the Toolbox
  33. 33. Complete Pascal & the Toolbox  Complete Pascal comes complete with interface files necessary to hook directly into the Toolbox routines  As a rule of thumb, each tool set is defined as a Unit, which you can use from your programs/units by adding the appropriate tool set interface file to the USES clause.

×