src/mess/drivers/pasopia.c
| r9006 | r9007 | |
| 7 | 7 | TODO: |
| 8 | 8 | - floppy support (but floppy images are unobtainable at current time) |
| 9 | 9 | - Z80PIO keyboard irq doesn't work at all, kludged keyboard inputs to work for now |
| 10 | | - advanced BASIC commands (width 80, circle, line ...) makes the emulation to go to la-la-land |
| 11 | | - some text garbage pops up in place, first example is when you type "10 for a=0 to n" |
| 12 | 10 | |
| 13 | 11 | ***************************************************************************************************/ |
| 14 | 12 | |
| r9006 | r9007 | |
| 123 | 121 | int count; |
| 124 | 122 | int width; |
| 125 | 123 | |
| 124 | bitmap_fill(bitmap, cliprect, screen->machine->pens[0]); |
| 125 | |
| 126 | 126 | fake_keyboard_data(screen->machine); |
| 127 | 127 | |
| 128 | 128 | width = x_width ? 80 : 40; |
| r9006 | r9007 | |
| 196 | 196 | { |
| 197 | 197 | static UINT8 res; |
| 198 | 198 | |
| 199 | | //if(!vram_sel) |
| 200 | | // return 0xff; |
| 199 | if(vram_sel == 0) |
| 200 | { |
| 201 | UINT8 *cpu = memory_region(space->machine, "maincpu"); |
| 201 | 202 | |
| 203 | return cpu[offset+0x8000]; |
| 204 | } |
| 205 | |
| 202 | 206 | if(pal_sel && (plane_reg & 0x70) == 0x00) |
| 203 | 207 | return p7_pal[offset & 0xf]; |
| 204 | 208 | |
| r9006 | r9007 | |
| 220 | 224 | |
| 221 | 225 | static WRITE8_HANDLER( vram_w ) |
| 222 | 226 | { |
| 223 | | //if(vram_sel) |
| 227 | if(vram_sel) |
| 224 | 228 | { |
| 225 | 229 | if(pal_sel && (plane_reg & 0x70) == 0x00) |
| 226 | 230 | { |
| r9006 | r9007 | |
| 240 | 244 | i8255a_w(space->machine->device("ppi8255_0"), 1, (attr_latch << 4) | (attr_latch & 0x7)); |
| 241 | 245 | } |
| 242 | 246 | } |
| 247 | else |
| 248 | { |
| 249 | UINT8 *cpu = memory_region(space->machine, "maincpu"); |
| 250 | |
| 251 | cpu[offset+0x8000] = data; |
| 252 | } |
| 243 | 253 | } |
| 244 | 254 | |
| 245 | 255 | static WRITE8_HANDLER( pasopia7_memory_ctrl_w ) |
| r9006 | r9007 | |
| 270 | 280 | |
| 271 | 281 | // bank4 is always RAM |
| 272 | 282 | |
| 273 | | // printf("%02x\n",data); |
| 283 | printf("%02x\n",vram_sel); |
| 274 | 284 | } |
| 275 | 285 | |
| 276 | 286 | #if 0 |
| r9006 | r9007 | |
| 379 | 389 | if(mio_sel) |
| 380 | 390 | { |
| 381 | 391 | address_space *ram_space = cputag_get_address_space(space->machine, "maincpu", ADDRESS_SPACE_PROGRAM); |
| 392 | |
| 382 | 393 | mio_sel = 0; |
| 383 | 394 | //printf("%08x\n",offset); |
| 384 | 395 | //return 0x0d; // hack: this is used for reading the keyboard data, we can fake it a little ... (modify fda4) |