
tos_init	macro
	move.l	4(a7),a0	
	move.l	$c(a0),d0
	add.l	$14(a0),d0
	add.l	$1c(a0),d0
	add.l	#$500,d0		For stack & basepage	
	lea	0(a0,d0.l),sp
	m_shrink	d0,(a0)
	endm

*************gemdos**************
p_term0	macro
	clr	-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_conin	macro
	move	#1,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_conout	macro
	move	\1,-(sp)
	move	#2,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
c_auxin	macro
	move	#3,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_auxout	macro
	move	\1,-(sp)
	move	#4,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
c_prnout	macro
	move	\1,-(sp)
	move	#5,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
c_rawio	macro
	move	\1,-(sp)
	move	#6,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
c_rawcin	macro
	move	#7,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_necin	macro
	move	#8,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_conws	macro
	pea	\1
	move	#9,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
c_conrs	macro
	pea	\1
	move	#10,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
c_conis	macro
	move	#$b,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
d_setdrv	macro
	move	\1,-(sp)
	move	#$e,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
c_conos	macro
	move	#$10,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_prnos	macro
	move	#$11,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_auxis	macro
	move	#$12,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
c_auxos	macro
	move	#$13,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
m_addalt	macro
	move.l	\1,-(sp)
	move.l	\2,-(sp)
	move	#$14,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
d_getdrv	macro
	move	#$19,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
f_setdta	macro
	pea	\1
	move	#$1a,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
super	macro
	move.l	\1,-(sp)
	move	#$20,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
t_getdate	macro
	move	#$2a,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
t_setdate	macro
	move	\1,-(sp)
	move	#$2b,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
t_gettime	macro
	move	#$2c,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
t_settime	macro
	move	\1,-(sp)
	move	#$2d,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
f_getdta	macro
	move	#$2f,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
s_version	macro
	move	#$30,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
p_termres	macro
	move	\1,-(sp)
	move.l	\2,-(sp)
	move	#$31,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
d_free	macro
	move	\1,-(sp)
	pea	\2
	move	#$36,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
d_create	macro
	pea	\1
	move	#$39,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
d_delete	macro
	pea	\1
	move	#$3a,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
d_setpath	macro
	pea	\1
	move	#$3b,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
f_create	macro
	move	\1,-(sp)
	pea	\2
	move	#$3c,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
f_open	macro
	move	\1,-(sp)
	pea	\2
	move	#$3d,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
f_close	macro
	move	\1,-(sp)
	move	#$3e,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
f_read	macro
	pea	\1
	move.l	\2,-(sp)
	move	\3,-(sp)
	move	#$3f,-(sp)
	trap	#1
	lea	12(sp),sp
	endm
f_write	macro
	pea	\1
	move.l	\2,-(sp)
	move	\3,-(sp)
	move	#$40,-(sp)
	trap	#1
	lea	12(sp),sp
	endm
f_delete	macro
	pea	\1
	move	#$41,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
f_seek	macro
	move	\1,-(sp)
	move	\2,-(sp)
	move.l	\3,-(sp)
	move	#$42,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
f_attrib	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	pea	\3
	move	#$43,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
m_xalloc	macro
	move	\1,-(sp)
	move.l	\2,-(sp)
	move	#$44,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
f_dup	macro	
	move	\1,-(sp)
	move	#$45,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
f_force	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	#$46,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
d_getpath	macro	
	move	\1,-(sp)
	pea	\2
	move	#$47,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
m_alloc	macro	
	move.l	\1,-(sp)
	move	#$48,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
m_free	macro	
	pea	\1
	move	#$49,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
m_shrink	macro	
	move.l	\1,-(sp)
	pea	\2
	clr	-(sp)
	move	#$4a,-(sp)
	trap	#1
	lea	12(sp),sp
	endm
p_exec	macro	
	ifeq	narg-4
	pea	\1
	pea	\2
	pea	\3
	move	\4,-(sp)
	move	#$4b,-(sp)
	trap	#1
	lea	16(sp),sp
	elseif
	ifeq	narg-7
	move.l	\1,-(sp)
	move.l	\2,-(sp)
	pea	\3
	pea	\4
	pea	\5
	pea	\6
	move	\7,-(sp)
	move	#$4b,-(sp)
	trap	#1
	lea	28(sp),sp
	elseif
	pea	\1
	move.w	\2,-(sp)
	move.l	\3,-(sp)
	move.l	\4,-(sp)
	pea	\5
	pea	\6
	pea	\7
	pea	\8
	move	\9,-(sp)
	move	#$4b,-(sp)
	trap	#1
	lea	34(sp),sp
	endc
	endc
	endm
p_term	macro	
	move	\1,-(sp)
	move	#$4c,-(sp)
	trap	#1
	endm
f_sfirst	macro	
	move	\1,-(sp)
	pea	\2
	move	#$4e,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
f_snext	macro
	move	#$4f,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
f_rename	macro	
	pea	\1
	pea	\2
	clr	-(sp)
	move	#$56,-(sp)
	trap	#1
	lea	12(sp),sp
	endm
f_datime	macro
	move	\1,-(sp)
	move	\2,-(sp)
	pea	\3
	move	#$57,-(sp)
	trap	#1
	lea	10(sp),sp
	endm

f_lock	macro
	move.l	\1,-(sp)
	move.l	\2,-(sp)
	move.w	\3,-(sp)
	move.w	\4,-(sp)
	move.w	#$5c,-(sp)
	trap	#1
	lea	14(sp),sp
	endm

* All of our added functions will start at $80, well above the region that
* Atari will likely use in the future.
p_userid	macro
	move.l	\1,-(sp)
	move.w	\2,-(sp)
	move.w	\3,-(sp)
	move	#$80,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
p_priority	macro
	move	\1,-(sp)
	move	\2,-(sp)
	move	#$81,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
p_getpid	macro
	move	#$82,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
p_getppid	macro
	move	#$83,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
p_getpd	macro
	move	\1,-(sp)
	move	#$84,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
p_findpid	macro
	pea	\1
	move	#$85,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
p_procinf	macro
	pea	\1
	move	\2,-(sp)
	move	#$86,-(sp)
	trap	#1
	addq.l	#8,sp
	endm

p_nice	macro
	move	\1,-(sp)
	move	\2,-(sp)
	move	#$87,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
	
m_salloc	macro
	move.l	\1,-(sp)
	move	#$88,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
m_assign	macro
	pea	\1
	move	\2,-(sp)
	move	#$89,-(sp)
	trap	#1
	addq.l	#8,sp
	endm

f_status	macro
	move	\1,-(sp)
	move	\2,-(sp)
	move	#$8b,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
f_sfirstoff	macro
	move	\1,-(sp)
	move	\2,-(sp)
	pea	\3
	move	#$8c,-(sp)
	trap	#1
	lea	10(sp),sp
	endm

wake_parent	macro
	move	\1,-(sp)
	move	#$8d,-(sp)
	trap	#1
	addq.l	#4,sp
	endm
wait	macro
	move	#$8e,-(sp)
	trap	#1
	addq.l	#2,sp
	endm
sleep	macro
	move.l	\1,-(sp)
	move	#$8f,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
ioqueue	macro
	move.l	\1,-(sp)
	move	\2,-(sp)
	move	#$90,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
wait_time	macro
	move.l	\1,-(sp)
	move	#$91,-(sp)
	trap	#1
	addq.l	#6,sp
	endm

dev_create	macro
	move	\1,-(sp)		Share flag (0=shareable)
	pea	\2		Vars to copy to device descriptor
	pea	\3		Vars to copy to new paths
	pea	\4		Name of device driver
	pea	\5		Name of file manager
	pea	\6		Name system will recognize device as
	move	#$92,-(sp)
	trap	#1
	lea	24(sp),sp
	endm
dev_fm_add	macro
	move	\4,-(sp)		File manager type
	pea	\3		Var ptr to load into a6 before calling
	pea	\2		Subroutine entry point
	pea	\1		Name of file manager
	move	#$93,-(sp)
	trap	#1
	lea	16(sp),sp
	endm
dev_dd_add	macro
	pea	\3		Var ptr loaded into a6 before calling
	pea	\2		Subroutine entry point
	pea	\1		Name of device driver
	move	#$94,-(sp)
	trap	#1
	lea	14(sp),sp
	endm
list_devs	macro
	pea	\1
	move	\2,-(sp)
	move	#$95,-(sp)
	trap	#1
	addq.l	#8,sp
	endm

s_send	macro
	move.l	\1,-(sp)
	move	\2,-(sp)
	move	#$96,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
s_intercept	macro
	pea	\1
	pea	\2
	move	#$97,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
p_suspend	macro
	move	\1,-(sp)
	move	#$98,-(sp)
	trap	#1
	addq.l	#4,sp
	endm

q_message	macro
	pea	\1
	move	#$99,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
q_semaphore	macro
	pea	\1
	move	#$9a,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
m_share	macro
	pea	\1
	move	#$9b,-(sp)
	trap	#1
	addq.l	#6,sp
	endm

os_fvector	macro
	pea	\1
	move	\2,-(sp)
	move	\3,-(sp)
	move	#$9e,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
os_sysvar	macro
	move.l	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	#$9f,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
p_name	macro
	pea	\1
	move	\2,-(sp)
	move	\3,-(sp)
	move	#$a0,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
p_vector	macro
	move.l	\1,-(sp)
	move	\2,-(sp)
	move	#$a1,-(sp)
	trap	#1
	addq.l	#8,sp
	endm
p_attrib	macro
	move	\1,-(sp)		Two byte values together
	move	\2,-(sp)
	move	#$a2,-(sp)
	trap	#1
	addq.l	#6,sp
	endm
p_maxmem	macro
	move.l	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	#$a3,-(sp)
	trap	#1
	lea	10(sp),sp
	endm
	
**************bios**************

getmpb	macro	
	pea	\1
	clr	-(sp)
	trap	#13
	addq.l	#6,sp
	endm
bconstat	macro	
	move	\1,-(sp)
	move	#1,-(sp)
	trap	#13
	addq.l	#4,sp
	endm
bconin	macro	
	move	\1,-(sp)
	move	#2,-(sp)
	trap	#13
	addq.l	#4,sp
	endm
bconout	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	#3,-(sp)
	trap	#13
	addq.l	#6,sp
	endm
rwabs	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	pea	\4
	move	\5,-(sp)
	move	#4,-(sp)
	trap	#13
	lea	14(sp),sp
	endm
setexec	macro	
	pea	\1
	move	\2,-(sp)
	move	#5,-(sp)
	trap	#13
	addq.l	#8,sp
	endm
tickcal	macro
	move	#6,-(sp)
	trap	#13
	addq.l	#2,sp
	endm
getbpb	macro	
	move	\1,-(sp)
	move	#7,-(sp)
	trap	#13
	addq.l	#4,sp
	endm
bcostat	macro	
	move	\1,-(sp)
	move	#8,-(sp)
	trap	#13
	addq.l	#4,sp
	endm
mediach	macro	
	move	\1,-(sp)
	move	#9,-(sp)
	trap	#13
	addq.l	#4,sp
	endm
drvmap	macro
	move	#10,-(sp)
	trap	#13
	addq.l	#2,sp
	endm
kbshift	macro	
	move	\1,-(sp)
	move	#11,-(sp)
	trap	#13
	addq.l	#4,sp
	endm

**************xbios**************
	
initmous	macro	
	pea	\1
	pea	\2
	move	\3,-(sp)
	clr	-(sp)
	trap	#14
	lea	12(sp),sp
	endm
ssbrk	macro	
	move	\1,-(sp)
	move	#1,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
physbase	macro
	move	#2,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
logbase	macro
	move	#3,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
getrez	macro
	move	#4,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
setscreen	macro	
	move	\1,-(sp)
	pea	\2
	pea	\3
	move	#5,-(sp)
	trap	#14
	lea	12(sp),sp
	endm
setpalette	macro	
	pea	\1
	move	#6,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
setcolor	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	#7,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
floprd	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	\4,-(sp)
	move	\5,-(sp)
	clr.l	-(sp)
	pea	\6
	move	#8,-(sp)
	trap	#14
	lea	20(sp),sp
	endm
flopwr	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	\4,-(sp)
	move	\5,-(sp)
	clr.l	-(sp)
	pea	\6
	move	#9,-(sp)
	trap	#14
	lea	20(sp),sp
	endm
flopfmt	macro	
	move	\1,-(sp)
	move.l	#$87654321,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	\4,-(sp)
	move	\5,-(sp)
	move	\6,-(sp)
	clr.l	-(sp)
	pea	\7
	move	#10,-(sp)
	trap	#14
	lea	26(sp),sp
	endm
midiws	macro	
	pea	\1
	move	\2,-(sp)
	move	#12,-(sp)
	trap	#14
	addq.l	#8,sp
	endm
mfpint	macro	
	pea	\1
	move	\2,-(sp)
	move	#13,-(sp)
	trap	#14
	addq.l	#8,sp
	endm
iorec	macro	
	move	\1,-(sp)
	move	#14,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
rsconf	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	\4,-(sp)
	move	\5,-(sp)
	move	\6,-(sp)
	move	#15,-(sp)
	trap	#14
	lea	14(sp),sp
	endm
keytbl	macro	
	pea	\1
	pea	\2
	pea	\3
	move	#16,-(sp)
	trap	#14
	lea	14(sp),sp
	endm
random	macro
	move	#17,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
protobt	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move.l	\3,-(sp)
	pea	\4
	move	#18,-(sp)
	trap	#14
	lea	14(sp),sp
	endm
flopver	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	\3,-(sp)
	move	\4,-(sp)
	move	\5,-(sp)
	clr.l	-(sp)
	pea	\6
	move	#19,-(sp)
	trap	#14
	lea	20(sp),sp
	endm
scrdmp	macro
	move	#20,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
cursconf	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	#21,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
settime	macro	
	move.l	\1,-(sp)
	move	#22,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
gettime	macro
	move	#23,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
bioskeys	macro
	move	#24,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
ikbdws	macro	
	pea	\1
	move	\2,-(sp)
	move	#25,-(sp)
	trap	#14
	addq.l	#8,sp
	endm
jdisint	macro
	move	\1,-(sp)
	move	#26,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
jenabint	macro	
	move	\1,-(sp)
	move	#27,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
giaccess	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	#28,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
offgibit	macro	
	move	\1,-(sp)
	move	#29,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
ongibit	macro	
	move	\1,-(sp)
	move	#30,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
xbtimer	macro	
	pea	\1
	move	\2,-(sp)
	move	\3,-(sp)
	move	\4,-(sp)
	move	#31,-(sp)
	trap	#14
	lea	12(sp),sp
	endm
dosound	macro	
	pea	\1
	move	#32,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
setprt	macro	
	move	\1,-(sp)
	move	#33,-(sp)
	trap	#14
	addq.l	#4,sp
	endm
kbdvbase	macro
	move	#34,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
kbrate	macro	
	move	\1,-(sp)
	move	\2,-(sp)
	move	#35,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
prtblk	macro	
	pea	\1
	move	#36,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
wvbl	macro
	move	#37,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
supexec	macro	
	pea	\1
	move	#38,-(sp)
	trap	#14
	addq.l	#6,sp
	endm
puntaes	macro
	move	#39,-(sp)
	trap	#14
	addq.l	#2,sp
	endm
bconmap	macro
	move	\1,-(sp)
	move	#44,-(sp)
	trap	#14
	addq.l	#4,sp
	endm

