Amiga!
Home
Support
Get the SDK
(Answer) (Category) Amiga Inc. Faq-O-Matic : (Category) Amiga General FAQ :
Corrections for the SDK manual
The SDK and the manual to go with it were produced at the same time - inevitably some inconsistences cropped up, for which we apologise. These are the ones we've spotted so far, and corrections.

Page Correction
4 after 'To start an Amiga session, run this command'
insert 'intent_shell'
and delete the next four lines up to but not including 'This command loads...'

So now it reads:

To start an Amiga session, run this command:
intent_shell
from any directory other than the root.

This command loads...
26 The term TRACF, second word in the penultimate paragraph of the 'High Level Macros' section, should be 'TRACEF'
28 The first code example has the wrong type of bracket at the end:
qcall lib/abs,{d0 : d1]
should be
qcall lib/abs,{d0 : d1}
Tao feel the following text could usefully be elucidated:
"The VP translator automatically keeps a copy or re-uses the register, depending on the format of the call, not that of the tool."
In other words, register names are just symbols, and registers are renumbered on both the call and the return. The caller's d0 or d1 (depending on the example) will be overwritten by the return value from lib/abs, which is called d0 inside lib/abs but could correspond to any register outside the call, depending on the format of the call, rather than the code within the tool.

The first example qcall is thus equivalent to writing d1:=abs(d0); in Ada, Algol, C, Modula or Pascal, D1=ABS(D0) in BASIC or Fortran. The second is more like FABS FP0 in 68K assembler. The PPC equivalent instruction 'fabs' always puts the result in a different register, but the 68881/882/040/060 allows one or two operands, with the single-operand version by far the most commonly encountered.
31 VP Quick Reference Guide

The instructions 'go' and 'gos' can take a pointer or expression as a parameter as well as a label, so the types should be 'tp' not just 't', to confirm the implication of the discussion on page 27:
gos tag tp goto, unconditional jump
gos tag tp gosub, subroutine call
For example:
gos p0 gos [table+(i0*4)]
49 Incomplete sentence '...before and can , Multithreading ...' Delete 'and can ,' (whoops) and insert a '.' in its place.
71 In penultimate paragraph, delete all text from 'Optimisation of C++' to '...optimisation is specified.'
124 The examples on pages 127 as well as 124 can be simplified.

In the example for "hello world", you no longer need to qcall lib/exit if you don't need to return an exit status to the shell. The final 'ret' returns to the caller which calls lib/exit for you.
127 Elucidation about the call to argcargv at the top of the page.
qcall lib/argcargv,(-:p0 i0)
This call no longer has to be "directly after the ent directive and before any application specific code". It is an ordinary tool and can be used at any time.

"an integer to hold the number or arguments (argc)." would be better described as "an integer (argc) which is the number of parameters in the argv block."

                          param0 param1 param2

  argc = 3                  ^      ^      ^
  argv ----> argv[0]   -----|      |      |
             argv[1]   ------------|      |
             argv[2]   -------------------|
             NULL

The reference to Qcall before the heading 'Non-primary tools' should not start with a capital - it should be
qcall lib/exit(0:-)
- but note the comments regarding page 124 - this call may not be necessary at all.

On the last line of that page,
tool 'demo/example/hello2',VP,template
"VP,template" is optional. If missing, these are the defaults. Thus when defining normal tools in VP, you can write:
tool 'demo/example/hello2'
132 There is a fourth type of QCall - if the target tool is marked as embeddable the translator may embed the target tool directly in the calling tool's code. This typically increases the size of the calling tool but eliminates the overhead of the transfer of control to and from the target tool.
133 At the end of the paragraph headed 'They may be virtual' the word 'otherwise' has been mistyped as 'othewwise'.
277 'pnmtoilbm' should be 'ppmtoilbm' - it's a bitmap not an anymap

address-suppressed, address-suppressed
Page 210: There are two SLE maps on this page but the text doesn't say when each is used.
Page 212: There is another mapping on this page (below) emacs which has no explanation to it.
Page 233: Where is the %>{...} syntax explained ? The Shell Grammar Reference Guide is hardly an "explanation" :-)
Page 235: The code should probably read:
        catch {
          ... # code that might throw an exception
        } except status {
          case -- $except ~
(ie. the variable names should be on the same line as the }.
address-suppressed
[Append to This Answer]
Previous: (Answer) Where can I see reviews of the new Amiga Operating Environment?
Next: (Answer) Is there a Windows emulators or any way to run Windows application under the Amiga OS?
This document is: http://www.amiga.com/cgi-bin/fom.cgi?file=54
[Search] [Appearance]
This is a Faq-O-Matic 2.710.
This FAQ administered by ray@amiga.com


© 1996-2000 Amiga, Inc.