home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
compiler
/
nasm20b
/
doc
/
library.txt
< prev
next >
Wrap
Text File
|
1993-01-19
|
3KB
|
95 lines
----------------------------------------------------------------------
Copyright (C) 1990 by Natürlich!
This file is copyrighted!
Refer to the documentation for details.
----------------------------------------------------------------------
NASM65 --- a Atari 8-Bit Crossassembler for the Atari ST (et al.)
Preliminary manual for NASM65 libraries
Copyright © 1990 by Natürlich!
on sources, binaries and manuals
»» Bang that Bit that doesn't Bang ««
I n t r o d u c t i o n
The NASM65 system contains an at best rudimentary library of code, to
be linked to your programs. The style in which these libraries are
accessed is uniform and will be explained in this document. Refer also
to the NLIB65, NLINK65 and STDIO documentation.
A c c e s s i n g N A S M 6 5 l i b r a r i e s
Libraries are accessed by the user in a uniform way, very much akin to
C. The user includes a header file, like for example STDIO.H65. This
files contains setup/call macros for functions that reside in libraries.
The macros should be written in a generic sort of way, as exemplified
in STDIO.H65. The point being that you can use the .MACROs in two ways
Case 1:
.include #system
.include #stddef
.include #macros
.include #stdio
...
OPEN 2,8,0,file
PRINT 2,text,textend-text
CLOSE 2
...
file:
.byte "D:FOOBLE.BAR",0
text:
.byte "Hello World",155,0
textend:
Case 2:
.include #system
.include #stddef
.include #macros
.include #stdio
...
OPEN channel,mode,0,filename,@p3
PRINT channel,text,textlen,0
CLOSE channel,@special
...
channel: .ds 1
mode: .byte 8
text: .ds 128
textlen: .byte 128
In the first case, the macro is given values, whereas in the second
case the macro is given addresses. With the help of an auxiliary
parameter the user selects, which of the parameters are to be treated
as adresses and which as values. (Default: No parameter -> all values,
Parameter=0 -> all adresses)
(Convention : parameter does not exist, all values are poked,
parameter does exist : 0 = all values are addresses
Libraries should always be called with a JSR from the outside not
with a branch or JMP!!
*** NOTE ***
The setup macros are just for quick and dirty hacks, where you don't
care about wasting some bytes for the sake of coding the stuff in
maybe 10% of the time it would normally take you. If your writing
something "for real" I'd suggest skipping the MACROS and calling
the library directly.