From d383f2bcdb6ff13cc562fce1ff55d826035debad Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 6 Mar 2023 17:36:31 +0100 Subject: Simplify source tree Now just use make in the root directory to build. --- src/c_display.iom | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 src/c_display.iom (limited to 'src/c_display.iom') diff --git a/src/c_display.iom b/src/c_display.iom new file mode 100644 index 0000000..2e1ab74 --- /dev/null +++ b/src/c_display.iom @@ -0,0 +1,177 @@ +// +// Programmer +// +// Date init 14.12.2004 +// +// Reviser $Author:: Dkandlun $ +// +// Revision date $Date:: 14-11-07 12:40 $ +// +// Filename $Workfile:: c_display.iom $ +// +// Version $Revision:: 1 $ +// +// Archive $Archive:: /LMS2006/Sys01/Main_V02/Firmware/Source/c_disp $ +// +// Platform C +// + +#ifndef CDISPLAY_IOM +#define CDISPLAY_IOM + +#define pMapDisplay ((IOMAPDISPLAY*)(pHeaders[ENTRY_DISPLAY]->pIOMap)) + +// Constants related to simple draw entry (x = dont care) +enum +{ + DISPLAY_ERASE_ALL = 0x00, // W - erase entire screen (CMD,x,x,x,x,x) + DISPLAY_PIXEL = 0x01, // W - set pixel (on/off) (CMD,TRUE/FALSE,X,Y,x,x) + DISPLAY_HORISONTAL_LINE = 0x02, // W - draw horisontal line (CMD,TRUE,X1,Y1,X2,x) + DISPLAY_VERTICAL_LINE = 0x03, // W - draw vertical line (CMD,TRUE,X1,Y1,x,Y2) + DISPLAY_CHAR = 0x04 // W - draw char (actual font) (CMD,TRUE,X1,Y1,Char,x) +}; + +// Constants related to Flags +enum +{ + DISPLAY_ON = 0x01, // W - Display on + DISPLAY_REFRESH = 0x02, // W - Enable refresh + DISPLAY_POPUP = 0x08, // W - Use popup display memory + DISPLAY_REFRESH_DISABLED = 0x40, // R - Refresh disabled + DISPLAY_BUSY = 0x80 // R - Refresh in progress +}; + + +#define DISPLAY_HEIGHT 64 // Y pixels +#define DISPLAY_WIDTH 100 // X pixels + +#define DISPLAY_MENUICONS_Y 40 +#define DISPLAY_MENUICONS_X_OFFS 7 +#define DISPLAY_MENUICONS_X_DIFF 31 + +#define DISPLAY_IDLE ((pMapDisplay->EraseMask == 0) && (pMapDisplay->UpdateMask == 0)) + +enum TEXTLINE_NO // Used in macro "TEXTLINE_BIT" +{ + TEXTLINE_1, // Upper most line + TEXTLINE_2, // + TEXTLINE_3, // + TEXTLINE_4, // + TEXTLINE_5, // + TEXTLINE_6, // + TEXTLINE_7, // + TEXTLINE_8, // Buttom line + TEXTLINES +}; + +enum MENUICON_NO // Used in macro "MENUICON_BIT" +{ + MENUICON_LEFT, // Left icon + MENUICON_CENTER, // Center icon + MENUICON_RIGHT, // Right icon + MENUICONS +}; + +enum SPECIAL_NO // Used in macro "SPECIAL_BIT" +{ + FRAME_SELECT, // Center icon select frame + STATUSTEXT, // Status text (BT name) + MENUTEXT, // Center icon text + STEPLINE, // Step collection lines + TOPLINE, // Top status underline + SPECIALS +}; + +enum STATUSICON_NO // Used in macro "STATUSICON_BIT" +{ + STATUSICON_BLUETOOTH, // BlueTooth status icon collection + STATUSICON_USB, // USB status icon collection + STATUSICON_VM, // VM status icon collection + STATUSICON_BATTERY, // Battery status icon collection + STATUSICONS +}; + +enum SCREEN_NO // Used in macro "SCREEN_BIT" +{ + SCREEN_BACKGROUND, // Entire screen + SCREEN_LARGE, // Entire screen except status line + SCREEN_SMALL, // Screen between menu icons and status line + SCREENS +}; + +enum BITMAP_NO // Used in macro "BITMAP_BIT" +{ + BITMAP_1, // Bitmap 1 + BITMAP_2, // Bitmap 2 + BITMAP_3, // Bitmap 3 + BITMAP_4, // Bitmap 4 + BITMAPS +}; + +enum STEP_NO // Used in macro "STEPICON_BIT" +{ + STEPICON_1, // Left most step icon + STEPICON_2, // + STEPICON_3, // + STEPICON_4, // + STEPICON_5, // Right most step icon + STEPICONS +}; + +#define SCREEN_BITS ((ULONG)0xE0000000) // Executed as 1. +#define STEPICON_BITS ((ULONG)0x1F000000) // Executed as 2. +#define BITMAP_BITS ((ULONG)0x00F00000) // Executed as 3. +#define MENUICON_BITS ((ULONG)0x000E0000) // Executed as 4. +#define STATUSICON_BITS ((ULONG)0x0001E000) // Executed as 5. +#define SPECIAL_BITS ((ULONG)0x00001F00) // Executed as 6. +#define TEXTLINE_BITS ((ULONG)0x000000FF) // Executed as 7. + +#define SCREEN_BIT(No) ((ULONG)0x20000000 << (No)) +#define STEPICON_BIT(No) ((ULONG)0x01000000 << (No)) +#define BITMAP_BIT(No) ((ULONG)0x00100000 << (No)) +#define MENUICON_BIT(No) ((ULONG)0x00020000 << (No)) +#define STATUSICON_BIT(No) ((ULONG)0x00002000 << (No)) +#define SPECIAL_BIT(No) ((ULONG)0x00000100 << (No)) +#define TEXTLINE_BIT(No) ((ULONG)0x00000001 << (No)) + + +typedef struct +{ + void (*pFunc)(UBYTE,UBYTE,UBYTE,UBYTE,UBYTE,UBYTE); // Simple draw entry + + ULONG EraseMask; // Section erase mask (executed first) + ULONG UpdateMask; // Section update mask (executed next) + + FONT *pFont; // Pointer to font file + UBYTE *pTextLines[TEXTLINES]; // Pointer to text strings + + UBYTE *pStatusText; // Pointer to status text string + ICON *pStatusIcons; // Pointer to status icon collection file + + BMPMAP *pScreens[SCREENS]; // Pointer to screen bitmap file + BMPMAP *pBitmaps[BITMAPS]; // Pointer to free bitmap files + + UBYTE *pMenuText; // Pointer to menu icon text (NULL == none) + UBYTE *pMenuIcons[MENUICONS]; // Pointer to menu icon images (NULL == none) + + ICON *pStepIcons; // Pointer to step icon collection file + + UBYTE *Display; // Display content copied to physical display every 17 mS + + UBYTE StatusIcons[STATUSICONS]; // Index in status icon collection file (index = 0 -> none) + + UBYTE StepIcons[STEPICONS]; // Index in step icon collection file (index = 0 -> none) + + UBYTE Flags; // Update flags enumerated above + + UBYTE TextLinesCenterFlags; // Mask to center TextLines + + UBYTE Normal[DISPLAY_HEIGHT / 8][DISPLAY_WIDTH]; // Raw display memory for normal screen + UBYTE Popup[DISPLAY_HEIGHT / 8][DISPLAY_WIDTH]; // Raw display memory for popup screen +} +IOMAPDISPLAY; + +#endif + + + -- cgit v1.2.3