From 7f28c94eda576e3f972fc05468188986f2e45885 Mon Sep 17 00:00:00 2001 From: Torne Wuff Date: Sun, 17 Jan 2010 22:15:13 +0000 Subject: New plugin: frotz, a Z-machine interpreter, for playing interactive fiction. The interpreter more or less passes all the tests in the z-machine test suite. It should build for every target except Archos (for which it is disabled). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24267 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/frotz/frotzplugin.h | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 apps/plugins/frotz/frotzplugin.h (limited to 'apps/plugins/frotz/frotzplugin.h') diff --git a/apps/plugins/frotz/frotzplugin.h b/apps/plugins/frotz/frotzplugin.h new file mode 100644 index 0000000000..8caddb470d --- /dev/null +++ b/apps/plugins/frotz/frotzplugin.h @@ -0,0 +1,56 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2009 Torne Wuff + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#ifndef _FROTZPLUGIN_H_ +#define _FROTZPLUGIN_H_ + +#include "plugin.h" + +/* + * pretend stdio.h is implemented. references to FILE * still have to be + * changed to int, and references to NULL into -1, but there are less of those + */ +#define fread(ptr, size, nmemb, stream) rb->read(stream, ptr, size*nmemb) +#define fwrite(ptr, size, nmemb, stream) rb->write(stream, ptr, size*nmemb) +#define fclose(stream) rb->close(stream) +#define fseek(stream, offset, whence) rb->lseek(stream, offset, whence) +#define ftell(stream) rb->lseek(stream, 0, SEEK_CUR) +#define ferror(stream) 0 + +/* + * we need functions for character io + */ +extern int ungetc(int c, int f); +extern int fgetc(int f); +extern int fputc(int c, int f); + +/* + * this is used instead of os_read_key for more prompts and the like + * since the menu can't be used there. + */ +extern void wait_for_key(void); + +/* + * wrappers + */ +#define strchr(s, c) rb->strchr(s, c) +#define strcpy(dest, src) rb->strcpy(dest, src) + +#endif /* _FROTZPLUGIN_H_ */ -- cgit v1.2.3