X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=mach.h;h=4f6851d1842b837c3a4b06ebcb076feeb2fe3ab2;hp=65ea1488867b9c35d5960e4fdd0f1e43ee01d22a;hb=4205233c8397c581b4d27ab36ab81ec896ef3dd0;hpb=75cce0d9eb190f6094f66ae283b5981af25e5a57 diff --git a/mach.h b/mach.h index 65ea148..4f6851d 100644 --- a/mach.h +++ b/mach.h @@ -1,48 +1,35 @@ // -// RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System +// RMAC - Reboot's Macro Assembler for all Atari computers // MACH.H - Code Generation -// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2020 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 -// Source Utilised with the Kind Permission of Landon Dyer +// Source utilised with the kind permission of Landon Dyer // #ifndef __MACH_H__ #define __MACH_H__ #include "rmac.h" -#include "amode.h" -// Globals, Externals etc -extern char *seg_error; -extern char *undef_error; -extern char *rel_error; -extern char *range_error; -extern char *abs_error; -extern MNTAB machtab[]; +// Mnemonic table structure +#define MNTAB struct _mntab +MNTAB { + WORD mnattr; // Attributes (CGSPECIAL, SIZN, ...) + LONG mn0, mn1; // Addressing modes + WORD mninst; // Instruction mask + WORD mncont; // Continuation (or -1) + int (* mnfunc)(WORD, WORD); // Mnemonic builder +}; -// Prototypes -int m_unimp(), m_badmode(), m_bad6mode(), m_bad6inst(); -int m_self(WORD); -int m_abcd(WORD, WORD); -int m_reg(WORD, WORD); -int m_imm(WORD, WORD); -int m_imm8(WORD, WORD); -int m_shi(WORD, WORD); -int m_shr(WORD, WORD); -int m_bitop(WORD, WORD); -int m_exg(WORD, WORD); -int m_ea(WORD, WORD); -int m_br(WORD, WORD); -int m_dbra(WORD, WORD); -int m_link(WORD, WORD); -int m_adda(WORD, WORD); -int m_addq(WORD, WORD); -int m_move(WORD, int); -int m_moveq(WORD, WORD); -int m_usp(WORD, WORD); -int m_movep(WORD, WORD); -int m_trap(WORD, WORD); -int m_movem(WORD, WORD); -int m_clra(WORD, WORD); +// Exported variables +extern char seg_error[]; +extern char undef_error[]; +extern char rel_error[]; +extern char range_error[]; +extern char abs_error[]; +extern char unsupport[]; +extern MNTAB machtab[]; +extern int movep; #endif // __MACH_H__ +