int SampWrite( void FAR_PTR *buff, unsigned len ) { unsigned written; int handle; int rc; _fstrcpy( SampName, SharedMemory->SampName ); if( SharedMemory->SampleHandle == 0 ) { handle = SysCreate( SampName ); SharedMemory->SampleHandle = 1; } else { handle = SysOpen( SampName ); if( handle >= 0 ) SysSeek( handle, SharedMemory->SampOffset ); } if( handle == -1 ) { SharedMemory->FarWriteProblem = 1; return( -1 ); } written = SysWrite( handle, buff, len ); if( written == len ) { SharedMemory->SampOffset += len; rc = 0; } else { SysSeek( handle, SharedMemory->SampOffset ); SysWrite( handle, "", 0 ); SharedMemory->FarWriteProblem = 1; rc = -1; } SysClose( handle ); return( rc ); } /* SampWrite */
struct File* FileOpen(char* name, int flags) { int fd; struct File* ret; if (!name) return NULL; int openFlags=0; if (flags & FILE_READ) openFlags |= _SYS_FILE_READ | _SYS_FILE_FORCE_OPEN; if (flags & FILE_WRITE) openFlags |= _SYS_FILE_CREATE_OPEN | _SYS_FILE_WRITE | _SYS_FILE_READ; fd=SysOpen(name, openFlags, 0); if (fd < 0) return NULL; ret=(struct File*)malloc(sizeof(struct File)); ret->fd=fd; return ret; }
int s_video_null_mouse_init (s_server_conf_t *cfg) { mouseFd=SysOpen("/System/Devices/Input/Ps2Mouse", _SYS_FILE_READ, 0); if (mouseFd < 0) return -1; /* TODO: Set file to no delay when reading. */ return mouseFd; }
int s_video_vga_server_init (s_server_conf_t *cfg) { printf("Loading VGA driver.\n"); server->window->surface->width=320; server->window->surface->height=200; server->window->surface->bytesperpixel=1; server->window->surface->bitsperpixel=8; server->window->surface->colors = 256; server->window->surface->blueoffset = 0; server->window->surface->greenoffset = 3; server->window->surface->redoffset = 6; server->window->surface->bluelength = 3; server->window->surface->greenlength = 3; server->window->surface->redlength = 2; SysIoAccess(1); int memFd=SysOpen("/System/Devices/Special/Memory", _SYS_FILE_READ | _SYS_FILE_WRITE, 0); if (memFd < 0) printf("Could not open memory device\n"); server->window->surface->linear_buf= server->window->surface->vbuf= (unsigned char*)SysMemoryMap(0, VGA_SIZE, 7, memFd, VGA_BASE, _SYS_MMAP_PRIVATE); SysClose(memFd); if (!server->window->surface->vbuf) return -1; server->window->surface->linear_mem_base=0xA0000; server->window->surface->linear_mem_size=VGA_SIZE; if (!noGraphics) VgaInit(); return 0; }
int open(const char* path,int oflag,...) { if (!path) { errno = EFAULT; return -1; } if (oflag & O_EXCL) { oflag &= ~_SYS_FILE_CREATE_OPEN; oflag |= _SYS_FILE_FORCE_CREATE; oflag &= ~O_EXCL; } int fd=SysOpen((char*)path, oflag, 0); if (fd < 0) { errno=-fd; return -1; } if (oflag & O_TRUNC) { int err = SysTruncate(fd, 0); if (err < 0) { SysClose(fd); errno = err; return -1; } } return fd; }
int main( void ) { SysInit(); EeepromInit(); TimerInit(); ComInit(); Ds1302Init(); HtlcdInit(); BottonInit(); LedInit(); MenuInit(); INTEN while(1) { u8 botton_bit = 0; if(TimerGetSec() > 20) { TimerSetSec(0); SysSleep(); } if(TimerGetTimeFlag() > 0x01) { TimerSetTimeFlag(0); MenuRefreshTime(); } MenuFlickerServerTime(); botton_bit = BottonRead(); if(botton_bit > 0x01) { TimerSetSec(0); SysOpen(); } switch(botton_bit) { case 0x01: MenuSetFeatures(7); break;//后减档 case 0x02: MenuSetFeatures(5); break;//后加档 case 0x03: MenuSetFeatures(4); break;//前换挡 case 0x11: MenuSetFeatures(1); break;//区域3 case 0x12: MenuSetFeatures(6);//1 break;//区域2 case 0x13: MenuSetFeatures(8); break;//区域1 case 0x14: MenuSetFeatures(2); break;//区域1 case 0x15: MenuSetFeatures(3); break;//放开信号 } if(ComGetFlag() == 0x80) { ComClearFlag(); LedSet(0); switch(ComGetData(0)) { case front: switch(ComGetData(1)) { case dce_gear: MenuSetStalls(front,ComGetData(2)+1); MenuSetBattery(ComGetData(3)); break; } break; case behind: switch(ComGetData(1)) { case dce_gear: MenuSetStalls(behind,ComGetData(2)); MenuSetBattery(ComGetData(3)); break; } break; case dce_powe: MenuSetBattery(ComGetData(1)); break; } } } }