- now compiles with GCC under AmigaOS

This commit is contained in:
cebix 1999-10-19 19:28:28 +00:00
parent d92b13e550
commit 9e903d1686
22 changed files with 263 additions and 204 deletions

View File

@ -10,6 +10,8 @@ V0.7 -
- added patches for NetBSD [Bernd Sieker]
- corrected TimerDateTime() in timer_unix.cpp and timer_beos.cpp
[Toshimitsu Tanaka]
- AmigaOS: fixed crash when gtlayout.library was not present
- AmigaOS: now compiles with GCC (Geek Gadgets)
- AmigaOS/clip_amiga.cpp: fixed small bug in CR->LF translation
[Giacomo Magnini]
- Unix: compilation of cpuemu.cpp is now split in 8 parts

View File

@ -47,7 +47,7 @@
XREF _InterruptFlags
XREF _MainTask
XREF _SysBase
XREF @QuitEmulator__Fv
XREF _quit_emulator
SECTION text,CODE
@ -261,7 +261,7 @@ _ExceptionHandlerAsm
moveq #0,d0 ;Disable all exception signals
moveq #-1,d1
JSRLIB SetExcept
jsr @QuitEmulator__Fv ;CTRL-C, quit emulator
jsr _quit_emulator ;CTRL-C, quit emulator
4$ move.l (sp)+,d0
rts

View File

@ -57,7 +57,7 @@ static int audio_block_fetched = 0; // Number of audio blocks fetched by inte
// Prototypes
static __saveds __asm ULONG audio_callback(register __a0 struct Hook *hook, register __a2 struct AHIAudioCtrl *ahi_ctrl, register __a1 struct AHISoundMessage *msg);
static __saveds __regargs ULONG audio_callback(struct Hook *hook /*a0*/, struct AHISoundMessage *msg /*a1*/, struct AHIAudioCtrl *ahi_ctrl /*a2*/);
/*
@ -174,7 +174,7 @@ void audio_exit_stream()
* AHI sound callback, request next buffer
*/
static __saveds __asm ULONG audio_callback(register __a0 struct Hook *hook, register __a2 struct AHIAudioCtrl *ahi_ctrl, register __a1 struct AHISoundMessage *msg)
static __saveds __regargs ULONG audio_callback(struct Hook *hook /*a0*/, struct AHISoundMessage *msg /*a1*/, struct AHIAudioCtrl *ahi_ctrl /*a2*/)
{
play_buf ^= 1;

View File

@ -135,8 +135,8 @@ void EtherInit(void)
proc_error = false;
SetSignal(0, SIGF_SINGLE);
net_proc = CreateNewProcTags(
NP_Entry, net_func,
NP_Name, "Basilisk II Ethernet Task",
NP_Entry, (ULONG)net_func,
NP_Name, (ULONG)"Basilisk II Ethernet Task",
NP_Priority, 1,
TAG_END
);
@ -287,7 +287,7 @@ static void remove_all_protocols(void)
* Copy received network packet to Mac side
*/
static __saveds __asm LONG copy_to_buff(register __a0 uint8 *to, register __a1 uint8 *from, register __d0 uint32 packet_len)
static __saveds __regargs LONG copy_to_buff(uint8 *to /*a0*/, uint8 *from /*a1*/, uint32 packet_len /*d0*/)
{
D(bug("CopyToBuff to %08lx, from %08lx, size %08lx\n", to, from, packet_len));
@ -313,23 +313,23 @@ static __saveds __asm LONG copy_to_buff(register __a0 uint8 *to, register __a1 u
* Copy data from Mac WDS to outgoing network packet
*/
static __saveds __asm LONG copy_from_buff(register __a0 uint8 *to, register __a1 uint32 wds, register __d0 uint32 packet_len)
static __saveds __regargs LONG copy_from_buff(uint8 *to /*a0*/, char *wds /*a1*/, uint32 packet_len /*d0*/)
{
D(bug("CopyFromBuff to %08lx, wds %08lx, size %08lx\n", to, wds, packet_len));
#if MONITOR
bug("Sending Ethernet packet:\n");
#endif
for (;;) {
int len = ReadMacInt16(wds);
int len = ReadMacInt16((uint32)wds);
if (len == 0)
break;
#if MONITOR
uint8 *adr = Mac2HostAddr(ReadMacInt32(wds + 2));
uint8 *adr = Mac2HostAddr(ReadMacInt32((uint32)wds + 2));
for (int i=0; i<len; i++) {
bug("%02lx ", adr[i]);
}
#endif
CopyMem(Mac2HostAddr(ReadMacInt32(wds + 2)), to, len);
CopyMem(Mac2HostAddr(ReadMacInt32((uint32)wds + 2)), to, len);
to += len;
wds += 6;
}
@ -635,7 +635,7 @@ void EtherInterrupt(void)
// Packet write done, enqueue DT to call IODone
if (write_done) {
Enqueue(ether_data + ed_DeferredTask, 0xd92);
EnqueueMac(ether_data + ed_DeferredTask, 0xd92);
write_done = false;
}

View File

@ -56,9 +56,13 @@
#include "debug.h"
// Our minimum stack requirement
unsigned long __stack = 0x4000;
// Constants
static const char ROM_FILE_NAME[] = "ROM";
static const char __ver[] = "$VER: " VERSION_STRING " " __AMIGADATE__;
static const char __ver[] = "$VER: " VERSION_STRING " " __DATE__;
static const int SCRATCH_MEM_SIZE = 65536;
@ -80,7 +84,10 @@ bool TwentyFourBitAddressing;
// Global variables
extern ExecBase *SysBase;
struct Library *GfxBase = NULL;
struct IntuitionBase *IntuitionBase = NULL;
struct Library *GadToolsBase = NULL;
struct Library *IFFParseBase = NULL;
struct Library *AslBase = NULL;
struct Library *P96Base = NULL;
struct Library *TimerBase = NULL;
@ -106,11 +113,6 @@ static bool stack_swapped = false; // Stack swapping
static StackSwapStruct stack_swap;
// Prototypes
static void jump_to_rom(void);
static void tick_func(void);
// Assembly functions
struct trap_regs;
extern "C" void AtomicAnd(uint32 *p, uint32 val);
@ -120,9 +122,15 @@ extern "C" void TrapHandlerAsm(void);
extern "C" void ExceptionHandlerAsm(void);
extern "C" void IllInstrHandler(trap_regs *regs);
extern "C" void PrivViolHandler(trap_regs *regs);
extern "C" void quit_emulator(void);
uint16 EmulatedSR; // Emulated SR (supervisor bit and interrupt mask)
// Prototypes
static void jump_to_rom(void);
static void tick_func(void);
/*
* Main program
*/
@ -141,10 +149,18 @@ int main(void)
printf(GetString(STR_ABOUT_TEXT1), VERSION_MAJOR, VERSION_MINOR);
printf(" %s\n", GetString(STR_ABOUT_TEXT2));
// Read preferences
PrefsInit();
// Open libraries
GfxBase = OpenLibrary((UBYTE *)"graphics.library", 39);
if (GfxBase == NULL) {
printf("Cannot open graphics.library V39.\n");
exit(1);
}
IntuitionBase = (struct IntuitionBase *)OpenLibrary((UBYTE *)"intuition.library", 39);
if (IntuitionBase == NULL) {
printf("Cannot open intuition.library V39.\n");
CloseLibrary(GfxBase);
exit(1);
}
DiskBase = (struct Library *)OpenResource((UBYTE *)"disk.resource");
if (DiskBase == NULL)
QuitEmulator();
@ -153,6 +169,11 @@ int main(void)
ErrorAlert(GetString(STR_NO_GADTOOLS_LIB_ERR));
QuitEmulator();
}
IFFParseBase = OpenLibrary((UBYTE *)"iffparse.library", 39);
if (IFFParseBase == NULL) {
ErrorAlert(GetString(STR_NO_IFFPARSE_LIB_ERR));
QuitEmulator();
}
AslBase = OpenLibrary((UBYTE *)"asl.library", 36);
if (AslBase == NULL) {
ErrorAlert(GetString(STR_NO_ASL_LIB_ERR));
@ -160,6 +181,9 @@ int main(void)
}
P96Base = OpenLibrary((UBYTE *)"Picasso96API.library", 2);
// Read preferences
PrefsInit();
// Open AHI
ahi_port = CreateMsgPort();
if (ahi_port) {
@ -228,7 +252,7 @@ int main(void)
const char *rom_path = PrefsFindString("rom");
// Load Mac ROM
BPTR rom_fh = Open(rom_path ? (char *)rom_path : ROM_FILE_NAME, MODE_OLDFILE);
BPTR rom_fh = Open(rom_path ? (char *)rom_path : (char *)ROM_FILE_NAME, MODE_OLDFILE);
if (rom_fh == NULL) {
ErrorAlert(GetString(STR_NO_ROM_FILE_ERR));
QuitEmulator();
@ -275,8 +299,8 @@ int main(void)
// Start 60Hz process
tick_proc = CreateNewProcTags(
NP_Entry, tick_func,
NP_Name, "Basilisk II 60Hz",
NP_Entry, (ULONG)tick_func,
NP_Name, (ULONG)"Basilisk II 60Hz",
NP_Priority, 5,
TAG_END
);
@ -310,7 +334,13 @@ void Start680x0(void)
* Quit emulator (__saveds because it might be called from an exception)
*/
void __saveds QuitEmulator(void)
// Assembly entry point
void __saveds quit_emulator(void)
{
QuitEmulator();
}
void QuitEmulator(void)
{
// Restore stack
if (stack_swapped) {
@ -371,8 +401,14 @@ void __saveds QuitEmulator(void)
CloseLibrary(P96Base);
if (AslBase)
CloseLibrary(AslBase);
if (IFFParseBase)
CloseLibrary(IFFParseBase);
if (GadToolsBase)
CloseLibrary(GadToolsBase);
if (IntuitionBase)
CloseLibrary((struct Library *)IntuitionBase);
if (GfxBase)
CloseLibrary(GfxBase);
exit(0);
}
@ -492,7 +528,7 @@ void ErrorAlert(const char *text)
req.es_Title = (UBYTE *)GetString(STR_ERROR_ALERT_TITLE);
req.es_TextFormat = (UBYTE *)GetString(STR_GUI_ERROR_PREFIX);
req.es_GadgetFormat = (UBYTE *)GetString(STR_QUIT_BUTTON);
EasyRequest(NULL, &req, NULL, text);
EasyRequest(NULL, &req, NULL, (ULONG)text);
}
@ -512,7 +548,7 @@ void WarningAlert(const char *text)
req.es_Title = (UBYTE *)GetString(STR_WARNING_ALERT_TITLE);
req.es_TextFormat = (UBYTE *)GetString(STR_GUI_WARNING_PREFIX);
req.es_GadgetFormat = (UBYTE *)GetString(STR_OK_BUTTON);
EasyRequest(NULL, &req, NULL, text);
EasyRequest(NULL, &req, NULL, (ULONG)text);
}
@ -530,7 +566,7 @@ bool ChoiceAlert(const char *text, const char *pos, const char *neg)
req.es_Title = (UBYTE *)GetString(STR_WARNING_ALERT_TITLE);
req.es_TextFormat = (UBYTE *)GetString(STR_GUI_WARNING_PREFIX);
req.es_GadgetFormat = (UBYTE *)str;
return EasyRequest(NULL, &req, NULL, text);
return EasyRequest(NULL, &req, NULL, (ULONG)text);
}

View File

@ -139,12 +139,12 @@ static void read_settings(struct LayoutHandle *h);
/*
* Locale hook function - returns string for given ID
* Locale hook - returns string for given ID
*/
static __saveds __asm char *locale_hook_func(register __a0 struct Hook *hook, register __a2 struct LayoutHandle *h, register __a1 LONG id)
static __saveds __regargs const char *locale_hook_func(struct Hook *hook /*a0*/, void *id /*a1*/, struct LayoutHandle *h /*a2*/)
{
return GetString(id);
return GetString((uint32)id);
}
struct Hook locale_hook = {{NULL, NULL}, (HOOKFUNC)locale_hook_func, NULL, NULL};
@ -162,17 +162,27 @@ bool PrefsEditor(void)
struct Window *win = NULL;
struct Menu *menu = NULL;
// Pane tabs
static const LONG labels[] = {
STR_VOLUMES_PANE_TITLE,
STR_SCSI_PANE_TITLE,
STR_GRAPHICS_SOUND_PANE_TITLE,
STR_SERIAL_NETWORK_PANE_TITLE,
STR_MEMORY_MISC_PANE_TITLE,
-1
};
// Open gtlayout.library
GTLayoutBase = (struct Library *)OpenLibrary((UBYTE *)"gtlayout.library", 39);
if (GTLayoutBase == NULL) {
WarningAlert(GetString(STR_NO_GTLAYOUT_LIB_WARN));
goto quit;
return true;
}
// Create layout handle
h = LT_CreateHandleTags(NULL,
LAHN_AutoActivate, FALSE,
LAHN_LocaleHook, &locale_hook,
LAHN_LocaleHook, (ULONG)&locale_hook,
TAG_END
);
if (h == NULL)
@ -180,36 +190,27 @@ bool PrefsEditor(void)
// Create menus
menu = LT_NewMenuTags(
LAMN_LayoutHandle, h,
LAMN_LayoutHandle, (ULONG)h,
LAMN_TitleID, STR_PREFS_MENU,
LAMN_ItemID, STR_PREFS_ITEM_ABOUT,
LAMN_UserData, MSG_ABOUT,
LAMN_ItemText, NM_BARLABEL,
LAMN_ItemText, (ULONG)NM_BARLABEL,
LAMN_ItemID, STR_PREFS_ITEM_START,
LAMN_UserData, MSG_OK,
LAMN_ItemID, STR_PREFS_ITEM_ZAP_PRAM,
LAMN_UserData, MSG_ZAP_PRAM,
LAMN_ItemText, NM_BARLABEL,
LAMN_ItemText, (ULONG)NM_BARLABEL,
LAMN_ItemID, STR_PREFS_ITEM_QUIT,
LAMN_UserData, MSG_CANCEL,
LAMN_KeyText, "Q",
LAMN_KeyText, (ULONG)"Q",
TAG_END
);
// Create window contents
VGROUP;
// Pane tabs
static const LONG labels[] = {
STR_VOLUMES_PANE_TITLE,
STR_SCSI_PANE_TITLE,
STR_GRAPHICS_SOUND_PANE_TITLE,
STR_SERIAL_NETWORK_PANE_TITLE,
STR_MEMORY_MISC_PANE_TITLE,
-1
};
VGROUP;
LT_New(h, LA_Type, TAB_KIND,
LATB_LabelTable, labels,
LATB_LabelTable, (ULONG)labels,
LATB_AutoPageID, GAD_PAGEGROUP,
LATB_FullWidth, TRUE,
TAG_END
@ -261,7 +262,7 @@ bool PrefsEditor(void)
// Open window
win = LT_Build(h,
LAWN_TitleID, STR_PREFS_TITLE,
LAWN_Menu, menu,
LAWN_Menu, (ULONG)menu,
LAWN_IDCMP, IDCMP_CLOSEWINDOW,
LAWN_BelowMouse, TRUE,
LAWN_SmartZoom, TRUE,
@ -279,14 +280,14 @@ bool PrefsEditor(void)
dev_request = (struct FileRequester *)AllocAslRequestTags(ASL_FileRequest,
ASLFR_DoPatterns, TRUE,
ASLFR_RejectIcons, TRUE,
ASLFR_InitialDrawer, "DEVS:",
ASLFR_InitialPattern, "#?.device",
ASLFR_InitialDrawer, (ULONG)"DEVS:",
ASLFR_InitialPattern, (ULONG)"#?.device",
TAG_END
);
file_request = (struct FileRequester *)AllocAslRequestTags(ASL_FileRequest,
ASLFR_DoPatterns, TRUE,
ASLFR_RejectIcons, TRUE,
ASLFR_InitialPattern, "#?",
ASLFR_InitialPattern, (ULONG)"#?",
TAG_END
);
@ -427,14 +428,14 @@ bool PrefsEditor(void)
case GAD_ETHER_DEVICE:
if (dev_request) {
LT_LockWindow(win);
BOOL result = AslRequestTags(dev_request, ASLFR_Window, win, TAG_END);
BOOL result = AslRequestTags(dev_request, ASLFR_Window, (ULONG)win, TAG_END);
LT_UnlockWindow(win);
if (result) {
char *str;
GT_GetGadgetAttrs(gad, win, NULL, GTST_String, &str, TAG_END);
GT_GetGadgetAttrs(gad, win, NULL, GTST_String, (ULONG)&str, TAG_END);
strncpy(str, dev_request->rf_File, 255); // Don't copy the directory part. This is usually "DEVS:" and we don't need that.
str[255] = 0;
LT_SetAttributes(h, gad->GadgetID, GTST_String, str, TAG_END);
LT_SetAttributes(h, gad->GadgetID, GTST_String, (ULONG)str, TAG_END);
}
}
break;
@ -442,15 +443,15 @@ bool PrefsEditor(void)
case GAD_ROM_FILE:
if (file_request) {
LT_LockWindow(win);
BOOL result = AslRequestTags(file_request, ASLFR_Window, win, TAG_END);
BOOL result = AslRequestTags(file_request, ASLFR_Window, (ULONG)win, TAG_END);
LT_UnlockWindow(win);
if (result) {
char *str;
GT_GetGadgetAttrs(gad, win, NULL, GTST_String, &str, TAG_END);
GT_GetGadgetAttrs(gad, win, NULL, GTST_String, (ULONG)&str, TAG_END);
strncpy(str, file_request->rf_Dir, 255);
str[255] = 0;
AddPart(str, file_request->rf_File, 255);
LT_SetAttributes(h, gad->GadgetID, GTST_String, str, TAG_END);
LT_SetAttributes(h, gad->GadgetID, GTST_String, (ULONG)str, TAG_END);
}
}
break;
@ -644,7 +645,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
struct Window *win = NULL;
h = LT_CreateHandleTags(NULL,
LAHN_AutoActivate, FALSE,
LAHN_LocaleHook, &locale_hook,
LAHN_LocaleHook, (ULONG)&locale_hook,
TAG_END
);
if (h == NULL)
@ -657,7 +658,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LT_New(h, LA_Type, CHECKBOX_KIND,
LA_LabelID, STR_VOL_READONLY_CTRL,
LA_ID, GAD_VOLUME_READONLY,
LA_BYTE, &read_only,
LA_BYTE, (ULONG)&read_only,
TAG_END
);
LT_New(h, LA_Type, CYCLE_KIND,
@ -666,7 +667,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LACY_AutoPageID, GAD_VOLUME_PAGEGROUP,
LACY_FirstLabel, STR_VOL_FILE_LAB,
LACY_LastLabel, STR_VOL_DEVICE_LAB,
LA_BYTE, &is_device,
LA_BYTE, (ULONG)&is_device,
TAG_END
);
ENDGROUP;
@ -680,7 +681,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LA_LabelID, STR_VOL_FILE_CTRL,
LA_ID, GAD_VOLUME_FILE,
LA_Chars, 20,
LA_STRPTR, file_name,
LA_STRPTR, (ULONG)file_name,
GTST_MaxChars, sizeof(file_name) - 1,
LAST_Picker, TRUE,
TAG_END
@ -691,7 +692,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LA_LabelID, STR_DEVICE_CTRL,
LA_ID, GAD_VOLUME_DEVICE,
LA_Chars, 20,
LA_STRPTR, dev_name,
LA_STRPTR, (ULONG)dev_name,
GTST_MaxChars, sizeof(dev_name) - 1,
LAST_Picker, TRUE,
TAG_END
@ -699,7 +700,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_UNIT_CTRL,
LA_ID, GAD_VOLUME_UNIT,
LA_LONG, &dev_unit,
LA_LONG, (ULONG)&dev_unit,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -707,7 +708,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_VOL_OPENFLAGS_CTRL,
LA_ID, GAD_VOLUME_OPENFLAGS,
LA_LONG, &dev_flags,
LA_LONG, (ULONG)&dev_flags,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -715,7 +716,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_VOL_STARTBLOCK_CTRL,
LA_ID, GAD_VOLUME_STARTBLOCK,
LA_LONG, &dev_start,
LA_LONG, (ULONG)&dev_start,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -723,7 +724,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_VOL_SIZE_CTRL,
LA_ID, GAD_VOLUME_SIZE,
LA_LONG, &dev_size,
LA_LONG, (ULONG)&dev_size,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -731,7 +732,7 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_VOL_BLOCKSIZE_CTRL,
LA_ID, GAD_VOLUME_BLOCKSIZE,
LA_LONG, &dev_bsize,
LA_LONG, (ULONG)&dev_bsize,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -831,11 +832,11 @@ static void add_edit_volume(struct LayoutHandle *h2, bool adding)
req = dev_request;
do_req: if (req) {
LT_LockWindow(win);
BOOL result = AslRequestTags(req, ASLFR_Window, win, TAG_END);
BOOL result = AslRequestTags(req, ASLFR_Window, (ULONG)win, TAG_END);
LT_UnlockWindow(win);
if (result) {
char *str;
GT_GetGadgetAttrs(gad, win, NULL, GTST_String, &str, TAG_END);
GT_GetGadgetAttrs(gad, win, NULL, GTST_String, (ULONG)&str, TAG_END);
if (gad->GadgetID == GAD_VOLUME_FILE) {
strncpy(str, req->rf_Dir, 255);
str[255] = 0;
@ -853,7 +854,7 @@ do_req: if (req) {
LT_SetAttributes(h, GAD_VOLUME_BLOCKSIZE, GTIN_Number, dev_bsize, TAG_END);
}
}
LT_SetAttributes(h, gad->GadgetID, GTST_String, str, TAG_END);
LT_SetAttributes(h, gad->GadgetID, GTST_String, (ULONG)str, TAG_END);
}
}
break;
@ -881,9 +882,10 @@ do_req: if (req) {
if (adding) {
// Add new item
int i;
PrefsAddString("disk", str);
struct Node *item = (struct Node *)AllocMem(sizeof(struct Node), MEMF_CLEAR);
for (int i=0; PrefsFindString("disk", i); i++) ;
for (i=0; PrefsFindString("disk", i); i++) ;
item->ln_Name = (char *)PrefsFindString("disk", i - 1);
AddTail(&disk_list, item);
@ -900,7 +902,7 @@ do_req: if (req) {
item = item->ln_Succ;
}
}
LT_SetAttributes(h2, GAD_DISK_LIST, GTLV_Labels, &disk_list, TAG_END);
LT_SetAttributes(h2, GAD_DISK_LIST, GTLV_Labels, (ULONG)&disk_list, TAG_END);
ghost_volumes_gadgets(h2);
}
}
@ -924,7 +926,7 @@ static void remove_volume(struct LayoutHandle *h)
}
item = next;
}
LT_SetAttributes(h, GAD_DISK_LIST, GTLV_Labels, &disk_list, GTLV_Selected, 0xffff, TAG_END);
LT_SetAttributes(h, GAD_DISK_LIST, GTLV_Labels, (ULONG)&disk_list, GTLV_Selected, 0xffff, TAG_END);
ghost_volumes_gadgets(h);
}
}
@ -963,9 +965,9 @@ static void create_volumes_pane(struct LayoutHandle *h)
VGROUP;
LT_New(h, LA_Type, LISTVIEW_KIND,
LA_ID, GAD_DISK_LIST,
GTLV_Labels, &disk_list,
GTLV_Labels, (ULONG)&disk_list,
LALV_Lines, 6,
LALV_Link, NIL_LINK,
LALV_Link, (ULONG)NIL_LINK,
LALV_ResizeX, TRUE,
LALV_ResizeY, TRUE,
LALV_Selected, 0,
@ -1002,7 +1004,7 @@ static void create_volumes_pane(struct LayoutHandle *h)
LA_LabelID, STR_DEVICE_CTRL,
LA_ID, GAD_CDROM_DEVICE,
LA_Chars, 20,
LA_STRPTR, cdrom_name,
LA_STRPTR, (ULONG)cdrom_name,
GTST_MaxChars, sizeof(cdrom_name) - 1,
LAST_Picker, TRUE,
TAG_END
@ -1010,7 +1012,7 @@ static void create_volumes_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_UNIT_CTRL,
LA_ID, GAD_CDROM_UNIT,
LA_LONG, &cdrom_unit,
LA_LONG, (ULONG)&cdrom_unit,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -1020,13 +1022,13 @@ static void create_volumes_pane(struct LayoutHandle *h)
LA_ID, GAD_BOOTDRIVER,
LACY_FirstLabel, STR_BOOT_ANY_LAB,
LACY_LastLabel, STR_BOOT_CDROM_LAB,
LA_BYTE, &bootdriver_num,
LA_BYTE, (ULONG)&bootdriver_num,
TAG_END
);
LT_New(h, LA_Type, CHECKBOX_KIND,
LA_LabelID, STR_NOCDROM_CTRL,
LA_ID, GAD_NOCDROM,
LA_BYTE, &nocdrom,
LA_BYTE, (ULONG)&nocdrom,
TAG_END
);
ENDGROUP;
@ -1088,7 +1090,7 @@ static void create_scsi_pane(struct LayoutHandle *h)
LA_LabelID, STR_DEVICE_CTRL,
LA_ID, GAD_SCSI0_DEVICE + i,
LA_Chars, 20,
LA_STRPTR, scsi_dev[i],
LA_STRPTR, (ULONG)scsi_dev[i],
GTST_MaxChars, sizeof(scsi_dev[i]) - 1,
LAST_Picker, TRUE,
TAG_END
@ -1097,7 +1099,7 @@ static void create_scsi_pane(struct LayoutHandle *h)
LA_LabelID, STR_UNIT_CTRL,
LA_ID, GAD_SCSI0_UNIT + i,
LA_Chars, 4,
LA_LONG, &scsi_unit[i],
LA_LONG, (ULONG)&scsi_unit[i],
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -1177,7 +1179,7 @@ static void parse_graphics_prefs(void)
if (str) {
if (sscanf(str, "ahi/%08lx", &ahi_id) == 1 && AHIBase) {
AHI_GetAudioAttrs(ahi_id, NULL,
AHIDB_Name, ahi_mode_name,
AHIDB_Name, (ULONG)ahi_mode_name,
AHIDB_BufferLen, sizeof(ahi_mode_name) - 1,
TAG_END
);
@ -1231,7 +1233,7 @@ static void screen_mode_req(struct Window *win, struct LayoutHandle *h)
if (id != INVALID_ID) {
mode_id = id;
GetDisplayInfoData(NULL, (UBYTE *)&mode_name, sizeof(mode_name), DTAG_NAME, mode_id);
LT_SetAttributes(h, GAD_SCREEN_MODE, GTTX_Text, mode_name.Name, TAG_END);
LT_SetAttributes(h, GAD_SCREEN_MODE, GTTX_Text, (ULONG)mode_name.Name, TAG_END);
}
}
@ -1242,7 +1244,7 @@ static void ahi_mode_req(struct Window *win, struct LayoutHandle *h)
return;
struct AHIAudioModeRequester *req = AHI_AllocAudioRequest(
AHIR_Window, win,
AHIR_Window, (ULONG)win,
TAG_END
);
if (req == NULL)
@ -1258,11 +1260,11 @@ static void ahi_mode_req(struct Window *win, struct LayoutHandle *h)
if (ok) {
ahi_id = req->ahiam_AudioID;
AHI_GetAudioAttrs(ahi_id, NULL,
AHIDB_Name, ahi_mode_name,
AHIDB_Name, (ULONG)ahi_mode_name,
AHIDB_BufferLen, sizeof(ahi_mode_name) - 1,
TAG_END
);
LT_SetAttributes(h, GAD_AHI_MODE, GTTX_Text, ahi_mode_name, TAG_END);
LT_SetAttributes(h, GAD_AHI_MODE, GTTX_Text, (ULONG)ahi_mode_name, TAG_END);
}
AHI_FreeAudioRequest(req);
}
@ -1307,21 +1309,21 @@ static void create_graphics_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, CYCLE_KIND,
LA_LabelID, STR_VIDEO_TYPE_CTRL,
LA_ID, GAD_VIDEO_TYPE,
LACY_LabelTable, labels,
LA_BYTE, &display_type,
LACY_LabelTable, (ULONG)labels,
LA_BYTE, (ULONG)&display_type,
TAG_END
);
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_DISPLAY_X_CTRL,
LA_ID, GAD_DISPLAY_X,
LA_LONG, &dis_width,
LA_LONG, (ULONG)&dis_width,
GTIN_MaxChars, 8,
TAG_END
);
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_DISPLAY_Y_CTRL,
LA_ID, GAD_DISPLAY_Y,
LA_LONG, &dis_height,
LA_LONG, (ULONG)&dis_height,
GTIN_MaxChars, 8,
TAG_END
);
@ -1330,7 +1332,7 @@ static void create_graphics_pane(struct LayoutHandle *h)
LA_ID, GAD_FRAMESKIP,
LAPU_FirstLabel, STR_REF_5HZ_LAB,
LAPU_LastLabel, STR_REF_60HZ_LAB,
LA_BYTE, &frameskip_num,
LA_BYTE, (ULONG)&frameskip_num,
TAG_END
);
LT_New(h, LA_Type, TEXT_KIND,
@ -1338,7 +1340,7 @@ static void create_graphics_pane(struct LayoutHandle *h)
LA_ID, GAD_SCREEN_MODE,
LA_Chars, DISPLAYNAMELEN,
LATX_Picker, TRUE,
GTTX_Text, mode_name.Name,
GTTX_Text, (ULONG)mode_name.Name,
GTTX_Border, TRUE,
TAG_END
);
@ -1352,14 +1354,14 @@ static void create_graphics_pane(struct LayoutHandle *h)
LA_ID, GAD_AHI_MODE,
LA_Chars, DISPLAYNAMELEN,
LATX_Picker, TRUE,
GTTX_Text, ahi_mode_name,
GTTX_Text, (ULONG)ahi_mode_name,
GTTX_Border, TRUE,
TAG_END
);
LT_New(h, LA_Type, CHECKBOX_KIND,
LA_LabelID, STR_NOSOUND_CTRL,
LA_ID, GAD_NOSOUND,
LA_BYTE, &nosound,
LA_BYTE, (ULONG)&nosound,
TAG_END
);
ENDGROUP;
@ -1381,7 +1383,7 @@ static char ether_dev[256];
static ULONG ether_unit;
// Read serial/network preferences
static void parse_serial_prefs(const char *prefs, char *dev, LONG &unit, BYTE &ispar)
static void parse_ser_prefs(const char *prefs, char *dev, LONG &unit, BYTE &ispar)
{
dev[0] = 0;
unit = 0;
@ -1395,11 +1397,17 @@ static void parse_serial_prefs(const char *prefs, char *dev, LONG &unit, BYTE &i
}
sscanf(str, "%[^/]/%ld", dev, &unit);
}
}
static void parse_serial_prefs(void)
{
parse_ser_prefs("seriala", seriala_dev, seriala_unit, seriala_ispar);
parse_ser_prefs("serialb", serialb_dev, serialb_unit, serialb_ispar);
ether_dev[0] = 0;
ether_unit = 0;
str = PrefsFindString("ether");
const char *str = PrefsFindString("ether");
if (str)
sscanf(str, "%[^/]/%ld", ether_dev, &ether_unit);
}
@ -1432,8 +1440,7 @@ static void read_serial_settings(void)
// Create "Serial/Network" pane
static void create_serial_pane(struct LayoutHandle *h)
{
parse_serial_prefs("seriala", seriala_dev, seriala_unit, seriala_ispar);
parse_serial_prefs("serialb", serialb_dev, serialb_unit, serialb_ispar);
parse_serial_prefs();
VGROUP;
LT_New(h, LA_Type, VERTICAL_KIND,
@ -1444,7 +1451,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LA_LabelID, STR_DEVICE_CTRL,
LA_ID, GAD_SERIALA_DEVICE,
LA_Chars, 20,
LA_STRPTR, seriala_dev,
LA_STRPTR, (ULONG)seriala_dev,
GTST_MaxChars, sizeof(seriala_dev) - 1,
LAST_Picker, TRUE,
TAG_END
@ -1452,7 +1459,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_UNIT_CTRL,
LA_ID, GAD_SERIALA_UNIT,
LA_LONG, &seriala_unit,
LA_LONG, (ULONG)&seriala_unit,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -1460,7 +1467,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, CHECKBOX_KIND,
LA_LabelID, STR_ISPAR_CTRL,
LA_ID, GAD_SERIALA_ISPAR,
LA_BYTE, &seriala_ispar,
LA_BYTE, (ULONG)&seriala_ispar,
TAG_END
);
ENDGROUP;
@ -1473,7 +1480,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LA_LabelID, STR_DEVICE_CTRL,
LA_ID, GAD_SERIALB_DEVICE,
LA_Chars, 20,
LA_STRPTR, serialb_dev,
LA_STRPTR, (ULONG)serialb_dev,
GTST_MaxChars, sizeof(serialb_dev) - 1,
LAST_Picker, TRUE,
TAG_END
@ -1481,7 +1488,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_UNIT_CTRL,
LA_ID, GAD_SERIALB_UNIT,
LA_LONG, &serialb_unit,
LA_LONG, (ULONG)&serialb_unit,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -1489,7 +1496,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, CHECKBOX_KIND,
LA_LabelID, STR_ISPAR_CTRL,
LA_ID, GAD_SERIALB_ISPAR,
LA_BYTE, &serialb_ispar,
LA_BYTE, (ULONG)&serialb_ispar,
TAG_END
);
ENDGROUP;
@ -1502,7 +1509,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LA_LabelID, STR_DEVICE_CTRL,
LA_ID, GAD_ETHER_DEVICE,
LA_Chars, 20,
LA_STRPTR, ether_dev,
LA_STRPTR, (ULONG)ether_dev,
GTST_MaxChars, sizeof(ether_dev) - 1,
LAST_Picker, TRUE,
TAG_END
@ -1510,7 +1517,7 @@ static void create_serial_pane(struct LayoutHandle *h)
LT_New(h, LA_Type, INTEGER_KIND,
LA_LabelID, STR_UNIT_CTRL,
LA_ID, GAD_ETHER_UNIT,
LA_LONG, &ether_unit,
LA_LONG, (ULONG)&ether_unit,
LAIN_UseIncrementers, TRUE,
GTIN_MaxChars, 8,
TAG_END
@ -1573,8 +1580,8 @@ static void create_memory_pane(struct LayoutHandle *h)
LA_LabelID, STR_RAMSIZE_SLIDER,
LA_ID, GAD_RAMSIZE,
LA_Chars, 20,
LA_LONG, &ramsize_mb,
GTSL_LevelFormat, GetString(STR_RAMSIZE_FMT),
LA_LONG, (ULONG)&ramsize_mb,
GTSL_LevelFormat, (ULONG)GetString(STR_RAMSIZE_FMT),
GTSL_Min, 1,
GTSL_Max, AvailMem(MEMF_LARGEST) >> 20,
TAG_END
@ -1584,14 +1591,14 @@ static void create_memory_pane(struct LayoutHandle *h)
LA_ID, GAD_MODELID,
LACY_FirstLabel, STR_MODELID_5_LAB,
LACY_LastLabel, STR_MODELID_14_LAB,
LA_BYTE, &model_num,
LA_BYTE, (ULONG)&model_num,
TAG_END
);
LT_New(h, LA_Type, STRING_KIND,
LA_LabelID, STR_ROM_FILE_CTRL,
LA_ID, GAD_ROM_FILE,
LA_Chars, 20,
LA_STRPTR, rom_file,
LA_STRPTR, (ULONG)rom_file,
GTST_MaxChars, sizeof(rom_file) - 1,
LAST_Picker, TRUE,
TAG_END

View File

@ -85,12 +85,12 @@ public:
{
}
virtual int16 Open(uint16 config);
virtual int16 PrimeIn(uint32 pb, uint32 dce);
virtual int16 PrimeOut(uint32 pb, uint32 dce);
virtual int16 Control(uint32 pb, uint32 dce, uint16 code);
virtual int16 Status(uint32 pb, uint32 dce, uint16 code);
virtual int16 Close(void);
virtual int16 open(uint16 config);
virtual int16 prime_in(uint32 pb, uint32 dce);
virtual int16 prime_out(uint32 pb, uint32 dce);
virtual int16 control(uint32 pb, uint32 dce, uint16 code);
virtual int16 status(uint32 pb, uint32 dce, uint16 code);
virtual int16 close(void);
private:
bool configure(uint16 config);
@ -147,7 +147,7 @@ void SerialExit(void)
* Open serial port
*/
int16 ASERDPort::Open(uint16 config)
int16 ASERDPort::open(uint16 config)
{
// Don't open NULL name devices
if (device_name == NULL)
@ -166,8 +166,8 @@ int16 ASERDPort::Open(uint16 config)
proc_arg = this;
SetSignal(0, SIGF_SINGLE);
serial_proc = CreateNewProcTags(
NP_Entry, serial_func,
NP_Name, "Basilisk II Serial Task",
NP_Entry, (ULONG)serial_func,
NP_Name, (ULONG)"Basilisk II Serial Task",
NP_Priority, 1,
TAG_END
);
@ -199,7 +199,7 @@ open_error:
* Read data from port
*/
int16 ASERDPort::PrimeIn(uint32 pb, uint32 dce)
int16 ASERDPort::prime_in(uint32 pb, uint32 dce)
{
// Send input command to serial process
D(bug("primein\n"));
@ -215,7 +215,7 @@ int16 ASERDPort::PrimeIn(uint32 pb, uint32 dce)
* Write data to port
*/
int16 ASERDPort::PrimeOut(uint32 pb, uint32 dce)
int16 ASERDPort::prime_out(uint32 pb, uint32 dce)
{
// Send output command to serial process
D(bug("primeout\n"));
@ -231,7 +231,7 @@ int16 ASERDPort::PrimeOut(uint32 pb, uint32 dce)
* Control calls
*/
int16 ASERDPort::Control(uint32 pb, uint32 dce, uint16 code)
int16 ASERDPort::control(uint32 pb, uint32 dce, uint16 code)
{
D(bug("control(%ld)\n", (uint32)code));
switch (code) {
@ -326,7 +326,7 @@ int16 ASERDPort::Control(uint32 pb, uint32 dce, uint16 code)
* Status calls
*/
int16 ASERDPort::Status(uint32 pb, uint32 dce, uint16 code)
int16 ASERDPort::status(uint32 pb, uint32 dce, uint16 code)
{
D(bug("status(%ld)\n", (uint32)code));
switch (code) {
@ -381,7 +381,7 @@ int16 ASERDPort::Status(uint32 pb, uint32 dce, uint16 code)
* Close serial port
*/
int16 ASERDPort::Close()
int16 ASERDPort::close()
{
// Stop process
if (serial_proc) {

View File

@ -1,4 +1,4 @@
# AmigaOS makefile for Basilisk II
# AmigaOS makefile for Basilisk II (SAS/C)
## System specific configuration
CC = sc

View File

@ -46,10 +46,17 @@ typedef unsigned short uint16;
typedef signed short int16;
typedef unsigned long uint32;
typedef signed long int32;
#ifdef __GNUC__
typedef unsigned long long loff_t;
#endif
#ifdef __SASC
typedef char bool;
#define true 1
#define false 0
typedef LONG loff_t;
#endif
// Time data type for Time Manager emulation
typedef struct timeval tm_time_t;
@ -63,4 +70,9 @@ typedef struct timeval tm_time_t;
#define htons(x) (x)
#define htonl(x) (x)
// Some systems don't define this
#ifndef AFF_68060
#define AFF_68060 (1L<<7)
#endif
#endif

View File

@ -33,6 +33,7 @@ user_string_def platform_strings[] = {
// Purely platform-specific strings
{STR_NO_PREPARE_EMUL_ERR, "PrepareEmul is not installed. Run PrepareEmul and then try again to start Basilisk II."},
{STR_NO_GADTOOLS_LIB_ERR, "Cannot open gadtools.library V39."},
{STR_NO_IFFPARSE_LIB_ERR, "Cannot open iffparse.library V39."},
{STR_NO_ASL_LIB_ERR, "Cannot open asl.library V36."},
{STR_NO_TIMER_DEV_ERR, "Cannot open timer.device."},
{STR_NO_P96_MODE_ERR, "The selected screen mode is not a Picasso96 mode."},

View File

@ -24,6 +24,7 @@
enum {
STR_NO_PREPARE_EMUL_ERR = 10000,
STR_NO_GADTOOLS_LIB_ERR,
STR_NO_IFFPARSE_LIB_ERR,
STR_NO_ASL_LIB_ERR,
STR_NO_TIMER_DEV_ERR,
STR_NO_P96_MODE_ERR,

View File

@ -107,7 +107,7 @@ static bool init_window(int width, int height)
WA_DragBar, TRUE,
WA_DepthGadget, TRUE,
WA_SizeGadget, FALSE,
WA_Title, GetString(STR_WINDOW_TITLE),
WA_Title, (ULONG)GetString(STR_WINDOW_TITLE),
TAG_END
);
if (the_win == NULL) {
@ -150,7 +150,7 @@ static bool init_pip(int width, int height)
P96PIP_SourceFormat, RGBFB_R5G5B5,
P96PIP_SourceWidth, width,
P96PIP_SourceHeight, height,
P96PIP_ErrorCode, &error,
P96PIP_ErrorCode, (ULONG)&error,
WA_Left, 0, WA_Top, 0,
WA_InnerWidth, width, WA_InnerHeight, height,
WA_SimpleRefresh, TRUE,
@ -161,8 +161,8 @@ static bool init_pip(int width, int height)
WA_DragBar, TRUE,
WA_DepthGadget, TRUE,
WA_SizeGadget, FALSE,
WA_Title, GetString(STR_WINDOW_TITLE),
WA_PubScreenName, "Workbench",
WA_Title, (ULONG)GetString(STR_WINDOW_TITLE),
WA_PubScreenName, (ULONG)"Workbench",
TAG_END
);
if (the_win == NULL || error) {
@ -171,7 +171,7 @@ static bool init_pip(int width, int height)
}
// Find bitmap
p96PIP_GetTags(the_win, P96PIP_SourceBitMap, &the_bitmap, TAG_END);
p96PIP_GetTags(the_win, P96PIP_SourceBitMap, (ULONG)&the_bitmap, TAG_END);
// Set VideoMonitor
VideoMonitor.mac_frame_base = p96GetBitMapAttr(the_bitmap, P96BMA_MEMORY);
@ -231,7 +231,7 @@ static bool init_screen(ULONG mode_id)
// Open screen
the_screen = p96OpenScreenTags(
P96SA_DisplayID, mode_id,
P96SA_Title, GetString(STR_WINDOW_TITLE),
P96SA_Title, (ULONG)GetString(STR_WINDOW_TITLE),
P96SA_Quiet, TRUE,
P96SA_NoMemory, TRUE,
P96SA_NoSprite, TRUE,
@ -252,7 +252,7 @@ static bool init_screen(ULONG mode_id)
WA_Activate, TRUE,
WA_RMBTrap, TRUE,
WA_ReportMouse, TRUE,
WA_CustomScreen, the_screen,
WA_CustomScreen, (ULONG)the_screen,
TAG_END
);
if (the_win == NULL) {
@ -314,8 +314,8 @@ bool VideoInit(bool classic)
// Start periodic process
periodic_proc = CreateNewProcTags(
NP_Entry, periodic_func,
NP_Name, "Basilisk II IDCMP Handler",
NP_Entry, (ULONG)periodic_func,
NP_Name, (ULONG)"Basilisk II IDCMP Handler",
NP_Priority, 0,
TAG_END
);

View File

@ -90,12 +90,12 @@ public:
delete device;
}
virtual int16 Open(uint16 config);
virtual int16 PrimeIn(uint32 pb, uint32 dce);
virtual int16 PrimeOut(uint32 pb, uint32 dce);
virtual int16 Control(uint32 pb, uint32 dce, uint16 code);
virtual int16 Status(uint32 pb, uint32 dce, uint16 code);
virtual int16 Close(void);
virtual int16 open(uint16 config);
virtual int16 prime_in(uint32 pb, uint32 dce);
virtual int16 prime_out(uint32 pb, uint32 dce);
virtual int16 control(uint32 pb, uint32 dce, uint16 code);
virtual int16 status(uint32 pb, uint32 dce, uint16 code);
virtual int16 close(void);
private:
bool configure(uint16 config);
@ -154,7 +154,7 @@ void SerialExit(void)
* Open serial port
*/
int16 BeSERDPort::Open(uint16 config)
int16 BeSERDPort::open(uint16 config)
{
// Don't open NULL name devices
if (device_name == NULL)
@ -204,7 +204,7 @@ int16 BeSERDPort::Open(uint16 config)
* Read data from port
*/
int16 BeSERDPort::PrimeIn(uint32 pb, uint32 dce)
int16 BeSERDPort::prime_in(uint32 pb, uint32 dce)
{
// Send input command to input_thread
read_done = false;
@ -221,7 +221,7 @@ int16 BeSERDPort::PrimeIn(uint32 pb, uint32 dce)
* Write data to port
*/
int16 BeSERDPort::PrimeOut(uint32 pb, uint32 dce)
int16 BeSERDPort::prime_out(uint32 pb, uint32 dce)
{
// Send output command to output_thread
write_done = false;
@ -238,7 +238,7 @@ int16 BeSERDPort::PrimeOut(uint32 pb, uint32 dce)
* Control calls
*/
int16 BeSERDPort::Control(uint32 pb, uint32 dce, uint16 code)
int16 BeSERDPort::control(uint32 pb, uint32 dce, uint16 code)
{
switch (code) {
case 1: // KillIO
@ -433,7 +433,7 @@ int16 BeSERDPort::Control(uint32 pb, uint32 dce, uint16 code)
* Status calls
*/
int16 BeSERDPort::Status(uint32 pb, uint32 dce, uint16 code)
int16 BeSERDPort::status(uint32 pb, uint32 dce, uint16 code)
{
switch (code) {
case kSERDInputCount:
@ -485,7 +485,7 @@ int16 BeSERDPort::Status(uint32 pb, uint32 dce, uint16 code)
* Close serial port
*/
int16 BeSERDPort::Close()
int16 BeSERDPort::close()
{
// Kill threads
status_t l;

View File

@ -101,12 +101,12 @@ public:
}
}
virtual int16 Open(uint16 config);
virtual int16 PrimeIn(uint32 pb, uint32 dce);
virtual int16 PrimeOut(uint32 pb, uint32 dce);
virtual int16 Control(uint32 pb, uint32 dce, uint16 code);
virtual int16 Status(uint32 pb, uint32 dce, uint16 code);
virtual int16 Close(void);
virtual int16 open(uint16 config);
virtual int16 prime_in(uint32 pb, uint32 dce);
virtual int16 prime_out(uint32 pb, uint32 dce);
virtual int16 control(uint32 pb, uint32 dce, uint16 code);
virtual int16 status(uint32 pb, uint32 dce, uint16 code);
virtual int16 close(void);
private:
bool configure(uint16 config);
@ -166,7 +166,7 @@ void SerialExit(void)
* Open serial port
*/
int16 XSERDPort::Open(uint16 config)
int16 XSERDPort::open(uint16 config)
{
// Don't open NULL name devices
if (device_name == NULL)
@ -249,7 +249,7 @@ open_error:
* Read data from port
*/
int16 XSERDPort::PrimeIn(uint32 pb, uint32 dce)
int16 XSERDPort::prime_in(uint32 pb, uint32 dce)
{
// Send input command to input_thread
read_done = false;
@ -265,7 +265,7 @@ int16 XSERDPort::PrimeIn(uint32 pb, uint32 dce)
* Write data to port
*/
int16 XSERDPort::PrimeOut(uint32 pb, uint32 dce)
int16 XSERDPort::prime_out(uint32 pb, uint32 dce)
{
// Send output command to output_thread
write_done = false;
@ -281,7 +281,7 @@ int16 XSERDPort::PrimeOut(uint32 pb, uint32 dce)
* Control calls
*/
int16 XSERDPort::Control(uint32 pb, uint32 dce, uint16 code)
int16 XSERDPort::control(uint32 pb, uint32 dce, uint16 code)
{
switch (code) {
case 1: // KillIO
@ -446,7 +446,7 @@ int16 XSERDPort::Control(uint32 pb, uint32 dce, uint16 code)
* Status calls
*/
int16 XSERDPort::Status(uint32 pb, uint32 dce, uint16 code)
int16 XSERDPort::status(uint32 pb, uint32 dce, uint16 code)
{
switch (code) {
case kSERDInputCount: {
@ -493,7 +493,7 @@ int16 XSERDPort::Status(uint32 pb, uint32 dce, uint16 code)
* Close serial port
*/
int16 XSERDPort::Close()
int16 XSERDPort::close()
{
// Kill threads
if (input_thread_active) {

View File

@ -42,12 +42,12 @@ public:
{
}
virtual int16 Open(uint16 config);
virtual int16 PrimeIn(uint32 pb, uint32 dce);
virtual int16 PrimeOut(uint32 pb, uint32 dce);
virtual int16 Control(uint32 pb, uint32 dce, uint16 code);
virtual int16 Status(uint32 pb, uint32 dce, uint16 code);
virtual int16 Close(void);
virtual int16 open(uint16 config);
virtual int16 prime_in(uint32 pb, uint32 dce);
virtual int16 prime_out(uint32 pb, uint32 dce);
virtual int16 control(uint32 pb, uint32 dce, uint16 code);
virtual int16 status(uint32 pb, uint32 dce, uint16 code);
virtual int16 close(void);
private:
char *device_name; // Device name
@ -81,7 +81,7 @@ void SerialExit(void)
* Open serial port
*/
int16 DSERDPort::Open(uint16 config)
int16 DSERDPort::open(uint16 config)
{
return openErr;
}
@ -91,7 +91,7 @@ int16 DSERDPort::Open(uint16 config)
* Read data from port
*/
int16 DSERDPort::PrimeIn(uint32 pb, uint32 dce)
int16 DSERDPort::prime_in(uint32 pb, uint32 dce)
{
return readErr;
}
@ -101,7 +101,7 @@ int16 DSERDPort::PrimeIn(uint32 pb, uint32 dce)
* Write data to port
*/
int16 DSERDPort::PrimeOut(uint32 pb, uint32 dce)
int16 DSERDPort::prime_out(uint32 pb, uint32 dce)
{
return writErr;
}
@ -111,7 +111,7 @@ int16 DSERDPort::PrimeOut(uint32 pb, uint32 dce)
* Control calls
*/
int16 DSERDPort::Control(uint32 pb, uint32 dce, uint16 code)
int16 DSERDPort::control(uint32 pb, uint32 dce, uint16 code)
{
return controlErr;
}
@ -121,7 +121,7 @@ int16 DSERDPort::Control(uint32 pb, uint32 dce, uint16 code)
* Status calls
*/
int16 DSERDPort::Status(uint32 pb, uint32 dce, uint16 code)
int16 DSERDPort::status(uint32 pb, uint32 dce, uint16 code)
{
return statusErr;
}
@ -131,7 +131,7 @@ int16 DSERDPort::Status(uint32 pb, uint32 dce, uint16 code)
* Close serial port
*/
int16 DSERDPort::Close()
int16 DSERDPort::close()
{
return noErr;
}

View File

@ -296,15 +296,15 @@ void EmulOp(uint16 opcode, M68kRegisters *r)
break;
case M68K_EMUL_OP_VIDEO_OPEN: // Video driver functions
r->d[0] = VideoOpen(r->a[0], r->a[1]);
r->d[0] = VideoDriverOpen(r->a[0], r->a[1]);
break;
case M68K_EMUL_OP_VIDEO_CONTROL:
r->d[0] = VideoControl(r->a[0], r->a[1]);
r->d[0] = VideoDriverControl(r->a[0], r->a[1]);
break;
case M68K_EMUL_OP_VIDEO_STATUS:
r->d[0] = VideoStatus(r->a[0], r->a[1]);
r->d[0] = VideoDriverStatus(r->a[0], r->a[1]);
break;
case M68K_EMUL_OP_SERIAL_OPEN: // Serial driver functions

View File

@ -244,10 +244,10 @@ enum { // DeferredTask struct
// Functions
extern void Enqueue(uint32 elem, uint32 list); // Enqueue QElem in list
extern int FindFreeDriveNumber(int num); // Find first free drive number, starting at "num"
extern void MountVolume(void *fh); // Mount volume with given file handle (see sys.h)
extern bool HasMacStarted(void); // Test if basic MacOS initializations are done
extern void EnqueueMac(uint32 elem, uint32 list); // Enqueue QElem in list
extern int FindFreeDriveNumber(int num); // Find first free drive number, starting at "num"
extern void MountVolume(void *fh); // Mount volume with given file handle (see sys.h)
extern bool HasMacStarted(void); // Test if basic MacOS initializations are done
extern void FileDiskLayout(loff_t size, uint8 *data, loff_t &start_byte, loff_t &real_size); // Calculate disk image file layout given file size and first 256 data bytes
#endif

View File

@ -59,12 +59,12 @@ public:
input_dt = output_dt = 0;
}
virtual int16 Open(uint16 config) = 0;
virtual int16 PrimeIn(uint32 pb, uint32 dce) = 0;
virtual int16 PrimeOut(uint32 pb, uint32 dce) = 0;
virtual int16 Control(uint32 pb, uint32 dce, uint16 code) = 0;
virtual int16 Status(uint32 pb, uint32 dce, uint16 code) = 0;
virtual int16 Close(void) = 0;
virtual int16 open(uint16 config) = 0;
virtual int16 prime_in(uint32 pb, uint32 dce) = 0;
virtual int16 prime_out(uint32 pb, uint32 dce) = 0;
virtual int16 control(uint32 pb, uint32 dce, uint16 code) = 0;
virtual int16 status(uint32 pb, uint32 dce, uint16 code) = 0;
virtual int16 close(void) = 0;
bool is_open; // Port has been opened
uint8 cum_errors; // Cumulative errors

View File

@ -43,9 +43,9 @@ struct video_desc {
extern struct video_desc VideoMonitor; // Description of the main monitor, set by VideoInit()
extern int16 VideoOpen(uint32 pb, uint32 dce);
extern int16 VideoControl(uint32 pb, uint32 dce);
extern int16 VideoStatus(uint32 pb, uint32 dce);
extern int16 VideoDriverOpen(uint32 pb, uint32 dce);
extern int16 VideoDriverControl(uint32 pb, uint32 dce);
extern int16 VideoDriverStatus(uint32 pb, uint32 dce);
// System specific and internal functions/data
extern bool VideoInit(bool classic);

View File

@ -34,7 +34,7 @@
* Enqueue QElem to list
*/
void Enqueue(uint32 elem, uint32 list)
void EnqueueMac(uint32 elem, uint32 list)
{
WriteMacInt32(elem + qLink, 0);
if (!ReadMacInt32(list + qTail)) {

View File

@ -70,7 +70,7 @@ int16 SerialOpen(uint32 pb, uint32 dce, int port)
the_port->cum_errors = 0;
// Open port
int16 res = the_port->Open(ReadMacInt16(0x1fc + (port & 2)));
int16 res = the_port->open(ReadMacInt16(0x1fc + (port & 2)));
if (res)
return res;
@ -79,7 +79,7 @@ int16 SerialOpen(uint32 pb, uint32 dce, int port)
r.d[0] = SIZEOF_serdt * 2;
Execute68kTrap(0xa71e, &r); // NewPtrSysClear()
if (r.a[0] == 0) {
the_port->Close();
the_port->close();
return openErr;
}
uint32 input_dt = the_port->input_dt = r.a[0];
@ -128,13 +128,13 @@ int16 SerialPrime(uint32 pb, uint32 dce, int port)
printf("FATAL: SerialPrimeIn() called while request is pending\n");
return readErr;
} else
return the_port->PrimeIn(pb, dce);
return the_port->prime_in(pb, dce);
} else {
if (the_port->write_pending) {
printf("FATAL: SerialPrimeOut() called while request is pending\n");
return readErr;
} else
return the_port->PrimeOut(pb, dce);
return the_port->prime_out(pb, dce);
}
}
@ -158,7 +158,7 @@ int16 SerialControl(uint32 pb, uint32 dce, int port)
return noErr;
default:
return the_port->Control(pb, dce, code);
return the_port->control(pb, dce, code);
}
}
@ -189,7 +189,7 @@ int16 SerialStatus(uint32 pb, uint32 dce, int port)
return noErr;
default:
return the_port->Status(pb, dce, code);
return the_port->status(pb, dce, code);
}
}
@ -212,7 +212,7 @@ int16 SerialClose(uint32 pb, uint32 dce, int port)
// Close port if open
SERDPort *the_port = the_serd_port[port >> 1];
if (the_port->is_open) {
int16 res = the_port->Close();
int16 res = the_port->close();
M68kRegisters r; // Free Deferred Task structures
r.a[0] = the_port->input_dt;
Execute68kTrap(0xa01f, &r); // DisposePtr()
@ -232,11 +232,11 @@ static void serial_irq(SERDPort *p)
{
if (p->is_open) {
if (p->read_pending && p->read_done) {
Enqueue(p->input_dt, 0xd92);
EnqueueMac(p->input_dt, 0xd92);
p->read_pending = p->read_done = false;
}
if (p->write_pending && p->write_done) {
Enqueue(p->output_dt, 0xd92);
EnqueueMac(p->output_dt, 0xd92);
p->write_pending = p->write_done = false;
}
}

View File

@ -54,9 +54,9 @@ struct {
* Driver Open() routine
*/
int16 VideoOpen(uint32 pb, uint32 dce)
int16 VideoDriverOpen(uint32 pb, uint32 dce)
{
D(bug("VideoOpen\n"));
D(bug("VideoDriverOpen\n"));
// Init local variables
VidLocal.desc = &VideoMonitor;
@ -80,11 +80,11 @@ int16 VideoOpen(uint32 pb, uint32 dce)
* Driver Control() routine
*/
int16 VideoControl(uint32 pb, uint32 dce)
int16 VideoDriverControl(uint32 pb, uint32 dce)
{
uint16 code = ReadMacInt16(pb + csCode);
uint32 param = ReadMacInt32(pb + csParam);
D(bug("VideoControl %d\n", code));
D(bug("VideoDriverControl %d\n", code));
switch (code) {
case cscSetMode: // Set color depth
@ -183,7 +183,7 @@ int16 VideoControl(uint32 pb, uint32 dce)
return noErr;
default:
printf("WARNING: Unknown VideoControl(%d)\n", code);
printf("WARNING: Unknown VideoDriverControl(%d)\n", code);
return controlErr;
}
}
@ -193,11 +193,11 @@ int16 VideoControl(uint32 pb, uint32 dce)
* Driver Status() routine
*/
int16 VideoStatus(uint32 pb, uint32 dce)
int16 VideoDriverStatus(uint32 pb, uint32 dce)
{
uint16 code = ReadMacInt16(pb + csCode);
uint32 param = ReadMacInt32(pb + csParam);
D(bug("VideoStatus %d\n", code));
D(bug("VideoDriverStatus %d\n", code));
switch (code) {
case cscGetPageCnt: // Get number of pages
@ -255,7 +255,7 @@ int16 VideoStatus(uint32 pb, uint32 dce)
return noErr;
default:
printf("WARNING: Unknown VideoStatus(%d)\n", code);
printf("WARNING: Unknown VideoDriverStatus(%d)\n", code);
return statusErr;
}
}