home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0500
/
CCE_0544.ZIP
/
CCE_0544
/
MACROS.CLI
< prev
next >
Wrap
Text File
|
1987-11-09
|
13KB
|
565 lines
TTL 'MACROS.CLI'
NOLIST
;
; A_line Macros
;
aline_init MACRO
DC.W $A000 ;aline_init
ENDM
show_mouse MACRO
DC.W $A009 ;show_mouse
ENDM
hide_mouse MACRO
DC.W $A00A ;hide_mouse
ENDM
;
; Aline Array Equates
;
CONTRL EQU 4 ;contrl array pointer
INTIN EQU 8 ;intin array pointer
;
; AES Application functions
;
;
; initialize application
;
; appl_init
;
appl_init MACRO
CLR.L ap1resv
CLR.L ap2resv
CLR.L ap3resv
CLR.L ap4resv
MOVE.W #10,opcode
CLR.W sintin
MOVE.W #1,sintout
CLR.W saddrin
CLR.W saddrout
MOVE.L #aespb,D1
MOVE.W #$C8,D0
TRAP #2
ENDM
;
; add a desktop accessory to the list of available accessories
;
; menu_register accessory_id, name_address
;
menu_register MACRO
MOVE.W #35,contrl
MOVE.W #1,contrl+2
MOVE.W #1,contrl+4
MOVE.W #1,contrl+6
CLR.W contrl+8
MOVE.W \1,intin
MOVE.L \2,addrin
MOVE.L #aespb,D1
MOVE.W #$C8,D0
TRAP #2
ENDM
;
; wait until a message is present in the message pipe
;
; evnt_mesag buffer_address
;
evnt_mesag MACRO
MOVE.W #23,contrl
CLR.W contrl+2
MOVE.W #1,contrl+4
MOVE.W #1,contrl+6
CLR.W contrl+8
MOVE.L \1,addrin
MOVE.L #aespb,D1
MOVE.W #$C8,D0
TRAP #2
ENDM
;
; display a warning message
;
; form_alert default_button, string_address
;
form_alert MACRO
MOVE.W #52,contrl
MOVE.W #1,contrl+2
MOVE.W #1,contrl+4
MOVE.W #1,contrl+6
CLR.W contrl+8
MOVE.W \1,intin
MOVE.L \2,addrin
MOVE.L #aespb,D1
MOVE.W #$C8,D0
TRAP #2
ENDM
;
; GEMDOS functions
;
;
; get a character from the keyboard. character is returned in D0.L
;
; conin
;
conin MACRO
MOVE.W #$01,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; output a character to the screen
;
; conout character
;
conout MACRO
MOVE.W \1,-(SP)
MOVE.W #$02,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #4,SP
ENDM
;
; read a character from the keyboard, no screen echo. char is in D0.L
;
; coninwoe
;
coninwoe MACRO
MOVE.W #$07,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; check keyboard status. D0.W = 0 ⇨ no keystrokes are buffered
;
; constat
;
constat MACRO
MOVE.W #$0B,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; set the default drive. D0.W contains old default drive number (0 or 1)
;
; setdrv drive_number
;
setdrv MACRO
MOVE.W \1,-(SP)
MOVE.W #$0E,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #4,SP
ENDM
;
; get the current default drive number. D0.W returns drive number (0 or 1)
;
; getdrv
;
getdrv MACRO
MOVE.W #$19,-(SP) ;get default drive
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; get the system date. D0.W = YYYYYYYMMMMDDDDD
;
; getdate
;
getdate MACRO
MOVE.W #$2A,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; get the system time. D0.W = HHHHHMMMMMMSSSSS
;
; gettime
;
gettime MACRO
MOVE.W #$2C,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; get the disk transfer address. D0.L = address of the dta buffer
;
; getdta
;
getdta MACRO
MOVE.W #$2F,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; get the free space on a disk
;
; freespace buffer_address, drive_code(0-2)
;
freespace MACRO
MOVE.W \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #$36,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #8,SP
ENDM
;
; create a directory or folder. D0.L < 0 ⇨ error occurred
;
; mkdir path_address
;
mkdir MACRO
MOVE.L \1,-(SP)
MOVE.W #$39,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #6,SP
ENDM
;
; delete a directory or folder. D0.L < 0 ⇨ error occurred
;
; rmdir path_address
;
rmdir MACRO
MOVE.L \1,-(SP)
MOVE.W #$3A,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #6,SP
ENDM
;
; set the default path. D0.L < 0 ⇨ error occurred
;
; chdir path_address
;
chdir MACRO
MOVE.L \1,-(SP)
MOVE.W #$3B,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #6,SP
ENDM
;
; create and open file. D0.L < 0 ⇨ error occurred, else D0.L = handle
;
; create path_address, file_attribute
;
create MACRO
MOVE.W \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #$3C,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #8,SP
ENDM
;
; open file. D0.L < 0 ⇨ error occurred, else D0.L = handle
;
; open path_address, mode_word
;
open MACRO
MOVE.W \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #$3D,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #8,SP
ENDM
;
; read from file. D0.L < 0 ⇨ error occurred, else D0.L = # of bytes read
;
; read handle, #_bytes, buffer_address
;
read MACRO
MOVE.L \3,-(SP)
MOVE.L \2,-(SP)
MOVE.W \1,-(SP)
MOVE.W #$3F,-(SP)
TRAP #1 ;GEMDOS
LEA 12(SP),SP
ENDM
;
; write to file. D0.L < 0 ⇨ error occurred, else D0.L = # of bytes written
;
; write handle, #_bytes, buffer_address
;
write MACRO
MOVE.L \3,-(SP)
MOVE.L \2,-(SP)
MOVE.W \1,-(SP)
MOVE.W #$40,-(SP)
TRAP #1 ;GEMDOS
LEA 12(SP),SP
ENDM
;
; delete file. D0.L < 0 ⇨ error occurred, else D0.L = 0
;
; unlink path_address
;
unlink MACRO
MOVE.L \1,-(SP)
MOVE.W #$41,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #6,SP
ENDM
;
; change file attributes. D0.L < 0 ⇨ error, else D0.W = file attributes
;
; chmod path_address, get\set_code, attribute_word
;
chmod MACRO
MOVE.W \3,-(SP)
MOVE.W \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #$43,-(SP)
TRAP #1 ;GEMDOS
LEA 10(SP),SP
ENDM
;
; get the current path. D0.L < 0 ⇨ error occurred, else D0.L = 0
;
; getdir path_buffer, drive_code(0-2)
getdir MACRO
MOVE.W \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #$47,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #8,SP
ENDM
;
; allocate memory. D0.L < 0 ⇨ error occurred, else D0.L = memory address
; if #_bytes = -1, then D0.L = total # of bytes available
;
; malloc #_bytes
;
malloc MACRO
MOVE.L \1,-(SP)
MOVE.W #$48,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #6,SP
ENDM
;
; deallocate memory. D0.L < 0 ⇨ error occurred, else D0.L = 0
;
; mfree memory_address
;
mfree MACRO
MOVE.L \1,-(SP)
MOVE.W #$49,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #6,SP
ENDM
;
; spawn a process. D0.L < 0 ⇨ error occurred, else D0.L = base page address
;
; exec mode_word, path_address, command_address, env_address
;
exec MACRO
MOVE.L \4,-(SP)
MOVE.L \3,-(SP)
MOVE.L \2,-(SP)
MOVE.W \1,-(SP)
MOVE.W #$4B,-(SP)
TRAP #1 ;GEMDOS
LEA 16(SP),SP
ENDM
;
; search a directory for a file, with wildcards. D0.W = 0 ⇨ file found
;
; sfirst path_address, attribute_word
;
sfirst MACRO
MOVE.W \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #$4E,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #8,SP
ENDM
;
; determine if there are any other files which match the template given
; by the sfirst call. D0.W = 0 ⇨ file found
;
; snext
;
snext MACRO
MOVE.W #$4F,-(SP)
TRAP #1 ;GEMDOS
ADDQ.L #2,SP
ENDM
;
; rename file. D0.L < 0 ⇨ error occurred, else D0.L = 0
;
; rename old_path_address, new_path_address
;
rename MACRO
MOVE.L \2,-(SP)
MOVE.L \1,-(SP)
CLR.W -(SP)
MOVE.W #$56,-(SP)
TRAP #1 ;GEMDOS
LEA 12(SP),SP
ENDM
;
; BIOS functions
;
;
; determine if a disk has been swapped. D0.L = status of disk(0-2)
;
; mediach drive_number(0 or 1)
;
mediach MACRO
MOVE.W \1,-(SP)
MOVE.W #9,-(SP)
TRAP #13 ;BIOS
ADDQ.L #4,SP
ENDM
;
; get a map of available drives. D0.L = bit map of drives (two assumed)
;
; drvmap
;
drvmap MACRO
MOVE.W #10,-(SP)
TRAP #13 ;BIOS
ADDQ.L #2,SP
ENDM
;
; XBIOS functions
;
;
; get address of the physical screen RAM. D0.L = screen address
;
; physbase
;
physbase MACRO
MOVE.W #2,-(SP)
TRAP #14 ;EXTENDED BIOS
ADDQ.L #2,SP
ENDM
;
; get address of the logical screen RAM. D0.L = screen address
;
; logbase
;
logbase MACRO
MOVE.W #3,-(SP)
TRAP #14 ;EXTENDED BIOS
ADDQ.L #2,SP
ENDM
;
; set screen parameters
;
; setscreen logbase, physbase, resolution
;
setscreen MACRO
MOVE.W \3,-(SP)
MOVE.L \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #5,-(SP)
TRAP #14 ;EXTENDED BIOS
LEA 12(SP),SP
ENDM
;
; write a disk sector. D0.L < 0 ⇨ error occurred, else D0.L = 0
;
; flopwr buf_addr, disk_#, sector_#, track_#, side_#, #_sectors
;
flopwr MACRO
MOVE.W \6,-(SP)
MOVE.W \5,-(SP)
MOVE.W \4,-(SP)
MOVE.W \3,-(SP)
MOVE.W \2,-(SP)
CLR.L -(SP)
MOVE.L \1,-(SP)
MOVE.W #9,-(SP)
TRAP #14 ;EXTENDED BIOS
LEA 20(SP),SP
ENDM
;
; format disk. D0.L < 0 ⇨ error occurred, else D0.L = 0
;
; flopfmt buf_adr, dsk_#, #_scts\trck, trck_#, sde_#, interleave
;
flopfmt MACRO
MOVE.W #$E5E5,-(SP) ;virgin sector data
MOVE.L #$87654321,-(SP) ;magic number
MOVE.W \6,-(SP)
MOVE.W \5,-(SP)
MOVE.W \4,-(SP)
MOVE.W \3,-(SP)
MOVE.W \2,-(SP)
CLR.L -(SP)
MOVE.L \1,-(SP)
MOVE.W #10,-(SP)
TRAP #14 ;EXTENDED BIOS
LEA 26(SP),SP
ENDM
;
; produce a disk boot sector
;
; protobt buffer_address, serial_number, disk_info, execute_flag
;
protobt MACRO
MOVE.W \4,-(SP)
MOVE.W \3,-(SP)
MOVE.L \2,-(SP)
MOVE.L \1,-(SP)
MOVE.W #18,-(SP)
TRAP #14 ;EXTENDED BIOS
LEA 14(SP),SP
ENDM
;
; set the cursor configuration
;
; cursconf function, blink_rate
;
cursconf MACRO
MOVE.W \2,-(SP)
MOVE.W \1,-(SP)
MOVE.W #21,-(SP)
TRAP #14 ;EXTENDED BIOS
ADDQ.L #6,SP
ENDM
LIST