void update_load_save_game_menu(Menu* pmenu) { for(int i = 2; i < 7; ++i) { // FIXME: Insert a real savegame struct/class here instead of // doing string vodoo std::string tmp = slotinfo(i - 1); pmenu->item[i].kind = MN_ACTION; pmenu->item[i].change_text(tmp.c_str()); } }
/* * status change interrupt */ static void i82365intr(Ureg *, void *) { uchar csc, was; PCMslot *pp; if(slot == 0) return; for(pp = slot; pp < lastslot; pp++){ csc = rdreg(pp, Rcsc); was = pp->occupied; slotinfo(pp); if(csc & (1<<3) && was != pp->occupied){ if(!pp->occupied) slotdis(pp); } } }
/* * enable the slot card */ static void slotena(PCMslot *pp) { if(pp->enabled) return; /* power up and unreset, wait's are empirical (???) */ wrreg(pp, Rpc, Fautopower|Foutena|Fcardena); delay(300); wrreg(pp, Rigc, 0); delay(100); wrreg(pp, Rigc, Fnotreset); delay(500); /* get configuration */ slotinfo(pp); if(pp->occupied){ pcmcisread(pp); pp->enabled = 1; } else wrreg(pp, Rpc, Fautopower); }