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