#ifdef __APPLE2ENH__ #pragma code-name (push, "LOWCO") #endif void InitPlayer2 (void) { #if defined __C128__ || defined __APPLE2ENH__ printscr("What is your name? (No more\n" "than 15 characters)?"); GetInput (Player.Name, 15); #endif __asm__ ( "\tlda\t#255\n" "\tldx\t#7\n" "@a01:\n" "\tsta\t%v+%b,x\n" "\tdex\n" "\tbpl\t@a01\n", Player, offsetof (struct player_, Inv) ); memcpy (&Player.RoomInv, &DefRoomItems, (NumItems<<3)); } #ifdef __APPLE2ENH__ #pragma code-name (pop) #endif void InitPlayer (void) { #ifdef __C64__ prints ("Loading data..."); load2 (); load2 (); load2 (); load2 (); #ifdef __USEFARMEM__ hideloadfile2(); #endif #elif defined __C128__ prints ("Loading data..."); __asm__ ( "\tldx\t#0\n" "\tstx\ttmp4\n" "\tlda\t#$68\n" "\tjsr\tcallkernal\n" ); load2 (); load2 (); #ifdef __USEFARMEM__ bank1_cbm_load ("bank1stub", 8, 0); #endif #elif defined __PLUS4__ printscr ("Loading data..."); load2 (); load2 (); load2 (); load2 (); #ifdef __USEFARMEM__ bank1_cbm_load ("bank1,s", 8, 0x1000); #else load2 (); #endif #elif defined __ATARI__ prints ("Loading data..."); cio_load (1, "D1:TAP.BIN", 0x3FD, 0x303); cio_load (1, "D1:MEMX1.BIN", 0x15A4, 0x442); #ifdef __USEFARMEM__ loadauxmem ("D1:AUX1.BIN"); #endif #elif defined __APPLE2ENH__ #ifdef __USEFARMEM__ aux_init (); #endif prints ("Loading data..."); loadstub ("/PRODOS203/LOWMEM", 0x0800); #ifdef __USEFARMEM__ loadauxro ("/PRODOS203/AUXRO"); #endif #endif #if !defined __C128__ && !defined __APPLE2ENH__ printscr("What is your name? (No more\n" "than 15 characters)?"); GetInput (Player.Name, 15); #endif InitPlayer2 (); } #ifdef __C128__ #pragma code-name (push, "APPCODE") #elif defined __C64__ #pragma code-name (push, "TAPECODE") #elif defined __PLUS4__ #pragma code-name (push, "TAPECODE") #elif defined __ATARI__ #pragma code-name (push, "TBUFCODE") #elif defined __APPLE2ENH__ #pragma code-name (push, "LOWCO") #endif #ifdef __CBM__ #ifdef __C128__ #pragma code-name (push, "APPCODE") #endif unsigned char __fastcall__ GetInput (char* In, unsigned char InLen) { CurPos=0; printc ('>'); while (1) { printc ('_'); i = getkey (); printc (20); if (i==13){ /*return*/ In[CurPos]=0; printcr (); return CurPos; } if (i == 20 && CurPos) { /* delete */ --CurPos; printc (20); } if ((i&0x60) && CurPos'); while (1) { i = getkey ()&127; if (i=='\n'){ /*return*/ In[CurPos]=0; //Terminate input string. printcr (); //Go to next screen line. return CurPos; //Return string len. } else if (i == 127 && CurPos) { /* delete */ --CurPos; //Cursor left. printc ('\b'); //Delete last char. from screen. printc (' '); printc ('\b'); } else if (isprint(i) && i!=127 && CurPos