supermario/base/SuperMarioProj.1994-02-09/Interfaces/AIncludes/IntEnv.a
2019-06-29 23:17:50 +08:00

137 lines
4.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; File: IntEnv.a
;
; Contains: xxx put contents here xxx
;
; Written by: xxx put writers here xxx
;
; Copyright: © 1991 by Apple Computer, Inc., all rights reserved.
;
; Change History (most recent first):
;
; <5> 3/13/91 JL Checked in MPW version. Restored TIOFlush.
; <4> 1/30/91 gbm sab, #38: Change the already including this file variable to
; all uppercase (for security reasons)
;
; To Do:
;
; File IntEnv.a
;
; Copyright Apple Computer, Inc. 1986 - 1990
; All rights reserved.
;
; Include File for Accessing the Integrated Environment Libraries
; Set CASE OBJECT to assure references to the names IMPORTed here link
; properly. The following statements restore the CASE setting to its
; previous value.
IF &TYPE('__INCLUDINGINTENV__') = 'UNDEFINED' THEN
__INCLUDINGINTENV__ SET 1
PRINT Push,Off ; save current print settings and turn it off
GBLC &S%%%,&P%%%
&S%%% SETC &Setting('CASE') ; save current CASE setting
&P%%% SETC &Setting('PRINT',1) ; and PRINT settings before we changed them
MACRO
X%%%
GBLC &S%%%,&P%%% ; link references with previously defined variables
PRINT Push,&P%%% ; restore the previous PRINT settings
CASE &S%%% ; and restore the CASE setting
PRINT POP ; restore the PRINT settings
ENDM
PRINT Pop ; restore the PRINT settings
CASE OBJECT ; all imported/exported names case significant
; Integrated Environment Globals
IMPORT StandAlone ; a long, 0 if in shell, 1 if standalone
IMPORT errno ; a long, error number; set on unsuccessful I/O calls
IMPORT MacOSErr ; a word; set along with errno if appropriate
; Integrated Environment Routines
IMPORT _DataInit ; called for you by _RTInit
IMPORT _RTInit ; your tool MUST call this routine on startup
IMPORT _RTExit ; Does NOT return
IMPORT getenv
IMPORT IEGETENV
IMPORT atexit
IMPORT exit
IMPORT _exit
IMPORT faccess
; cmd values for faccess
; F_OPEN EQU (('d'<<8)|$0) ; for internal use only
; 'd' => "directory" ops; available for any program
F_DELETE EQU (('d'<<8)|$1) ; deletes filename
F_RENAME EQU (('d'<<8)|$2) ; renames file to string pointed to by arg
; 'e' => "editor" ops; available to programs running under MPW
F_GTABINFO EQU (('e'<<8)|$0) ; arg is address of long, has tab offset
F_STABINFO EQU (('e'<<8)|$1) ; arg is address of long, new tab offset
F_GFONTINFO EQU (('e'<<8)|$2) ; arg is address of long, has font info
F_SFONTINFO EQU (('e'<<8)|$3) ; arg is address of long, new font info
; high order-font number; low-font size
F_GPRINTREC EQU (('e'<<8)|$4) ; arg is handle to print record TPrint
F_SPRINTREC EQU (('e'<<8)|$5) ; arg sets handle to print record TPrint
F_GSELINFO EQU (('e'<<8)|$6) ; arg is address of selection record
F_SSELINFO EQU (('e'<<8)|$7) ; arg is address of selection record
F_GWININFO EQU (('e'<<8)|$8) ; arg is address of a rect
F_SWININFO EQU (('e'<<8)|$9) ; arg is address of a rect
F_GSCROLLINFO EQU (('e'<<8)|$A) ; get scroll information
F_SSCROLLINFO EQU (('e'<<8)|$B) ; set scroll information
IMPORT open
; mode values for open call
O_RDONLY EQU 0
O_WRONLY EQU 1
O_RDWR EQU 2
; auxiliary mode flags for open call (one of above plus zero or more from this list)
O_APPEND EQU (1<<3) ; when writing, seek to EOF before each write
O_RSRC EQU (1<<4) ; open the resource fork
O_CREAT EQU (1<<8) ; create file if it doesn't exist
O_TRUNC EQU (1<<9) ; truncate file to zero size
; only valid with O_CREAT specified
O_EXCL EQU (1<<10) ; if O_CREAT is set, open will fail if file exists
; predefined file descriptors for standard input, standard output, and diagnostic output
InputFD EQU 0
OutputFD EQU 1
DiagnosticFD EQU 2
IMPORT close
IMPORT read
IMPORT write
IMPORT ioctl
; selector values for ioctl calls
; FIOLSEEK EQU (('f'<<8)|00) ; internal use only
; FIODUPFD EQU (('f'<<8)|01) ; internal use only
FIOINTERACTIVE EQU (('f'<<8)|02) ; returns 0 if interactive, -1 if not
FIOBUFSIZE EQU (('f'<<8)|03) ; Arg is address of long, returns the optimal
; buffer size for this device
FIOFNAME EQU (('f'<<8)|04) ; Arg is address of filename associated with fd
FIOREFNUM EQU (('f'<<8)|05) ; Arg is address of short, returns fd's refnum
FIOSETEOF EQU (('f'<<8)|06) ; Set file length to long in arg
TIOFLUSH EQU (('t'<<8)|00) ; throw away terminal input
IMPORT lseek
; mode values for lseek
fromStart EQU 0
fromCurPos EQU 1
fromEnd EQU 2
IMPORT fcntl
; argument to fcntl
F_DUPFD EQU 0
PRINT Push,Off ; save and turn off PRINT when macro is invoked
X%%% ; invoke the macro to restore CASE setting
PRINT POP ; restore the PRINT settings
ENDIF ; ...already included