trunk/src/devices/machine/hp_taco.cpp
| r253707 | r253708 | |
| 148 | 148 | |
| 149 | 149 | // Timers |
| 150 | 150 | enum { |
| 151 | | TAPE_TMR_ID, |
| 152 | | HOLE_TMR_ID |
| 151 | TAPE_TMR_ID, |
| 152 | HOLE_TMR_ID |
| 153 | 153 | }; |
| 154 | 154 | |
| 155 | 155 | // Constants |
| r253707 | r253708 | |
| 178 | 178 | |
| 179 | 179 | // Parts of command register |
| 180 | 180 | #define CMD_CODE(reg) \ |
| 181 | | (((reg) >> 10) & 0x1f) |
| 181 | (((reg) >> 10) & 0x1f) |
| 182 | 182 | #define DIR_FWD(reg) \ |
| 183 | | (BIT(reg , 15)) |
| 183 | (BIT(reg , 15)) |
| 184 | 184 | #define SPEED_FAST(reg) \ |
| 185 | | (BIT(reg , 7)) |
| 185 | (BIT(reg , 7)) |
| 186 | 186 | #define CMD_OPT(reg) \ |
| 187 | | (BIT(reg , 6)) |
| 187 | (BIT(reg , 6)) |
| 188 | 188 | #define UNKNOWN_B9(reg) \ |
| 189 | | (BIT(reg , 9)) |
| 189 | (BIT(reg , 9)) |
| 190 | 190 | #define DIR_FWD_MASK BIT_MASK(15) // Direction = forward |
| 191 | 191 | #define SPEED_FAST_MASK BIT_MASK(7) // Speed = fast |
| 192 | 192 | |
| 193 | 193 | // Commands |
| 194 | 194 | enum { |
| 195 | | CMD_INDTA_INGAP, // 00: scan for data first then for gap |
| 196 | | CMD_UNK_01, // 01: unknown |
| 197 | | CMD_FINAL_GAP, // 02: write final gap |
| 198 | | CMD_INIT_WRITE, // 03: write words for tape formatting |
| 199 | | CMD_STOP, // 04: stop |
| 200 | | CMD_UNK_05, // 05: unknown |
| 201 | | CMD_SET_TRACK, // 06: set A/B track |
| 202 | | CMD_UNK_07, // 07: unknown |
| 203 | | CMD_UNK_08, // 08: unknown |
| 204 | | CMD_UNK_09, // 09: unknown |
| 205 | | CMD_MOVE, // 0a: move tape |
| 206 | | CMD_UNK_0b, // 0b: unknown |
| 207 | | CMD_INGAP_MOVE, // 0c: scan for gap then move a bit further (used to gain some margin when inverting tape movement) |
| 208 | | CMD_UNK_0d, // 0d: unknown |
| 209 | | CMD_CLEAR, // 0e: clear errors/unlatch status bits |
| 210 | | CMD_UNK_0f, // 0f: unknown |
| 211 | | CMD_NOT_INDTA, // 10: scan for end of data |
| 212 | | CMD_UNK_11, // 11: unknown |
| 213 | | CMD_UNK_12, // 12: unknown |
| 214 | | CMD_UNK_13, // 13: unknown |
| 215 | | CMD_UNK_14, // 14: unknown |
| 216 | | CMD_UNK_15, // 15: unknown |
| 217 | | CMD_WRITE_IRG, // 16: write inter-record gap |
| 218 | | CMD_UNK_17, // 17: unknown |
| 219 | | CMD_SCAN_RECORDS, // 18: scan records (count IRGs) |
| 220 | | CMD_RECORD_WRITE, // 19: write record words |
| 221 | | CMD_MOVE_INDTA, // 1a: move then scan for data |
| 222 | | CMD_UNK_1b, // 1b: unknown (for now it seems harmless to handle it as NOP) |
| 223 | | CMD_DELTA_MOVE_HOLE, // 1c: move tape a given distance, intr at end or first hole found (whichever comes first) |
| 224 | | CMD_START_READ, // 1d: start record reading |
| 225 | | CMD_DELTA_MOVE_IRG, // 1e: move tape a given distance, detect gaps in parallel |
| 226 | | CMD_END_READ // 1f: stop reading |
| 195 | CMD_INDTA_INGAP, // 00: scan for data first then for gap |
| 196 | CMD_UNK_01, // 01: unknown |
| 197 | CMD_FINAL_GAP, // 02: write final gap |
| 198 | CMD_INIT_WRITE, // 03: write words for tape formatting |
| 199 | CMD_STOP, // 04: stop |
| 200 | CMD_UNK_05, // 05: unknown |
| 201 | CMD_SET_TRACK, // 06: set A/B track |
| 202 | CMD_UNK_07, // 07: unknown |
| 203 | CMD_UNK_08, // 08: unknown |
| 204 | CMD_UNK_09, // 09: unknown |
| 205 | CMD_MOVE, // 0a: move tape |
| 206 | CMD_UNK_0b, // 0b: unknown |
| 207 | CMD_INGAP_MOVE, // 0c: scan for gap then move a bit further (used to gain some margin when inverting tape movement) |
| 208 | CMD_UNK_0d, // 0d: unknown |
| 209 | CMD_CLEAR, // 0e: clear errors/unlatch status bits |
| 210 | CMD_UNK_0f, // 0f: unknown |
| 211 | CMD_NOT_INDTA, // 10: scan for end of data |
| 212 | CMD_UNK_11, // 11: unknown |
| 213 | CMD_UNK_12, // 12: unknown |
| 214 | CMD_UNK_13, // 13: unknown |
| 215 | CMD_UNK_14, // 14: unknown |
| 216 | CMD_UNK_15, // 15: unknown |
| 217 | CMD_WRITE_IRG, // 16: write inter-record gap |
| 218 | CMD_UNK_17, // 17: unknown |
| 219 | CMD_SCAN_RECORDS, // 18: scan records (count IRGs) |
| 220 | CMD_RECORD_WRITE, // 19: write record words |
| 221 | CMD_MOVE_INDTA, // 1a: move then scan for data |
| 222 | CMD_UNK_1b, // 1b: unknown (for now it seems harmless to handle it as NOP) |
| 223 | CMD_DELTA_MOVE_HOLE, // 1c: move tape a given distance, intr at end or first hole found (whichever comes first) |
| 224 | CMD_START_READ, // 1d: start record reading |
| 225 | CMD_DELTA_MOVE_IRG, // 1e: move tape a given distance, detect gaps in parallel |
| 226 | CMD_END_READ // 1f: stop reading |
| 227 | 227 | }; |
| 228 | 228 | |
| 229 | 229 | // Bits of status register |
| r253707 | r253708 | |
| 250 | 250 | // O O O O |
| 251 | 251 | // |
| 252 | 252 | static const hp_taco_device::tape_pos_t tape_holes[] = { |
| 253 | | (hp_taco_device::tape_pos_t)(23.891 * ONE_INCH_POS), // 24 - 0.218 / 2 |
| 254 | | (hp_taco_device::tape_pos_t)(24.109 * ONE_INCH_POS), // 24 + 0.218 / 2 |
| 255 | | (hp_taco_device::tape_pos_t)(35.891 * ONE_INCH_POS), // 36 - 0.218 / 2 |
| 256 | | (hp_taco_device::tape_pos_t)(36.109 * ONE_INCH_POS), // 36 + 0.218 / 2 |
| 257 | | (hp_taco_device::tape_pos_t)(47.891 * ONE_INCH_POS), // 48 - 0.218 / 2 |
| 258 | | (hp_taco_device::tape_pos_t)(48.109 * ONE_INCH_POS), // 48 + 0.218 / 2 |
| 259 | | 72 * ONE_INCH_POS, // 72 |
| 260 | | 1752 * ONE_INCH_POS, // 1752 |
| 261 | | 1776 * ONE_INCH_POS, // 1776 |
| 262 | | 1788 * ONE_INCH_POS, // 1788 |
| 263 | | 1800 * ONE_INCH_POS // 1800 |
| 253 | (hp_taco_device::tape_pos_t)(23.891 * ONE_INCH_POS), // 24 - 0.218 / 2 |
| 254 | (hp_taco_device::tape_pos_t)(24.109 * ONE_INCH_POS), // 24 + 0.218 / 2 |
| 255 | (hp_taco_device::tape_pos_t)(35.891 * ONE_INCH_POS), // 36 - 0.218 / 2 |
| 256 | (hp_taco_device::tape_pos_t)(36.109 * ONE_INCH_POS), // 36 + 0.218 / 2 |
| 257 | (hp_taco_device::tape_pos_t)(47.891 * ONE_INCH_POS), // 48 - 0.218 / 2 |
| 258 | (hp_taco_device::tape_pos_t)(48.109 * ONE_INCH_POS), // 48 + 0.218 / 2 |
| 259 | 72 * ONE_INCH_POS, // 72 |
| 260 | 1752 * ONE_INCH_POS, // 1752 |
| 261 | 1776 * ONE_INCH_POS, // 1776 |
| 262 | 1788 * ONE_INCH_POS, // 1788 |
| 263 | 1800 * ONE_INCH_POS // 1800 |
| 264 | 264 | }; |
| 265 | 265 | |
| 266 | 266 | // Device type definition |
| r253707 | r253708 | |
| 268 | 268 | |
| 269 | 269 | // Constructors |
| 270 | 270 | hp_taco_device::hp_taco_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname) |
| 271 | | : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), |
| 272 | | device_image_interface(mconfig , *this), |
| 273 | | m_irq_handler(*this), |
| 274 | | m_flg_handler(*this), |
| 275 | | m_sts_handler(*this), |
| 276 | | m_tape_pos(TAPE_INIT_POS), |
| 277 | | m_image_dirty(false) |
| 271 | : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), |
| 272 | device_image_interface(mconfig , *this), |
| 273 | m_irq_handler(*this), |
| 274 | m_flg_handler(*this), |
| 275 | m_sts_handler(*this), |
| 276 | m_tape_pos(TAPE_INIT_POS), |
| 277 | m_image_dirty(false) |
| 278 | 278 | { |
| 279 | | clear_state(); |
| 279 | clear_state(); |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | hp_taco_device::hp_taco_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 283 | | : device_t(mconfig, HP_TACO, "HP TACO", tag, owner, clock, "TACO", __FILE__), |
| 284 | | device_image_interface(mconfig , *this), |
| 285 | | m_irq_handler(*this), |
| 286 | | m_flg_handler(*this), |
| 287 | | m_sts_handler(*this), |
| 288 | | m_tape_pos(TAPE_INIT_POS), |
| 289 | | m_image_dirty(false) |
| 283 | : device_t(mconfig, HP_TACO, "HP TACO", tag, owner, clock, "TACO", __FILE__), |
| 284 | device_image_interface(mconfig , *this), |
| 285 | m_irq_handler(*this), |
| 286 | m_flg_handler(*this), |
| 287 | m_sts_handler(*this), |
| 288 | m_tape_pos(TAPE_INIT_POS), |
| 289 | m_image_dirty(false) |
| 290 | 290 | { |
| 291 | | clear_state(); |
| 291 | clear_state(); |
| 292 | 292 | } |
| 293 | 293 | |
| 294 | 294 | WRITE16_MEMBER(hp_taco_device::reg_w) |
| 295 | 295 | { |
| 296 | | LOG_0(("wr R%u = %04x\n", 4 + offset , data)); |
| 296 | LOG_0(("wr R%u = %04x\n", 4 + offset , data)); |
| 297 | 297 | |
| 298 | | // Any I/O activity clears IRQ |
| 299 | | irq_w(false); |
| 298 | // Any I/O activity clears IRQ |
| 299 | irq_w(false); |
| 300 | 300 | |
| 301 | | switch (offset) { |
| 302 | | case 0: |
| 303 | | // Data register |
| 304 | | m_data_reg = data; |
| 305 | | m_data_reg_full = true; |
| 306 | | break; |
| 301 | switch (offset) { |
| 302 | case 0: |
| 303 | // Data register |
| 304 | m_data_reg = data; |
| 305 | m_data_reg_full = true; |
| 306 | break; |
| 307 | 307 | |
| 308 | | case 1: |
| 309 | | // Command register |
| 310 | | start_cmd_exec(data & CMD_REG_MASK); |
| 311 | | break; |
| 308 | case 1: |
| 309 | // Command register |
| 310 | start_cmd_exec(data & CMD_REG_MASK); |
| 311 | break; |
| 312 | 312 | |
| 313 | | case 2: |
| 314 | | // Tachometer register |
| 315 | | m_tach_reg = data; |
| 316 | | break; |
| 313 | case 2: |
| 314 | // Tachometer register |
| 315 | m_tach_reg = data; |
| 316 | break; |
| 317 | 317 | |
| 318 | | case 3: |
| 319 | | // Timing register |
| 320 | | m_timing_reg = data; |
| 321 | | break; |
| 322 | | } |
| 318 | case 3: |
| 319 | // Timing register |
| 320 | m_timing_reg = data; |
| 321 | break; |
| 322 | } |
| 323 | 323 | } |
| 324 | 324 | |
| 325 | 325 | READ16_MEMBER(hp_taco_device::reg_r) |
| 326 | 326 | { |
| 327 | | UINT16 res = 0; |
| 327 | UINT16 res = 0; |
| 328 | 328 | |
| 329 | | // Any I/O activity clears IRQ |
| 330 | | irq_w(false); |
| 329 | // Any I/O activity clears IRQ |
| 330 | irq_w(false); |
| 331 | 331 | |
| 332 | | switch (offset) { |
| 333 | | case 0: |
| 334 | | // Data register |
| 335 | | res = m_data_reg; |
| 336 | | break; |
| 332 | switch (offset) { |
| 333 | case 0: |
| 334 | // Data register |
| 335 | res = m_data_reg; |
| 336 | break; |
| 337 | 337 | |
| 338 | | case 1: |
| 339 | | // Command & status register |
| 340 | | res = (m_cmd_reg & CMD_REG_MASK) | (m_status_reg & STATUS_REG_MASK); |
| 341 | | break; |
| 338 | case 1: |
| 339 | // Command & status register |
| 340 | res = (m_cmd_reg & CMD_REG_MASK) | (m_status_reg & STATUS_REG_MASK); |
| 341 | break; |
| 342 | 342 | |
| 343 | | case 2: |
| 344 | | // Tachometer register |
| 345 | | res = m_tach_reg; |
| 346 | | break; |
| 343 | case 2: |
| 344 | // Tachometer register |
| 345 | res = m_tach_reg; |
| 346 | break; |
| 347 | 347 | |
| 348 | | case 3: |
| 349 | | // Checksum register: it clears when read |
| 350 | | res = m_checksum_reg; |
| 351 | | m_checksum_reg = 0; |
| 352 | | break; |
| 353 | | } |
| 348 | case 3: |
| 349 | // Checksum register: it clears when read |
| 350 | res = m_checksum_reg; |
| 351 | m_checksum_reg = 0; |
| 352 | break; |
| 353 | } |
| 354 | 354 | |
| 355 | | LOG_0(("rd R%u = %04x\n", 4 + offset , res)); |
| 355 | LOG_0(("rd R%u = %04x\n", 4 + offset , res)); |
| 356 | 356 | |
| 357 | | return res; |
| 357 | return res; |
| 358 | 358 | } |
| 359 | 359 | |
| 360 | 360 | READ_LINE_MEMBER(hp_taco_device::flg_r) |
| 361 | 361 | { |
| 362 | | return m_flg; |
| 362 | return m_flg; |
| 363 | 363 | } |
| 364 | 364 | |
| 365 | 365 | READ_LINE_MEMBER(hp_taco_device::sts_r) |
| 366 | 366 | { |
| 367 | | return m_sts; |
| 367 | return m_sts; |
| 368 | 368 | } |
| 369 | 369 | |
| 370 | 370 | // device_config_complete |
| 371 | 371 | void hp_taco_device::device_config_complete() |
| 372 | 372 | { |
| 373 | | LOG(("device_config_complete")); |
| 373 | LOG(("device_config_complete")); |
| 374 | 374 | update_names(); |
| 375 | 375 | } |
| 376 | 376 | |
| 377 | 377 | // device_start |
| 378 | 378 | void hp_taco_device::device_start() |
| 379 | 379 | { |
| 380 | | LOG(("device_start")); |
| 381 | | m_irq_handler.resolve_safe(); |
| 382 | | m_flg_handler.resolve_safe(); |
| 383 | | m_sts_handler.resolve_safe(); |
| 380 | LOG(("device_start")); |
| 381 | m_irq_handler.resolve_safe(); |
| 382 | m_flg_handler.resolve_safe(); |
| 383 | m_sts_handler.resolve_safe(); |
| 384 | 384 | |
| 385 | | save_item(NAME(m_data_reg)); |
| 386 | | save_item(NAME(m_data_reg_full)); |
| 387 | | save_item(NAME(m_cmd_reg)); |
| 388 | | save_item(NAME(m_cmd_state)); |
| 389 | | save_item(NAME(m_status_reg)); |
| 390 | | save_item(NAME(m_tach_reg)); |
| 391 | | save_item(NAME(m_checksum_reg)); |
| 392 | | save_item(NAME(m_timing_reg)); |
| 393 | | save_item(NAME(m_irq)); |
| 394 | | save_item(NAME(m_flg)); |
| 395 | | save_item(NAME(m_sts)); |
| 396 | | save_item(NAME(m_tape_pos)); |
| 397 | | save_item(NAME(m_start_time)); |
| 398 | | save_item(NAME(m_tape_fwd)); |
| 399 | | save_item(NAME(m_tape_fast)); |
| 400 | | save_item(NAME(m_image_dirty)); |
| 401 | | save_item(NAME(m_tape_wr)); |
| 402 | | save_item(NAME(m_rw_pos)); |
| 403 | | save_item(NAME(m_next_word)); |
| 404 | | save_item(NAME(m_rd_it_valid)); |
| 405 | | save_item(NAME(m_gap_detect_start)); |
| 385 | save_item(NAME(m_data_reg)); |
| 386 | save_item(NAME(m_data_reg_full)); |
| 387 | save_item(NAME(m_cmd_reg)); |
| 388 | save_item(NAME(m_cmd_state)); |
| 389 | save_item(NAME(m_status_reg)); |
| 390 | save_item(NAME(m_tach_reg)); |
| 391 | save_item(NAME(m_checksum_reg)); |
| 392 | save_item(NAME(m_timing_reg)); |
| 393 | save_item(NAME(m_irq)); |
| 394 | save_item(NAME(m_flg)); |
| 395 | save_item(NAME(m_sts)); |
| 396 | save_item(NAME(m_tape_pos)); |
| 397 | save_item(NAME(m_start_time)); |
| 398 | save_item(NAME(m_tape_fwd)); |
| 399 | save_item(NAME(m_tape_fast)); |
| 400 | save_item(NAME(m_image_dirty)); |
| 401 | save_item(NAME(m_tape_wr)); |
| 402 | save_item(NAME(m_rw_pos)); |
| 403 | save_item(NAME(m_next_word)); |
| 404 | save_item(NAME(m_rd_it_valid)); |
| 405 | save_item(NAME(m_gap_detect_start)); |
| 406 | 406 | |
| 407 | | m_tape_timer = timer_alloc(TAPE_TMR_ID); |
| 408 | | m_hole_timer = timer_alloc(HOLE_TMR_ID); |
| 407 | m_tape_timer = timer_alloc(TAPE_TMR_ID); |
| 408 | m_hole_timer = timer_alloc(HOLE_TMR_ID); |
| 409 | 409 | } |
| 410 | 410 | |
| 411 | 411 | // device_stop |
| r253707 | r253708 | |
| 416 | 416 | // device_reset |
| 417 | 417 | void hp_taco_device::device_reset() |
| 418 | 418 | { |
| 419 | | LOG(("device_reset")); |
| 420 | | clear_state(); |
| 419 | LOG(("device_reset")); |
| 420 | clear_state(); |
| 421 | 421 | |
| 422 | | m_irq = false; |
| 423 | | m_flg = true; |
| 422 | m_irq = false; |
| 423 | m_flg = true; |
| 424 | 424 | |
| 425 | | m_irq_handler(false); |
| 426 | | m_flg_handler(true); |
| 427 | | set_error(false); |
| 425 | m_irq_handler(false); |
| 426 | m_flg_handler(true); |
| 427 | set_error(false); |
| 428 | 428 | } |
| 429 | 429 | |
| 430 | 430 | void hp_taco_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) |
| 431 | 431 | { |
| 432 | | if (CMD_CODE(m_cmd_reg) != CMD_STOP) { |
| 433 | | update_tape_pos(); |
| 434 | | } |
| 432 | if (CMD_CODE(m_cmd_reg) != CMD_STOP) { |
| 433 | update_tape_pos(); |
| 434 | } |
| 435 | 435 | |
| 436 | | switch (id) { |
| 437 | | case TAPE_TMR_ID: |
| 438 | | LOG_0(("Tape tmr @%g\n" , machine().time().as_double())); |
| 436 | switch (id) { |
| 437 | case TAPE_TMR_ID: |
| 438 | LOG_0(("Tape tmr @%g\n" , machine().time().as_double())); |
| 439 | 439 | |
| 440 | | tape_pos_t length; |
| 440 | tape_pos_t length; |
| 441 | 441 | |
| 442 | | switch (CMD_CODE(m_cmd_reg)) { |
| 443 | | case CMD_INDTA_INGAP: |
| 444 | | if (m_cmd_state == 0) { |
| 445 | | m_cmd_state = 1; |
| 446 | | tape_pos_t target = m_tape_pos; |
| 447 | | if (next_n_gap(target, 1, MIN_IRG_LENGTH)) { |
| 448 | | m_tape_timer->adjust(time_to_target(target)); |
| 449 | | } |
| 450 | | return; |
| 451 | | } |
| 452 | | break; |
| 442 | switch (CMD_CODE(m_cmd_reg)) { |
| 443 | case CMD_INDTA_INGAP: |
| 444 | if (m_cmd_state == 0) { |
| 445 | m_cmd_state = 1; |
| 446 | tape_pos_t target = m_tape_pos; |
| 447 | if (next_n_gap(target, 1, MIN_IRG_LENGTH)) { |
| 448 | m_tape_timer->adjust(time_to_target(target)); |
| 449 | } |
| 450 | return; |
| 451 | } |
| 452 | break; |
| 453 | 453 | |
| 454 | | case CMD_RECORD_WRITE: |
| 455 | | if (m_cmd_state == 0) { |
| 456 | | if (m_rd_it->second == PREAMBLE_WORD) { |
| 457 | | LOG_0(("Got preamble\n")); |
| 458 | | m_cmd_state = 1; |
| 459 | | // m_rw_pos already at correct position |
| 460 | | m_tape_timer->adjust(fetch_next_wr_word()); |
| 461 | | break; |
| 462 | | } else { |
| 463 | | adv_res_t res = adv_it(m_rd_it); |
| 464 | | if (res != ADV_NO_MORE_DATA) { |
| 465 | | m_tape_timer->adjust(time_to_rd_next_word(m_rw_pos)); |
| 466 | | } |
| 467 | | // No IRQ |
| 468 | | return; |
| 469 | | } |
| 470 | | } |
| 471 | | // Intentional fall-through |
| 472 | | case CMD_INIT_WRITE: |
| 473 | | write_word(m_rw_pos , m_next_word , length); |
| 474 | | pos_offset(m_rw_pos , length); |
| 475 | | // Just to be sure.. |
| 476 | | m_tape_pos = m_rw_pos; |
| 477 | | m_tape_timer->adjust(fetch_next_wr_word()); |
| 478 | | break; |
| 454 | case CMD_RECORD_WRITE: |
| 455 | if (m_cmd_state == 0) { |
| 456 | if (m_rd_it->second == PREAMBLE_WORD) { |
| 457 | LOG_0(("Got preamble\n")); |
| 458 | m_cmd_state = 1; |
| 459 | // m_rw_pos already at correct position |
| 460 | m_tape_timer->adjust(fetch_next_wr_word()); |
| 461 | break; |
| 462 | } else { |
| 463 | adv_res_t res = adv_it(m_rd_it); |
| 464 | if (res != ADV_NO_MORE_DATA) { |
| 465 | m_tape_timer->adjust(time_to_rd_next_word(m_rw_pos)); |
| 466 | } |
| 467 | // No IRQ |
| 468 | return; |
| 469 | } |
| 470 | } |
| 471 | // Intentional fall-through |
| 472 | case CMD_INIT_WRITE: |
| 473 | write_word(m_rw_pos , m_next_word , length); |
| 474 | pos_offset(m_rw_pos , length); |
| 475 | // Just to be sure.. |
| 476 | m_tape_pos = m_rw_pos; |
| 477 | m_tape_timer->adjust(fetch_next_wr_word()); |
| 478 | break; |
| 479 | 479 | |
| 480 | | case CMD_STOP: |
| 481 | | move_tape_pos(m_tape_fast ? FAST_BRAKE_DIST : SLOW_BRAKE_DIST); |
| 482 | | stop_tape(); |
| 483 | | break; |
| 480 | case CMD_STOP: |
| 481 | move_tape_pos(m_tape_fast ? FAST_BRAKE_DIST : SLOW_BRAKE_DIST); |
| 482 | stop_tape(); |
| 483 | break; |
| 484 | 484 | |
| 485 | | case CMD_INGAP_MOVE: |
| 486 | | if (m_cmd_state == 0) { |
| 487 | | m_cmd_state = 1; |
| 488 | | m_tape_timer->adjust(time_to_tach_pulses()); |
| 489 | | return; |
| 490 | | } |
| 491 | | break; |
| 485 | case CMD_INGAP_MOVE: |
| 486 | if (m_cmd_state == 0) { |
| 487 | m_cmd_state = 1; |
| 488 | m_tape_timer->adjust(time_to_tach_pulses()); |
| 489 | return; |
| 490 | } |
| 491 | break; |
| 492 | 492 | |
| 493 | | case CMD_FINAL_GAP: |
| 494 | | case CMD_WRITE_IRG: |
| 495 | | write_gap(m_rw_pos , m_tape_pos); |
| 496 | | m_hole_timer->reset(); |
| 497 | | break; |
| 493 | case CMD_FINAL_GAP: |
| 494 | case CMD_WRITE_IRG: |
| 495 | write_gap(m_rw_pos , m_tape_pos); |
| 496 | m_hole_timer->reset(); |
| 497 | break; |
| 498 | 498 | |
| 499 | | case CMD_SCAN_RECORDS: |
| 500 | | if (m_cmd_state == 0) { |
| 501 | | m_cmd_state = 1; |
| 502 | | tape_pos_t target = m_tape_pos; |
| 503 | | if (next_n_gap(target, 0x10000U - m_tach_reg, MIN_IRG_LENGTH)) { |
| 504 | | LOG_0(("%u gaps @%d\n" , 0x10000U - m_tach_reg, target)); |
| 505 | | m_tape_timer->adjust(time_to_target(target)); |
| 506 | | } |
| 507 | | return; |
| 508 | | } else { |
| 509 | | m_hole_timer->reset(); |
| 510 | | } |
| 511 | | break; |
| 499 | case CMD_SCAN_RECORDS: |
| 500 | if (m_cmd_state == 0) { |
| 501 | m_cmd_state = 1; |
| 502 | tape_pos_t target = m_tape_pos; |
| 503 | if (next_n_gap(target, 0x10000U - m_tach_reg, MIN_IRG_LENGTH)) { |
| 504 | LOG_0(("%u gaps @%d\n" , 0x10000U - m_tach_reg, target)); |
| 505 | m_tape_timer->adjust(time_to_target(target)); |
| 506 | } |
| 507 | return; |
| 508 | } else { |
| 509 | m_hole_timer->reset(); |
| 510 | } |
| 511 | break; |
| 512 | 512 | |
| 513 | | case CMD_MOVE_INDTA: |
| 514 | | if (m_cmd_state == 0) { |
| 515 | | if (next_data(m_rd_it , m_tape_pos , true)) { |
| 516 | | m_cmd_state = 1; |
| 517 | | m_tape_timer->adjust(time_to_target(farthest_end(m_rd_it))); |
| 518 | | } |
| 519 | | // No IRQ |
| 520 | | return; |
| 521 | | } |
| 522 | | // m_cmd_state == 1 -> IRQ & cmd end |
| 523 | | break; |
| 513 | case CMD_MOVE_INDTA: |
| 514 | if (m_cmd_state == 0) { |
| 515 | if (next_data(m_rd_it , m_tape_pos , true)) { |
| 516 | m_cmd_state = 1; |
| 517 | m_tape_timer->adjust(time_to_target(farthest_end(m_rd_it))); |
| 518 | } |
| 519 | // No IRQ |
| 520 | return; |
| 521 | } |
| 522 | // m_cmd_state == 1 -> IRQ & cmd end |
| 523 | break; |
| 524 | 524 | |
| 525 | | case CMD_DELTA_MOVE_HOLE: |
| 526 | | case CMD_DELTA_MOVE_IRG: |
| 527 | | // Interrupt at end of movement |
| 528 | | m_hole_timer->reset(); |
| 529 | | break; |
| 525 | case CMD_DELTA_MOVE_HOLE: |
| 526 | case CMD_DELTA_MOVE_IRG: |
| 527 | // Interrupt at end of movement |
| 528 | m_hole_timer->reset(); |
| 529 | break; |
| 530 | 530 | |
| 531 | | case CMD_START_READ: |
| 532 | | { |
| 533 | | bool set_intr = true; |
| 534 | | // Just to be sure.. |
| 535 | | m_tape_pos = m_rw_pos; |
| 536 | | if (m_cmd_state == 0) { |
| 537 | | set_intr = false; |
| 538 | | if (m_rd_it->second == PREAMBLE_WORD) { |
| 539 | | m_cmd_state = 1; |
| 540 | | } |
| 541 | | LOG_0(("Got preamble\n")); |
| 542 | | } else { |
| 543 | | m_data_reg = m_rd_it->second; |
| 544 | | m_checksum_reg += m_data_reg; |
| 545 | | LOG_0(("RD %04x\n" , m_data_reg)); |
| 546 | | } |
| 547 | | adv_res_t res = adv_it(m_rd_it); |
| 548 | | LOG_0(("adv_it %d\n" , res)); |
| 549 | | if (res == ADV_NO_MORE_DATA) { |
| 550 | | m_rd_it_valid = false; |
| 551 | | } else { |
| 552 | | if (res == ADV_DISCONT_DATA) { |
| 553 | | // Hit a gap, restart preamble search |
| 554 | | m_cmd_state = 0; |
| 555 | | } |
| 556 | | m_tape_timer->adjust(time_to_rd_next_word(m_rw_pos)); |
| 557 | | } |
| 558 | | if (!set_intr) { |
| 559 | | return; |
| 560 | | } |
| 561 | | } |
| 562 | | break; |
| 531 | case CMD_START_READ: |
| 532 | { |
| 533 | bool set_intr = true; |
| 534 | // Just to be sure.. |
| 535 | m_tape_pos = m_rw_pos; |
| 536 | if (m_cmd_state == 0) { |
| 537 | set_intr = false; |
| 538 | if (m_rd_it->second == PREAMBLE_WORD) { |
| 539 | m_cmd_state = 1; |
| 540 | } |
| 541 | LOG_0(("Got preamble\n")); |
| 542 | } else { |
| 543 | m_data_reg = m_rd_it->second; |
| 544 | m_checksum_reg += m_data_reg; |
| 545 | LOG_0(("RD %04x\n" , m_data_reg)); |
| 546 | } |
| 547 | adv_res_t res = adv_it(m_rd_it); |
| 548 | LOG_0(("adv_it %d\n" , res)); |
| 549 | if (res == ADV_NO_MORE_DATA) { |
| 550 | m_rd_it_valid = false; |
| 551 | } else { |
| 552 | if (res == ADV_DISCONT_DATA) { |
| 553 | // Hit a gap, restart preamble search |
| 554 | m_cmd_state = 0; |
| 555 | } |
| 556 | m_tape_timer->adjust(time_to_rd_next_word(m_rw_pos)); |
| 557 | } |
| 558 | if (!set_intr) { |
| 559 | return; |
| 560 | } |
| 561 | } |
| 562 | break; |
| 563 | 563 | |
| 564 | | case CMD_END_READ: |
| 565 | | { |
| 566 | | m_tape_pos = m_rw_pos; |
| 567 | | // Note: checksum is not updated |
| 568 | | m_data_reg = m_rd_it->second; |
| 569 | | LOG_0(("Final RD %04x\n" , m_data_reg)); |
| 570 | | adv_res_t res = adv_it(m_rd_it); |
| 571 | | if (res == ADV_NO_MORE_DATA) { |
| 572 | | m_rd_it_valid = false; |
| 573 | | } |
| 574 | | m_hole_timer->reset(); |
| 575 | | } |
| 576 | | break; |
| 564 | case CMD_END_READ: |
| 565 | { |
| 566 | m_tape_pos = m_rw_pos; |
| 567 | // Note: checksum is not updated |
| 568 | m_data_reg = m_rd_it->second; |
| 569 | LOG_0(("Final RD %04x\n" , m_data_reg)); |
| 570 | adv_res_t res = adv_it(m_rd_it); |
| 571 | if (res == ADV_NO_MORE_DATA) { |
| 572 | m_rd_it_valid = false; |
| 573 | } |
| 574 | m_hole_timer->reset(); |
| 575 | } |
| 576 | break; |
| 577 | 577 | |
| 578 | | default: |
| 579 | | // Other commands: just raise irq |
| 580 | | break; |
| 581 | | } |
| 582 | | irq_w(true); |
| 583 | | break; |
| 578 | default: |
| 579 | // Other commands: just raise irq |
| 580 | break; |
| 581 | } |
| 582 | irq_w(true); |
| 583 | break; |
| 584 | 584 | |
| 585 | | case HOLE_TMR_ID: |
| 586 | | LOG_0(("Hole tmr @%g\n" , machine().time().as_double())); |
| 585 | case HOLE_TMR_ID: |
| 586 | LOG_0(("Hole tmr @%g\n" , machine().time().as_double())); |
| 587 | 587 | |
| 588 | | BIT_SET(m_status_reg , STATUS_HOLE_BIT); |
| 588 | BIT_SET(m_status_reg , STATUS_HOLE_BIT); |
| 589 | 589 | |
| 590 | | switch (CMD_CODE(m_cmd_reg)) { |
| 591 | | case CMD_FINAL_GAP: |
| 592 | | case CMD_WRITE_IRG: |
| 593 | | write_gap(m_rw_pos , m_tape_pos); |
| 594 | | m_rw_pos = m_tape_pos; |
| 595 | | break; |
| 590 | switch (CMD_CODE(m_cmd_reg)) { |
| 591 | case CMD_FINAL_GAP: |
| 592 | case CMD_WRITE_IRG: |
| 593 | write_gap(m_rw_pos , m_tape_pos); |
| 594 | m_rw_pos = m_tape_pos; |
| 595 | break; |
| 596 | 596 | |
| 597 | | case CMD_SCAN_RECORDS: |
| 598 | | case CMD_DELTA_MOVE_HOLE: |
| 599 | | // Cmds 18 & 1c are terminated at first hole |
| 600 | | m_tape_timer->reset(); |
| 601 | | irq_w(true); |
| 602 | | // No reloading of hole timer |
| 603 | | return; |
| 597 | case CMD_SCAN_RECORDS: |
| 598 | case CMD_DELTA_MOVE_HOLE: |
| 599 | // Cmds 18 & 1c are terminated at first hole |
| 600 | m_tape_timer->reset(); |
| 601 | irq_w(true); |
| 602 | // No reloading of hole timer |
| 603 | return; |
| 604 | 604 | |
| 605 | | case CMD_DELTA_MOVE_IRG: |
| 606 | | // TODO: update r6 |
| 607 | | m_hole_timer->adjust(time_to_next_hole()); |
| 608 | | // No IRQ at holes |
| 609 | | return; |
| 605 | case CMD_DELTA_MOVE_IRG: |
| 606 | // TODO: update r6 |
| 607 | m_hole_timer->adjust(time_to_next_hole()); |
| 608 | // No IRQ at holes |
| 609 | return; |
| 610 | 610 | |
| 611 | | case CMD_START_READ: |
| 612 | | case CMD_END_READ: |
| 613 | | set_error(true); |
| 614 | | break; |
| 611 | case CMD_START_READ: |
| 612 | case CMD_END_READ: |
| 613 | set_error(true); |
| 614 | break; |
| 615 | 615 | |
| 616 | | default: |
| 617 | | // Other cmds: default processing (update tape pos, set IRQ, schedule timer for next hole) |
| 618 | | break; |
| 619 | | } |
| 616 | default: |
| 617 | // Other cmds: default processing (update tape pos, set IRQ, schedule timer for next hole) |
| 618 | break; |
| 619 | } |
| 620 | 620 | |
| 621 | | irq_w(true); |
| 622 | | m_hole_timer->adjust(time_to_next_hole()); |
| 623 | | break; |
| 621 | irq_w(true); |
| 622 | m_hole_timer->adjust(time_to_next_hole()); |
| 623 | break; |
| 624 | 624 | |
| 625 | | default: |
| 626 | | break; |
| 627 | | } |
| 625 | default: |
| 626 | break; |
| 627 | } |
| 628 | 628 | } |
| 629 | 629 | |
| 630 | 630 | void hp_taco_device::clear_state(void) |
| 631 | 631 | { |
| 632 | | m_data_reg = 0; |
| 633 | | m_data_reg_full = false; |
| 634 | | m_cmd_reg = 0; |
| 635 | | m_status_reg = 0; |
| 636 | | m_tach_reg = 0; |
| 637 | | m_checksum_reg = 0; |
| 638 | | m_timing_reg = 0; |
| 639 | | m_cmd_state = 0; |
| 640 | | // m_tape_pos is not reset, tape stays where it is |
| 641 | | m_start_time = attotime::never; |
| 642 | | m_tape_fwd = false; |
| 643 | | m_tape_fast = false; |
| 644 | | // m_image_dirty is not touched |
| 645 | | m_tape_wr = false; |
| 646 | | m_rw_pos = 0; |
| 647 | | m_next_word = 0; |
| 648 | | m_rd_it_valid = false; |
| 649 | | m_gap_detect_start = NULL_TAPE_POS; |
| 632 | m_data_reg = 0; |
| 633 | m_data_reg_full = false; |
| 634 | m_cmd_reg = 0; |
| 635 | m_status_reg = 0; |
| 636 | m_tach_reg = 0; |
| 637 | m_checksum_reg = 0; |
| 638 | m_timing_reg = 0; |
| 639 | m_cmd_state = 0; |
| 640 | // m_tape_pos is not reset, tape stays where it is |
| 641 | m_start_time = attotime::never; |
| 642 | m_tape_fwd = false; |
| 643 | m_tape_fast = false; |
| 644 | // m_image_dirty is not touched |
| 645 | m_tape_wr = false; |
| 646 | m_rw_pos = 0; |
| 647 | m_next_word = 0; |
| 648 | m_rd_it_valid = false; |
| 649 | m_gap_detect_start = NULL_TAPE_POS; |
| 650 | 650 | |
| 651 | | set_tape_present(false); |
| 652 | | set_tape_present(is_loaded()); |
| 651 | set_tape_present(false); |
| 652 | set_tape_present(is_loaded()); |
| 653 | 653 | } |
| 654 | 654 | |
| 655 | 655 | void hp_taco_device::irq_w(bool state) |
| 656 | 656 | { |
| 657 | | if (state != m_irq) { |
| 658 | | m_irq = state; |
| 659 | | m_irq_handler(state); |
| 660 | | LOG_0(("IRQ = %d\n" , state)); |
| 661 | | } |
| 657 | if (state != m_irq) { |
| 658 | m_irq = state; |
| 659 | m_irq_handler(state); |
| 660 | LOG_0(("IRQ = %d\n" , state)); |
| 661 | } |
| 662 | 662 | } |
| 663 | 663 | |
| 664 | 664 | void hp_taco_device::set_error(bool state) |
| 665 | 665 | { |
| 666 | | m_sts = !state; |
| 667 | | m_sts_handler(m_sts); |
| 668 | | LOG_0(("error = %d\n" , state)); |
| 666 | m_sts = !state; |
| 667 | m_sts_handler(m_sts); |
| 668 | LOG_0(("error = %d\n" , state)); |
| 669 | 669 | } |
| 670 | 670 | |
| 671 | 671 | unsigned hp_taco_device::speed_to_tick_freq(void) const |
| 672 | 672 | { |
| 673 | | return m_tape_fast ? TACH_FREQ_FAST * TAPE_POS_FRACT : TACH_FREQ_SLOW * TAPE_POS_FRACT; |
| 673 | return m_tape_fast ? TACH_FREQ_FAST * TAPE_POS_FRACT : TACH_FREQ_SLOW * TAPE_POS_FRACT; |
| 674 | 674 | } |
| 675 | 675 | |
| 676 | 676 | bool hp_taco_device::pos_offset(tape_pos_t& pos , tape_pos_t offset) const |
| 677 | 677 | { |
| 678 | | if (offset == 0) { |
| 679 | | return true; |
| 680 | | } |
| 678 | if (offset == 0) { |
| 679 | return true; |
| 680 | } |
| 681 | 681 | |
| 682 | | if (!m_tape_fwd) { |
| 683 | | offset = -offset; |
| 684 | | } |
| 682 | if (!m_tape_fwd) { |
| 683 | offset = -offset; |
| 684 | } |
| 685 | 685 | |
| 686 | | pos += offset; |
| 686 | pos += offset; |
| 687 | 687 | |
| 688 | | // In real life tape would unspool.. |
| 689 | | if (pos > TAPE_LENGTH) { |
| 690 | | pos = TAPE_LENGTH; |
| 691 | | return false; |
| 692 | | } else if (pos < 0) { |
| 693 | | pos = 0; |
| 694 | | return false; |
| 695 | | } else { |
| 696 | | return true; |
| 697 | | } |
| 688 | // In real life tape would unspool.. |
| 689 | if (pos > TAPE_LENGTH) { |
| 690 | pos = TAPE_LENGTH; |
| 691 | return false; |
| 692 | } else if (pos < 0) { |
| 693 | pos = 0; |
| 694 | return false; |
| 695 | } else { |
| 696 | return true; |
| 697 | } |
| 698 | 698 | } |
| 699 | 699 | |
| 700 | 700 | void hp_taco_device::move_tape_pos(tape_pos_t delta_pos) |
| 701 | 701 | { |
| 702 | | tape_pos_t tape_start_pos = m_tape_pos; |
| 703 | | if (!pos_offset(m_tape_pos , delta_pos)) { |
| 704 | | LOG(("Tape unspooled!\n")); |
| 705 | | } |
| 706 | | m_start_time = machine().time(); |
| 707 | | LOG_0(("Tape pos = %u\n" , m_tape_pos)); |
| 708 | | if (any_hole(tape_start_pos , m_tape_pos)) { |
| 709 | | // Crossed one or more holes |
| 710 | | BIT_SET(m_status_reg , STATUS_HOLE_BIT); |
| 711 | | } |
| 702 | tape_pos_t tape_start_pos = m_tape_pos; |
| 703 | if (!pos_offset(m_tape_pos , delta_pos)) { |
| 704 | LOG(("Tape unspooled!\n")); |
| 705 | } |
| 706 | m_start_time = machine().time(); |
| 707 | LOG_0(("Tape pos = %u\n" , m_tape_pos)); |
| 708 | if (any_hole(tape_start_pos , m_tape_pos)) { |
| 709 | // Crossed one or more holes |
| 710 | BIT_SET(m_status_reg , STATUS_HOLE_BIT); |
| 711 | } |
| 712 | 712 | } |
| 713 | 713 | |
| 714 | 714 | void hp_taco_device::update_tape_pos(void) |
| 715 | 715 | { |
| 716 | | if (m_start_time.is_never()) { |
| 717 | | // Tape not moving |
| 718 | | return; |
| 719 | | } |
| 716 | if (m_start_time.is_never()) { |
| 717 | // Tape not moving |
| 718 | return; |
| 719 | } |
| 720 | 720 | |
| 721 | | attotime delta_time(machine().time() - m_start_time); |
| 722 | | LOG_0(("delta_time = %g\n" , delta_time.as_double())); |
| 723 | | // How many tachometer ticks has the tape moved? |
| 724 | | tape_pos_t delta_tach = (tape_pos_t)(delta_time.as_ticks(speed_to_tick_freq())); |
| 725 | | LOG_0(("delta_tach = %u\n" , delta_tach)); |
| 721 | attotime delta_time(machine().time() - m_start_time); |
| 722 | LOG_0(("delta_time = %g\n" , delta_time.as_double())); |
| 723 | // How many tachometer ticks has the tape moved? |
| 724 | tape_pos_t delta_tach = (tape_pos_t)(delta_time.as_ticks(speed_to_tick_freq())); |
| 725 | LOG_0(("delta_tach = %u\n" , delta_tach)); |
| 726 | 726 | |
| 727 | | move_tape_pos(delta_tach); |
| 727 | move_tape_pos(delta_tach); |
| 728 | 728 | |
| 729 | | // Gap detection |
| 730 | | bool gap_detected = false; |
| 731 | | if (m_gap_detect_start != NULL_TAPE_POS && abs(m_gap_detect_start - m_tape_pos) >= MIN_IRG_LENGTH) { |
| 732 | | tape_pos_t tmp = m_tape_pos; |
| 733 | | pos_offset(tmp , -MIN_IRG_LENGTH); |
| 734 | | gap_detected = just_gap(tmp , m_tape_pos); |
| 735 | | } |
| 736 | | if (gap_detected) { |
| 737 | | BIT_SET(m_status_reg, STATUS_GAP_BIT); |
| 738 | | } else { |
| 739 | | BIT_CLR(m_status_reg, STATUS_GAP_BIT); |
| 740 | | } |
| 729 | // Gap detection |
| 730 | bool gap_detected = false; |
| 731 | if (m_gap_detect_start != NULL_TAPE_POS && abs(m_gap_detect_start - m_tape_pos) >= MIN_IRG_LENGTH) { |
| 732 | tape_pos_t tmp = m_tape_pos; |
| 733 | pos_offset(tmp , -MIN_IRG_LENGTH); |
| 734 | gap_detected = just_gap(tmp , m_tape_pos); |
| 735 | } |
| 736 | if (gap_detected) { |
| 737 | BIT_SET(m_status_reg, STATUS_GAP_BIT); |
| 738 | } else { |
| 739 | BIT_CLR(m_status_reg, STATUS_GAP_BIT); |
| 740 | } |
| 741 | 741 | } |
| 742 | 742 | |
| 743 | 743 | void hp_taco_device::ensure_a_lt_b(tape_pos_t& a , tape_pos_t& b) |
| 744 | 744 | { |
| 745 | | if (a > b) { |
| 746 | | // Ensure A always comes before B |
| 747 | | tape_pos_t tmp; |
| 748 | | tmp = a; |
| 749 | | a = b; |
| 750 | | b = tmp; |
| 751 | | } |
| 745 | if (a > b) { |
| 746 | // Ensure A always comes before B |
| 747 | tape_pos_t tmp; |
| 748 | tmp = a; |
| 749 | a = b; |
| 750 | b = tmp; |
| 751 | } |
| 752 | 752 | } |
| 753 | 753 | |
| 754 | 754 | // Is there any hole in a given section of tape? |
| 755 | 755 | bool hp_taco_device::any_hole(tape_pos_t tape_pos_a , tape_pos_t tape_pos_b) |
| 756 | 756 | { |
| 757 | | ensure_a_lt_b(tape_pos_a , tape_pos_b); |
| 757 | ensure_a_lt_b(tape_pos_a , tape_pos_b); |
| 758 | 758 | |
| 759 | | for (tape_pos_t hole : tape_holes) { |
| 760 | | if (tape_pos_a < hole && tape_pos_b >= hole) { |
| 761 | | return true; |
| 762 | | } |
| 763 | | } |
| 759 | for (tape_pos_t hole : tape_holes) { |
| 760 | if (tape_pos_a < hole && tape_pos_b >= hole) { |
| 761 | return true; |
| 762 | } |
| 763 | } |
| 764 | 764 | |
| 765 | | return false; |
| 765 | return false; |
| 766 | 766 | } |
| 767 | 767 | |
| 768 | 768 | // Position of next hole tape will reach in a given direction |
| 769 | 769 | hp_taco_device::tape_pos_t hp_taco_device::next_hole(void) const |
| 770 | 770 | { |
| 771 | | if (m_tape_fwd) { |
| 772 | | for (tape_pos_t hole : tape_holes) { |
| 773 | | if (hole > m_tape_pos) { |
| 774 | | LOG_0(("next hole fwd @%u = %u\n" , m_tape_pos , hole)); |
| 775 | | return hole; |
| 776 | | } |
| 777 | | } |
| 778 | | // No more holes: will hit end of tape |
| 779 | | return TAPE_LENGTH; |
| 780 | | } else { |
| 781 | | for (int i = (sizeof(tape_holes) / sizeof(tape_holes[ 0 ])) - 1; i >= 0; i--) { |
| 782 | | if (tape_holes[ i ] < m_tape_pos) { |
| 783 | | LOG_0(("next hole rev @%u = %u\n" , m_tape_pos , tape_holes[ i ])); |
| 784 | | return tape_holes[ i ]; |
| 785 | | } |
| 786 | | } |
| 787 | | // No more holes: will hit start of tape |
| 788 | | return 0; |
| 789 | | } |
| 771 | if (m_tape_fwd) { |
| 772 | for (tape_pos_t hole : tape_holes) { |
| 773 | if (hole > m_tape_pos) { |
| 774 | LOG_0(("next hole fwd @%u = %u\n" , m_tape_pos , hole)); |
| 775 | return hole; |
| 776 | } |
| 777 | } |
| 778 | // No more holes: will hit end of tape |
| 779 | return TAPE_LENGTH; |
| 780 | } else { |
| 781 | for (int i = (sizeof(tape_holes) / sizeof(tape_holes[ 0 ])) - 1; i >= 0; i--) { |
| 782 | if (tape_holes[ i ] < m_tape_pos) { |
| 783 | LOG_0(("next hole rev @%u = %u\n" , m_tape_pos , tape_holes[ i ])); |
| 784 | return tape_holes[ i ]; |
| 785 | } |
| 786 | } |
| 787 | // No more holes: will hit start of tape |
| 788 | return 0; |
| 789 | } |
| 790 | 790 | } |
| 791 | 791 | |
| 792 | 792 | attotime hp_taco_device::time_to_distance(tape_pos_t distance) const |
| 793 | 793 | { |
| 794 | | // +1 for rounding |
| 795 | | return attotime::from_ticks(distance + 1 , speed_to_tick_freq()); |
| 794 | // +1 for rounding |
| 795 | return attotime::from_ticks(distance + 1 , speed_to_tick_freq()); |
| 796 | 796 | } |
| 797 | 797 | |
| 798 | 798 | attotime hp_taco_device::time_to_target(tape_pos_t target) const |
| 799 | 799 | { |
| 800 | | return time_to_distance(abs(target - m_tape_pos)); |
| 800 | return time_to_distance(abs(target - m_tape_pos)); |
| 801 | 801 | } |
| 802 | 802 | |
| 803 | 803 | bool hp_taco_device::start_tape_cmd(UINT16 cmd_reg , UINT16 must_be_1 , UINT16 must_be_0) |
| 804 | 804 | { |
| 805 | | m_cmd_reg = cmd_reg; |
| 805 | m_cmd_reg = cmd_reg; |
| 806 | 806 | |
| 807 | | UINT16 to_be_tested = (m_cmd_reg & CMD_REG_MASK) | (m_status_reg & STATUS_REG_MASK); |
| 808 | | // Bits in STATUS_ERR_MASK must always be 0 |
| 809 | | must_be_0 |= STATUS_ERR_MASK; |
| 807 | UINT16 to_be_tested = (m_cmd_reg & CMD_REG_MASK) | (m_status_reg & STATUS_REG_MASK); |
| 808 | // Bits in STATUS_ERR_MASK must always be 0 |
| 809 | must_be_0 |= STATUS_ERR_MASK; |
| 810 | 810 | |
| 811 | | // It's not an error if the error state is already set (sts false) |
| 812 | | if (((to_be_tested & (must_be_1 | must_be_0)) ^ must_be_1) != 0) { |
| 813 | | set_error(true); |
| 814 | | return false; |
| 815 | | } else { |
| 816 | | bool prev_tape_wr = m_tape_wr; |
| 817 | | bool prev_tape_fwd = m_tape_fwd; |
| 818 | | bool prev_tape_fast = m_tape_fast; |
| 819 | | bool not_moving = m_start_time.is_never(); |
| 811 | // It's not an error if the error state is already set (sts false) |
| 812 | if (((to_be_tested & (must_be_1 | must_be_0)) ^ must_be_1) != 0) { |
| 813 | set_error(true); |
| 814 | return false; |
| 815 | } else { |
| 816 | bool prev_tape_wr = m_tape_wr; |
| 817 | bool prev_tape_fwd = m_tape_fwd; |
| 818 | bool prev_tape_fast = m_tape_fast; |
| 819 | bool not_moving = m_start_time.is_never(); |
| 820 | 820 | |
| 821 | | m_start_time = machine().time(); |
| 822 | | m_tape_wr = (must_be_0 & STATUS_WPR_MASK) != 0; |
| 823 | | m_tape_fwd = DIR_FWD(m_cmd_reg); |
| 824 | | m_tape_fast = SPEED_FAST(m_cmd_reg); |
| 825 | | // TODO: remove? |
| 826 | | BIT_CLR(m_status_reg, STATUS_HOLE_BIT); |
| 821 | m_start_time = machine().time(); |
| 822 | m_tape_wr = (must_be_0 & STATUS_WPR_MASK) != 0; |
| 823 | m_tape_fwd = DIR_FWD(m_cmd_reg); |
| 824 | m_tape_fast = SPEED_FAST(m_cmd_reg); |
| 825 | // TODO: remove? |
| 826 | BIT_CLR(m_status_reg, STATUS_HOLE_BIT); |
| 827 | 827 | |
| 828 | | if (m_tape_wr) { |
| 829 | | // Write command: disable gap detector |
| 830 | | m_gap_detect_start = NULL_TAPE_POS; |
| 831 | | BIT_CLR(m_status_reg, STATUS_GAP_BIT); |
| 832 | | m_image_dirty = true; |
| 833 | | } else if (not_moving || prev_tape_wr != m_tape_wr || prev_tape_fwd != m_tape_fwd || prev_tape_fast != m_tape_fast) { |
| 834 | | // Tape started right now, switched from writing to reading, direction changed or speed changed: (re)start gap detector |
| 835 | | m_gap_detect_start = m_tape_pos; |
| 836 | | BIT_CLR(m_status_reg, STATUS_GAP_BIT); |
| 837 | | } |
| 838 | | return true; |
| 839 | | } |
| 828 | if (m_tape_wr) { |
| 829 | // Write command: disable gap detector |
| 830 | m_gap_detect_start = NULL_TAPE_POS; |
| 831 | BIT_CLR(m_status_reg, STATUS_GAP_BIT); |
| 832 | m_image_dirty = true; |
| 833 | } else if (not_moving || prev_tape_wr != m_tape_wr || prev_tape_fwd != m_tape_fwd || prev_tape_fast != m_tape_fast) { |
| 834 | // Tape started right now, switched from writing to reading, direction changed or speed changed: (re)start gap detector |
| 835 | m_gap_detect_start = m_tape_pos; |
| 836 | BIT_CLR(m_status_reg, STATUS_GAP_BIT); |
| 837 | } |
| 838 | return true; |
| 839 | } |
| 840 | 840 | } |
| 841 | 841 | |
| 842 | 842 | void hp_taco_device::stop_tape(void) |
| 843 | 843 | { |
| 844 | | m_start_time = attotime::never; |
| 845 | | m_gap_detect_start = NULL_TAPE_POS; |
| 844 | m_start_time = attotime::never; |
| 845 | m_gap_detect_start = NULL_TAPE_POS; |
| 846 | 846 | } |
| 847 | 847 | |
| 848 | 848 | hp_taco_device::tape_track_t& hp_taco_device::current_track(void) |
| 849 | 849 | { |
| 850 | | return m_tracks[ BIT(m_status_reg , STATUS_TRACKB_BIT) ]; |
| 850 | return m_tracks[ BIT(m_status_reg , STATUS_TRACKB_BIT) ]; |
| 851 | 851 | } |
| 852 | 852 | |
| 853 | 853 | // Return physical length of a 16-bit word on tape |
| 854 | 854 | hp_taco_device::tape_pos_t hp_taco_device::word_length(tape_word_t w) |
| 855 | 855 | { |
| 856 | | unsigned zeros , ones; |
| 856 | unsigned zeros , ones; |
| 857 | 857 | |
| 858 | | // pop count of w |
| 859 | | ones = (w & 0x5555) + ((w >> 1) & 0x5555); |
| 860 | | ones = (ones & 0x3333) + ((ones >> 2) & 0x3333); |
| 861 | | ones = (ones & 0x0f0f) + ((ones >> 4) & 0x0f0f); |
| 862 | | ones = (ones & 0x00ff) + ((ones >> 8) & 0x00ff); |
| 858 | // pop count of w |
| 859 | ones = (w & 0x5555) + ((w >> 1) & 0x5555); |
| 860 | ones = (ones & 0x3333) + ((ones >> 2) & 0x3333); |
| 861 | ones = (ones & 0x0f0f) + ((ones >> 4) & 0x0f0f); |
| 862 | ones = (ones & 0x00ff) + ((ones >> 8) & 0x00ff); |
| 863 | 863 | |
| 864 | | zeros = 16 - ones; |
| 864 | zeros = 16 - ones; |
| 865 | 865 | |
| 866 | | return zeros * ZERO_BIT_LEN + (ones + 1) * ONE_BIT_LEN; |
| 866 | return zeros * ZERO_BIT_LEN + (ones + 1) * ONE_BIT_LEN; |
| 867 | 867 | } |
| 868 | 868 | |
| 869 | 869 | hp_taco_device::tape_pos_t hp_taco_device::word_end_pos(const tape_track_t::iterator& it) |
| 870 | 870 | { |
| 871 | | return it->first + word_length(it->second); |
| 871 | return it->first + word_length(it->second); |
| 872 | 872 | } |
| 873 | 873 | |
| 874 | 874 | void hp_taco_device::adjust_it(tape_track_t& track , tape_track_t::iterator& it , tape_pos_t pos) |
| 875 | 875 | { |
| 876 | | if (it != track.begin()) { |
| 877 | | it--; |
| 878 | | if (word_end_pos(it) <= pos) { |
| 879 | | it++; |
| 880 | | } |
| 881 | | } |
| 876 | if (it != track.begin()) { |
| 877 | it--; |
| 878 | if (word_end_pos(it) <= pos) { |
| 879 | it++; |
| 880 | } |
| 881 | } |
| 882 | 882 | } |
| 883 | 883 | |
| 884 | 884 | // Write a word on current tape track |
| 885 | 885 | void hp_taco_device::write_word(tape_pos_t start , tape_word_t word , tape_pos_t& length) |
| 886 | 886 | { |
| 887 | | tape_track_t& track = current_track(); |
| 888 | | tape_track_t::iterator it_low = track.lower_bound(start); |
| 889 | | adjust_it(track , it_low , start); |
| 890 | | length = word_length(word); |
| 891 | | tape_pos_t end_pos = start + length; |
| 892 | | tape_track_t::iterator it_high = track.lower_bound(end_pos); |
| 887 | tape_track_t& track = current_track(); |
| 888 | tape_track_t::iterator it_low = track.lower_bound(start); |
| 889 | adjust_it(track , it_low , start); |
| 890 | length = word_length(word); |
| 891 | tape_pos_t end_pos = start + length; |
| 892 | tape_track_t::iterator it_high = track.lower_bound(end_pos); |
| 893 | 893 | |
| 894 | | track.erase(it_low , it_high); |
| 894 | track.erase(it_low , it_high); |
| 895 | 895 | |
| 896 | | track.insert(it_high , std::make_pair(start, word)); |
| 897 | | LOG_0(("WR %04x @ T%u:%u\n" , word , BIT(m_status_reg , STATUS_TRACKB_BIT) , start)); |
| 896 | track.insert(it_high , std::make_pair(start, word)); |
| 897 | LOG_0(("WR %04x @ T%u:%u\n" , word , BIT(m_status_reg , STATUS_TRACKB_BIT) , start)); |
| 898 | 898 | } |
| 899 | 899 | |
| 900 | 900 | // Write a gap on current track |
| 901 | 901 | void hp_taco_device::write_gap(tape_pos_t a , tape_pos_t b) |
| 902 | 902 | { |
| 903 | | ensure_a_lt_b(a , b); |
| 904 | | tape_track_t& track = current_track(); |
| 905 | | tape_track_t::iterator it_low = track.lower_bound(a); |
| 906 | | adjust_it(track , it_low , a); |
| 907 | | tape_track_t::iterator it_high = track.lower_bound(b); |
| 903 | ensure_a_lt_b(a , b); |
| 904 | tape_track_t& track = current_track(); |
| 905 | tape_track_t::iterator it_low = track.lower_bound(a); |
| 906 | adjust_it(track , it_low , a); |
| 907 | tape_track_t::iterator it_high = track.lower_bound(b); |
| 908 | 908 | |
| 909 | | track.erase(it_low, it_high); |
| 909 | track.erase(it_low, it_high); |
| 910 | 910 | |
| 911 | | LOG_0(("GAP on T%u:[%u,%u)\n" , BIT(m_status_reg , STATUS_TRACKB_BIT) , a , b)); |
| 911 | LOG_0(("GAP on T%u:[%u,%u)\n" , BIT(m_status_reg , STATUS_TRACKB_BIT) , a , b)); |
| 912 | 912 | } |
| 913 | 913 | |
| 914 | 914 | bool hp_taco_device::just_gap(tape_pos_t a , tape_pos_t b) |
| 915 | 915 | { |
| 916 | | ensure_a_lt_b(a , b); |
| 917 | | tape_track_t& track = current_track(); |
| 918 | | tape_track_t::iterator it_low = track.lower_bound(a); |
| 919 | | tape_track_t::iterator it_high = track.lower_bound(b); |
| 916 | ensure_a_lt_b(a , b); |
| 917 | tape_track_t& track = current_track(); |
| 918 | tape_track_t::iterator it_low = track.lower_bound(a); |
| 919 | tape_track_t::iterator it_high = track.lower_bound(b); |
| 920 | 920 | |
| 921 | | adjust_it(track, it_low, a); |
| 921 | adjust_it(track, it_low, a); |
| 922 | 922 | |
| 923 | | return it_low == it_high; |
| 923 | return it_low == it_high; |
| 924 | 924 | } |
| 925 | 925 | |
| 926 | 926 | hp_taco_device::tape_pos_t hp_taco_device::farthest_end(const tape_track_t::iterator& it) const |
| 927 | 927 | { |
| 928 | | if (m_tape_fwd) { |
| 929 | | return word_end_pos(it); |
| 930 | | } else { |
| 931 | | return it->first; |
| 932 | | } |
| 928 | if (m_tape_fwd) { |
| 929 | return word_end_pos(it); |
| 930 | } else { |
| 931 | return it->first; |
| 932 | } |
| 933 | 933 | } |
| 934 | 934 | |
| 935 | 935 | bool hp_taco_device::next_data(tape_track_t::iterator& it , tape_pos_t pos , bool inclusive) |
| 936 | 936 | { |
| 937 | | tape_track_t& track = current_track(); |
| 938 | | it = track.lower_bound(pos); |
| 939 | | if (m_tape_fwd) { |
| 940 | | if (inclusive) { |
| 941 | | adjust_it(track, it, pos); |
| 942 | | } |
| 943 | | return it != track.end(); |
| 944 | | } else { |
| 945 | | // Never more than 2 iterations |
| 946 | | do { |
| 947 | | if (it == track.begin()) { |
| 948 | | it = track.end(); |
| 949 | | return false; |
| 950 | | } |
| 951 | | it--; |
| 952 | | } while (!inclusive && word_end_pos(it) > pos); |
| 953 | | return true; |
| 954 | | } |
| 937 | tape_track_t& track = current_track(); |
| 938 | it = track.lower_bound(pos); |
| 939 | if (m_tape_fwd) { |
| 940 | if (inclusive) { |
| 941 | adjust_it(track, it, pos); |
| 942 | } |
| 943 | return it != track.end(); |
| 944 | } else { |
| 945 | // Never more than 2 iterations |
| 946 | do { |
| 947 | if (it == track.begin()) { |
| 948 | it = track.end(); |
| 949 | return false; |
| 950 | } |
| 951 | it--; |
| 952 | } while (!inclusive && word_end_pos(it) > pos); |
| 953 | return true; |
| 954 | } |
| 955 | 955 | } |
| 956 | 956 | |
| 957 | 957 | hp_taco_device::adv_res_t hp_taco_device::adv_it(tape_track_t::iterator& it) |
| 958 | 958 | { |
| 959 | | tape_track_t& track = current_track(); |
| 960 | | if (m_tape_fwd) { |
| 961 | | tape_pos_t prev_pos = word_end_pos(it); |
| 962 | | it++; |
| 963 | | if (it == track.end()) { |
| 964 | | return ADV_NO_MORE_DATA; |
| 965 | | } else { |
| 966 | | adv_res_t res = prev_pos == it->first ? ADV_CONT_DATA : ADV_DISCONT_DATA; |
| 967 | | return res; |
| 968 | | } |
| 969 | | } else { |
| 970 | | if (it == track.begin()) { |
| 971 | | it = track.end(); |
| 972 | | return ADV_NO_MORE_DATA; |
| 973 | | } else { |
| 974 | | tape_pos_t prev_pos = it->first; |
| 975 | | it--; |
| 976 | | return prev_pos == word_end_pos(it) ? ADV_CONT_DATA : ADV_DISCONT_DATA; |
| 977 | | } |
| 978 | | } |
| 959 | tape_track_t& track = current_track(); |
| 960 | if (m_tape_fwd) { |
| 961 | tape_pos_t prev_pos = word_end_pos(it); |
| 962 | it++; |
| 963 | if (it == track.end()) { |
| 964 | return ADV_NO_MORE_DATA; |
| 965 | } else { |
| 966 | adv_res_t res = prev_pos == it->first ? ADV_CONT_DATA : ADV_DISCONT_DATA; |
| 967 | return res; |
| 968 | } |
| 969 | } else { |
| 970 | if (it == track.begin()) { |
| 971 | it = track.end(); |
| 972 | return ADV_NO_MORE_DATA; |
| 973 | } else { |
| 974 | tape_pos_t prev_pos = it->first; |
| 975 | it--; |
| 976 | return prev_pos == word_end_pos(it) ? ADV_CONT_DATA : ADV_DISCONT_DATA; |
| 977 | } |
| 978 | } |
| 979 | 979 | } |
| 980 | 980 | |
| 981 | 981 | attotime hp_taco_device::fetch_next_wr_word(void) |
| 982 | 982 | { |
| 983 | | if (m_data_reg_full) { |
| 984 | | m_next_word = m_data_reg; |
| 985 | | m_data_reg_full = false; |
| 986 | | LOG_0(("next %04x (DR)\n" , m_next_word)); |
| 987 | | } else { |
| 988 | | // When data register is empty, write checksum word |
| 989 | | m_next_word = m_checksum_reg; |
| 990 | | LOG_0(("next %04x (CS)\n" , m_next_word)); |
| 991 | | } |
| 992 | | // Update checksum with new word |
| 993 | | m_checksum_reg += m_next_word; |
| 983 | if (m_data_reg_full) { |
| 984 | m_next_word = m_data_reg; |
| 985 | m_data_reg_full = false; |
| 986 | LOG_0(("next %04x (DR)\n" , m_next_word)); |
| 987 | } else { |
| 988 | // When data register is empty, write checksum word |
| 989 | m_next_word = m_checksum_reg; |
| 990 | LOG_0(("next %04x (CS)\n" , m_next_word)); |
| 991 | } |
| 992 | // Update checksum with new word |
| 993 | m_checksum_reg += m_next_word; |
| 994 | 994 | |
| 995 | | return time_to_distance(word_length(m_next_word)); |
| 995 | return time_to_distance(word_length(m_next_word)); |
| 996 | 996 | } |
| 997 | 997 | |
| 998 | 998 | attotime hp_taco_device::time_to_rd_next_word(tape_pos_t& word_rd_pos) |
| 999 | 999 | { |
| 1000 | | if (m_rd_it_valid) { |
| 1001 | | word_rd_pos = farthest_end(m_rd_it); |
| 1002 | | return time_to_target(word_rd_pos); |
| 1003 | | } else { |
| 1004 | | return attotime::never; |
| 1005 | | } |
| 1000 | if (m_rd_it_valid) { |
| 1001 | word_rd_pos = farthest_end(m_rd_it); |
| 1002 | return time_to_target(word_rd_pos); |
| 1003 | } else { |
| 1004 | return attotime::never; |
| 1005 | } |
| 1006 | 1006 | } |
| 1007 | 1007 | |
| 1008 | 1008 | /** |
| r253707 | r253708 | |
| 1017 | 1017 | */ |
| 1018 | 1018 | bool hp_taco_device::next_n_gap(tape_pos_t& pos , tape_track_t::iterator it , unsigned n_gaps , tape_pos_t min_gap) |
| 1019 | 1019 | { |
| 1020 | | tape_track_t& track = current_track(); |
| 1021 | | bool done = false; |
| 1022 | | tape_track_t::iterator prev_it; |
| 1020 | tape_track_t& track = current_track(); |
| 1021 | bool done = false; |
| 1022 | tape_track_t::iterator prev_it; |
| 1023 | 1023 | |
| 1024 | | if (m_tape_fwd) { |
| 1025 | | tape_pos_t next_pos; |
| 1024 | if (m_tape_fwd) { |
| 1025 | tape_pos_t next_pos; |
| 1026 | 1026 | |
| 1027 | | while (1) { |
| 1028 | | if (it == track.end()) { |
| 1029 | | next_pos = TAPE_LENGTH; |
| 1030 | | done = true; |
| 1031 | | } else { |
| 1032 | | next_pos = it->first; |
| 1033 | | } |
| 1034 | | if (((next_pos - pos) >= min_gap && --n_gaps == 0) || done) { |
| 1035 | | break; |
| 1036 | | } |
| 1037 | | adv_res_t adv_res; |
| 1038 | | do { |
| 1039 | | prev_it = it; |
| 1040 | | adv_res = adv_it(it); |
| 1041 | | } while (adv_res == ADV_CONT_DATA); |
| 1042 | | pos = word_end_pos(prev_it); |
| 1043 | | } |
| 1044 | | } else { |
| 1045 | | tape_pos_t next_pos; |
| 1027 | while (1) { |
| 1028 | if (it == track.end()) { |
| 1029 | next_pos = TAPE_LENGTH; |
| 1030 | done = true; |
| 1031 | } else { |
| 1032 | next_pos = it->first; |
| 1033 | } |
| 1034 | if (((next_pos - pos) >= min_gap && --n_gaps == 0) || done) { |
| 1035 | break; |
| 1036 | } |
| 1037 | adv_res_t adv_res; |
| 1038 | do { |
| 1039 | prev_it = it; |
| 1040 | adv_res = adv_it(it); |
| 1041 | } while (adv_res == ADV_CONT_DATA); |
| 1042 | pos = word_end_pos(prev_it); |
| 1043 | } |
| 1044 | } else { |
| 1045 | tape_pos_t next_pos; |
| 1046 | 1046 | |
| 1047 | | while (1) { |
| 1048 | | if (it == track.end()) { |
| 1049 | | next_pos = 0; |
| 1050 | | done = true; |
| 1051 | | } else { |
| 1052 | | next_pos = word_end_pos(it); |
| 1053 | | } |
| 1054 | | if (((pos - next_pos) >= min_gap && --n_gaps == 0) || done) { |
| 1055 | | break; |
| 1056 | | } |
| 1057 | | adv_res_t adv_res; |
| 1058 | | do { |
| 1059 | | prev_it = it; |
| 1060 | | adv_res = adv_it(it); |
| 1061 | | } while (adv_res == ADV_CONT_DATA); |
| 1062 | | pos = prev_it->first; |
| 1063 | | } |
| 1064 | | } |
| 1047 | while (1) { |
| 1048 | if (it == track.end()) { |
| 1049 | next_pos = 0; |
| 1050 | done = true; |
| 1051 | } else { |
| 1052 | next_pos = word_end_pos(it); |
| 1053 | } |
| 1054 | if (((pos - next_pos) >= min_gap && --n_gaps == 0) || done) { |
| 1055 | break; |
| 1056 | } |
| 1057 | adv_res_t adv_res; |
| 1058 | do { |
| 1059 | prev_it = it; |
| 1060 | adv_res = adv_it(it); |
| 1061 | } while (adv_res == ADV_CONT_DATA); |
| 1062 | pos = prev_it->first; |
| 1063 | } |
| 1064 | } |
| 1065 | 1065 | |
| 1066 | | // Set "pos" where minimum gap size is met |
| 1067 | | pos_offset(pos , min_gap); |
| 1066 | // Set "pos" where minimum gap size is met |
| 1067 | pos_offset(pos , min_gap); |
| 1068 | 1068 | |
| 1069 | | return n_gaps == 0; |
| 1069 | return n_gaps == 0; |
| 1070 | 1070 | } |
| 1071 | 1071 | |
| 1072 | 1072 | bool hp_taco_device::next_n_gap(tape_pos_t& pos , unsigned n_gaps , tape_pos_t min_gap) |
| 1073 | 1073 | { |
| 1074 | | tape_track_t::iterator it; |
| 1075 | | // First align with next data |
| 1076 | | next_data(it, pos, true); |
| 1077 | | // Then scan for n_gaps |
| 1078 | | return next_n_gap(pos, it, n_gaps, min_gap); |
| 1074 | tape_track_t::iterator it; |
| 1075 | // First align with next data |
| 1076 | next_data(it, pos, true); |
| 1077 | // Then scan for n_gaps |
| 1078 | return next_n_gap(pos, it, n_gaps, min_gap); |
| 1079 | 1079 | } |
| 1080 | 1080 | |
| 1081 | 1081 | void hp_taco_device::clear_tape(void) |
| 1082 | 1082 | { |
| 1083 | | for (unsigned track_n = 0; track_n < 2; track_n++) { |
| 1084 | | m_tracks[ track_n ].clear(); |
| 1085 | | } |
| 1083 | for (unsigned track_n = 0; track_n < 2; track_n++) { |
| 1084 | m_tracks[ track_n ].clear(); |
| 1085 | } |
| 1086 | 1086 | } |
| 1087 | 1087 | |
| 1088 | 1088 | void hp_taco_device::dump_sequence(tape_track_t::const_iterator it_start , unsigned n_words) |
| 1089 | 1089 | { |
| 1090 | | if (n_words) { |
| 1091 | | UINT32 tmp32; |
| 1092 | | UINT16 tmp16; |
| 1090 | if (n_words) { |
| 1091 | UINT32 tmp32; |
| 1092 | UINT16 tmp16; |
| 1093 | 1093 | |
| 1094 | | tmp32 = n_words; |
| 1095 | | fwrite(&tmp32 , sizeof(tmp32)); |
| 1096 | | tmp32 = it_start->first; |
| 1097 | | fwrite(&tmp32 , sizeof(tmp32)); |
| 1094 | tmp32 = n_words; |
| 1095 | fwrite(&tmp32 , sizeof(tmp32)); |
| 1096 | tmp32 = it_start->first; |
| 1097 | fwrite(&tmp32 , sizeof(tmp32)); |
| 1098 | 1098 | |
| 1099 | | for (unsigned i = 0; i < n_words; i++) { |
| 1100 | | tmp16 = it_start->second; |
| 1101 | | fwrite(&tmp16 , sizeof(tmp16)); |
| 1102 | | it_start++; |
| 1103 | | } |
| 1104 | | } |
| 1099 | for (unsigned i = 0; i < n_words; i++) { |
| 1100 | tmp16 = it_start->second; |
| 1101 | fwrite(&tmp16 , sizeof(tmp16)); |
| 1102 | it_start++; |
| 1103 | } |
| 1104 | } |
| 1105 | 1105 | } |
| 1106 | 1106 | |
| 1107 | 1107 | void hp_taco_device::save_tape(void) |
| 1108 | 1108 | { |
| 1109 | | UINT32 tmp32; |
| 1109 | UINT32 tmp32; |
| 1110 | 1110 | |
| 1111 | | fseek(0, SEEK_SET); |
| 1111 | fseek(0, SEEK_SET); |
| 1112 | 1112 | |
| 1113 | | tmp32 = FILE_MAGIC; |
| 1114 | | fwrite(&tmp32 , sizeof(tmp32)); |
| 1113 | tmp32 = FILE_MAGIC; |
| 1114 | fwrite(&tmp32 , sizeof(tmp32)); |
| 1115 | 1115 | |
| 1116 | | for (unsigned track_n = 0; track_n < 2; track_n++) { |
| 1117 | | const tape_track_t& track = m_tracks[ track_n ]; |
| 1118 | | tape_pos_t next_pos = (tape_pos_t)-1; |
| 1119 | | unsigned n_words = 0; |
| 1120 | | tape_track_t::const_iterator it_start; |
| 1121 | | for (tape_track_t::const_iterator it = track.cbegin(); it != track.cend(); it++) { |
| 1122 | | if (it->first != next_pos) { |
| 1123 | | dump_sequence(it_start , n_words); |
| 1124 | | it_start = it; |
| 1125 | | n_words = 0; |
| 1126 | | } |
| 1127 | | next_pos = it->first + word_length(it->second); |
| 1128 | | n_words++; |
| 1129 | | } |
| 1130 | | dump_sequence(it_start , n_words); |
| 1131 | | // End of track |
| 1132 | | tmp32 = (UINT32)-1; |
| 1133 | | fwrite(&tmp32 , sizeof(tmp32)); |
| 1134 | | } |
| 1116 | for (unsigned track_n = 0; track_n < 2; track_n++) { |
| 1117 | const tape_track_t& track = m_tracks[ track_n ]; |
| 1118 | tape_pos_t next_pos = (tape_pos_t)-1; |
| 1119 | unsigned n_words = 0; |
| 1120 | tape_track_t::const_iterator it_start; |
| 1121 | for (tape_track_t::const_iterator it = track.cbegin(); it != track.cend(); it++) { |
| 1122 | if (it->first != next_pos) { |
| 1123 | dump_sequence(it_start , n_words); |
| 1124 | it_start = it; |
| 1125 | n_words = 0; |
| 1126 | } |
| 1127 | next_pos = it->first + word_length(it->second); |
| 1128 | n_words++; |
| 1129 | } |
| 1130 | dump_sequence(it_start , n_words); |
| 1131 | // End of track |
| 1132 | tmp32 = (UINT32)-1; |
| 1133 | fwrite(&tmp32 , sizeof(tmp32)); |
| 1134 | } |
| 1135 | 1135 | } |
| 1136 | 1136 | |
| 1137 | 1137 | bool hp_taco_device::load_track(tape_track_t& track) |
| 1138 | 1138 | { |
| 1139 | | UINT32 tmp32; |
| 1139 | UINT32 tmp32; |
| 1140 | 1140 | |
| 1141 | | track.clear(); |
| 1141 | track.clear(); |
| 1142 | 1142 | |
| 1143 | | while (1) { |
| 1144 | | if (fread(&tmp32 , sizeof(tmp32)) != sizeof(tmp32)) { |
| 1145 | | return false; |
| 1146 | | } |
| 1143 | while (1) { |
| 1144 | if (fread(&tmp32 , sizeof(tmp32)) != sizeof(tmp32)) { |
| 1145 | return false; |
| 1146 | } |
| 1147 | 1147 | |
| 1148 | | if (tmp32 == (UINT32)-1) { |
| 1149 | | return true; |
| 1150 | | } |
| 1148 | if (tmp32 == (UINT32)-1) { |
| 1149 | return true; |
| 1150 | } |
| 1151 | 1151 | |
| 1152 | | unsigned n_words = tmp32; |
| 1152 | unsigned n_words = tmp32; |
| 1153 | 1153 | |
| 1154 | | if (fread(&tmp32 , sizeof(tmp32)) != sizeof(tmp32)) { |
| 1155 | | return false; |
| 1156 | | } |
| 1154 | if (fread(&tmp32 , sizeof(tmp32)) != sizeof(tmp32)) { |
| 1155 | return false; |
| 1156 | } |
| 1157 | 1157 | |
| 1158 | | tape_pos_t pos = (tape_pos_t)tmp32; |
| 1158 | tape_pos_t pos = (tape_pos_t)tmp32; |
| 1159 | 1159 | |
| 1160 | | for (unsigned i = 0; i < n_words; i++) { |
| 1161 | | UINT16 tmp16; |
| 1160 | for (unsigned i = 0; i < n_words; i++) { |
| 1161 | UINT16 tmp16; |
| 1162 | 1162 | |
| 1163 | | if (fread(&tmp16 , sizeof(tmp16)) != sizeof(tmp16)) { |
| 1164 | | return false; |
| 1165 | | } |
| 1163 | if (fread(&tmp16 , sizeof(tmp16)) != sizeof(tmp16)) { |
| 1164 | return false; |
| 1165 | } |
| 1166 | 1166 | |
| 1167 | | track.insert(std::make_pair(pos , tmp16)); |
| 1168 | | pos += word_length(tmp16); |
| 1169 | | } |
| 1170 | | } |
| 1167 | track.insert(std::make_pair(pos , tmp16)); |
| 1168 | pos += word_length(tmp16); |
| 1169 | } |
| 1170 | } |
| 1171 | 1171 | } |
| 1172 | 1172 | |
| 1173 | 1173 | bool hp_taco_device::load_tape(void) |
| 1174 | 1174 | { |
| 1175 | | UINT32 magic; |
| 1175 | UINT32 magic; |
| 1176 | 1176 | |
| 1177 | | if (fread(&magic , sizeof(magic)) != sizeof(magic) || |
| 1178 | | magic != FILE_MAGIC) { |
| 1179 | | return false; |
| 1180 | | } |
| 1177 | if (fread(&magic , sizeof(magic)) != sizeof(magic) || |
| 1178 | magic != FILE_MAGIC) { |
| 1179 | return false; |
| 1180 | } |
| 1181 | 1181 | |
| 1182 | | for (unsigned track_n = 0; track_n < 2; track_n++) { |
| 1183 | | if (!load_track(m_tracks[ track_n ])) { |
| 1184 | | LOG(("load_tape failed")); |
| 1185 | | clear_tape(); |
| 1186 | | return false; |
| 1187 | | } |
| 1188 | | } |
| 1182 | for (unsigned track_n = 0; track_n < 2; track_n++) { |
| 1183 | if (!load_track(m_tracks[ track_n ])) { |
| 1184 | LOG(("load_tape failed")); |
| 1185 | clear_tape(); |
| 1186 | return false; |
| 1187 | } |
| 1188 | } |
| 1189 | 1189 | |
| 1190 | | LOG(("load_tape done\n")); |
| 1191 | | return true; |
| 1190 | LOG(("load_tape done\n")); |
| 1191 | return true; |
| 1192 | 1192 | } |
| 1193 | 1193 | |
| 1194 | 1194 | void hp_taco_device::set_tape_present(bool present) |
| 1195 | 1195 | { |
| 1196 | | if (present) { |
| 1197 | | if (is_readonly()) { |
| 1198 | | BIT_SET(m_status_reg, STATUS_WPR_BIT); |
| 1199 | | } else { |
| 1200 | | BIT_CLR(m_status_reg, STATUS_WPR_BIT); |
| 1201 | | } |
| 1202 | | // STATUS_CART_OUT_BIT is reset by CMD_CLEAR |
| 1203 | | } else { |
| 1204 | | BIT_SET(m_status_reg, STATUS_CART_OUT_BIT); |
| 1205 | | BIT_SET(m_status_reg, STATUS_WPR_BIT); |
| 1206 | | } |
| 1196 | if (present) { |
| 1197 | if (is_readonly()) { |
| 1198 | BIT_SET(m_status_reg, STATUS_WPR_BIT); |
| 1199 | } else { |
| 1200 | BIT_CLR(m_status_reg, STATUS_WPR_BIT); |
| 1201 | } |
| 1202 | // STATUS_CART_OUT_BIT is reset by CMD_CLEAR |
| 1203 | } else { |
| 1204 | BIT_SET(m_status_reg, STATUS_CART_OUT_BIT); |
| 1205 | BIT_SET(m_status_reg, STATUS_WPR_BIT); |
| 1206 | } |
| 1207 | 1207 | } |
| 1208 | 1208 | |
| 1209 | 1209 | attotime hp_taco_device::time_to_next_hole(void) const |
| 1210 | 1210 | { |
| 1211 | | return time_to_target(next_hole()); |
| 1211 | return time_to_target(next_hole()); |
| 1212 | 1212 | } |
| 1213 | 1213 | |
| 1214 | 1214 | attotime hp_taco_device::time_to_tach_pulses(void) const |
| 1215 | 1215 | { |
| 1216 | | return time_to_distance((tape_pos_t)(0x10000U - m_tach_reg) * TAPE_POS_FRACT); |
| 1216 | return time_to_distance((tape_pos_t)(0x10000U - m_tach_reg) * TAPE_POS_FRACT); |
| 1217 | 1217 | } |
| 1218 | 1218 | |
| 1219 | 1219 | void hp_taco_device::start_cmd_exec(UINT16 new_cmd_reg) |
| 1220 | 1220 | { |
| 1221 | | LOG(("Cmd = %02x\n" , CMD_CODE(new_cmd_reg))); |
| 1221 | LOG(("Cmd = %02x\n" , CMD_CODE(new_cmd_reg))); |
| 1222 | 1222 | |
| 1223 | | update_tape_pos(); |
| 1223 | update_tape_pos(); |
| 1224 | 1224 | |
| 1225 | | attotime cmd_duration = attotime::never; |
| 1226 | | attotime time_to_hole = attotime::never; |
| 1225 | attotime cmd_duration = attotime::never; |
| 1226 | attotime time_to_hole = attotime::never; |
| 1227 | 1227 | |
| 1228 | | unsigned new_cmd_code = CMD_CODE(new_cmd_reg); |
| 1228 | unsigned new_cmd_code = CMD_CODE(new_cmd_reg); |
| 1229 | 1229 | |
| 1230 | | if (new_cmd_code != CMD_START_READ && |
| 1231 | | new_cmd_code != CMD_END_READ && |
| 1232 | | new_cmd_code != CMD_CLEAR) { |
| 1233 | | m_rd_it_valid = false; |
| 1234 | | } |
| 1230 | if (new_cmd_code != CMD_START_READ && |
| 1231 | new_cmd_code != CMD_END_READ && |
| 1232 | new_cmd_code != CMD_CLEAR) { |
| 1233 | m_rd_it_valid = false; |
| 1234 | } |
| 1235 | 1235 | |
| 1236 | | switch (new_cmd_code) { |
| 1237 | | case CMD_INDTA_INGAP: |
| 1238 | | // Errors: CART OUT,FAST SPEED |
| 1239 | | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1240 | | m_cmd_state = 0; |
| 1241 | | if (next_data(m_rd_it , m_tape_pos , true)) { |
| 1242 | | cmd_duration = time_to_target(farthest_end(m_rd_it)); |
| 1243 | | } |
| 1244 | | } |
| 1245 | | break; |
| 1236 | switch (new_cmd_code) { |
| 1237 | case CMD_INDTA_INGAP: |
| 1238 | // Errors: CART OUT,FAST SPEED |
| 1239 | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1240 | m_cmd_state = 0; |
| 1241 | if (next_data(m_rd_it , m_tape_pos , true)) { |
| 1242 | cmd_duration = time_to_target(farthest_end(m_rd_it)); |
| 1243 | } |
| 1244 | } |
| 1245 | break; |
| 1246 | 1246 | |
| 1247 | | case CMD_FINAL_GAP: |
| 1248 | | // Errors: WP,CART OUT |
| 1249 | | if (start_tape_cmd(new_cmd_reg , 0 , STATUS_WPR_MASK)) { |
| 1250 | | m_rw_pos = m_tape_pos; |
| 1251 | | cmd_duration = time_to_distance(END_GAP_LENGTH); |
| 1252 | | time_to_hole = time_to_next_hole(); |
| 1253 | | } |
| 1254 | | break; |
| 1247 | case CMD_FINAL_GAP: |
| 1248 | // Errors: WP,CART OUT |
| 1249 | if (start_tape_cmd(new_cmd_reg , 0 , STATUS_WPR_MASK)) { |
| 1250 | m_rw_pos = m_tape_pos; |
| 1251 | cmd_duration = time_to_distance(END_GAP_LENGTH); |
| 1252 | time_to_hole = time_to_next_hole(); |
| 1253 | } |
| 1254 | break; |
| 1255 | 1255 | |
| 1256 | | case CMD_CLEAR: |
| 1257 | | set_error(false); |
| 1258 | | BIT_CLR(m_status_reg, STATUS_HOLE_BIT); |
| 1259 | | BIT_CLR(m_status_reg, STATUS_CART_OUT_BIT); |
| 1260 | | BIT_CLR(m_status_reg, STATUS_WPR_BIT); |
| 1261 | | set_tape_present(is_loaded()); |
| 1262 | | // This is a special command: it doesn't raise IRQ at completion and it |
| 1263 | | // doesn't replace current command |
| 1264 | | return; |
| 1256 | case CMD_CLEAR: |
| 1257 | set_error(false); |
| 1258 | BIT_CLR(m_status_reg, STATUS_HOLE_BIT); |
| 1259 | BIT_CLR(m_status_reg, STATUS_CART_OUT_BIT); |
| 1260 | BIT_CLR(m_status_reg, STATUS_WPR_BIT); |
| 1261 | set_tape_present(is_loaded()); |
| 1262 | // This is a special command: it doesn't raise IRQ at completion and it |
| 1263 | // doesn't replace current command |
| 1264 | return; |
| 1265 | 1265 | |
| 1266 | | case CMD_NOT_INDTA: |
| 1267 | | // Errors: CART OUT,FAST SPEED |
| 1268 | | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1269 | | tape_pos_t target = m_tape_pos; |
| 1270 | | if (next_n_gap(target, 1, NO_DATA_GAP)) { |
| 1271 | | LOG_0(("End of data @%d\n" , target)); |
| 1272 | | cmd_duration = time_to_target(target); |
| 1273 | | } |
| 1274 | | // Holes detected? |
| 1275 | | } |
| 1276 | | break; |
| 1266 | case CMD_NOT_INDTA: |
| 1267 | // Errors: CART OUT,FAST SPEED |
| 1268 | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1269 | tape_pos_t target = m_tape_pos; |
| 1270 | if (next_n_gap(target, 1, NO_DATA_GAP)) { |
| 1271 | LOG_0(("End of data @%d\n" , target)); |
| 1272 | cmd_duration = time_to_target(target); |
| 1273 | } |
| 1274 | // Holes detected? |
| 1275 | } |
| 1276 | break; |
| 1277 | 1277 | |
| 1278 | | case CMD_INIT_WRITE: |
| 1279 | | // Errors: WP,CART OUT,fast speed,reverse |
| 1280 | | if (start_tape_cmd(new_cmd_reg , DIR_FWD_MASK , STATUS_WPR_MASK | SPEED_FAST_MASK)) { |
| 1281 | | m_next_word = PREAMBLE_WORD; |
| 1282 | | m_rw_pos = m_tape_pos; |
| 1283 | | cmd_duration = time_to_distance(word_length(m_next_word)); |
| 1284 | | } |
| 1285 | | break; |
| 1278 | case CMD_INIT_WRITE: |
| 1279 | // Errors: WP,CART OUT,fast speed,reverse |
| 1280 | if (start_tape_cmd(new_cmd_reg , DIR_FWD_MASK , STATUS_WPR_MASK | SPEED_FAST_MASK)) { |
| 1281 | m_next_word = PREAMBLE_WORD; |
| 1282 | m_rw_pos = m_tape_pos; |
| 1283 | cmd_duration = time_to_distance(word_length(m_next_word)); |
| 1284 | } |
| 1285 | break; |
| 1286 | 1286 | |
| 1287 | | case CMD_STOP: |
| 1288 | | if (CMD_CODE(m_cmd_reg) != CMD_STOP) { |
| 1289 | | if (m_start_time.is_never()) { |
| 1290 | | // Tape is already stopped |
| 1291 | | cmd_duration = attotime::from_usec(QUICK_CMD_USEC); |
| 1292 | | } else { |
| 1293 | | // Start braking timer |
| 1294 | | cmd_duration = attotime::from_msec(m_tape_fast ? FAST_BRAKE_MSEC : SLOW_BRAKE_MSEC); |
| 1295 | | } |
| 1296 | | m_cmd_reg = new_cmd_reg; |
| 1297 | | } else { |
| 1298 | | // TODO: check if ok |
| 1299 | | return; |
| 1300 | | } |
| 1301 | | break; |
| 1287 | case CMD_STOP: |
| 1288 | if (CMD_CODE(m_cmd_reg) != CMD_STOP) { |
| 1289 | if (m_start_time.is_never()) { |
| 1290 | // Tape is already stopped |
| 1291 | cmd_duration = attotime::from_usec(QUICK_CMD_USEC); |
| 1292 | } else { |
| 1293 | // Start braking timer |
| 1294 | cmd_duration = attotime::from_msec(m_tape_fast ? FAST_BRAKE_MSEC : SLOW_BRAKE_MSEC); |
| 1295 | } |
| 1296 | m_cmd_reg = new_cmd_reg; |
| 1297 | } else { |
| 1298 | // TODO: check if ok |
| 1299 | return; |
| 1300 | } |
| 1301 | break; |
| 1302 | 1302 | |
| 1303 | | case CMD_SET_TRACK: |
| 1304 | | // Don't know if this command really starts the tape or not (probably it doesn't) |
| 1305 | | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1306 | | // When b9 is 0, set track A/B |
| 1307 | | // When b9 is 1, ignore command (in TACO chip it has an unknown purpose) |
| 1308 | | if (!UNKNOWN_B9(new_cmd_reg)) { |
| 1309 | | if (CMD_OPT(new_cmd_reg)) { |
| 1310 | | BIT_SET(m_status_reg, STATUS_TRACKB_BIT); |
| 1311 | | } else { |
| 1312 | | BIT_CLR(m_status_reg, STATUS_TRACKB_BIT); |
| 1313 | | } |
| 1314 | | } |
| 1315 | | cmd_duration = attotime::from_usec(QUICK_CMD_USEC); |
| 1316 | | } |
| 1317 | | break; |
| 1303 | case CMD_SET_TRACK: |
| 1304 | // Don't know if this command really starts the tape or not (probably it doesn't) |
| 1305 | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1306 | // When b9 is 0, set track A/B |
| 1307 | // When b9 is 1, ignore command (in TACO chip it has an unknown purpose) |
| 1308 | if (!UNKNOWN_B9(new_cmd_reg)) { |
| 1309 | if (CMD_OPT(new_cmd_reg)) { |
| 1310 | BIT_SET(m_status_reg, STATUS_TRACKB_BIT); |
| 1311 | } else { |
| 1312 | BIT_CLR(m_status_reg, STATUS_TRACKB_BIT); |
| 1313 | } |
| 1314 | } |
| 1315 | cmd_duration = attotime::from_usec(QUICK_CMD_USEC); |
| 1316 | } |
| 1317 | break; |
| 1318 | 1318 | |
| 1319 | | case CMD_MOVE: |
| 1320 | | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1321 | | time_to_hole = time_to_next_hole(); |
| 1322 | | } |
| 1323 | | break; |
| 1319 | case CMD_MOVE: |
| 1320 | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1321 | time_to_hole = time_to_next_hole(); |
| 1322 | } |
| 1323 | break; |
| 1324 | 1324 | |
| 1325 | | case CMD_INGAP_MOVE: |
| 1326 | | // Errors: CART OUT,FAST SPEED |
| 1327 | | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1328 | | m_cmd_state = 0; |
| 1329 | | tape_pos_t target = m_tape_pos; |
| 1330 | | if (next_n_gap(target, 1, MIN_IRG_LENGTH)) { |
| 1331 | | LOG_0(("IRG @%d\n" , target)); |
| 1332 | | cmd_duration = time_to_target(target); |
| 1333 | | } |
| 1334 | | // Holes detected? |
| 1335 | | } |
| 1336 | | break; |
| 1325 | case CMD_INGAP_MOVE: |
| 1326 | // Errors: CART OUT,FAST SPEED |
| 1327 | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1328 | m_cmd_state = 0; |
| 1329 | tape_pos_t target = m_tape_pos; |
| 1330 | if (next_n_gap(target, 1, MIN_IRG_LENGTH)) { |
| 1331 | LOG_0(("IRG @%d\n" , target)); |
| 1332 | cmd_duration = time_to_target(target); |
| 1333 | } |
| 1334 | // Holes detected? |
| 1335 | } |
| 1336 | break; |
| 1337 | 1337 | |
| 1338 | | case CMD_WRITE_IRG: |
| 1339 | | // Errors: WP,CART OUT |
| 1340 | | if (start_tape_cmd(new_cmd_reg , 0 , STATUS_WPR_MASK)) { |
| 1341 | | m_rw_pos = m_tape_pos; |
| 1342 | | cmd_duration = time_to_tach_pulses(); |
| 1343 | | time_to_hole = time_to_next_hole(); |
| 1344 | | } |
| 1345 | | break; |
| 1338 | case CMD_WRITE_IRG: |
| 1339 | // Errors: WP,CART OUT |
| 1340 | if (start_tape_cmd(new_cmd_reg , 0 , STATUS_WPR_MASK)) { |
| 1341 | m_rw_pos = m_tape_pos; |
| 1342 | cmd_duration = time_to_tach_pulses(); |
| 1343 | time_to_hole = time_to_next_hole(); |
| 1344 | } |
| 1345 | break; |
| 1346 | 1346 | |
| 1347 | | case CMD_SCAN_RECORDS: |
| 1348 | | // Errors: CART OUT |
| 1349 | | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1350 | | m_cmd_state = 0; |
| 1351 | | if (next_data(m_rd_it , m_tape_pos , true)) { |
| 1352 | | cmd_duration = time_to_target(farthest_end(m_rd_it)); |
| 1353 | | } |
| 1354 | | time_to_hole = time_to_next_hole(); |
| 1355 | | } |
| 1356 | | break; |
| 1347 | case CMD_SCAN_RECORDS: |
| 1348 | // Errors: CART OUT |
| 1349 | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1350 | m_cmd_state = 0; |
| 1351 | if (next_data(m_rd_it , m_tape_pos , true)) { |
| 1352 | cmd_duration = time_to_target(farthest_end(m_rd_it)); |
| 1353 | } |
| 1354 | time_to_hole = time_to_next_hole(); |
| 1355 | } |
| 1356 | break; |
| 1357 | 1357 | |
| 1358 | | case CMD_RECORD_WRITE: |
| 1359 | | // Errors: WP,CART OUT,fast speed,reverse |
| 1360 | | if (start_tape_cmd(new_cmd_reg , DIR_FWD_MASK , STATUS_WPR_MASK | SPEED_FAST_MASK)) { |
| 1361 | | // Search for preamble first |
| 1362 | | m_cmd_state = 0; |
| 1363 | | m_rd_it_valid = next_data(m_rd_it , m_tape_pos , false); |
| 1364 | | cmd_duration = time_to_rd_next_word(m_rw_pos); |
| 1365 | | // Holes detected? |
| 1366 | | } |
| 1367 | | break; |
| 1358 | case CMD_RECORD_WRITE: |
| 1359 | // Errors: WP,CART OUT,fast speed,reverse |
| 1360 | if (start_tape_cmd(new_cmd_reg , DIR_FWD_MASK , STATUS_WPR_MASK | SPEED_FAST_MASK)) { |
| 1361 | // Search for preamble first |
| 1362 | m_cmd_state = 0; |
| 1363 | m_rd_it_valid = next_data(m_rd_it , m_tape_pos , false); |
| 1364 | cmd_duration = time_to_rd_next_word(m_rw_pos); |
| 1365 | // Holes detected? |
| 1366 | } |
| 1367 | break; |
| 1368 | 1368 | |
| 1369 | | case CMD_MOVE_INDTA: |
| 1370 | | // Errors: CART OUT,FAST SPEED |
| 1371 | | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1372 | | m_cmd_state = 0; |
| 1373 | | cmd_duration = time_to_tach_pulses(); |
| 1374 | | // Holes detected? |
| 1375 | | } |
| 1376 | | break; |
| 1369 | case CMD_MOVE_INDTA: |
| 1370 | // Errors: CART OUT,FAST SPEED |
| 1371 | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1372 | m_cmd_state = 0; |
| 1373 | cmd_duration = time_to_tach_pulses(); |
| 1374 | // Holes detected? |
| 1375 | } |
| 1376 | break; |
| 1377 | 1377 | |
| 1378 | | case CMD_UNK_1b: |
| 1379 | | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1380 | | // Unknown purpose, but make it a NOP (it's used in "T" test of test ROM) |
| 1381 | | cmd_duration = attotime::from_usec(QUICK_CMD_USEC); |
| 1382 | | } |
| 1383 | | break; |
| 1378 | case CMD_UNK_1b: |
| 1379 | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1380 | // Unknown purpose, but make it a NOP (it's used in "T" test of test ROM) |
| 1381 | cmd_duration = attotime::from_usec(QUICK_CMD_USEC); |
| 1382 | } |
| 1383 | break; |
| 1384 | 1384 | |
| 1385 | | case CMD_DELTA_MOVE_HOLE: |
| 1386 | | case CMD_DELTA_MOVE_IRG: |
| 1387 | | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1388 | | cmd_duration = time_to_tach_pulses(); |
| 1389 | | time_to_hole = time_to_next_hole(); |
| 1390 | | } |
| 1391 | | break; |
| 1385 | case CMD_DELTA_MOVE_HOLE: |
| 1386 | case CMD_DELTA_MOVE_IRG: |
| 1387 | if (start_tape_cmd(new_cmd_reg , 0 , 0)) { |
| 1388 | cmd_duration = time_to_tach_pulses(); |
| 1389 | time_to_hole = time_to_next_hole(); |
| 1390 | } |
| 1391 | break; |
| 1392 | 1392 | |
| 1393 | | case CMD_START_READ: |
| 1394 | | // Yes, you can read tape backwards: test "C" does that! |
| 1395 | | // Because of this DIR_FWD_MASK is not in the "must be 1" mask. |
| 1396 | | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1397 | | // TODO: check anche m_rw_pos sforato |
| 1398 | | if (!m_rd_it_valid) { |
| 1399 | | // Search for preamble first |
| 1400 | | m_cmd_state = 0; |
| 1401 | | m_rd_it_valid = next_data(m_rd_it , m_tape_pos , false); |
| 1402 | | } |
| 1393 | case CMD_START_READ: |
| 1394 | // Yes, you can read tape backwards: test "C" does that! |
| 1395 | // Because of this DIR_FWD_MASK is not in the "must be 1" mask. |
| 1396 | if (start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1397 | // TODO: check anche m_rw_pos sforato |
| 1398 | if (!m_rd_it_valid) { |
| 1399 | // Search for preamble first |
| 1400 | m_cmd_state = 0; |
| 1401 | m_rd_it_valid = next_data(m_rd_it , m_tape_pos , false); |
| 1402 | } |
| 1403 | 1403 | |
| 1404 | | cmd_duration = time_to_rd_next_word(m_rw_pos); |
| 1405 | | time_to_hole = time_to_next_hole(); |
| 1406 | | } |
| 1407 | | break; |
| 1404 | cmd_duration = time_to_rd_next_word(m_rw_pos); |
| 1405 | time_to_hole = time_to_next_hole(); |
| 1406 | } |
| 1407 | break; |
| 1408 | 1408 | |
| 1409 | | case CMD_END_READ: |
| 1410 | | // This command only makes sense after CMD_START_READ |
| 1411 | | if (CMD_CODE(m_cmd_reg) == CMD_START_READ && m_cmd_state == 1 && |
| 1412 | | start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1413 | | LOG_0(("END_READ %d\n" , m_rd_it_valid)); |
| 1414 | | cmd_duration = time_to_rd_next_word(m_rw_pos); |
| 1415 | | time_to_hole = time_to_next_hole(); |
| 1416 | | } |
| 1417 | | break; |
| 1409 | case CMD_END_READ: |
| 1410 | // This command only makes sense after CMD_START_READ |
| 1411 | if (CMD_CODE(m_cmd_reg) == CMD_START_READ && m_cmd_state == 1 && |
| 1412 | start_tape_cmd(new_cmd_reg , 0 , SPEED_FAST_MASK)) { |
| 1413 | LOG_0(("END_READ %d\n" , m_rd_it_valid)); |
| 1414 | cmd_duration = time_to_rd_next_word(m_rw_pos); |
| 1415 | time_to_hole = time_to_next_hole(); |
| 1416 | } |
| 1417 | break; |
| 1418 | 1418 | |
| 1419 | | default: |
| 1420 | | LOG(("Unrecognized command\n")); |
| 1421 | | break; |
| 1422 | | } |
| 1419 | default: |
| 1420 | LOG(("Unrecognized command\n")); |
| 1421 | break; |
| 1422 | } |
| 1423 | 1423 | |
| 1424 | | m_tape_timer->adjust(cmd_duration); |
| 1425 | | m_hole_timer->adjust(time_to_hole); |
| 1424 | m_tape_timer->adjust(cmd_duration); |
| 1425 | m_hole_timer->adjust(time_to_hole); |
| 1426 | 1426 | } |
| 1427 | 1427 | |
| 1428 | 1428 | bool hp_taco_device::call_load() |
| 1429 | 1429 | { |
| 1430 | | LOG(("call_load %d\n" , has_been_created())); |
| 1431 | | if (has_been_created()) { |
| 1432 | | clear_tape(); |
| 1433 | | save_tape(); |
| 1434 | | } else if (!load_tape()) { |
| 1435 | | seterror(IMAGE_ERROR_INVALIDIMAGE , "Wrong format"); |
| 1436 | | set_tape_present(false); |
| 1437 | | return IMAGE_INIT_FAIL; |
| 1438 | | } |
| 1430 | LOG(("call_load %d\n" , has_been_created())); |
| 1431 | if (has_been_created()) { |
| 1432 | clear_tape(); |
| 1433 | save_tape(); |
| 1434 | } else if (!load_tape()) { |
| 1435 | seterror(IMAGE_ERROR_INVALIDIMAGE , "Wrong format"); |
| 1436 | set_tape_present(false); |
| 1437 | return IMAGE_INIT_FAIL; |
| 1438 | } |
| 1439 | 1439 | |
| 1440 | | m_image_dirty = false; |
| 1440 | m_image_dirty = false; |
| 1441 | 1441 | |
| 1442 | | set_tape_present(true); |
| 1442 | set_tape_present(true); |
| 1443 | 1443 | return IMAGE_INIT_PASS; |
| 1444 | 1444 | } |
| 1445 | 1445 | |
| 1446 | 1446 | bool hp_taco_device::call_create(int format_type, option_resolution *format_options) |
| 1447 | 1447 | { |
| 1448 | | LOG(("call_create %d\n" , has_been_created())); |
| 1449 | | return call_load(); |
| 1448 | LOG(("call_create %d\n" , has_been_created())); |
| 1449 | return call_load(); |
| 1450 | 1450 | } |
| 1451 | 1451 | |
| 1452 | 1452 | void hp_taco_device::call_unload() |
| 1453 | 1453 | { |
| 1454 | | LOG(("call_unload dirty=%d\n" , m_image_dirty)); |
| 1455 | | if (m_image_dirty) { |
| 1456 | | save_tape(); |
| 1457 | | m_image_dirty = false; |
| 1458 | | } |
| 1454 | LOG(("call_unload dirty=%d\n" , m_image_dirty)); |
| 1455 | if (m_image_dirty) { |
| 1456 | save_tape(); |
| 1457 | m_image_dirty = false; |
| 1458 | } |
| 1459 | 1459 | |
| 1460 | | clear_tape(); |
| 1461 | | set_tape_present(false); |
| 1460 | clear_tape(); |
| 1461 | set_tape_present(false); |
| 1462 | 1462 | } |
| 1463 | 1463 | |
| 1464 | 1464 | const char *hp_taco_device::file_extensions() const |
| 1465 | 1465 | { |
| 1466 | | return "hti"; |
| 1466 | return "hti"; |
| 1467 | 1467 | } |
trunk/src/mame/drivers/goupil.cpp
| r253707 | r253708 | |
| 1 | 1 | // license:BSD-3-Clause |
| 2 | | // copyright-holders:Jean-François DEL NERO |
| 2 | // copyright-holders:Jean-Francois DEL NERO |
| 3 | 3 | /*************************************************************************** |
| 4 | 4 | |
| 5 | 5 | SMT Goupil G1 driver |
| r253707 | r253708 | |
| 17 | 17 | -> The internal Basic is working (-> 6800 0xC3 illegal opcode emulation needed). |
| 18 | 18 | |
| 19 | 19 | 02/04/2016 |
| 20 | | Jean-François DEL NERO |
| 20 | Jean-Francois DEL NERO |
| 21 | 21 | |
| 22 | 22 | ****************************************************************************/ |
| 23 | 23 | |
| r253707 | r253708 | |
| 39 | 39 | class goupil_g1_state : public driver_device |
| 40 | 40 | { |
| 41 | 41 | public: |
| 42 | | goupil_g1_state(const machine_config &mconfig, device_type type, const char *tag) |
| 43 | | : driver_device(mconfig, type, tag) |
| 44 | | , m_acia(*this, "ef6850") |
| 45 | | , m_ef9364(*this, "ef9364") |
| 46 | | , m_maincpu(*this, "maincpu") |
| 47 | | , m_via_video(*this, "m_via_video") |
| 48 | | , m_via_keyb(*this, "m_via_keyb") |
| 49 | | , m_via_modem(*this, "m_via_modem") |
| 50 | | , m_fdc(*this, "fd1791") |
| 51 | | , m_floppy0(*this, "fd1791:0") |
| 52 | | , m_floppy1(*this, "fd1791:1") |
| 53 | | , m_floppy(NULL) |
| 54 | | { } |
| 42 | goupil_g1_state(const machine_config &mconfig, device_type type, const char *tag) |
| 43 | : driver_device(mconfig, type, tag) |
| 44 | , m_acia(*this, "ef6850") |
| 45 | , m_ef9364(*this, "ef9364") |
| 46 | , m_maincpu(*this, "maincpu") |
| 47 | , m_via_video(*this, "m_via_video") |
| 48 | , m_via_keyb(*this, "m_via_keyb") |
| 49 | , m_via_modem(*this, "m_via_modem") |
| 50 | , m_fdc(*this, "fd1791") |
| 51 | , m_floppy0(*this, "fd1791:0") |
| 52 | , m_floppy1(*this, "fd1791:1") |
| 53 | , m_floppy(NULL) |
| 54 | { } |
| 55 | 55 | |
| 56 | | DECLARE_WRITE8_MEMBER(via_video_pba_w); |
| 57 | | DECLARE_WRITE8_MEMBER(via_video_pbb_w); |
| 58 | | DECLARE_WRITE_LINE_MEMBER(via_video_ca2_w); |
| 56 | DECLARE_WRITE8_MEMBER(via_video_pba_w); |
| 57 | DECLARE_WRITE8_MEMBER(via_video_pbb_w); |
| 58 | DECLARE_WRITE_LINE_MEMBER(via_video_ca2_w); |
| 59 | 59 | |
| 60 | | DECLARE_READ8_MEMBER(kbd1_r); |
| 61 | | DECLARE_READ8_MEMBER(kbd2_r); |
| 62 | | DECLARE_READ8_MEMBER(shift_kb1_r); |
| 63 | | DECLARE_READ8_MEMBER(shift_kb2_r); |
| 64 | | DECLARE_READ8_MEMBER(ctrl_kb1_r); |
| 65 | | DECLARE_READ8_MEMBER(ctrl_kb2_r); |
| 60 | DECLARE_READ8_MEMBER(kbd1_r); |
| 61 | DECLARE_READ8_MEMBER(kbd2_r); |
| 62 | DECLARE_READ8_MEMBER(shift_kb1_r); |
| 63 | DECLARE_READ8_MEMBER(shift_kb2_r); |
| 64 | DECLARE_READ8_MEMBER(ctrl_kb1_r); |
| 65 | DECLARE_READ8_MEMBER(ctrl_kb2_r); |
| 66 | 66 | |
| 67 | | DECLARE_WRITE8_MEMBER(scanlines_kbd1_w); |
| 68 | | DECLARE_WRITE8_MEMBER(scanlines_kbd2_w); |
| 67 | DECLARE_WRITE8_MEMBER(scanlines_kbd1_w); |
| 68 | DECLARE_WRITE8_MEMBER(scanlines_kbd2_w); |
| 69 | 69 | |
| 70 | | DECLARE_READ_LINE_MEMBER(via_keyb_ca2_r); |
| 70 | DECLARE_READ_LINE_MEMBER(via_keyb_ca2_r); |
| 71 | 71 | |
| 72 | | virtual void machine_start() override; |
| 73 | | virtual void machine_reset() override; |
| 72 | virtual void machine_start() override; |
| 73 | virtual void machine_reset() override; |
| 74 | 74 | |
| 75 | | UINT8 m_row_kbd1; |
| 76 | | UINT8 m_row_kbd2; |
| 77 | | int old_state_ca2; |
| 78 | | UINT8 via_video_pbb_data; |
| 79 | | UINT8 cnttim; |
| 80 | | UINT8 valkeyb; |
| 81 | | TIMER_DEVICE_CALLBACK_MEMBER(goupil_scanline); |
| 75 | UINT8 m_row_kbd1; |
| 76 | UINT8 m_row_kbd2; |
| 77 | int old_state_ca2; |
| 78 | UINT8 via_video_pbb_data; |
| 79 | UINT8 cnttim; |
| 80 | UINT8 valkeyb; |
| 81 | TIMER_DEVICE_CALLBACK_MEMBER(goupil_scanline); |
| 82 | 82 | |
| 83 | 83 | private: |
| 84 | | required_device<acia6850_device> m_acia; |
| 85 | | required_device<ef9364_device> m_ef9364; |
| 86 | | required_device<cpu_device> m_maincpu; |
| 87 | | required_device<via6522_device> m_via_video; |
| 88 | | required_device<via6522_device> m_via_keyb; |
| 89 | | required_device<via6522_device> m_via_modem; |
| 90 | | required_device<fd1791_t> m_fdc; |
| 91 | | required_device<floppy_connector> m_floppy0; |
| 92 | | required_device<floppy_connector> m_floppy1; |
| 93 | | floppy_image_device *m_floppy; |
| 84 | required_device<acia6850_device> m_acia; |
| 85 | required_device<ef9364_device> m_ef9364; |
| 86 | required_device<cpu_device> m_maincpu; |
| 87 | required_device<via6522_device> m_via_video; |
| 88 | required_device<via6522_device> m_via_keyb; |
| 89 | required_device<via6522_device> m_via_modem; |
| 90 | required_device<fd1791_t> m_fdc; |
| 91 | required_device<floppy_connector> m_floppy0; |
| 92 | required_device<floppy_connector> m_floppy1; |
| 93 | floppy_image_device *m_floppy; |
| 94 | 94 | }; |
| 95 | 95 | |
| 96 | 96 | /********************************** |
| r253707 | r253708 | |
| 104 | 104 | |
| 105 | 105 | TIMER_DEVICE_CALLBACK_MEMBER( goupil_g1_state::goupil_scanline ) |
| 106 | 106 | { |
| 107 | | m_ef9364->update_scanline((UINT16)param); |
| 107 | m_ef9364->update_scanline((UINT16)param); |
| 108 | 108 | } |
| 109 | 109 | |
| 110 | 110 | static ADDRESS_MAP_START(goupil_mem, AS_PROGRAM, 8, goupil_g1_state) |
| 111 | | ADDRESS_MAP_UNMAP_HIGH |
| 112 | | AM_RANGE(0x0000,0x3fff) AM_RAM |
| 113 | | AM_RANGE(0x4000,0x7fff) AM_RAM |
| 114 | | AM_RANGE(0xC000,0xE3FF) AM_ROM AM_REGION("maincpu", 0x1000) // Basic ROM (BASIC 1 up to BASIC 9). |
| 111 | ADDRESS_MAP_UNMAP_HIGH |
| 112 | AM_RANGE(0x0000,0x3fff) AM_RAM |
| 113 | AM_RANGE(0x4000,0x7fff) AM_RAM |
| 114 | AM_RANGE(0xC000,0xE3FF) AM_ROM AM_REGION("maincpu", 0x1000) // Basic ROM (BASIC 1 up to BASIC 9). |
| 115 | 115 | |
| 116 | | AM_RANGE(0xe400,0xe7ff) AM_RAM |
| 117 | | AM_RANGE(0xE800,0xE80F) AM_DEVREADWRITE("ef6850", acia6850_device, data_r, data_w) |
| 118 | | AM_RANGE(0xE810,0xE81F) AM_DEVREADWRITE("m_via_video", via6522_device, read, write) |
| 116 | AM_RANGE(0xe400,0xe7ff) AM_RAM |
| 117 | AM_RANGE(0xE800,0xE80F) AM_DEVREADWRITE("ef6850", acia6850_device, data_r, data_w) |
| 118 | AM_RANGE(0xE810,0xE81F) AM_DEVREADWRITE("m_via_video", via6522_device, read, write) |
| 119 | 119 | |
| 120 | | AM_RANGE(0xE820,0xE820) AM_DEVREADWRITE("i8279_kb1", i8279_device, data_r, data_w ) |
| 121 | | AM_RANGE(0xE821,0xE821) AM_DEVREADWRITE("i8279_kb1", i8279_device, status_r, cmd_w ) |
| 120 | AM_RANGE(0xE820,0xE820) AM_DEVREADWRITE("i8279_kb1", i8279_device, data_r, data_w ) |
| 121 | AM_RANGE(0xE821,0xE821) AM_DEVREADWRITE("i8279_kb1", i8279_device, status_r, cmd_w ) |
| 122 | 122 | |
| 123 | | AM_RANGE(0xE830,0xE830) AM_DEVREADWRITE("i8279_kb2", i8279_device, data_r, data_w ) |
| 124 | | AM_RANGE(0xE831,0xE831) AM_DEVREADWRITE("i8279_kb2", i8279_device, status_r, cmd_w ) |
| 123 | AM_RANGE(0xE830,0xE830) AM_DEVREADWRITE("i8279_kb2", i8279_device, data_r, data_w ) |
| 124 | AM_RANGE(0xE831,0xE831) AM_DEVREADWRITE("i8279_kb2", i8279_device, status_r, cmd_w ) |
| 125 | 125 | |
| 126 | | AM_RANGE(0xE840,0xE84F) AM_DEVREADWRITE("m_via_keyb", via6522_device, read, write) |
| 126 | AM_RANGE(0xE840,0xE84F) AM_DEVREADWRITE("m_via_keyb", via6522_device, read, write) |
| 127 | 127 | |
| 128 | | AM_RANGE(0xE860,0xE86F) AM_DEVREADWRITE("m_via_modem", via6522_device, read, write) |
| 128 | AM_RANGE(0xE860,0xE86F) AM_DEVREADWRITE("m_via_modem", via6522_device, read, write) |
| 129 | 129 | |
| 130 | | AM_RANGE(0xe8f0,0xe8ff) AM_DEVREADWRITE("fd1791", fd1791_t, read, write) |
| 131 | | //AM_RANGE(0xf08a,0xf08a) AM_READWRITE( fdc_sel0_r, fdc_sel0_w ) |
| 132 | | //AM_RANGE(0xf08b,0xf08b) AM_READWRITE( fdc_sel1_r, fdc_sel1_w ) |
| 130 | AM_RANGE(0xe8f0,0xe8ff) AM_DEVREADWRITE("fd1791", fd1791_t, read, write) |
| 131 | //AM_RANGE(0xf08a,0xf08a) AM_READWRITE( fdc_sel0_r, fdc_sel0_w ) |
| 132 | //AM_RANGE(0xf08b,0xf08b) AM_READWRITE( fdc_sel1_r, fdc_sel1_w ) |
| 133 | 133 | |
| 134 | | AM_RANGE(0xf400,0xf7ff) AM_ROM AM_REGION("maincpu", 0x0800) // Modem (MOD 3) |
| 135 | | AM_RANGE(0xf800,0xffff) AM_ROM AM_REGION("maincpu", 0x0000) // Monitor (MON 1 + MON 2) |
| 134 | AM_RANGE(0xf400,0xf7ff) AM_ROM AM_REGION("maincpu", 0x0800) // Modem (MOD 3) |
| 135 | AM_RANGE(0xf800,0xffff) AM_ROM AM_REGION("maincpu", 0x0000) // Monitor (MON 1 + MON 2) |
| 136 | 136 | ADDRESS_MAP_END |
| 137 | 137 | |
| 138 | 138 | static ADDRESS_MAP_START( goupil_io, AS_IO, 8, goupil_g1_state) |
| 139 | | ADDRESS_MAP_UNMAP_HIGH |
| 139 | ADDRESS_MAP_UNMAP_HIGH |
| 140 | 140 | ADDRESS_MAP_END |
| 141 | 141 | |
| 142 | 142 | WRITE8_MEMBER( goupil_g1_state::scanlines_kbd1_w ) |
| 143 | 143 | { |
| 144 | | m_row_kbd1 = data; |
| 144 | m_row_kbd1 = data; |
| 145 | 145 | } |
| 146 | 146 | |
| 147 | 147 | READ8_MEMBER( goupil_g1_state::ctrl_kb1_r ) |
| 148 | 148 | { |
| 149 | | char kbdrow[6]; |
| 150 | | unsigned char data; |
| 149 | char kbdrow[6]; |
| 150 | unsigned char data; |
| 151 | 151 | |
| 152 | | kbdrow[0] = 'C'; |
| 153 | | kbdrow[1] = 'T'; |
| 154 | | kbdrow[2] = 'R'; |
| 155 | | kbdrow[3] = '0'; |
| 156 | | kbdrow[4] = 0; |
| 152 | kbdrow[0] = 'C'; |
| 153 | kbdrow[1] = 'T'; |
| 154 | kbdrow[2] = 'R'; |
| 155 | kbdrow[3] = '0'; |
| 156 | kbdrow[4] = 0; |
| 157 | 157 | |
| 158 | | data = ioport(kbdrow)->read(); |
| 159 | | if( data & 0x02 ) |
| 160 | | return 1; |
| 161 | | else |
| 162 | | return 0; |
| 158 | data = ioport(kbdrow)->read(); |
| 159 | if( data & 0x02 ) |
| 160 | return 1; |
| 161 | else |
| 162 | return 0; |
| 163 | 163 | } |
| 164 | 164 | |
| 165 | 165 | READ8_MEMBER( goupil_g1_state::ctrl_kb2_r ) |
| 166 | 166 | { |
| 167 | | return 1; |
| 167 | return 1; |
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | READ8_MEMBER( goupil_g1_state::shift_kb1_r ) |
| 171 | 171 | { |
| 172 | | char kbdrow[6]; |
| 173 | | unsigned char data; |
| 172 | char kbdrow[6]; |
| 173 | unsigned char data; |
| 174 | 174 | |
| 175 | | kbdrow[0] = 'C'; |
| 176 | | kbdrow[1] = 'T'; |
| 177 | | kbdrow[2] = 'R'; |
| 178 | | kbdrow[3] = '0'; |
| 179 | | kbdrow[4] = 0; |
| 175 | kbdrow[0] = 'C'; |
| 176 | kbdrow[1] = 'T'; |
| 177 | kbdrow[2] = 'R'; |
| 178 | kbdrow[3] = '0'; |
| 179 | kbdrow[4] = 0; |
| 180 | 180 | |
| 181 | | data = ioport(kbdrow)->read(); |
| 182 | | if( data & 0x01 ) |
| 183 | | return 1; |
| 184 | | else |
| 185 | | return 0; |
| 181 | data = ioport(kbdrow)->read(); |
| 182 | if( data & 0x01 ) |
| 183 | return 1; |
| 184 | else |
| 185 | return 0; |
| 186 | 186 | } |
| 187 | 187 | |
| 188 | 188 | READ8_MEMBER( goupil_g1_state::shift_kb2_r ) |
| 189 | 189 | { |
| 190 | | return 1; |
| 190 | return 1; |
| 191 | 191 | } |
| 192 | 192 | |
| 193 | 193 | READ8_MEMBER( goupil_g1_state::kbd1_r ) |
| 194 | 194 | { |
| 195 | | char kbdrow[6]; |
| 196 | | UINT8 data = 0xff; |
| 195 | char kbdrow[6]; |
| 196 | UINT8 data = 0xff; |
| 197 | 197 | |
| 198 | | kbdrow[0] = 'A'; |
| 199 | | kbdrow[1] = 'X'; |
| 200 | | kbdrow[2] = '0' + ( m_row_kbd1 & 7 ) ; |
| 201 | | kbdrow[3] = 0; |
| 198 | kbdrow[0] = 'A'; |
| 199 | kbdrow[1] = 'X'; |
| 200 | kbdrow[2] = '0' + ( m_row_kbd1 & 7 ) ; |
| 201 | kbdrow[3] = 0; |
| 202 | 202 | |
| 203 | | data = ioport(kbdrow)->read(); |
| 203 | data = ioport(kbdrow)->read(); |
| 204 | 204 | |
| 205 | | return data; |
| 205 | return data; |
| 206 | 206 | } |
| 207 | 207 | |
| 208 | 208 | WRITE8_MEMBER( goupil_g1_state::scanlines_kbd2_w ) |
| 209 | 209 | { |
| 210 | | m_row_kbd2 = data & 7; |
| 210 | m_row_kbd2 = data & 7; |
| 211 | 211 | } |
| 212 | 212 | |
| 213 | 213 | READ_LINE_MEMBER( goupil_g1_state::via_keyb_ca2_r ) |
| 214 | 214 | { |
| 215 | | return 0; |
| 215 | return 0; |
| 216 | 216 | } |
| 217 | 217 | |
| 218 | 218 | READ8_MEMBER( goupil_g1_state::kbd2_r ) |
| 219 | 219 | { |
| 220 | | char kbdrow[6]; |
| 221 | | UINT8 data = 0xff; |
| 220 | char kbdrow[6]; |
| 221 | UINT8 data = 0xff; |
| 222 | 222 | |
| 223 | | kbdrow[0] = 'B'; |
| 224 | | kbdrow[1] = 'X'; |
| 225 | | kbdrow[2] = '0' + ( m_row_kbd2 & 7 ) ; |
| 226 | | kbdrow[3] = 0; |
| 223 | kbdrow[0] = 'B'; |
| 224 | kbdrow[1] = 'X'; |
| 225 | kbdrow[2] = '0' + ( m_row_kbd2 & 7 ) ; |
| 226 | kbdrow[3] = 0; |
| 227 | 227 | |
| 228 | | data = ioport(kbdrow)->read(); |
| 228 | data = ioport(kbdrow)->read(); |
| 229 | 229 | |
| 230 | | return data; |
| 230 | return data; |
| 231 | 231 | } |
| 232 | 232 | |
| 233 | 233 | /* Input ports */ |
| 234 | 234 | static INPUT_PORTS_START( goupil_g1 ) |
| 235 | | PORT_START("AX0") |
| 236 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') |
| 237 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') |
| 238 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') |
| 239 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') |
| 240 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 241 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') |
| 242 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 243 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') |
| 244 | | PORT_START("AX1") |
| 245 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') |
| 246 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') |
| 247 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') |
| 248 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') |
| 249 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 250 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') |
| 251 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 252 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') |
| 253 | | PORT_START("AX2") |
| 254 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') |
| 255 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') |
| 256 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') |
| 257 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') |
| 258 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 259 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('?') |
| 260 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 261 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') |
| 262 | | PORT_START("AX3") |
| 263 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 264 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') |
| 265 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') |
| 266 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 267 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 268 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') |
| 269 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) |
| 270 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) |
| 271 | | PORT_START("AX4") |
| 272 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') |
| 273 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') |
| 274 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') |
| 275 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') |
| 276 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 277 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR(':') PORT_CHAR('/') |
| 278 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 279 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('.') |
| 280 | | PORT_START("AX5") |
| 281 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(TAB)) |
| 282 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) |
| 283 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 284 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 285 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BS") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) |
| 286 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 287 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') |
| 288 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') |
| 289 | | PORT_START("AX6") |
| 290 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') |
| 291 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00F9) PORT_CHAR('%') |
| 292 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 293 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') |
| 294 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 295 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 296 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 297 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') |
| 298 | | PORT_START("AX7") |
| 299 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 300 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) |
| 301 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 302 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 303 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 304 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 305 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 306 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 235 | PORT_START("AX0") |
| 236 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') |
| 237 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') |
| 238 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') |
| 239 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') |
| 240 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 241 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') |
| 242 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 243 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') |
| 244 | PORT_START("AX1") |
| 245 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') |
| 246 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') |
| 247 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') |
| 248 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') |
| 249 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 250 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') |
| 251 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 252 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') |
| 253 | PORT_START("AX2") |
| 254 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') |
| 255 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') |
| 256 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') |
| 257 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') |
| 258 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 259 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('?') |
| 260 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 261 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') |
| 262 | PORT_START("AX3") |
| 263 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 264 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') |
| 265 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') |
| 266 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 267 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 268 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') |
| 269 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) |
| 270 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) |
| 271 | PORT_START("AX4") |
| 272 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') |
| 273 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') |
| 274 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') |
| 275 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') |
| 276 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 277 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR(':') PORT_CHAR('/') |
| 278 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 279 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('.') |
| 280 | PORT_START("AX5") |
| 281 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(TAB)) |
| 282 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) |
| 283 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 284 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 285 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BS") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) |
| 286 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 287 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') |
| 288 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') |
| 289 | PORT_START("AX6") |
| 290 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') |
| 291 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00F9) PORT_CHAR('%') |
| 292 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 293 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') |
| 294 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 295 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 296 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 297 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') |
| 298 | PORT_START("AX7") |
| 299 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 300 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) |
| 301 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 302 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 303 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 304 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 305 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 306 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 307 | 307 | |
| 308 | | PORT_START("CTR0") |
| 309 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) |
| 310 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) |
| 308 | PORT_START("CTR0") |
| 309 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) |
| 310 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) |
| 311 | 311 | |
| 312 | | PORT_START("BX0") |
| 313 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 314 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 315 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 316 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 317 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 318 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 319 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 320 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 321 | | PORT_START("BX1") |
| 322 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 323 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 324 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 325 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 326 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 327 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 328 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 329 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 330 | | PORT_START("BX2") |
| 331 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 332 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 333 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 334 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 335 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 336 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 337 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 338 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 339 | | PORT_START("BX3") |
| 340 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 341 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 342 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') |
| 343 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') |
| 344 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 345 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 346 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 347 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') |
| 348 | | PORT_START("BX4") |
| 349 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 350 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 351 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 352 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 353 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 354 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 355 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 356 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 357 | | PORT_START("BX5") |
| 358 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 359 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 360 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 361 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 362 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 363 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 364 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 365 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 366 | | PORT_START("BX6") |
| 367 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 368 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 369 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') |
| 370 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') |
| 371 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 372 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 373 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 374 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') |
| 375 | | PORT_START("BX7") |
| 376 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 377 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 378 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') |
| 379 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') |
| 380 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 381 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 382 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 383 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') |
| 312 | PORT_START("BX0") |
| 313 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 314 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 315 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 316 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 317 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 318 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 319 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 320 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 321 | PORT_START("BX1") |
| 322 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 323 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 324 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 325 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 326 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 327 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 328 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 329 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 330 | PORT_START("BX2") |
| 331 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 332 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 333 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 334 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 335 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 336 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 337 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 338 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 339 | PORT_START("BX3") |
| 340 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 341 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 342 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') |
| 343 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') |
| 344 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 345 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 346 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 347 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') |
| 348 | PORT_START("BX4") |
| 349 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 350 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 351 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 352 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 353 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 354 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 355 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 356 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 357 | PORT_START("BX5") |
| 358 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 359 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 360 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) |
| 361 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) |
| 362 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 363 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 364 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 365 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 366 | PORT_START("BX6") |
| 367 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 368 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 369 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') |
| 370 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') |
| 371 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 372 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 373 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 374 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') |
| 375 | PORT_START("BX7") |
| 376 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 377 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 378 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') |
| 379 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') |
| 380 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 381 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 382 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 383 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') |
| 384 | 384 | INPUT_PORTS_END |
| 385 | 385 | |
| 386 | 386 | static SLOT_INTERFACE_START( goupil_floppies ) |
| 387 | | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 387 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 388 | 388 | SLOT_INTERFACE_END |
| 389 | 389 | |
| 390 | 390 | void goupil_g1_state::machine_start() |
| 391 | 391 | { |
| 392 | | std::string region_tag; |
| 392 | std::string region_tag; |
| 393 | 393 | |
| 394 | | m_floppy = NULL; |
| 395 | | valkeyb = 0xFF; |
| 394 | m_floppy = NULL; |
| 395 | valkeyb = 0xFF; |
| 396 | 396 | } |
| 397 | 397 | |
| 398 | 398 | void goupil_g1_state::machine_reset() |
| r253707 | r253708 | |
| 401 | 401 | |
| 402 | 402 | WRITE8_MEMBER(goupil_g1_state::via_video_pba_w) |
| 403 | 403 | { |
| 404 | | #ifdef DBGMODE |
| 405 | | printf("%s: write via_video_pba_w reg : 0x%X\n",machine().describe_context(),data); |
| 406 | | #endif |
| 407 | | m_ef9364->char_latch_w(data); |
| 404 | #ifdef DBGMODE |
| 405 | printf("%s: write via_video_pba_w reg : 0x%X\n",machine().describe_context(),data); |
| 406 | #endif |
| 407 | m_ef9364->char_latch_w(data); |
| 408 | 408 | } |
| 409 | 409 | |
| 410 | 410 | WRITE8_MEMBER(goupil_g1_state::via_video_pbb_w) |
| 411 | 411 | { |
| 412 | | #ifdef DBGMODE |
| 413 | | printf("%s: write via_video_pbb_w reg : 0x%X\n",machine().describe_context(),data); |
| 414 | | #endif |
| 415 | | via_video_pbb_data = data; |
| 412 | #ifdef DBGMODE |
| 413 | printf("%s: write via_video_pbb_w reg : 0x%X\n",machine().describe_context(),data); |
| 414 | #endif |
| 415 | via_video_pbb_data = data; |
| 416 | 416 | } |
| 417 | 417 | |
| 418 | 418 | WRITE_LINE_MEMBER( goupil_g1_state::via_video_ca2_w ) |
| 419 | 419 | { |
| 420 | | if(old_state_ca2==0 && state==1) |
| 421 | | { |
| 422 | | m_ef9364->command_w(via_video_pbb_data&0xF); |
| 423 | | } |
| 424 | | old_state_ca2 = state; |
| 420 | if(old_state_ca2==0 && state==1) |
| 421 | { |
| 422 | m_ef9364->command_w(via_video_pbb_data&0xF); |
| 423 | } |
| 424 | old_state_ca2 = state; |
| 425 | 425 | } |
| 426 | 426 | |
| 427 | 427 | static MACHINE_CONFIG_START( goupil_g1, goupil_g1_state ) |
| 428 | | /* basic machine hardware */ |
| 429 | | MCFG_CPU_ADD("maincpu",M6808, CPU_CLOCK) |
| 430 | | MCFG_CPU_PROGRAM_MAP(goupil_mem) |
| 431 | | MCFG_CPU_IO_MAP(goupil_io) |
| 428 | /* basic machine hardware */ |
| 429 | MCFG_CPU_ADD("maincpu",M6808, CPU_CLOCK) |
| 430 | MCFG_CPU_PROGRAM_MAP(goupil_mem) |
| 431 | MCFG_CPU_IO_MAP(goupil_io) |
| 432 | 432 | |
| 433 | | /* sound hardware */ |
| 434 | | // TODO ! |
| 433 | /* sound hardware */ |
| 434 | // TODO ! |
| 435 | 435 | |
| 436 | | MCFG_DEVICE_ADD ("ef6850", ACIA6850, 0) |
| 436 | MCFG_DEVICE_ADD ("ef6850", ACIA6850, 0) |
| 437 | 437 | |
| 438 | | /* screen */ |
| 439 | | MCFG_SCREEN_ADD("screen", RASTER) |
| 440 | | MCFG_SCREEN_REFRESH_RATE(50) |
| 441 | | MCFG_SCREEN_UPDATE_DEVICE("ef9364", ef9364_device, screen_update) |
| 438 | /* screen */ |
| 439 | MCFG_SCREEN_ADD("screen", RASTER) |
| 440 | MCFG_SCREEN_REFRESH_RATE(50) |
| 441 | MCFG_SCREEN_UPDATE_DEVICE("ef9364", ef9364_device, screen_update) |
| 442 | 442 | |
| 443 | | MCFG_SCREEN_SIZE((64*8), (16*(8+4))) |
| 444 | | MCFG_SCREEN_VISIBLE_AREA(0, (64*8)-1, 0, (16*(8+4))-1) |
| 445 | | MCFG_PALETTE_ADD("palette", 16) |
| 443 | MCFG_SCREEN_SIZE((64*8), (16*(8+4))) |
| 444 | MCFG_SCREEN_VISIBLE_AREA(0, (64*8)-1, 0, (16*(8+4))-1) |
| 445 | MCFG_PALETTE_ADD("palette", 16) |
| 446 | 446 | |
| 447 | | MCFG_DEVICE_ADD("ef9364", EF9364, VIDEO_CLOCK) |
| 448 | | MCFG_EF9364_PALETTE("palette") |
| 449 | | MCFG_EF9364_PAGES_CNT(1); |
| 450 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("goupil_sl", goupil_g1_state, goupil_scanline, "screen", 0, 10) |
| 447 | MCFG_DEVICE_ADD("ef9364", EF9364, VIDEO_CLOCK) |
| 448 | MCFG_EF9364_PALETTE("palette") |
| 449 | MCFG_EF9364_PAGES_CNT(1); |
| 450 | MCFG_TIMER_DRIVER_ADD_SCANLINE("goupil_sl", goupil_g1_state, goupil_scanline, "screen", 0, 10) |
| 451 | 451 | |
| 452 | | MCFG_DEVICE_ADD("m_via_video", VIA6522, 0) |
| 453 | | MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(goupil_g1_state, via_video_pba_w)) |
| 454 | | MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(goupil_g1_state, via_video_pbb_w)) |
| 455 | | MCFG_VIA6522_CA2_HANDLER(WRITELINE(goupil_g1_state, via_video_ca2_w)) |
| 452 | MCFG_DEVICE_ADD("m_via_video", VIA6522, 0) |
| 453 | MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(goupil_g1_state, via_video_pba_w)) |
| 454 | MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(goupil_g1_state, via_video_pbb_w)) |
| 455 | MCFG_VIA6522_CA2_HANDLER(WRITELINE(goupil_g1_state, via_video_ca2_w)) |
| 456 | 456 | |
| 457 | | MCFG_DEVICE_ADD("m_via_keyb", VIA6522, 0) |
| 458 | | MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6808_cpu_device, irq_line)) |
| 457 | MCFG_DEVICE_ADD("m_via_keyb", VIA6522, 0) |
| 458 | MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6808_cpu_device, irq_line)) |
| 459 | 459 | |
| 460 | | MCFG_DEVICE_ADD("m_via_modem", VIA6522, 0) |
| 461 | | MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6808_cpu_device, irq_line)) |
| 460 | MCFG_DEVICE_ADD("m_via_modem", VIA6522, 0) |
| 461 | MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6808_cpu_device, irq_line)) |
| 462 | 462 | |
| 463 | | /* Floppy */ |
| 464 | | MCFG_FD1791_ADD("fd1791", XTAL_8MHz ) |
| 465 | | MCFG_FLOPPY_DRIVE_ADD("fd1791:0", goupil_floppies, "525qd", floppy_image_device::default_floppy_formats) |
| 466 | | MCFG_FLOPPY_DRIVE_ADD("fd1791:1", goupil_floppies, "525qd", floppy_image_device::default_floppy_formats) |
| 463 | /* Floppy */ |
| 464 | MCFG_FD1791_ADD("fd1791", XTAL_8MHz ) |
| 465 | MCFG_FLOPPY_DRIVE_ADD("fd1791:0", goupil_floppies, "525qd", floppy_image_device::default_floppy_formats) |
| 466 | MCFG_FLOPPY_DRIVE_ADD("fd1791:1", goupil_floppies, "525qd", floppy_image_device::default_floppy_formats) |
| 467 | 467 | |
| 468 | | MCFG_DEVICE_ADD("i8279_kb1", I8279, CPU_CLOCK) |
| 469 | | MCFG_I8279_OUT_SL_CB(WRITE8(goupil_g1_state, scanlines_kbd1_w)) // scan SL lines |
| 470 | | MCFG_I8279_IN_RL_CB(READ8(goupil_g1_state, kbd1_r)) // kbd RL lines |
| 471 | | MCFG_I8279_IN_SHIFT_CB(READ8(goupil_g1_state, shift_kb1_r)) |
| 472 | | MCFG_I8279_IN_CTRL_CB(READ8(goupil_g1_state, ctrl_kb1_r)) |
| 473 | | MCFG_I8279_OUT_IRQ_CB(DEVWRITELINE("m_via_keyb", via6522_device, write_ca1)) |
| 468 | MCFG_DEVICE_ADD("i8279_kb1", I8279, CPU_CLOCK) |
| 469 | MCFG_I8279_OUT_SL_CB(WRITE8(goupil_g1_state, scanlines_kbd1_w)) // scan SL lines |
| 470 | MCFG_I8279_IN_RL_CB(READ8(goupil_g1_state, kbd1_r)) // kbd RL lines |
| 471 | MCFG_I8279_IN_SHIFT_CB(READ8(goupil_g1_state, shift_kb1_r)) |
| 472 | MCFG_I8279_IN_CTRL_CB(READ8(goupil_g1_state, ctrl_kb1_r)) |
| 473 | MCFG_I8279_OUT_IRQ_CB(DEVWRITELINE("m_via_keyb", via6522_device, write_ca1)) |
| 474 | 474 | |
| 475 | | MCFG_DEVICE_ADD("i8279_kb2", I8279, CPU_CLOCK) |
| 476 | | MCFG_I8279_OUT_SL_CB(WRITE8(goupil_g1_state, scanlines_kbd2_w)) // scan SL lines |
| 477 | | MCFG_I8279_IN_RL_CB(READ8(goupil_g1_state, kbd2_r)) // kbd RL lines |
| 478 | | MCFG_I8279_IN_SHIFT_CB(READ8(goupil_g1_state, shift_kb2_r)) |
| 479 | | MCFG_I8279_IN_CTRL_CB(READ8(goupil_g1_state, ctrl_kb2_r)) |
| 475 | MCFG_DEVICE_ADD("i8279_kb2", I8279, CPU_CLOCK) |
| 476 | MCFG_I8279_OUT_SL_CB(WRITE8(goupil_g1_state, scanlines_kbd2_w)) // scan SL lines |
| 477 | MCFG_I8279_IN_RL_CB(READ8(goupil_g1_state, kbd2_r)) // kbd RL lines |
| 478 | MCFG_I8279_IN_SHIFT_CB(READ8(goupil_g1_state, shift_kb2_r)) |
| 479 | MCFG_I8279_IN_CTRL_CB(READ8(goupil_g1_state, ctrl_kb2_r)) |
| 480 | 480 | |
| 481 | 481 | MACHINE_CONFIG_END |
| 482 | 482 | |
| 483 | 483 | /* ROM definition */ |
| 484 | 484 | ROM_START( goupilg1 ) |
| 485 | | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 486 | | ROM_DEFAULT_BIOS("v1_0") |
| 485 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 486 | ROM_DEFAULT_BIOS("v1_0") |
| 487 | 487 | |
| 488 | | ROM_SYSTEM_BIOS(0, "v1_0", "Version 1.0") |
| 489 | | ROMX_LOAD( "SMT_Goupil_G1_MON_1.bin", 0x0000, 0x0400, CRC(98B7BE69) SHA1(69E83FE78A43FCF2B08FB0BCEFB0D217A57B1ECB), ROM_BIOS(1) ) |
| 490 | | ROM_LOAD ( "SMT_Goupil_G1_MON_2.bin", 0x0400, 0x0400, CRC(19386B81) SHA1(E52F63FD29D374319781E9677DE6D3FD61A3684C) ) |
| 488 | ROM_SYSTEM_BIOS(0, "v1_0", "Version 1.0") |
| 489 | ROMX_LOAD( "SMT_Goupil_G1_MON_1.bin", 0x0000, 0x0400, CRC(98B7BE69) SHA1(69E83FE78A43FCF2B08FB0BCEFB0D217A57B1ECB), ROM_BIOS(1) ) |
| 490 | ROM_LOAD ( "SMT_Goupil_G1_MON_2.bin", 0x0400, 0x0400, CRC(19386B81) SHA1(E52F63FD29D374319781E9677DE6D3FD61A3684C) ) |
| 491 | 491 | |
| 492 | | ROM_LOAD( "SMT_Goupil_G1_MOD_3.bin", 0x0800, 0x0400, CRC(E662F152) SHA1(11B91C5737E7572A2C18472B66BBD16B485132D5) ) |
| 492 | ROM_LOAD( "SMT_Goupil_G1_MOD_3.bin", 0x0800, 0x0400, CRC(E662F152) SHA1(11B91C5737E7572A2C18472B66BBD16B485132D5) ) |
| 493 | 493 | |
| 494 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_1.bin", 0x1000, 0x0400, CRC(AD105B12) SHA1(631CD4B997F76B57BF2509E4BFF30B1595C8BD13), ROM_BIOS(1) ) |
| 495 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_2.bin", 0x1400, 0x0400, CRC(0C5C309C) SHA1(F1CAB4B0F9191E53113790A95F1AB7108F9406A1), ROM_BIOS(1) ) |
| 496 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_3.bin", 0x1800, 0x0400, CRC(1F1EB127) SHA1(DBBB880C79D515ACBFCB2BE9A4C96962F3E4EDEA), ROM_BIOS(1) ) |
| 497 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_4.bin", 0x1C00, 0x0400, CRC(09BE48E4) SHA1(86CAE0D159583C1D572A5754F3BB6B4A2E479359), ROM_BIOS(1) ) |
| 498 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_5.bin", 0x2000, 0x0400, CRC(BDEB395C) SHA1(32A50468F1CA772EE45A1F5C61C66F3ECC774074), ROM_BIOS(1) ) |
| 499 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_6.bin", 0x2400, 0x0400, CRC(850A4000) SHA1(720F0BB3E45877835219B7E1D943EF4F19B9977D), ROM_BIOS(1) ) |
| 500 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_7.bin", 0x2800, 0x0400, CRC(586C7670) SHA1(13E2E96B9F1A53555CE0D55F657CF3C6B96F10A0), ROM_BIOS(1) ) |
| 501 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_8.bin", 0x2C00, 0x0400, CRC(33281300) SHA1(CE631FA8157A3F8869C5FEFE24B7F40E06696DF9), ROM_BIOS(1) ) |
| 502 | | ROMX_LOAD( "SMT_Goupil_G1_Basic_9.bin", 0x3000, 0x0400, CRC(A3911201) SHA1(8623A0A2D83EB3A27A795030643C5C05A4350A9F), ROM_BIOS(1) ) |
| 494 | ROMX_LOAD( "SMT_Goupil_G1_Basic_1.bin", 0x1000, 0x0400, CRC(AD105B12) SHA1(631CD4B997F76B57BF2509E4BFF30B1595C8BD13), ROM_BIOS(1) ) |
| 495 | ROMX_LOAD( "SMT_Goupil_G1_Basic_2.bin", 0x1400, 0x0400, CRC(0C5C309C) SHA1(F1CAB4B0F9191E53113790A95F1AB7108F9406A1), ROM_BIOS(1) ) |
| 496 | ROMX_LOAD( "SMT_Goupil_G1_Basic_3.bin", 0x1800, 0x0400, CRC(1F1EB127) SHA1(DBBB880C79D515ACBFCB2BE9A4C96962F3E4EDEA), ROM_BIOS(1) ) |
| 497 | ROMX_LOAD( "SMT_Goupil_G1_Basic_4.bin", 0x1C00, 0x0400, CRC(09BE48E4) SHA1(86CAE0D159583C1D572A5754F3BB6B4A2E479359), ROM_BIOS(1) ) |
| 498 | ROMX_LOAD( "SMT_Goupil_G1_Basic_5.bin", 0x2000, 0x0400, CRC(BDEB395C) SHA1(32A50468F1CA772EE45A1F5C61C66F3ECC774074), ROM_BIOS(1) ) |
| 499 | ROMX_LOAD( "SMT_Goupil_G1_Basic_6.bin", 0x2400, 0x0400, CRC(850A4000) SHA1(720F0BB3E45877835219B7E1D943EF4F19B9977D), ROM_BIOS(1) ) |
| 500 | ROMX_LOAD( "SMT_Goupil_G1_Basic_7.bin", 0x2800, 0x0400, CRC(586C7670) SHA1(13E2E96B9F1A53555CE0D55F657CF3C6B96F10A0), ROM_BIOS(1) ) |
| 501 | ROMX_LOAD( "SMT_Goupil_G1_Basic_8.bin", 0x2C00, 0x0400, CRC(33281300) SHA1(CE631FA8157A3F8869C5FEFE24B7F40E06696DF9), ROM_BIOS(1) ) |
| 502 | ROMX_LOAD( "SMT_Goupil_G1_Basic_9.bin", 0x3000, 0x0400, CRC(A3911201) SHA1(8623A0A2D83EB3A27A795030643C5C05A4350A9F), ROM_BIOS(1) ) |
| 503 | 503 | |
| 504 | | ROM_REGION( 0x400, "ef9364", 0 ) |
| 505 | | ROM_LOAD( "SMT_Goupil_G1_Charset.bin", 0x0000, 0x0400, CRC(8B6DA54B) SHA1(AC2204600F45C6DD0DF1E759B62ED25928F02A12) ) |
| 504 | ROM_REGION( 0x400, "ef9364", 0 ) |
| 505 | ROM_LOAD( "SMT_Goupil_G1_Charset.bin", 0x0000, 0x0400, CRC(8B6DA54B) SHA1(AC2204600F45C6DD0DF1E759B62ED25928F02A12) ) |
| 506 | 506 | ROM_END |
| 507 | 507 | |
| 508 | 508 | /* Driver */ |
trunk/src/mame/drivers/m5.cpp
| r253707 | r253708 | |
| 2 | 2 | // copyright-holders:Curt Coder, Ales Dlabac |
| 3 | 3 | /*************************************************************************** |
| 4 | 4 | |
| 5 | | Sord m.5 |
| 5 | Sord m.5 |
| 6 | 6 | |
| 7 | | http://www.retropc.net/mm/m5/ |
| 8 | | http://www.museo8bits.es/wiki/index.php/Sord_M5 not working |
| 9 | | http://k5.web.klfree.net/content/view/10/11/ not working |
| 10 | | http://k5.web.klfree.net/images/stories/sord/m5heap.htm not working |
| 11 | | http://k5.klfree.net/index.php?option=com_content&task=view&id=5&Itemid=3 |
| 12 | | http://k5.klfree.net/index.php?option=com_content&task=view&id=10&Itemid=11 |
| 13 | | http://k5.klfree.net/index.php?option=com_content&task=view&id=14&Itemid=3 |
| 14 | | http://www.dlabi.cz/?s=sord |
| 15 | | https://www.facebook.com/groups/59667560188/ |
| 16 | | http://www.oldcomp.cz/viewtopic.php?f=103&t=1164 |
| 7 | http://www.retropc.net/mm/m5/ |
| 8 | http://www.museo8bits.es/wiki/index.php/Sord_M5 not working |
| 9 | http://k5.web.klfree.net/content/view/10/11/ not working |
| 10 | http://k5.web.klfree.net/images/stories/sord/m5heap.htm not working |
| 11 | http://k5.klfree.net/index.php?option=com_content&task=view&id=5&Itemid=3 |
| 12 | http://k5.klfree.net/index.php?option=com_content&task=view&id=10&Itemid=11 |
| 13 | http://k5.klfree.net/index.php?option=com_content&task=view&id=14&Itemid=3 |
| 14 | http://www.dlabi.cz/?s=sord |
| 15 | https://www.facebook.com/groups/59667560188/ |
| 16 | http://www.oldcomp.cz/viewtopic.php?f=103&t=1164 |
| 17 | 17 | |
| 18 | 18 | ****************************************************************************/ |
| 19 | 19 | |
| r253707 | r253708 | |
| 21 | 21 | |
| 22 | 22 | TODO: |
| 23 | 23 | |
| 24 | | - fd5 floppy |
| 25 | | - SI-5 serial interface (8251, ROM) |
| 26 | | - ramdisk for KRX Memory expansion |
| 27 | | - rewrite fd5 floppy as unpluggable device |
| 28 | | - move dipswitch declaration to softwarelist file? |
| 29 | | - 64krx: get windows ROM version with cpm & ramdisk support (Stuchlik S.E.I. version) |
| 24 | - fd5 floppy |
| 25 | - SI-5 serial interface (8251, ROM) |
| 26 | - ramdisk for KRX Memory expansion |
| 27 | - rewrite fd5 floppy as unpluggable device |
| 28 | - move dipswitch declaration to softwarelist file? |
| 29 | - 64krx: get windows ROM version with cpm & ramdisk support (Stuchlik S.E.I. version) |
| 30 | 30 | |
| 31 | | - brno mod: make the dsk image writeable |
| 32 | | - brno mod: in console version lost data on RAMDISK after soft reset |
| 33 | | - brno mod: add support for lzr floppy disc format |
| 34 | | - brno mod: include basic-i |
| 31 | - brno mod: make the dsk image writeable |
| 32 | - brno mod: in console version lost data on RAMDISK after soft reset |
| 33 | - brno mod: add support for lzr floppy disc format |
| 34 | - brno mod: include basic-i |
| 35 | 35 | |
| 36 | 36 | |
| 37 | 37 | |
| 38 | 38 | CHANGELOG: |
| 39 | 39 | |
| 40 | 40 | 10.02.2016 |
| 41 | | - fixed bug: crash if rom card was only cart |
| 42 | | - fixed bug: when em-5 selected monitor rom wasn't paged in |
| 43 | | - brno mod: spin motor on upon restart |
| 44 | | - brno mod: windowed boot as default rom |
| 45 | | - brno mod: fixed bug: tape command in menu now works |
| 41 | - fixed bug: crash if rom card was only cart |
| 42 | - fixed bug: when em-5 selected monitor rom wasn't paged in |
| 43 | - brno mod: spin motor on upon restart |
| 44 | - brno mod: windowed boot as default rom |
| 45 | - brno mod: fixed bug: tape command in menu now works |
| 46 | 46 | |
| 47 | 47 | 05.02.2016 |
| 48 | | - added BRNO modification - 1024kB Ramdisk + CP/M support |
| 49 | | - 32/64KB RAM expansions EM-5, 64KBI, 64KBF, 64KRX |
| 50 | | - since now own version of rom and slot handlers |
| 51 | | - 2 slots for carts |
| 48 | - added BRNO modification - 1024kB Ramdisk + CP/M support |
| 49 | - 32/64KB RAM expansions EM-5, 64KBI, 64KBF, 64KRX |
| 50 | - since now own version of rom and slot handlers |
| 51 | - 2 slots for carts |
| 52 | 52 | |
| 53 | 53 | |
| 54 | 54 | ****************************************************************************** |
| r253707 | r253708 | |
| 58 | 58 | ================================================ |
| 59 | 59 | |
| 60 | 60 | Used ports: |
| 61 | | EM-64, 64KBI: OUT 6CH,00H - enables ROM |
| 62 | | OUT 6CH,01H - enables RAM |
| 63 | | 64KBF: OUT 30H,00000xxxB - enables RAM or ROM, see bellow |
| 64 | | 64KRD, 64KRX: OUT 7FH,00000000B - enables RAM |
| 65 | | OUT 7FH,11111111B - enables ROM |
| 66 | | OUT 7FH,xxxxxxxxB - enables RAM and ROM, see bellow |
| 61 | EM-64, 64KBI: OUT 6CH,00H - enables ROM |
| 62 | OUT 6CH,01H - enables RAM |
| 63 | 64KBF: OUT 30H,00000xxxB - enables RAM or ROM, see bellow |
| 64 | 64KRD, 64KRX: OUT 7FH,00000000B - enables RAM |
| 65 | OUT 7FH,11111111B - enables ROM |
| 66 | OUT 7FH,xxxxxxxxB - enables RAM and ROM, see bellow |
| 67 | 67 | |
| 68 | 68 | =========================================================================================================================== |
| 69 | 69 | |
| r253707 | r253708 | |
| 78 | 78 | ------------------------------------------ |
| 79 | 79 | Memory paging is done by using "OUT &30,mod". |
| 80 | 80 | |
| 81 | | MODE READ WRITE |
| 81 | MODE READ WRITE |
| 82 | 82 | ---------------------------------------------------------------------- |
| 83 | | 00 8 KB MON + 20 KB BF + 36 KB RAM 28 KB DIS + 36 KB RAM |
| 84 | | 01 64 KB RAM 64 KB RAM |
| 85 | | 02 8 KB MON + 56 KB RAM 64 KB RAM |
| 86 | | 03 64 KB RAM 28 KB DIS + 36 KB RAM |
| 87 | | 04 64 KB RAM 16 KB DIS + 48 KB RAM |
| 88 | | 05 8 KB MON + 20 KB BF + 36 KB RAM 64 KB RAM |
| 89 | | 06 8 KB MON + 20 KB DIS + 36 KB RAM 64 KB RAM |
| 90 | | 07 64 KB DIS 64 KB DIS |
| 91 | | |
| 83 | 00 8 KB MON + 20 KB BF + 36 KB RAM 28 KB DIS + 36 KB RAM |
| 84 | 01 64 KB RAM 64 KB RAM |
| 85 | 02 8 KB MON + 56 KB RAM 64 KB RAM |
| 86 | 03 64 KB RAM 28 KB DIS + 36 KB RAM |
| 87 | 04 64 KB RAM 16 KB DIS + 48 KB RAM |
| 88 | 05 8 KB MON + 20 KB BF + 36 KB RAM 64 KB RAM |
| 89 | 06 8 KB MON + 20 KB DIS + 36 KB RAM 64 KB RAM |
| 90 | 07 64 KB DIS 64 KB DIS |
| 91 | |
| 92 | 92 | Version LZR ( 2C ) |
| 93 | 93 | ================ |
| 94 | 94 | |
| 95 | 95 | +------------+ |
| 96 | | |////////////| READ ONLY AREA |
| 96 | |////////////| READ ONLY AREA |
| 97 | 97 | +------------+ |
| 98 | | |\\\\\\\\\\\\| WRITE ONLY AREA |
| 98 | |\\\\\\\\\\\\| WRITE ONLY AREA |
| 99 | 99 | +------------+ |
| 100 | | |XXXXXXXXXXXX| R&W AREA |
| 100 | |XXXXXXXXXXXX| R&W AREA |
| 101 | 101 | +------------+ |
| 102 | | | | DISABLED R&W |
| 102 | | | DISABLED R&W |
| 103 | 103 | +------------+ |
| 104 | 104 | |
| 105 | | 0 0 0 1 1 2 2 2 3 3 4 4 4 5 5 6 6 |
| 106 | | kB 0 4 8 2 6 0 4 8 2 6 0 4 8 2 6 0 4 |
| 107 | | +-------+-------------------+ |
| 108 | | ROM |MONITOR| BASIC-F | |
| 109 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 110 | | RAM | | | | | | | | | |
| 111 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 105 | 0 0 0 1 1 2 2 2 3 3 4 4 4 5 5 6 6 |
| 106 | kB 0 4 8 2 6 0 4 8 2 6 0 4 8 2 6 0 4 |
| 107 | +-------+-------------------+ |
| 108 | ROM |MONITOR| BASIC-F | |
| 109 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 110 | RAM | | | | | | | | | |
| 111 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 112 | 112 | CART | | | | | | | | | |
| 113 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 113 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 114 | 114 | |
| 115 | 115 | |
| 116 | 116 | Mode |
| 117 | | +-------+-------------------+ |
| 118 | | |///////|///////////////////| |
| 119 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 120 | | M0 | | | | |XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 121 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 117 | +-------+-------------------+ |
| 118 | |///////|///////////////////| |
| 119 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 120 | M0 | | | | |XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 121 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 122 | 122 | |
| 123 | | +-------+-------------------+ |
| 124 | | | | | |
| 125 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 126 | | M1 |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 127 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 123 | +-------+-------------------+ |
| 124 | | | | |
| 125 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 126 | M1 |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 127 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 128 | 128 | |
| 129 | | +-------+-------------------+ |
| 130 | | |///////| | |
| 131 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 132 | | M2 |\\\\\\\|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 133 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 129 | +-------+-------------------+ |
| 130 | |///////| | |
| 131 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 132 | M2 |\\\\\\\|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 133 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 134 | 134 | |
| 135 | | +-------+-------------------+ |
| 136 | | | | | |
| 137 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 138 | | M3 |///////|///////|///////|///|XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 139 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 135 | +-------+-------------------+ |
| 136 | | | | |
| 137 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 138 | M3 |///////|///////|///////|///|XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 139 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 140 | 140 | |
| 141 | | +-------+-------------------+ |
| 142 | | | | | |
| 143 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 144 | | M4 |///////|///////|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 145 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 141 | +-------+-------------------+ |
| 142 | | | | |
| 143 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 144 | M4 |///////|///////|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 145 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 146 | 146 | |
| 147 | | +-------+-------------------+ |
| 148 | | |///////|///////////////////| |
| 149 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 150 | | M5 |\\\\\\\|\\\\\\\|\\\\\\\|\\\|XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 151 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 147 | +-------+-------------------+ |
| 148 | |///////|///////////////////| |
| 149 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 150 | M5 |\\\\\\\|\\\\\\\|\\\\\\\|\\\|XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 151 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 152 | 152 | |
| 153 | | +-------+-------------------+ |
| 154 | | |///////| | |
| 155 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 156 | | M6 |\\\\\\\|\\\\\\\|\\\\\\\|\\\|XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 157 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 158 | | |///////|///////|///| |
| 159 | | +-------+-------+---+ |
| 153 | +-------+-------------------+ |
| 154 | |///////| | |
| 155 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 156 | M6 |\\\\\\\|\\\\\\\|\\\\\\\|\\\|XXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 157 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 158 | |///////|///////|///| |
| 159 | +-------+-------+---+ |
| 160 | 160 | |
| 161 | | +-------+-------------------+ |
| 162 | | | | | |
| 163 | | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 164 | | M7 | | | | | | | | | |
| 165 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 166 | | |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 167 | | +---------------------------------------------------------------+ |
| 161 | +-------+-------------------+ |
| 162 | | | | |
| 163 | +-------+-------+-------+---+---+-------+-------+-------+-------+ |
| 164 | M7 | | | | | | | | | |
| 165 | +-------+-------+-------+-------+-------+-------+-------+-------+ |
| 166 | |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |
| 167 | +---------------------------------------------------------------+ |
| 168 | 168 | |
| 169 | 169 | =========================================================================================================== |
| 170 | 170 | |
| r253707 | r253708 | |
| 181 | 181 | | | | EPROM 16K| | EPROM 16K| |
| 182 | 182 | | | | 4 | | 6 | |
| 183 | 183 | 7FFF +----------+ +----------+ +----------+ +----------+ |
| 184 | | | SRAM | |
| 185 | | 7000 +----------+ +----------+ |
| 186 | | | | |
| 184 | | SRAM | |
| 185 | 7000 +----------+ +----------+ |
| 186 | | | |
| 187 | 187 | 6000 | | +----------+ |
| 188 | 188 | | | | | |
| 189 | 189 | 5000 | | | EPROM 8K | |
| r253707 | r253708 | |
| 213 | 213 | using OUT (7FH),A, where each bit of A means 8KB memory chunk ( state: 0=RAM, |
| 214 | 214 | 1=ROM, bit: 0=1, 1=2, 2=3, 3=always SRAM, 4=4, 5=5, 6=6, 7=7 ). |
| 215 | 215 | |
| 216 | | |
| 216 | |
| 217 | 217 | */ |
| 218 | 218 | |
| 219 | 219 | /* |
| 220 | 220 | ************************************************************* |
| 221 | | * BRNO MOD * |
| 221 | * BRNO MOD * |
| 222 | 222 | ************************************************************* |
| 223 | 223 | HW and SW was originally created by Pavel Brychta with help of Jiri Kubin and L. Novak |
| 224 | 224 | This driver mod was implemented by Ales Dlabac with great help of Pavel Brychta. Without him this would never happen |
| r253707 | r253708 | |
| 230 | 230 | you can map any of possible 256 ramdisc blocks what allows user to have 1024kB large ramdisc. |
| 231 | 231 | Of course to be able to realise this is necessary page out all roms |
| 232 | 232 | |
| 233 | | As pagination port MMU(page select) is used. |
| 233 | As pagination port MMU(page select) is used. |
| 234 | 234 | For RAM write protection port CASEN is used. 0=access to ramdisk enabled, 0xff=ramdisk access disabled(data protection), &80=ROM2+48k RAM, &81=ROM2+4k RAM(this is not implemented) |
| 235 | 235 | For ROM page out port RAMEN is used. 0=rom enable; 0xff=rom+sord ram disabled (ramdisk visible) |
| 236 | 236 | |
| r253707 | r253708 | |
| 243 | 243 | c. Area where the first sector of 1st track is loaded, simultaneously is reserved for Hook program |
| 244 | 244 | d. Reserved for memory tests and ramdisk mapping(pagination). After boot is used as buffer for cursor position, |
| 245 | 245 | type of floppy and so on. Area consists of: |
| 246 | | |
| 246 | |
| 247 | 247 | 7FFFH .... bootloader version |
| 248 | 248 | 7FFEH .... identification byte of floppy - is transferred from EPROM, it might be changed by SETUP |
| 249 | 249 | 7FFDH .... number of last Ramdisk segment of RAM |
| 250 | | 7FFBH .... address of cursor in VRAM in 40 columns CRT. For 80 columns CRT both bytes are zero |
| 250 | 7FFBH .... address of cursor in VRAM in 40 columns CRT. For 80 columns CRT both bytes are zero |
| 251 | 251 | 7FF9H .... X,Y cursor actual position for 40 columns CRTs. In case of 80 columns CRT both bytes are zero |
| 252 | 252 | 7203H .... Actual memory bank buffer |
| 253 | | |
| 253 | |
| 254 | 254 | System floppy disk header on track 00 of 1st sector |
| 255 | | byte 0-1 ... system disk identification SY |
| 256 | | byte 2 ... # of physical sectors for BIOS or DOS plus # of segments for DIR |
| 257 | | byte 3-4 ... Start address for loading of BIOS or DOS |
| 258 | | byte 5 ... # of bytes for possible HOOK program |
| 259 | | byte 6- ... HOOK program, or either BIOS or DOS |
| 255 | byte 0-1 ... system disk identification SY |
| 256 | byte 2 ... # of physical sectors for BIOS or DOS plus # of segments for DIR |
| 257 | byte 3-4 ... Start address for loading of BIOS or DOS |
| 258 | byte 5 ... # of bytes for possible HOOK program |
| 259 | byte 6- ... HOOK program, or either BIOS or DOS |
| 260 | 260 | |
| 261 | 261 | In case of HOOK, bytes 8 and 9 contains characters 'H' and 'O' for HOOK testing |
| 262 | 262 | |
| r253707 | r253708 | |
| 266 | 266 | |
| 267 | 267 | Floppy formats as follows: |
| 268 | 268 | |
| 269 | | A: Ramdisk 1024kB, 8 sectors, |
| 270 | | B: Floppy format "Heat Magnolia" SingleSide SingleDensity , 40 tracks, 9 sectors, 512 sec. length, 128 dirs, offset 3, 166kB |
| 271 | | C: Floppy format "Robotron aka PC1715", DS DD, 80 tracks, 5 sectors, 1024 sec. length, 128 dirs, offset 2, 780kB |
| 269 | A: Ramdisk 1024kB, 8 sectors, |
| 270 | B: Floppy format "Heat Magnolia" SingleSide SingleDensity , 40 tracks, 9 sectors, 512 sec. length, 128 dirs, offset 3, 166kB |
| 271 | C: Floppy format "Robotron aka PC1715", DS DD, 80 tracks, 5 sectors, 1024 sec. length, 128 dirs, offset 2, 780kB |
| 272 | 272 | |
| 273 | 273 | **********************************************************************************************************************************/ |
| 274 | 274 | |
| r253707 | r253708 | |
| 498 | 498 | |
| 499 | 499 | WRITE8_MEMBER( m5_state::mem64KBI_w ) //out 0x6c |
| 500 | 500 | { |
| 501 | | |
| 502 | 501 | if (m_ram_type != MEM64KBI) return; |
| 503 | 502 | |
| 504 | 503 | address_space &program = m_maincpu->space(AS_PROGRAM); |
| 505 | 504 | std::string region_tag; |
| 506 | 505 | m_cart_rom = memregion(region_tag.assign(m_cart_ram->tag()).append(M5SLOT_ROM_REGION_TAG).c_str()); |
| 507 | 506 | memory_region *ram_region=memregion(region_tag.assign(m_cart_ram->tag()).append(":ram").c_str()); |
| 508 | | |
| 507 | |
| 509 | 508 | if (m_ram_mode == BIT(data, 0)) |
| 510 | 509 | return; |
| 511 | | |
| 510 | |
| 512 | 511 | m_ram_mode = BIT(data, 0); |
| 513 | | |
| 512 | |
| 514 | 513 | //if 32kb only mode don't map top ram |
| 515 | 514 | if (m_ram_mode && (m_DIPS->read() & 4) != 4) |
| 516 | 515 | { |
| r253707 | r253708 | |
| 520 | 519 | { |
| 521 | 520 | program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base()); |
| 522 | 521 | program.unmap_write(0x0000, 0x1fff); |
| 523 | | |
| 522 | |
| 524 | 523 | //if AUTOSTART is on don't load any ROM cart |
| 525 | 524 | if (m_cart && (m_DIPS->read() & 2) != 2) |
| 526 | 525 | { |
| r253707 | r253708 | |
| 530 | 529 | else |
| 531 | 530 | program.unmap_readwrite(0x2000, 0x3fff); |
| 532 | 531 | } |
| 533 | | |
| 532 | |
| 534 | 533 | logerror("64KBI: ROM %s", m_ram_mode == 0 ? "enabled\n" : "disabled\n"); |
| 535 | 534 | } |
| 536 | 535 | |
| r253707 | r253708 | |
| 544 | 543 | |
| 545 | 544 | address_space &program = m_maincpu->space(AS_PROGRAM); |
| 546 | 545 | std::string region_tag; |
| 547 | | m_cart_rom = memregion(region_tag.assign(m_cart_ram->tag()).append(M5SLOT_ROM_REGION_TAG).c_str()); //ROM region of the cart |
| 548 | | memory_region *ram_region=memregion(region_tag.assign(m_cart_ram->tag()).append(":ram").c_str()); //RAM region of the cart |
| 546 | m_cart_rom = memregion(region_tag.assign(m_cart_ram->tag()).append(M5SLOT_ROM_REGION_TAG).c_str()); //ROM region of the cart |
| 547 | memory_region *ram_region=memregion(region_tag.assign(m_cart_ram->tag()).append(":ram").c_str()); //RAM region of the cart |
| 549 | 548 | memory_region *rom_region=memregion(region_tag.assign(m_cart->tag()).append(M5SLOT_ROM_REGION_TAG).c_str()); //region where clasic ROM cartridge resides |
| 550 | | |
| 549 | |
| 551 | 550 | if (m_ram_mode == data) |
| 552 | 551 | return; |
| 553 | 552 | |
| 554 | 553 | m_ram_mode = data; |
| 555 | | |
| 554 | |
| 556 | 555 | switch(m_ram_mode) |
| 557 | 556 | { |
| 558 | | case 0: |
| 557 | case 0: |
| 559 | 558 | program.unmap_write(0x0000, 0x6fff); |
| 560 | 559 | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); |
| 561 | 560 | membank("bank2r")->set_base(m_cart_rom->base()); |
| 562 | 561 | membank("bank3r")->set_base(m_cart_rom->base()+0x2000); |
| 563 | 562 | membank("bank4r")->set_base(m_cart_rom->base()+0x4000); |
| 564 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 565 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 563 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 564 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 566 | 565 | break; |
| 567 | 566 | case 1: |
| 568 | 567 | program.install_write_bank(0x0000,0x1fff,"bank1w"); |
| 569 | 568 | program.install_write_bank(0x2000,0x3fff,"bank2w"); |
| 570 | 569 | program.install_write_bank(0x4000,0x5fff,"bank3w"); |
| 571 | 570 | program.install_write_bank(0x6000,0x6fff,"bank4w"); |
| 572 | | membank("bank1r")->set_base(ram_region->base()+0x0000); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 573 | | membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 574 | | membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 575 | | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 576 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 577 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 571 | membank("bank1r")->set_base(ram_region->base()+0x0000); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 572 | membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 573 | membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 574 | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 575 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 576 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 578 | 577 | break; |
| 579 | 578 | case 2: |
| 580 | 579 | program.install_write_bank(0x0000,0x1fff,"bank1w"); |
| 581 | 580 | program.install_write_bank(0x2000,0x3fff,"bank2w"); |
| 582 | 581 | program.install_write_bank(0x4000,0x5fff,"bank3w"); |
| 583 | 582 | program.install_write_bank(0x6000,0x6fff,"bank4w"); |
| 584 | | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 585 | | membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 586 | | membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 587 | | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 588 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 589 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 583 | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 584 | membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 585 | membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 586 | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 587 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 588 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 590 | 589 | break; |
| 591 | 590 | case 3: |
| 592 | 591 | program.unmap_write(0x0000, 0x6fff); |
| r253707 | r253708 | |
| 594 | 593 | membank("bank2r")->set_base(ram_region->base()+0x2000); |
| 595 | 594 | membank("bank3r")->set_base(ram_region->base()+0x4000); |
| 596 | 595 | membank("bank4r")->set_base(ram_region->base()+0x6000); |
| 597 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 598 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 596 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 597 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 599 | 598 | break; |
| 600 | 599 | case 4: |
| 601 | 600 | program.unmap_write(0x0000, 0x3fff); |
| r253707 | r253708 | |
| 603 | 602 | program.install_write_bank(0x6000,0x6fff,"bank4w"); |
| 604 | 603 | membank("bank1r")->set_base(ram_region->base()+0x0000); |
| 605 | 604 | membank("bank2r")->set_base(ram_region->base()+0x2000); |
| 606 | | membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 607 | | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 608 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 609 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 605 | membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 606 | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 607 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 608 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 610 | 609 | break; |
| 611 | 610 | case 5: |
| 612 | 611 | program.install_write_bank(0x0000,0x1fff,"bank1w"); |
| 613 | 612 | program.install_write_bank(0x2000,0x3fff,"bank2w"); |
| 614 | 613 | program.install_write_bank(0x4000,0x5fff,"bank3w"); |
| 615 | 614 | program.install_write_bank(0x6000,0x6fff,"bank4w"); |
| 616 | | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 617 | | membank("bank2r")->set_base(m_cart_rom->base()); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 618 | | membank("bank3r")->set_base(m_cart_rom->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 619 | | membank("bank4r")->set_base(m_cart_rom->base()+0x4000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 620 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 621 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 615 | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 616 | membank("bank2r")->set_base(m_cart_rom->base()); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 617 | membank("bank3r")->set_base(m_cart_rom->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 618 | membank("bank4r")->set_base(m_cart_rom->base()+0x4000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 619 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 620 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 622 | 621 | break; |
| 623 | 622 | case 6: |
| 624 | 623 | program.install_write_bank(0x0000,0x1fff,"bank1w"); |
| 625 | 624 | program.install_write_bank(0x2000,0x3fff,"bank2w"); |
| 626 | 625 | program.install_write_bank(0x4000,0x5fff,"bank3w"); |
| 627 | 626 | program.install_write_bank(0x6000,0x6fff,"bank4w"); |
| 628 | | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 629 | | membank("bank2r")->set_base(rom_region->base()+0x0000); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 630 | | membank("bank3r")->set_base(rom_region->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 631 | | membank("bank4r")->set_base(rom_region->base()+0x4000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 632 | | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 633 | | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 627 | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); |
| 628 | membank("bank2r")->set_base(rom_region->base()+0x0000); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 629 | membank("bank3r")->set_base(rom_region->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 630 | membank("bank4r")->set_base(rom_region->base()+0x4000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 631 | membank("bank5r")->set_base(ram_region->base()+0x8000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 632 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 634 | 633 | break; |
| 635 | 634 | case 7: //probably this won't work - it should redirect rw to another ram module |
| 636 | 635 | program.install_write_bank(0x0000,0x1fff,"bank1w"); |
| r253707 | r253708 | |
| 638 | 637 | program.install_write_bank(0x4000,0x5fff,"bank3w"); |
| 639 | 638 | program.install_write_bank(0x6000,0x6fff,"bank4w"); |
| 640 | 639 | program.install_readwrite_bank(0x7000,0x7fff,"sram"); |
| 641 | | membank("bank1r")->set_base(rom_region->base()+0x0000); membank("bank1w")->set_base(rom_region->base()+0x0000); |
| 642 | | membank("bank2r")->set_base(rom_region->base()+0x2000); membank("bank2w")->set_base(rom_region->base()+0x2000); |
| 643 | | membank("bank3r")->set_base(rom_region->base()+0x4000); membank("bank3w")->set_base(rom_region->base()+0x4000); |
| 644 | | membank("bank4r")->set_base(rom_region->base()+0x6000); membank("bank4w")->set_base(rom_region->base()+0x6000); |
| 640 | membank("bank1r")->set_base(rom_region->base()+0x0000); membank("bank1w")->set_base(rom_region->base()+0x0000); |
| 641 | membank("bank2r")->set_base(rom_region->base()+0x2000); membank("bank2w")->set_base(rom_region->base()+0x2000); |
| 642 | membank("bank3r")->set_base(rom_region->base()+0x4000); membank("bank3w")->set_base(rom_region->base()+0x4000); |
| 643 | membank("bank4r")->set_base(rom_region->base()+0x6000); membank("bank4w")->set_base(rom_region->base()+0x6000); |
| 645 | 644 | membank("sram")->set_base(rom_region->base()+0x7000); |
| 646 | | membank("bank5r")->set_base(rom_region->base()+0x8000); membank("bank5w")->set_base(rom_region->base()+0x8000); |
| 647 | | membank("bank6r")->set_base(rom_region->base()+0xc000); membank("bank6w")->set_base(rom_region->base()+0xc000); |
| 645 | membank("bank5r")->set_base(rom_region->base()+0x8000); membank("bank5w")->set_base(rom_region->base()+0x8000); |
| 646 | membank("bank6r")->set_base(rom_region->base()+0xc000); membank("bank6w")->set_base(rom_region->base()+0xc000); |
| 648 | 647 | break; |
| 649 | 648 | } |
| 650 | | |
| 649 | |
| 651 | 650 | logerror("64KBF RAM mode set to %d\n", m_ram_mode); |
| 652 | 651 | } |
| 653 | 652 | |
| r253707 | r253708 | |
| 657 | 656 | |
| 658 | 657 | WRITE8_MEMBER( m5_state::mem64KRX_w ) //out 0x7f |
| 659 | 658 | { |
| 660 | | |
| 661 | 659 | if (m_ram_type != MEM64KRX) return; |
| 662 | 660 | if (m_ram_mode == data) return; |
| 663 | 661 | |
| r253707 | r253708 | |
| 665 | 663 | std::string region_tag; |
| 666 | 664 | m_cart_rom = memregion(region_tag.assign(m_cart_ram->tag()).append(M5SLOT_ROM_REGION_TAG).c_str()); |
| 667 | 665 | memory_region *ram_region=memregion(region_tag.assign(m_cart_ram->tag()).append(":ram").c_str()); |
| 668 | | |
| 666 | |
| 669 | 667 | m_ram_mode = data; |
| 670 | 668 | |
| 671 | | BIT(m_ram_mode, 0) ? membank("bank1r")->set_base(memregion(Z80_TAG)->base()) : membank("bank1r")->set_base(ram_region->base()); |
| 672 | | BIT(m_ram_mode, 1) ? membank("bank2r")->set_base(m_cart_rom->base()) : membank("bank2r")->set_base(ram_region->base()+0x2000); |
| 673 | | BIT(m_ram_mode, 2) ? membank("bank3r")->set_base(m_cart_rom->base()+0x2000) : membank("bank3r")->set_base(ram_region->base()+0x4000); |
| 669 | BIT(m_ram_mode, 0) ? membank("bank1r")->set_base(memregion(Z80_TAG)->base()) : membank("bank1r")->set_base(ram_region->base()); |
| 670 | BIT(m_ram_mode, 1) ? membank("bank2r")->set_base(m_cart_rom->base()) : membank("bank2r")->set_base(ram_region->base()+0x2000); |
| 671 | BIT(m_ram_mode, 2) ? membank("bank3r")->set_base(m_cart_rom->base()+0x2000) : membank("bank3r")->set_base(ram_region->base()+0x4000); |
| 674 | 672 | |
| 675 | 673 | if ((m_DIPS->read() & 0x01)) |
| 676 | 674 | { |
| 677 | | BIT(m_ram_mode, 4) ? membank("bank5r")->set_base(m_cart_rom->base()+0x6000) : membank("bank5r")->set_base(ram_region->base()+0x8000); |
| 678 | | BIT(m_ram_mode, 5) ? membank("bank6r")->set_base(m_cart_rom->base()+0xa000) : membank("bank6r")->set_base(ram_region->base()+0xc000); |
| 675 | BIT(m_ram_mode, 4) ? membank("bank5r")->set_base(m_cart_rom->base()+0x6000) : membank("bank5r")->set_base(ram_region->base()+0x8000); |
| 676 | BIT(m_ram_mode, 5) ? membank("bank6r")->set_base(m_cart_rom->base()+0xa000) : membank("bank6r")->set_base(ram_region->base()+0xc000); |
| 679 | 677 | } |
| 680 | 678 | else |
| 681 | 679 | { |
| 682 | | BIT(m_ram_mode, 6) ? membank("bank5r")->set_base(m_cart_rom->base()+0xe000) : membank("bank5r")->set_base(ram_region->base()+0x8000); |
| 683 | | BIT(m_ram_mode, 7) ? membank("bank6r")->set_base(m_cart_rom->base()+0x12000): membank("bank6r")->set_base(ram_region->base()+0xc000); |
| 680 | BIT(m_ram_mode, 6) ? membank("bank5r")->set_base(m_cart_rom->base()+0xe000) : membank("bank5r")->set_base(ram_region->base()+0x8000); |
| 681 | BIT(m_ram_mode, 7) ? membank("bank6r")->set_base(m_cart_rom->base()+0x12000): membank("bank6r")->set_base(ram_region->base()+0xc000); |
| 684 | 682 | } |
| 685 | 683 | |
| 686 | 684 | //if KRX ROM is paged out page in cart ROM if any |
| r253707 | r253708 | |
| 705 | 703 | static ADDRESS_MAP_START( m5_mem, AS_PROGRAM, 8, m5_state ) |
| 706 | 704 | ADDRESS_MAP_UNMAP_HIGH |
| 707 | 705 | AM_RANGE(0x0000, 0x1fff) AM_READ_BANK("bank1r") AM_WRITE_BANK("bank1w") //monitor rom(bios) |
| 708 | | AM_RANGE(0x2000, 0x3fff) AM_READ_BANK("bank2r") AM_WRITE_BANK("bank2w") |
| 709 | | AM_RANGE(0x4000, 0x5fff) AM_READ_BANK("bank3r") AM_WRITE_BANK("bank3w") |
| 710 | | AM_RANGE(0x6000, 0x6fff) AM_READ_BANK("bank4r") AM_WRITE_BANK("bank4w") |
| 711 | | AM_RANGE(0x7000, 0x7fff) AM_RAM //4kb internal RAM |
| 706 | AM_RANGE(0x2000, 0x3fff) AM_READ_BANK("bank2r") AM_WRITE_BANK("bank2w") |
| 707 | AM_RANGE(0x4000, 0x5fff) AM_READ_BANK("bank3r") AM_WRITE_BANK("bank3w") |
| 708 | AM_RANGE(0x6000, 0x6fff) AM_READ_BANK("bank4r") AM_WRITE_BANK("bank4w") |
| 709 | AM_RANGE(0x7000, 0x7fff) AM_RAM //4kb internal RAM |
| 712 | 710 | AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank5r") AM_WRITE_BANK("bank5w") |
| 713 | 711 | AM_RANGE(0xc000, 0xffff) AM_READ_BANK("bank6r") AM_WRITE_BANK("bank6w") |
| 714 | 712 | ADDRESS_MAP_END |
| r253707 | r253708 | |
| 864 | 862 | PORT_DIPNAME(0x01, 0x01, "KRX: BASIC[on]/MSX[off]") //switching between BASIC and MSX ROMs which share same address area |
| 865 | 863 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 866 | 864 | PORT_DIPSETTING( 0x01, DEF_STR( On )) |
| 867 | | PORT_DIPNAME(0x02, 0x00, "KBI: AUTOSTART") //pages out cart and starts loading from tape |
| 865 | PORT_DIPNAME(0x02, 0x00, "KBI: AUTOSTART") //pages out cart and starts loading from tape |
| 868 | 866 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 869 | 867 | PORT_DIPSETTING( 0x02, DEF_STR( On )) |
| 870 | 868 | PORT_DIPNAME(0x04, 0x00, "KBI: 32kb only") //compatible with em-5 |
| r253707 | r253708 | |
| 1051 | 1049 | AM_RANGE(0x37, 0x37) AM_READ_PORT("JOY") |
| 1052 | 1050 | AM_RANGE(0x40, 0x40) AM_MIRROR(0x0f) AM_DEVWRITE("cent_data_out", output_latch_device, write) |
| 1053 | 1051 | AM_RANGE(0x50, 0x50) AM_MIRROR(0x0f) AM_READWRITE(sts_r, com_w) |
| 1054 | | // AM_RANGE(0x60, 0x63) // SIO |
| 1055 | | AM_RANGE(0x64, 0x67) AM_READWRITE(mmu_r, mmu_w) // MMU - page select (ramdisk memory paging) |
| 1056 | | AM_RANGE(0x68, 0x6b) AM_READWRITE(ramsel_r, ramsel_w) // CASEN 0=access to ramdisk enabled, 0xff=ramdisk access disabled(data protection), &80=ROM2+48k RAM, &81=ROM2+4k RAM |
| 1057 | | AM_RANGE(0x6c, 0x6f) AM_READWRITE(romsel_r, romsel_w) // RAMEN 0=rom enable; 0xff=rom+sord ram disabled (ramdisk visible) |
| 1058 | | // AM_RANGE(0x70, 0x73) AM_MIRROR(0x04) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write) // PIO |
| 1059 | | AM_RANGE(0x78, 0x7b) AM_DEVREADWRITE(WD2797_TAG, wd_fdc_t, read, write) // WD2797 registers -> 78 - status/cmd, 79 - track #, 7a - sector #, 7b - data |
| 1060 | | AM_RANGE(0x7c, 0x7c) AM_READWRITE(fd_r, fd_w) // drive select |
| 1052 | // AM_RANGE(0x60, 0x63) // SIO |
| 1053 | AM_RANGE(0x64, 0x67) AM_READWRITE(mmu_r, mmu_w) // MMU - page select (ramdisk memory paging) |
| 1054 | AM_RANGE(0x68, 0x6b) AM_READWRITE(ramsel_r, ramsel_w) // CASEN 0=access to ramdisk enabled, 0xff=ramdisk access disabled(data protection), &80=ROM2+48k RAM, &81=ROM2+4k RAM |
| 1055 | AM_RANGE(0x6c, 0x6f) AM_READWRITE(romsel_r, romsel_w) // RAMEN 0=rom enable; 0xff=rom+sord ram disabled (ramdisk visible) |
| 1056 | // AM_RANGE(0x70, 0x73) AM_MIRROR(0x04) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write) // PIO |
| 1057 | AM_RANGE(0x78, 0x7b) AM_DEVREADWRITE(WD2797_TAG, wd_fdc_t, read, write) // WD2797 registers -> 78 - status/cmd, 79 - track #, 7a - sector #, 7b - data |
| 1058 | AM_RANGE(0x7c, 0x7c) AM_READWRITE(fd_r, fd_w) // drive select |
| 1061 | 1059 | ADDRESS_MAP_END |
| 1062 | 1060 | |
| 1063 | 1061 | |
| 1064 | 1062 | READ8_MEMBER( brno_state::mmu_r ) |
| 1065 | 1063 | { |
| 1066 | | return 0; |
| 1064 | return 0; |
| 1067 | 1065 | } |
| 1068 | 1066 | |
| 1069 | 1067 | |
| 1070 | 1068 | WRITE8_MEMBER( brno_state::mmu_w ) |
| 1071 | 1069 | { |
| 1072 | | |
| 1073 | 1070 | m_ramcpu = m_maincpu->state_int(Z80_B); |
| 1074 | 1071 | m_rambank = ~data; //m_maincpu->state_int(Z80_A); |
| 1075 | 1072 | m_rammap[m_ramcpu >> 4]=m_rambank; |
| r253707 | r253708 | |
| 1096 | 1093 | } |
| 1097 | 1094 | |
| 1098 | 1095 | //logerror("RAMdisk page change(CPURAM<=BANK): &%02X00<=%02X at address &%04X\n",m_ramcpu,m_rambank,m_maincpu->state_int(Z80_PC)-2); |
| 1099 | | |
| 1100 | 1096 | |
| 1097 | |
| 1101 | 1098 | } |
| 1102 | 1099 | |
| 1103 | 1100 | READ8_MEMBER( brno_state::ramsel_r ) |
| 1104 | 1101 | { |
| 1105 | | return m_ramen; |
| 1102 | return m_ramen; |
| 1106 | 1103 | } |
| 1107 | 1104 | |
| 1108 | 1105 | |
| r253707 | r253708 | |
| 1120 | 1117 | |
| 1121 | 1118 | READ8_MEMBER( brno_state::romsel_r ) |
| 1122 | 1119 | { |
| 1123 | | return m_romen; |
| 1120 | return m_romen; |
| 1124 | 1121 | } |
| 1125 | 1122 | |
| 1126 | 1123 | WRITE8_MEMBER( brno_state::romsel_w ) //out 6c |
| r253707 | r253708 | |
| 1129 | 1126 | |
| 1130 | 1127 | if (!data) |
| 1131 | 1128 | { |
| 1132 | | program.install_rom(0x0000, 0x3fff, memregion(Z80_TAG)->base()); |
| 1129 | program.install_rom(0x0000, 0x3fff, memregion(Z80_TAG)->base()); |
| 1133 | 1130 | program.unmap_write(0x0000, 0x3fff); |
| 1134 | 1131 | m_romen=true; |
| 1135 | 1132 | } |
| 1136 | 1133 | |
| 1137 | 1134 | else |
| 1138 | | { |
| 1135 | { |
| 1139 | 1136 | program.install_readwrite_bank(0x0000, 0x0fff, "bank1"); |
| 1140 | 1137 | program.install_readwrite_bank(0x1000, 0x1fff, "bank2"); |
| 1141 | 1138 | program.install_readwrite_bank(0x2000, 0x2fff, "bank3"); |
| r253707 | r253708 | |
| 1146 | 1143 | |
| 1147 | 1144 | m_romen=false; |
| 1148 | 1145 | } |
| 1149 | | |
| 1146 | |
| 1150 | 1147 | logerror("RAMEN change: out (&6c),%x\n",data); |
| 1151 | 1148 | } |
| 1152 | 1149 | |
| r253707 | r253708 | |
| 1166 | 1163 | floppy_image_device *floppy; |
| 1167 | 1164 | m_floppy = NULL; |
| 1168 | 1165 | int disk = 0; |
| 1169 | | |
| 1170 | | |
| 1171 | | floppy = m_floppy0->get_device(); |
| 1166 | |
| 1167 | |
| 1168 | floppy = m_floppy0->get_device(); |
| 1172 | 1169 | if (floppy) |
| 1173 | 1170 | { |
| 1174 | 1171 | if(BIT(data,0)) |
| r253707 | r253708 | |
| 1181 | 1178 | floppy->mon_w(1); |
| 1182 | 1179 | } |
| 1183 | 1180 | } |
| 1184 | | floppy = m_floppy1->get_device(); |
| 1181 | floppy = m_floppy1->get_device(); |
| 1185 | 1182 | if (floppy) |
| 1186 | 1183 | { |
| 1187 | 1184 | if(BIT(data,1)) |
| r253707 | r253708 | |
| 1193 | 1190 | { |
| 1194 | 1191 | floppy->mon_w(1); |
| 1195 | 1192 | } |
| 1196 | | } |
| 1193 | } |
| 1197 | 1194 | |
| 1198 | 1195 | m_fdc->set_floppy(m_floppy); |
| 1199 | 1196 | if (m_floppy) |
| 1200 | 1197 | { |
| 1201 | 1198 | m_floppy->set_rpm(300); |
| 1202 | 1199 | m_floppy->mon_w(0); |
| 1203 | | logerror("Select floppy %d\n", disk); |
| 1204 | | } |
| 1200 | logerror("Select floppy %d\n", disk); |
| 1201 | } |
| 1205 | 1202 | |
| 1206 | 1203 | } |
| 1207 | 1204 | |
| r253707 | r253708 | |
| 1231 | 1228 | save_item(NAME(m_intra)); |
| 1232 | 1229 | save_item(NAME(m_ibfa)); |
| 1233 | 1230 | save_item(NAME(m_obfa)); |
| 1234 | | |
| 1231 | |
| 1235 | 1232 | } |
| 1236 | 1233 | |
| 1237 | 1234 | void m5_state::machine_reset() |
| r253707 | r253708 | |
| 1240 | 1237 | std::string region_tag; |
| 1241 | 1238 | |
| 1242 | 1239 | //is ram/rom cart plugged in? |
| 1243 | | if (m_cart1->exists()) |
| 1240 | if (m_cart1->exists()) |
| 1244 | 1241 | { |
| 1245 | | if (m_cart1->get_type() > 0) |
| 1242 | if (m_cart1->get_type() > 0) |
| 1246 | 1243 | m_cart_ram=m_cart1; |
| 1247 | 1244 | else |
| 1248 | 1245 | m_cart=m_cart1; |
| 1249 | 1246 | } |
| 1250 | | if (m_cart2->exists()) |
| 1247 | if (m_cart2->exists()) |
| 1251 | 1248 | { |
| 1252 | | if (m_cart2->get_type() > 0) |
| 1249 | if (m_cart2->get_type() > 0) |
| 1253 | 1250 | m_cart_ram=m_cart2; |
| 1254 | 1251 | else |
| 1255 | 1252 | m_cart=m_cart2; |
| r253707 | r253708 | |
| 1259 | 1256 | { |
| 1260 | 1257 | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); |
| 1261 | 1258 | program.unmap_write(0x0000, 0x1fff); |
| 1262 | | // program.unmap_readwrite(0x2000, 0x6fff); //if you uncomment this line Sord starts cassette loading but it is not correct on real hw |
| 1259 | // program.unmap_readwrite(0x2000, 0x6fff); //if you uncomment this line Sord starts cassette loading but it is not correct on real hw |
| 1263 | 1260 | program.unmap_readwrite(0x8000, 0xffff); |
| 1264 | 1261 | return; |
| 1265 | 1262 | } |
| r253707 | r253708 | |
| 1271 | 1268 | |
| 1272 | 1269 | m_cart_rom = memregion(region_tag.assign(m_cart_ram->tag()).append(M5SLOT_ROM_REGION_TAG).c_str()); |
| 1273 | 1270 | memory_region *ram_region=memregion(region_tag.assign(m_cart_ram->tag()).append(":ram").c_str()); |
| 1274 | | |
| 1271 | |
| 1275 | 1272 | switch (m_ram_type) |
| 1276 | 1273 | { |
| 1277 | 1274 | case EM_5: |
| 1278 | 1275 | program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base()); |
| 1279 | | program.unmap_write(0x0000, 0x1fff); |
| 1276 | program.unmap_write(0x0000, 0x1fff); |
| 1280 | 1277 | program.install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(m5_cart_slot_device::read_ram),(m5_cart_slot_device*)m_cart_ram), write8_delegate(FUNC(m5_cart_slot_device::write_ram),(m5_cart_slot_device*)m_cart_ram)); |
| 1281 | 1278 | if (m_cart) |
| 1282 | 1279 | { |
| r253707 | r253708 | |
| 1286 | 1283 | break; |
| 1287 | 1284 | case MEM64KBI: |
| 1288 | 1285 | program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base()); |
| 1289 | | program.unmap_write(0x0000, 0x1fff); |
| 1286 | program.unmap_write(0x0000, 0x1fff); |
| 1290 | 1287 | program.install_ram(0x8000, 0xffff, ram_region->base()+0x8000); |
| 1291 | 1288 | |
| 1292 | 1289 | //if AUTOSTART is on then page out cart and start tape loading |
| r253707 | r253708 | |
| 1297 | 1294 | } |
| 1298 | 1295 | else |
| 1299 | 1296 | program.unmap_readwrite(0x2000, 0x6fff); //monitor rom is testing this area for 0xFFs otherwise thinks there is some ROM cart plugged in |
| 1300 | | |
| 1297 | |
| 1301 | 1298 | break; |
| 1302 | 1299 | case MEM64KBF: |
| 1303 | 1300 | program.unmap_write(0x0000, 0x6fff); |
| r253707 | r253708 | |
| 1309 | 1306 | membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 1310 | 1307 | break; |
| 1311 | 1308 | case MEM64KRX: |
| 1312 | | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()); |
| 1313 | | membank("bank2r")->set_base(m_cart_rom->base()); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 1314 | | membank("bank3r")->set_base(m_cart_rom->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 1315 | | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 1316 | | |
| 1309 | membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()); |
| 1310 | membank("bank2r")->set_base(m_cart_rom->base()); membank("bank2w")->set_base(ram_region->base()+0x2000); |
| 1311 | membank("bank3r")->set_base(m_cart_rom->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); |
| 1312 | membank("bank4r")->set_base(ram_region->base()+0x6000); membank("bank4w")->set_base(ram_region->base()+0x6000); |
| 1313 | |
| 1317 | 1314 | //page in BASIC or MSX |
| 1318 | 1315 | if ((m_DIPS->read() & 0x01)) |
| 1319 | 1316 | { |
| r253707 | r253708 | |
| 1322 | 1319 | } |
| 1323 | 1320 | else |
| 1324 | 1321 | { |
| 1325 | | membank("bank5r")->set_base(m_cart_rom->base()+0xe000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 1322 | membank("bank5r")->set_base(m_cart_rom->base()+0xe000); membank("bank5w")->set_base(ram_region->base()+0x8000); |
| 1326 | 1323 | membank("bank6r")->set_base(m_cart_rom->base()+0x12000); membank("bank6w")->set_base(ram_region->base()+0xc000); |
| 1327 | 1324 | } |
| 1328 | 1325 | break; |
| r253707 | r253708 | |
| 1330 | 1327 | program.unmap_readwrite(0x8000, 0xffff); |
| 1331 | 1328 | } |
| 1332 | 1329 | //I don't have idea what to do with savestates, please someone take care of it |
| 1333 | | //m_cart_ram->save_ram(); |
| 1330 | //m_cart_ram->save_ram(); |
| 1334 | 1331 | } |
| 1335 | 1332 | else |
| 1336 | 1333 | //ram cart wasn't found so if rom cart present install it |
| r253707 | r253708 | |
| 1340 | 1337 | program.unmap_write(0x0000, 0x1fff); |
| 1341 | 1338 | program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart)); |
| 1342 | 1339 | program.unmap_write(0x2000, 0x6fff); |
| 1343 | | } |
| 1344 | | m_ram_mode=0; |
| 1340 | } |
| 1341 | m_ram_mode=0; |
| 1345 | 1342 | } |
| 1346 | 1343 | |
| 1347 | 1344 | |
| r253707 | r253708 | |
| 1352 | 1349 | |
| 1353 | 1350 | void brno_state::machine_reset() |
| 1354 | 1351 | { |
| 1355 | | |
| 1356 | 1352 | /* enable ROM1+ROM2 */ |
| 1357 | 1353 | address_space &program = m_maincpu->space(AS_PROGRAM); |
| 1358 | | |
| 1354 | |
| 1359 | 1355 | program.install_rom(0x0000, 0x3fff, memregion(Z80_TAG)->base()); |
| 1360 | 1356 | program.unmap_write(0x0000, 0x3fff); |
| 1361 | 1357 | |
| 1362 | 1358 | |
| 1363 | 1359 | //is ram/rom cart plugged in? |
| 1364 | | if (m_cart1->exists()) |
| 1360 | if (m_cart1->exists()) |
| 1365 | 1361 | { |
| 1366 | | if (m_cart1->get_type() > 0) |
| 1362 | if (m_cart1->get_type() > 0) |
| 1367 | 1363 | m_cart_ram=m_cart1; |
| 1368 | 1364 | else |
| 1369 | 1365 | m_cart=m_cart1; |
| 1370 | 1366 | } |
| 1371 | 1367 | if (m_cart2->exists()) |
| 1372 | 1368 | { |
| 1373 | | if (m_cart2->get_type() > 0) |
| 1369 | if (m_cart2->get_type() > 0) |
| 1374 | 1370 | m_cart_ram=m_cart2; |
| 1375 | 1371 | else |
| 1376 | 1372 | m_cart=m_cart2; |
| r253707 | r253708 | |
| 1380 | 1376 | { |
| 1381 | 1377 | program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart)); |
| 1382 | 1378 | program.unmap_write(0x2000, 0x6fff); |
| 1383 | | } |
| 1379 | } |
| 1384 | 1380 | |
| 1385 | 1381 | m_romen=true; |
| 1386 | 1382 | m_ramen=false; |
| 1387 | | |
| 1383 | |
| 1388 | 1384 | floppy_image_device *floppy = NULL; |
| 1389 | 1385 | floppy = m_floppy0->get_device(); |
| 1390 | 1386 | m_fdc->set_floppy(floppy); |
| r253707 | r253708 | |
| 1491 | 1487 | |
| 1492 | 1488 | |
| 1493 | 1489 | static MACHINE_CONFIG_DERIVED_CLASS( brno, m5, brno_state ) |
| 1494 | | |
| 1490 | |
| 1495 | 1491 | // basic machine hardware |
| 1496 | 1492 | MCFG_CPU_MODIFY(Z80_TAG) |
| 1497 | 1493 | MCFG_CPU_PROGRAM_MAP(m5_mem_brno) |
| 1498 | 1494 | MCFG_CPU_IO_MAP(brno_io) |
| 1499 | | // MCFG_CPU_CONFIG(m5_daisy_chain) |
| 1500 | | |
| 1501 | | |
| 1495 | // MCFG_CPU_CONFIG(m5_daisy_chain) |
| 1496 | |
| 1497 | |
| 1502 | 1498 | //remove devices used for fd5 floppy |
| 1503 | 1499 | MCFG_DEVICE_REMOVE(Z80_FD5_TAG) |
| 1504 | 1500 | MCFG_DEVICE_REMOVE(I8255A_TAG) |
| r253707 | r253708 | |
| 1520 | 1516 | MCFG_FLOPPY_DRIVE_SOUND(true) |
| 1521 | 1517 | // only one floppy drive |
| 1522 | 1518 | //MCFG_DEVICE_REMOVE(WD2797_TAG":1") |
| 1523 | | |
| 1519 | |
| 1524 | 1520 | //MCFG_SNAPSHOT_ADD("snapshot", brno_state, brno, "rmd", 0) |
| 1525 | 1521 | |
| 1526 | 1522 | // software list |
| r253707 | r253708 | |
| 1601 | 1597 | |
| 1602 | 1598 | DRIVER_INIT_MEMBER(brno_state,brno) |
| 1603 | 1599 | { |
| 1604 | | // logerror("Driver init entered\n" ); |
| 1600 | // logerror("Driver init entered\n" ); |
| 1605 | 1601 | } |
| 1606 | 1602 | |
| 1607 | 1603 | |
trunk/src/mame/layout/esq2by16.lay
| r253707 | r253708 | |
| 60 | 60 | <backdrop element="background"> |
| 61 | 61 | <bounds left="0" top="0" right="300" bottom="120" /> |
| 62 | 62 | </backdrop> |
| 63 | | <bezel name="rLed_0" element="rLeds"> <bounds x="200" y="0" width="5" height="3" /> </bezel> |
| 64 | | <bezel name="rLed_8" element="rLeds"> <bounds x="200" y="20" width="5" height="3" /> </bezel> |
| 65 | | <bezel name="rLed_9" element="rLeds"> <bounds x="240" y="0" width="5" height="3" /> </bezel> |
| 66 | | <bezel name="rLed_1" element="rLeds"> <bounds x="240" y="20" width="5" height="3" /> </bezel> |
| 67 | | <bezel name="rLed_2" element="rLeds"> <bounds x="260" y="00" width="5" height="3" /> </bezel> |
| 68 | | <bezel name="rLed_3" element="rLeds"> <bounds x="270" y="00" width="5" height="3" /> </bezel> |
| 69 | | <bezel name="rLed_4" element="rLeds"> <bounds x="280" y="00" width="5" height="3" /> </bezel> |
| 70 | | <bezel name="rLed_5" element="rLeds"> <bounds x="290" y="00" width="5" height="3" /> </bezel> |
| 71 | | <bezel name="rLed_10" element="rLeds"> <bounds x="260" y="10" width="5" height="3" /> </bezel> |
| 72 | | <bezel name="rLed_11" element="rLeds"> <bounds x="270" y="10" width="5" height="3" /> </bezel> |
| 73 | | <bezel name="rLed_12" element="rLeds"> <bounds x="280" y="10" width="5" height="3" /> </bezel> |
| 74 | | <bezel name="rLed_13" element="rLeds"> <bounds x="290" y="10" width="5" height="3" /> </bezel> |
| 63 | <bezel name="rLed_0" element="rLeds"> <bounds x="200" y="0" width="5" height="3" /> </bezel> |
| 64 | <bezel name="rLed_8" element="rLeds"> <bounds x="200" y="20" width="5" height="3" /> </bezel> |
| 65 | <bezel name="rLed_9" element="rLeds"> <bounds x="240" y="0" width="5" height="3" /> </bezel> |
| 66 | <bezel name="rLed_1" element="rLeds"> <bounds x="240" y="20" width="5" height="3" /> </bezel> |
| 67 | <bezel name="rLed_2" element="rLeds"> <bounds x="260" y="00" width="5" height="3" /> </bezel> |
| 68 | <bezel name="rLed_3" element="rLeds"> <bounds x="270" y="00" width="5" height="3" /> </bezel> |
| 69 | <bezel name="rLed_4" element="rLeds"> <bounds x="280" y="00" width="5" height="3" /> </bezel> |
| 70 | <bezel name="rLed_5" element="rLeds"> <bounds x="290" y="00" width="5" height="3" /> </bezel> |
| 71 | <bezel name="rLed_10" element="rLeds"> <bounds x="260" y="10" width="5" height="3" /> </bezel> |
| 72 | <bezel name="rLed_11" element="rLeds"> <bounds x="270" y="10" width="5" height="3" /> </bezel> |
| 73 | <bezel name="rLed_12" element="rLeds"> <bounds x="280" y="10" width="5" height="3" /> </bezel> |
| 74 | <bezel name="rLed_13" element="rLeds"> <bounds x="290" y="10" width="5" height="3" /> </bezel> |
| 75 | 75 | |
| 76 | | <bezel name="rLed_6" element="rLeds"> <bounds x="260" y="20" width="5" height="3" /> </bezel> |
| 77 | | <bezel name="rLed_7" element="rLeds"> <bounds x="270" y="20" width="5" height="3" /> </bezel> |
| 78 | | <bezel name="rLed_14" element="rLeds"> <bounds x="280" y="20" width="5" height="3" /> </bezel> |
| 79 | | <bezel name="rLed_15" element="rLeds"> <bounds x="290" y="20" width="5" height="3" /> </bezel> |
| 80 | | <bezel name="pg_3000" element="Page3" state="0"> <bounds x=" 0" y=" 0" width="5" height="1" /> </bezel> |
| 81 | | <bezel name="pg_3001" element="Page3" state="0"> <bounds x=" 0" y=" 1" width="5" height="1" /> </bezel> |
| 82 | | <bezel name="pg_3002" element="Page3" state="0"> <bounds x=" 0" y=" 2" width="5" height="1" /> </bezel> |
| 83 | | <bezel name="pg_3003" element="Page3" state="0"> <bounds x=" 0" y=" 3" width="5" height="1" /> </bezel> |
| 84 | | <bezel name="pg_3004" element="Page3" state="0"> <bounds x=" 0" y=" 4" width="5" height="1" /> </bezel> |
| 85 | | <bezel name="pg_3005" element="Page3" state="0"> <bounds x=" 0" y=" 5" width="5" height="1" /> </bezel> |
| 86 | | <bezel name="pg_3006" element="Page3" state="0"> <bounds x=" 0" y=" 6" width="5" height="1" /> </bezel> |
| 87 | | <bezel name="pg_3007" element="Page3" state="0"> <bounds x=" 6" y=" 0" width="5" height="1" /> </bezel> |
| 88 | | <bezel name="pg_3008" element="Page3" state="0"> <bounds x=" 6" y=" 1" width="5" height="1" /> </bezel> |
| 89 | | <bezel name="pg_3009" element="Page3" state="0"> <bounds x=" 6" y=" 2" width="5" height="1" /> </bezel> |
| 90 | | <bezel name="pg_3010" element="Page3" state="0"> <bounds x=" 6" y=" 3" width="5" height="1" /> </bezel> |
| 91 | | <bezel name="pg_3011" element="Page3" state="0"> <bounds x=" 6" y=" 4" width="5" height="1" /> </bezel> |
| 92 | | <bezel name="pg_3012" element="Page3" state="0"> <bounds x=" 6" y=" 5" width="5" height="1" /> </bezel> |
| 93 | | <bezel name="pg_3013" element="Page3" state="0"> <bounds x=" 6" y=" 6" width="5" height="1" /> </bezel> |
| 94 | | <bezel name="pg_3014" element="Page3" state="0"> <bounds x=" 12" y=" 0" width="5" height="1" /> </bezel> |
| 95 | | <bezel name="pg_3015" element="Page3" state="0"> <bounds x=" 12" y=" 1" width="5" height="1" /> </bezel> |
| 96 | | <bezel name="pg_3016" element="Page3" state="0"> <bounds x=" 12" y=" 2" width="5" height="1" /> </bezel> |
| 97 | | <bezel name="pg_3017" element="Page3" state="0"> <bounds x=" 12" y=" 3" width="5" height="1" /> </bezel> |
| 98 | | <bezel name="pg_3018" element="Page3" state="0"> <bounds x=" 12" y=" 4" width="5" height="1" /> </bezel> |
| 99 | | <bezel name="pg_3019" element="Page3" state="0"> <bounds x=" 12" y=" 5" width="5" height="1" /> </bezel> |
| 100 | | <bezel name="pg_3020" element="Page3" state="0"> <bounds x=" 12" y=" 6" width="5" height="1" /> </bezel> |
| 101 | | <bezel name="pg_3021" element="Page3" state="0"> <bounds x=" 18" y=" 0" width="5" height="1" /> </bezel> |
| 102 | | <bezel name="pg_3022" element="Page3" state="0"> <bounds x=" 18" y=" 1" width="5" height="1" /> </bezel> |
| 103 | | <bezel name="pg_3023" element="Page3" state="0"> <bounds x=" 18" y=" 2" width="5" height="1" /> </bezel> |
| 104 | | <bezel name="pg_3024" element="Page3" state="0"> <bounds x=" 18" y=" 3" width="5" height="1" /> </bezel> |
| 105 | | <bezel name="pg_3025" element="Page3" state="0"> <bounds x=" 18" y=" 4" width="5" height="1" /> </bezel> |
| 106 | | <bezel name="pg_3026" element="Page3" state="0"> <bounds x=" 18" y=" 5" width="5" height="1" /> </bezel> |
| 107 | | <bezel name="pg_3027" element="Page3" state="0"> <bounds x=" 18" y=" 6" width="5" height="1" /> </bezel> |
| 108 | | <bezel name="pg_3028" element="Page3" state="0"> <bounds x=" 24" y=" 0" width="5" height="1" /> </bezel> |
| 109 | | <bezel name="pg_3029" element="Page3" state="0"> <bounds x=" 24" y=" 1" width="5" height="1" /> </bezel> |
| 110 | | <bezel name="pg_3030" element="Page3" state="0"> <bounds x=" 24" y=" 2" width="5" height="1" /> </bezel> |
| 111 | | <bezel name="pg_3031" element="Page3" state="0"> <bounds x=" 24" y=" 3" width="5" height="1" /> </bezel> |
| 112 | | <bezel name="pg_3032" element="Page3" state="0"> <bounds x=" 24" y=" 4" width="5" height="1" /> </bezel> |
| 113 | | <bezel name="pg_3033" element="Page3" state="0"> <bounds x=" 24" y=" 5" width="5" height="1" /> </bezel> |
| 114 | | <bezel name="pg_3034" element="Page3" state="0"> <bounds x=" 24" y=" 6" width="5" height="1" /> </bezel> |
| 115 | | <bezel name="pg_3035" element="Page3" state="0"> <bounds x=" 30" y=" 0" width="5" height="1" /> </bezel> |
| 116 | | <bezel name="pg_3036" element="Page3" state="0"> <bounds x=" 30" y=" 1" width="5" height="1" /> </bezel> |
| 117 | | <bezel name="pg_3037" element="Page3" state="0"> <bounds x=" 30" y=" 2" width="5" height="1" /> </bezel> |
| 118 | | <bezel name="pg_3038" element="Page3" state="0"> <bounds x=" 30" y=" 3" width="5" height="1" /> </bezel> |
| 119 | | <bezel name="pg_3039" element="Page3" state="0"> <bounds x=" 30" y=" 4" width="5" height="1" /> </bezel> |
| 120 | | <bezel name="pg_3040" element="Page3" state="0"> <bounds x=" 30" y=" 5" width="5" height="1" /> </bezel> |
| 121 | | <bezel name="pg_3041" element="Page3" state="0"> <bounds x=" 30" y=" 6" width="5" height="1" /> </bezel> |
| 122 | | <bezel name="pg_3042" element="Page3" state="0"> <bounds x=" 36" y=" 0" width="5" height="1" /> </bezel> |
| 123 | | <bezel name="pg_3043" element="Page3" state="0"> <bounds x=" 36" y=" 1" width="5" height="1" /> </bezel> |
| 124 | | <bezel name="pg_3044" element="Page3" state="0"> <bounds x=" 36" y=" 2" width="5" height="1" /> </bezel> |
| 125 | | <bezel name="pg_3045" element="Page3" state="0"> <bounds x=" 36" y=" 3" width="5" height="1" /> </bezel> |
| 126 | | <bezel name="pg_3046" element="Page3" state="0"> <bounds x=" 36" y=" 4" width="5" height="1" /> </bezel> |
| 127 | | <bezel name="pg_3047" element="Page3" state="0"> <bounds x=" 36" y=" 5" width="5" height="1" /> </bezel> |
| 128 | | <bezel name="pg_3048" element="Page3" state="0"> <bounds x=" 36" y=" 6" width="5" height="1" /> </bezel> |
| 129 | | <bezel name="pg_3049" element="Page3" state="0"> <bounds x=" 42" y=" 0" width="5" height="1" /> </bezel> |
| 130 | | <bezel name="pg_3050" element="Page3" state="0"> <bounds x=" 42" y=" 1" width="5" height="1" /> </bezel> |
| 131 | | <bezel name="pg_3051" element="Page3" state="0"> <bounds x=" 42" y=" 2" width="5" height="1" /> </bezel> |
| 132 | | <bezel name="pg_3052" element="Page3" state="0"> <bounds x=" 42" y=" 3" width="5" height="1" /> </bezel> |
| 133 | | <bezel name="pg_3053" element="Page3" state="0"> <bounds x=" 42" y=" 4" width="5" height="1" /> </bezel> |
| 134 | | <bezel name="pg_3054" element="Page3" state="0"> <bounds x=" 42" y=" 5" width="5" height="1" /> </bezel> |
| 135 | | <bezel name="pg_3055" element="Page3" state="0"> <bounds x=" 42" y=" 6" width="5" height="1" /> </bezel> |
| 136 | | <bezel name="pg_3056" element="Page3" state="0"> <bounds x=" 48" y=" 0" width="5" height="1" /> </bezel> |
| 137 | | <bezel name="pg_3057" element="Page3" state="0"> <bounds x=" 48" y=" 1" width="5" height="1" /> </bezel> |
| 138 | | <bezel name="pg_3058" element="Page3" state="0"> <bounds x=" 48" y=" 2" width="5" height="1" /> </bezel> |
| 139 | | <bezel name="pg_3059" element="Page3" state="0"> <bounds x=" 48" y=" 3" width="5" height="1" /> </bezel> |
| 140 | | <bezel name="pg_3060" element="Page3" state="0"> <bounds x=" 48" y=" 4" width="5" height="1" /> </bezel> |
| 141 | | <bezel name="pg_3061" element="Page3" state="0"> <bounds x=" 48" y=" 5" width="5" height="1" /> </bezel> |
| 142 | | <bezel name="pg_3062" element="Page3" state="0"> <bounds x=" 48" y=" 6" width="5" height="1" /> </bezel> |
| 143 | | <bezel name="pg_3063" element="Page3" state="0"> <bounds x=" 54" y=" 0" width="5" height="1" /> </bezel> |
| 144 | | <bezel name="pg_3064" element="Page3" state="0"> <bounds x=" 54" y=" 1" width="5" height="1" /> </bezel> |
| 145 | | <bezel name="pg_3065" element="Page3" state="0"> <bounds x=" 54" y=" 2" width="5" height="1" /> </bezel> |
| 146 | | <bezel name="pg_3066" element="Page3" state="0"> <bounds x=" 54" y=" 3" width="5" height="1" /> </bezel> |
| 147 | | <bezel name="pg_3067" element="Page3" state="0"> <bounds x=" 54" y=" 4" width="5" height="1" /> </bezel> |
| 148 | | <bezel name="pg_3068" element="Page3" state="0"> <bounds x=" 54" y=" 5" width="5" height="1" /> </bezel> |
| 149 | | <bezel name="pg_3069" element="Page3" state="0"> <bounds x=" 54" y=" 6" width="5" height="1" /> </bezel> |
| 150 | | <bezel name="pg_3070" element="Page3" state="0"> <bounds x=" 60" y=" 0" width="5" height="1" /> </bezel> |
| 151 | | <bezel name="pg_3071" element="Page3" state="0"> <bounds x=" 60" y=" 1" width="5" height="1" /> </bezel> |
| 152 | | <bezel name="pg_3072" element="Page3" state="0"> <bounds x=" 60" y=" 2" width="5" height="1" /> </bezel> |
| 153 | | <bezel name="pg_3073" element="Page3" state="0"> <bounds x=" 60" y=" 3" width="5" height="1" /> </bezel> |
| 154 | | <bezel name="pg_3074" element="Page3" state="0"> <bounds x=" 60" y=" 4" width="5" height="1" /> </bezel> |
| 155 | | <bezel name="pg_3075" element="Page3" state="0"> <bounds x=" 60" y=" 5" width="5" height="1" /> </bezel> |
| 156 | | <bezel name="pg_3076" element="Page3" state="0"> <bounds x=" 60" y=" 6" width="5" height="1" /> </bezel> |
| 157 | | <bezel name="pg_3077" element="Page3" state="0"> <bounds x=" 66" y=" 0" width="5" height="1" /> </bezel> |
| 158 | | <bezel name="pg_3078" element="Page3" state="0"> <bounds x=" 66" y=" 1" width="5" height="1" /> </bezel> |
| 159 | | <bezel name="pg_3079" element="Page3" state="0"> <bounds x=" 66" y=" 2" width="5" height="1" /> </bezel> |
| 160 | | <bezel name="pg_3080" element="Page3" state="0"> <bounds x=" 66" y=" 3" width="5" height="1" /> </bezel> |
| 161 | | <bezel name="pg_3081" element="Page3" state="0"> <bounds x=" 66" y=" 4" width="5" height="1" /> </bezel> |
| 162 | | <bezel name="pg_3082" element="Page3" state="0"> <bounds x=" 66" y=" 5" width="5" height="1" /> </bezel> |
| 163 | | <bezel name="pg_3083" element="Page3" state="0"> <bounds x=" 66" y=" 6" width="5" height="1" /> </bezel> |
| 164 | | <bezel name="pg_3084" element="Page3" state="0"> <bounds x=" 72" y=" 0" width="5" height="1" /> </bezel> |
| 165 | | <bezel name="pg_3085" element="Page3" state="0"> <bounds x=" 72" y=" 1" width="5" height="1" /> </bezel> |
| 166 | | <bezel name="pg_3086" element="Page3" state="0"> <bounds x=" 72" y=" 2" width="5" height="1" /> </bezel> |
| 167 | | <bezel name="pg_3087" element="Page3" state="0"> <bounds x=" 72" y=" 3" width="5" height="1" /> </bezel> |
| 168 | | <bezel name="pg_3088" element="Page3" state="0"> <bounds x=" 72" y=" 4" width="5" height="1" /> </bezel> |
| 169 | | <bezel name="pg_3089" element="Page3" state="0"> <bounds x=" 72" y=" 5" width="5" height="1" /> </bezel> |
| 170 | | <bezel name="pg_3090" element="Page3" state="0"> <bounds x=" 72" y=" 6" width="5" height="1" /> </bezel> |
| 171 | | <bezel name="pg_3091" element="Page3" state="0"> <bounds x=" 78" y=" 0" width="5" height="1" /> </bezel> |
| 172 | | <bezel name="pg_3092" element="Page3" state="0"> <bounds x=" 78" y=" 1" width="5" height="1" /> </bezel> |
| 173 | | <bezel name="pg_3093" element="Page3" state="0"> <bounds x=" 78" y=" 2" width="5" height="1" /> </bezel> |
| 174 | | <bezel name="pg_3094" element="Page3" state="0"> <bounds x=" 78" y=" 3" width="5" height="1" /> </bezel> |
| 175 | | <bezel name="pg_3095" element="Page3" state="0"> <bounds x=" 78" y=" 4" width="5" height="1" /> </bezel> |
| 176 | | <bezel name="pg_3096" element="Page3" state="0"> <bounds x=" 78" y=" 5" width="5" height="1" /> </bezel> |
| 177 | | <bezel name="pg_3097" element="Page3" state="0"> <bounds x=" 78" y=" 6" width="5" height="1" /> </bezel> |
| 178 | | <bezel name="pg_3098" element="Page3" state="0"> <bounds x=" 84" y=" 0" width="5" height="1" /> </bezel> |
| 179 | | <bezel name="pg_3099" element="Page3" state="0"> <bounds x=" 84" y=" 1" width="5" height="1" /> </bezel> |
| 180 | | <bezel name="pg_3100" element="Page3" state="0"> <bounds x=" 84" y=" 2" width="5" height="1" /> </bezel> |
| 181 | | <bezel name="pg_3101" element="Page3" state="0"> <bounds x=" 84" y=" 3" width="5" height="1" /> </bezel> |
| 182 | | <bezel name="pg_3102" element="Page3" state="0"> <bounds x=" 84" y=" 4" width="5" height="1" /> </bezel> |
| 183 | | <bezel name="pg_3103" element="Page3" state="0"> <bounds x=" 84" y=" 5" width="5" height="1" /> </bezel> |
| 184 | | <bezel name="pg_3104" element="Page3" state="0"> <bounds x=" 84" y=" 6" width="5" height="1" /> </bezel> |
| 185 | | <bezel name="pg_3105" element="Page3" state="0"> <bounds x=" 90" y=" 0" width="5" height="1" /> </bezel> |
| 186 | | <bezel name="pg_3106" element="Page3" state="0"> <bounds x=" 90" y=" 1" width="5" height="1" /> </bezel> |
| 187 | | <bezel name="pg_3107" element="Page3" state="0"> <bounds x=" 90" y=" 2" width="5" height="1" /> </bezel> |
| 188 | | <bezel name="pg_3108" element="Page3" state="0"> <bounds x=" 90" y=" 3" width="5" height="1" /> </bezel> |
| 189 | | <bezel name="pg_3109" element="Page3" state="0"> <bounds x=" 90" y=" 4" width="5" height="1" /> </bezel> |
| 190 | | <bezel name="pg_3110" element="Page3" state="0"> <bounds x=" 90" y=" 5" width="5" height="1" /> </bezel> |
| 191 | | <bezel name="pg_3111" element="Page3" state="0"> <bounds x=" 90" y=" 6" width="5" height="1" /> </bezel> |
| 192 | | <bezel name="pg_3112" element="Page3" state="0"> <bounds x=" 0" y=" 10" width="5" height="1" /> </bezel> |
| 193 | | <bezel name="pg_3113" element="Page3" state="0"> <bounds x=" 0" y=" 11" width="5" height="1" /> </bezel> |
| 194 | | <bezel name="pg_3114" element="Page3" state="0"> <bounds x=" 0" y=" 12" width="5" height="1" /> </bezel> |
| 195 | | <bezel name="pg_3115" element="Page3" state="0"> <bounds x=" 0" y=" 13" width="5" height="1" /> </bezel> |
| 196 | | <bezel name="pg_3116" element="Page3" state="0"> <bounds x=" 0" y=" 14" width="5" height="1" /> </bezel> |
| 197 | | <bezel name="pg_3117" element="Page3" state="0"> <bounds x=" 0" y=" 15" width="5" height="1" /> </bezel> |
| 198 | | <bezel name="pg_3118" element="Page3" state="0"> <bounds x=" 0" y=" 16" width="5" height="1" /> </bezel> |
| 199 | | <bezel name="pg_3119" element="Page3" state="0"> <bounds x=" 6" y=" 10" width="5" height="1" /> </bezel> |
| 200 | | <bezel name="pg_3120" element="Page3" state="0"> <bounds x=" 6" y=" 11" width="5" height="1" /> </bezel> |
| 201 | | <bezel name="pg_3121" element="Page3" state="0"> <bounds x=" 6" y=" 12" width="5" height="1" /> </bezel> |
| 202 | | <bezel name="pg_3122" element="Page3" state="0"> <bounds x=" 6" y=" 13" width="5" height="1" /> </bezel> |
| 203 | | <bezel name="pg_3123" element="Page3" state="0"> <bounds x=" 6" y=" 14" width="5" height="1" /> </bezel> |
| 204 | | <bezel name="pg_3124" element="Page3" state="0"> <bounds x=" 6" y=" 15" width="5" height="1" /> </bezel> |
| 205 | | <bezel name="pg_3125" element="Page3" state="0"> <bounds x=" 6" y=" 16" width="5" height="1" /> </bezel> |
| 206 | | <bezel name="pg_3126" element="Page3" state="0"> <bounds x=" 12" y=" 10" width="5" height="1" /> </bezel> |
| 207 | | <bezel name="pg_3127" element="Page3" state="0"> <bounds x=" 12" y=" 11" width="5" height="1" /> </bezel> |
| 208 | | <bezel name="pg_3128" element="Page3" state="0"> <bounds x=" 12" y=" 12" width="5" height="1" /> </bezel> |
| 209 | | <bezel name="pg_3129" element="Page3" state="0"> <bounds x=" 12" y=" 13" width="5" height="1" /> </bezel> |
| 210 | | <bezel name="pg_3130" element="Page3" state="0"> <bounds x=" 12" y=" 14" width="5" height="1" /> </bezel> |
| 211 | | <bezel name="pg_3131" element="Page3" state="0"> <bounds x=" 12" y=" 15" width="5" height="1" /> </bezel> |
| 212 | | <bezel name="pg_3132" element="Page3" state="0"> <bounds x=" 12" y=" 16" width="5" height="1" /> </bezel> |
| 213 | | <bezel name="pg_3133" element="Page3" state="0"> <bounds x=" 18" y=" 10" width="5" height="1" /> </bezel> |
| 214 | | <bezel name="pg_3134" element="Page3" state="0"> <bounds x=" 18" y=" 11" width="5" height="1" /> </bezel> |
| 215 | | <bezel name="pg_3135" element="Page3" state="0"> <bounds x=" 18" y=" 12" width="5" height="1" /> </bezel> |
| 216 | | <bezel name="pg_3136" element="Page3" state="0"> <bounds x=" 18" y=" 13" width="5" height="1" /> </bezel> |
| 217 | | <bezel name="pg_3137" element="Page3" state="0"> <bounds x=" 18" y=" 14" width="5" height="1" /> </bezel> |
| 218 | | <bezel name="pg_3138" element="Page3" state="0"> <bounds x=" 18" y=" 15" width="5" height="1" /> </bezel> |
| 219 | | <bezel name="pg_3139" element="Page3" state="0"> <bounds x=" 18" y=" 16" width="5" height="1" /> </bezel> |
| 220 | | <bezel name="pg_3140" element="Page3" state="0"> <bounds x=" 24" y=" 10" width="5" height="1" /> </bezel> |
| 221 | | <bezel name="pg_3141" element="Page3" state="0"> <bounds x=" 24" y=" 11" width="5" height="1" /> </bezel> |
| 222 | | <bezel name="pg_3142" element="Page3" state="0"> <bounds x=" 24" y=" 12" width="5" height="1" /> </bezel> |
| 223 | | <bezel name="pg_3143" element="Page3" state="0"> <bounds x=" 24" y=" 13" width="5" height="1" /> </bezel> |
| 224 | | <bezel name="pg_3144" element="Page3" state="0"> <bounds x=" 24" y=" 14" width="5" height="1" /> </bezel> |
| 225 | | <bezel name="pg_3145" element="Page3" state="0"> <bounds x=" 24" y=" 15" width="5" height="1" /> </bezel> |
| 226 | | <bezel name="pg_3146" element="Page3" state="0"> <bounds x=" 24" y=" 16" width="5" height="1" /> </bezel> |
| 227 | | <bezel name="pg_3147" element="Page3" state="0"> <bounds x=" 30" y=" 10" width="5" height="1" /> </bezel> |
| 228 | | <bezel name="pg_3148" element="Page3" state="0"> <bounds x=" 30" y=" 11" width="5" height="1" /> </bezel> |
| 229 | | <bezel name="pg_3149" element="Page3" state="0"> <bounds x=" 30" y=" 12" width="5" height="1" /> </bezel> |
| 230 | | <bezel name="pg_3150" element="Page3" state="0"> <bounds x=" 30" y=" 13" width="5" height="1" /> </bezel> |
| 231 | | <bezel name="pg_3151" element="Page3" state="0"> <bounds x=" 30" y=" 14" width="5" height="1" /> </bezel> |
| 232 | | <bezel name="pg_3152" element="Page3" state="0"> <bounds x=" 30" y=" 15" width="5" height="1" /> </bezel> |
| 233 | | <bezel name="pg_3153" element="Page3" state="0"> <bounds x=" 30" y=" 16" width="5" height="1" /> </bezel> |
| 234 | | <bezel name="pg_3154" element="Page3" state="0"> <bounds x=" 36" y=" 10" width="5" height="1" /> </bezel> |
| 235 | | <bezel name="pg_3155" element="Page3" state="0"> <bounds x=" 36" y=" 11" width="5" height="1" /> </bezel> |
| 236 | | <bezel name="pg_3156" element="Page3" state="0"> <bounds x=" 36" y=" 12" width="5" height="1" /> </bezel> |
| 237 | | <bezel name="pg_3157" element="Page3" state="0"> <bounds x=" 36" y=" 13" width="5" height="1" /> </bezel> |
| 238 | | <bezel name="pg_3158" element="Page3" state="0"> <bounds x=" 36" y=" 14" width="5" height="1" /> </bezel> |
| 239 | | <bezel name="pg_3159" element="Page3" state="0"> <bounds x=" 36" y=" 15" width="5" height="1" /> </bezel> |
| 240 | | <bezel name="pg_3160" element="Page3" state="0"> <bounds x=" 36" y=" 16" width="5" height="1" /> </bezel> |
| 241 | | <bezel name="pg_3161" element="Page3" state="0"> <bounds x=" 42" y=" 10" width="5" height="1" /> </bezel> |
| 242 | | <bezel name="pg_3162" element="Page3" state="0"> <bounds x=" 42" y=" 11" width="5" height="1" /> </bezel> |
| 243 | | <bezel name="pg_3163" element="Page3" state="0"> <bounds x=" 42" y=" 12" width="5" height="1" /> </bezel> |
| 244 | | <bezel name="pg_3164" element="Page3" state="0"> <bounds x=" 42" y=" 13" width="5" height="1" /> </bezel> |
| 245 | | <bezel name="pg_3165" element="Page3" state="0"> <bounds x=" 42" y=" 14" width="5" height="1" /> </bezel> |
| 246 | | <bezel name="pg_3166" element="Page3" state="0"> <bounds x=" 42" y=" 15" width="5" height="1" /> </bezel> |
| 247 | | <bezel name="pg_3167" element="Page3" state="0"> <bounds x=" 42" y=" 16" width="5" height="1" /> </bezel> |
| 248 | | <bezel name="pg_3168" element="Page3" state="0"> <bounds x=" 48" y=" 10" width="5" height="1" /> </bezel> |
| 249 | | <bezel name="pg_3169" element="Page3" state="0"> <bounds x=" 48" y=" 11" width="5" height="1" /> </bezel> |
| 250 | | <bezel name="pg_3170" element="Page3" state="0"> <bounds x=" 48" y=" 12" width="5" height="1" /> </bezel> |
| 251 | | <bezel name="pg_3171" element="Page3" state="0"> <bounds x=" 48" y=" 13" width="5" height="1" /> </bezel> |
| 252 | | <bezel name="pg_3172" element="Page3" state="0"> <bounds x=" 48" y=" 14" width="5" height="1" /> </bezel> |
| 253 | | <bezel name="pg_3173" element="Page3" state="0"> <bounds x=" 48" y=" 15" width="5" height="1" /> </bezel> |
| 254 | | <bezel name="pg_3174" element="Page3" state="0"> <bounds x=" 48" y=" 16" width="5" height="1" /> </bezel> |
| 255 | | <bezel name="pg_3175" element="Page3" state="0"> <bounds x=" 54" y=" 10" width="5" height="1" /> </bezel> |
| 256 | | <bezel name="pg_3176" element="Page3" state="0"> <bounds x=" 54" y=" 11" width="5" height="1" /> </bezel> |
| 257 | | <bezel name="pg_3177" element="Page3" state="0"> <bounds x=" 54" y=" 12" width="5" height="1" /> </bezel> |
| 258 | | <bezel name="pg_3178" element="Page3" state="0"> <bounds x=" 54" y=" 13" width="5" height="1" /> </bezel> |
| 259 | | <bezel name="pg_3179" element="Page3" state="0"> <bounds x=" 54" y=" 14" width="5" height="1" /> </bezel> |
| 260 | | <bezel name="pg_3180" element="Page3" state="0"> <bounds x=" 54" y=" 15" width="5" height="1" /> </bezel> |
| 261 | | <bezel name="pg_3181" element="Page3" state="0"> <bounds x=" 54" y=" 16" width="5" height="1" /> </bezel> |
| 262 | | <bezel name="pg_3182" element="Page3" state="0"> <bounds x=" 60" y=" 10" width="5" height="1" /> </bezel> |
| 263 | | <bezel name="pg_3183" element="Page3" state="0"> <bounds x=" 60" y=" 11" width="5" height="1" /> </bezel> |
| 264 | | <bezel name="pg_3184" element="Page3" state="0"> <bounds x=" 60" y=" 12" width="5" height="1" /> </bezel> |
| 265 | | <bezel name="pg_3185" element="Page3" state="0"> <bounds x=" 60" y=" 13" width="5" height="1" /> </bezel> |
| 266 | | <bezel name="pg_3186" element="Page3" state="0"> <bounds x=" 60" y=" 14" width="5" height="1" /> </bezel> |
| 267 | | <bezel name="pg_3187" element="Page3" state="0"> <bounds x=" 60" y=" 15" width="5" height="1" /> </bezel> |
| 268 | | <bezel name="pg_3188" element="Page3" state="0"> <bounds x=" 60" y=" 16" width="5" height="1" /> </bezel> |
| 269 | | <bezel name="pg_3189" element="Page3" state="0"> <bounds x=" 66" y=" 10" width="5" height="1" /> </bezel> |
| 270 | | <bezel name="pg_3190" element="Page3" state="0"> <bounds x=" 66" y=" 11" width="5" height="1" /> </bezel> |
| 271 | | <bezel name="pg_3191" element="Page3" state="0"> <bounds x=" 66" y=" 12" width="5" height="1" /> </bezel> |
| 272 | | <bezel name="pg_3192" element="Page3" state="0"> <bounds x=" 66" y=" 13" width="5" height="1" /> </bezel> |
| 273 | | <bezel name="pg_3193" element="Page3" state="0"> <bounds x=" 66" y=" 14" width="5" height="1" /> </bezel> |
| 274 | | <bezel name="pg_3194" element="Page3" state="0"> <bounds x=" 66" y=" 15" width="5" height="1" /> </bezel> |
| 275 | | <bezel name="pg_3195" element="Page3" state="0"> <bounds x=" 66" y=" 16" width="5" height="1" /> </bezel> |
| 276 | | <bezel name="pg_3196" element="Page3" state="0"> <bounds x=" 72" y=" 10" width="5" height="1" /> </bezel> |
| 277 | | <bezel name="pg_3197" element="Page3" state="0"> <bounds x=" 72" y=" 11" width="5" height="1" /> </bezel> |
| 278 | | <bezel name="pg_3198" element="Page3" state="0"> <bounds x=" 72" y=" 12" width="5" height="1" /> </bezel> |
| 279 | | <bezel name="pg_3199" element="Page3" state="0"> <bounds x=" 72" y=" 13" width="5" height="1" /> </bezel> |
| 280 | | <bezel name="pg_3200" element="Page3" state="0"> <bounds x=" 72" y=" 14" width="5" height="1" /> </bezel> |
| 281 | | <bezel name="pg_3201" element="Page3" state="0"> <bounds x=" 72" y=" 15" width="5" height="1" /> </bezel> |
| 282 | | <bezel name="pg_3202" element="Page3" state="0"> <bounds x=" 72" y=" 16" width="5" height="1" /> </bezel> |
| 283 | | <bezel name="pg_3203" element="Page3" state="0"> <bounds x=" 78" y=" 10" width="5" height="1" /> </bezel> |
| 284 | | <bezel name="pg_3204" element="Page3" state="0"> <bounds x=" 78" y=" 11" width="5" height="1" /> </bezel> |
| 285 | | <bezel name="pg_3205" element="Page3" state="0"> <bounds x=" 78" y=" 12" width="5" height="1" /> </bezel> |
| 286 | | <bezel name="pg_3206" element="Page3" state="0"> <bounds x=" 78" y=" 13" width="5" height="1" /> </bezel> |
| 287 | | <bezel name="pg_3207" element="Page3" state="0"> <bounds x=" 78" y=" 14" width="5" height="1" /> </bezel> |
| 288 | | <bezel name="pg_3208" element="Page3" state="0"> <bounds x=" 78" y=" 15" width="5" height="1" /> </bezel> |
| 289 | | <bezel name="pg_3209" element="Page3" state="0"> <bounds x=" 78" y=" 16" width="5" height="1" /> </bezel> |
| 290 | | <bezel name="pg_3210" element="Page3" state="0"> <bounds x=" 84" y=" 10" width="5" height="1" /> </bezel> |
| 291 | | <bezel name="pg_3211" element="Page3" state="0"> <bounds x=" 84" y=" 11" width="5" height="1" /> </bezel> |
| 292 | | <bezel name="pg_3212" element="Page3" state="0"> <bounds x=" 84" y=" 12" width="5" height="1" /> </bezel> |
| 293 | | <bezel name="pg_3213" element="Page3" state="0"> <bounds x=" 84" y=" 13" width="5" height="1" /> </bezel> |
| 294 | | <bezel name="pg_3214" element="Page3" state="0"> <bounds x=" 84" y=" 14" width="5" height="1" /> </bezel> |
| 295 | | <bezel name="pg_3215" element="Page3" state="0"> <bounds x=" 84" y=" 15" width="5" height="1" /> </bezel> |
| 296 | | <bezel name="pg_3216" element="Page3" state="0"> <bounds x=" 84" y=" 16" width="5" height="1" /> </bezel> |
| 297 | | <bezel name="pg_3217" element="Page3" state="0"> <bounds x=" 90" y=" 10" width="5" height="1" /> </bezel> |
| 298 | | <bezel name="pg_3218" element="Page3" state="0"> <bounds x=" 90" y=" 11" width="5" height="1" /> </bezel> |
| 299 | | <bezel name="pg_3219" element="Page3" state="0"> <bounds x=" 90" y=" 12" width="5" height="1" /> </bezel> |
| 300 | | <bezel name="pg_3220" element="Page3" state="0"> <bounds x=" 90" y=" 13" width="5" height="1" /> </bezel> |
| 301 | | <bezel name="pg_3221" element="Page3" state="0"> <bounds x=" 90" y=" 14" width="5" height="1" /> </bezel> |
| 302 | | <bezel name="pg_3222" element="Page3" state="0"> <bounds x=" 90" y=" 15" width="5" height="1" /> </bezel> |
| 303 | | <bezel name="pg_3223" element="Page3" state="0"> <bounds x=" 90" y=" 16" width="5" height="1" /> </bezel> |
| 76 | <bezel name="rLed_6" element="rLeds"> <bounds x="260" y="20" width="5" height="3" /> </bezel> |
| 77 | <bezel name="rLed_7" element="rLeds"> <bounds x="270" y="20" width="5" height="3" /> </bezel> |
| 78 | <bezel name="rLed_14" element="rLeds"> <bounds x="280" y="20" width="5" height="3" /> </bezel> |
| 79 | <bezel name="rLed_15" element="rLeds"> <bounds x="290" y="20" width="5" height="3" /> </bezel> |
| 80 | <bezel name="pg_3000" element="Page3" state="0"> <bounds x=" 0" y=" 0" width="5" height="1" /> </bezel> |
| 81 | <bezel name="pg_3001" element="Page3" state="0"> <bounds x=" 0" y=" 1" width="5" height="1" /> </bezel> |
| 82 | <bezel name="pg_3002" element="Page3" state="0"> <bounds x=" 0" y=" 2" width="5" height="1" /> </bezel> |
| 83 | <bezel name="pg_3003" element="Page3" state="0"> <bounds x=" 0" y=" 3" width="5" height="1" /> </bezel> |
| 84 | <bezel name="pg_3004" element="Page3" state="0"> <bounds x=" 0" y=" 4" width="5" height="1" /> </bezel> |
| 85 | <bezel name="pg_3005" element="Page3" state="0"> <bounds x=" 0" y=" 5" width="5" height="1" /> </bezel> |
| 86 | <bezel name="pg_3006" element="Page3" state="0"> <bounds x=" 0" y=" 6" width="5" height="1" /> </bezel> |
| 87 | <bezel name="pg_3007" element="Page3" state="0"> <bounds x=" 6" y=" 0" width="5" height="1" /> </bezel> |
| 88 | <bezel name="pg_3008" element="Page3" state="0"> <bounds x=" 6" y=" 1" width="5" height="1" /> </bezel> |
| 89 | <bezel name="pg_3009" element="Page3" state="0"> <bounds x=" 6" y=" 2" width="5" height="1" /> </bezel> |
| 90 | <bezel name="pg_3010" element="Page3" state="0"> <bounds x=" 6" y=" 3" width="5" height="1" /> </bezel> |
| 91 | <bezel name="pg_3011" element="Page3" state="0"> <bounds x=" 6" y=" 4" width="5" height="1" /> </bezel> |
| 92 | <bezel name="pg_3012" element="Page3" state="0"> <bounds x=" 6" y=" 5" width="5" height="1" /> </bezel> |
| 93 | <bezel name="pg_3013" element="Page3" state="0"> <bounds x=" 6" y=" 6" width="5" height="1" /> </bezel> |
| 94 | <bezel name="pg_3014" element="Page3" state="0"> <bounds x=" 12" y=" 0" width="5" height="1" /> </bezel> |
| 95 | <bezel name="pg_3015" element="Page3" state="0"> <bounds x=" 12" y=" 1" width="5" height="1" /> </bezel> |
| 96 | <bezel name="pg_3016" element="Page3" state="0"> <bounds x=" 12" y=" 2" width="5" height="1" /> </bezel> |
| 97 | <bezel name="pg_3017" element="Page3" state="0"> <bounds x=" 12" y=" 3" width="5" height="1" /> </bezel> |
| 98 | <bezel name="pg_3018" element="Page3" state="0"> <bounds x=" 12" y=" 4" width="5" height="1" /> </bezel> |
| 99 | <bezel name="pg_3019" element="Page3" state="0"> <bounds x=" 12" y=" 5" width="5" height="1" /> </bezel> |
| 100 | <bezel name="pg_3020" element="Page3" state="0"> <bounds x=" 12" y=" 6" width="5" height="1" /> </bezel> |
| 101 | <bezel name="pg_3021" element="Page3" state="0"> <bounds x=" 18" y=" 0" width="5" height="1" /> </bezel> |
| 102 | <bezel name="pg_3022" element="Page3" state="0"> <bounds x=" 18" y=" 1" width="5" height="1" /> </bezel> |
| 103 | <bezel name="pg_3023" element="Page3" state="0"> <bounds x=" 18" y=" 2" width="5" height="1" /> </bezel> |
| 104 | <bezel name="pg_3024" element="Page3" state="0"> <bounds x=" 18" y=" 3" width="5" height="1" /> </bezel> |
| 105 | <bezel name="pg_3025" element="Page3" state="0"> <bounds x=" 18" y=" 4" width="5" height="1" /> </bezel> |
| 106 | <bezel name="pg_3026" element="Page3" state="0"> <bounds x=" 18" y=" 5" width="5" height="1" /> </bezel> |
| 107 | <bezel name="pg_3027" element="Page3" state="0"> <bounds x=" 18" y=" 6" width="5" height="1" /> </bezel> |
| 108 | <bezel name="pg_3028" element="Page3" state="0"> <bounds x=" 24" y=" 0" width="5" height="1" /> </bezel> |
| 109 | <bezel name="pg_3029" element="Page3" state="0"> <bounds x=" 24" y=" 1" width="5" height="1" /> </bezel> |
| 110 | <bezel name="pg_3030" element="Page3" state="0"> <bounds x=" 24" y=" 2" width="5" height="1" /> </bezel> |
| 111 | <bezel name="pg_3031" element="Page3" state="0"> <bounds x=" 24" y=" 3" width="5" height="1" /> </bezel> |
| 112 | <bezel name="pg_3032" element="Page3" state="0"> <bounds x=" 24" y=" 4" width="5" height="1" /> </bezel> |
| 113 | <bezel name="pg_3033" element="Page3" state="0"> <bounds x=" 24" y=" 5" width="5" height="1" /> </bezel> |
| 114 | <bezel name="pg_3034" element="Page3" state="0"> <bounds x=" 24" y=" 6" width="5" height="1" /> </bezel> |
| 115 | <bezel name="pg_3035" element="Page3" state="0"> <bounds x=" 30" y=" 0" width="5" height="1" /> </bezel> |
| 116 | <bezel name="pg_3036" element="Page3" state="0"> <bounds x=" 30" y=" 1" width="5" height="1" /> </bezel> |
| 117 | <bezel name="pg_3037" element="Page3" state="0"> <bounds x=" 30" y=" 2" width="5" height="1" /> </bezel> |
| 118 | <bezel name="pg_3038" element="Page3" state="0"> <bounds x=" 30" y=" 3" width="5" height="1" /> </bezel> |
| 119 | <bezel name="pg_3039" element="Page3" state="0"> <bounds x=" 30" y=" 4" width="5" height="1" /> </bezel> |
| 120 | <bezel name="pg_3040" element="Page3" state="0"> <bounds x=" 30" y=" 5" width="5" height="1" /> </bezel> |
| 121 | <bezel name="pg_3041" element="Page3" state="0"> <bounds x=" 30" y=" 6" width="5" height="1" /> </bezel> |
| 122 | <bezel name="pg_3042" element="Page3" state="0"> <bounds x=" 36" y=" 0" width="5" height="1" /> </bezel> |
| 123 | <bezel name="pg_3043" element="Page3" state="0"> <bounds x=" 36" y=" 1" width="5" height="1" /> </bezel> |
| 124 | <bezel name="pg_3044" element="Page3" state="0"> <bounds x=" 36" y=" 2" width="5" height="1" /> </bezel> |
| 125 | <bezel name="pg_3045" element="Page3" state="0"> <bounds x=" 36" y=" 3" width="5" height="1" /> </bezel> |
| 126 | <bezel name="pg_3046" element="Page3" state="0"> <bounds x=" 36" y=" 4" width="5" height="1" /> </bezel> |
| 127 | <bezel name="pg_3047" element="Page3" state="0"> <bounds x=" 36" y=" 5" width="5" height="1" /> </bezel> |
| 128 | <bezel name="pg_3048" element="Page3" state="0"> <bounds x=" 36" y=" 6" width="5" height="1" /> </bezel> |
| 129 | <bezel name="pg_3049" element="Page3" state="0"> <bounds x=" 42" y=" 0" width="5" height="1" /> </bezel> |
| 130 | <bezel name="pg_3050" element="Page3" state="0"> <bounds x=" 42" y=" 1" width="5" height="1" /> </bezel> |
| 131 | <bezel name="pg_3051" element="Page3" state="0"> <bounds x=" 42" y=" 2" width="5" height="1" /> </bezel> |
| 132 | <bezel name="pg_3052" element="Page3" state="0"> <bounds x=" 42" y=" 3" width="5" height="1" /> </bezel> |
| 133 | <bezel name="pg_3053" element="Page3" state="0"> <bounds x=" 42" y=" 4" width="5" height="1" /> </bezel> |
| 134 | <bezel name="pg_3054" element="Page3" state="0"> <bounds x=" 42" y=" 5" width="5" height="1" /> </bezel> |
| 135 | <bezel name="pg_3055" element="Page3" state="0"> <bounds x=" 42" y=" 6" width="5" height="1" /> </bezel> |
| 136 | <bezel name="pg_3056" element="Page3" state="0"> <bounds x=" 48" y=" 0" width="5" height="1" /> </bezel> |
| 137 | <bezel name="pg_3057" element="Page3" state="0"> <bounds x=" 48" y=" 1" width="5" height="1" /> </bezel> |
| 138 | <bezel name="pg_3058" element="Page3" state="0"> <bounds x=" 48" y=" 2" width="5" height="1" /> </bezel> |
| 139 | <bezel name="pg_3059" element="Page3" state="0"> <bounds x=" 48" y=" 3" width="5" height="1" /> </bezel> |
| 140 | <bezel name="pg_3060" element="Page3" state="0"> <bounds x=" 48" y=" 4" width="5" height="1" /> </bezel> |
| 141 | <bezel name="pg_3061" element="Page3" state="0"> <bounds x=" 48" y=" 5" width="5" height="1" /> </bezel> |
| 142 | <bezel name="pg_3062" element="Page3" state="0"> <bounds x=" 48" y=" 6" width="5" height="1" /> </bezel> |
| 143 | <bezel name="pg_3063" element="Page3" state="0"> <bounds x=" 54" y=" 0" width="5" height="1" /> </bezel> |
| 144 | <bezel name="pg_3064" element="Page3" state="0"> <bounds x=" 54" y=" 1" width="5" height="1" /> </bezel> |
| 145 | <bezel name="pg_3065" element="Page3" state="0"> <bounds x=" 54" y=" 2" width="5" height="1" /> </bezel> |
| 146 | <bezel name="pg_3066" element="Page3" state="0"> <bounds x=" 54" y=" 3" width="5" height="1" /> </bezel> |
| 147 | <bezel name="pg_3067" element="Page3" state="0"> <bounds x=" 54" y=" 4" width="5" height="1" /> </bezel> |
| 148 | <bezel name="pg_3068" element="Page3" state="0"> <bounds x=" 54" y=" 5" width="5" height="1" /> </bezel> |
| 149 | <bezel name="pg_3069" element="Page3" state="0"> <bounds x=" 54" y=" 6" width="5" height="1" /> </bezel> |
| 150 | <bezel name="pg_3070" element="Page3" state="0"> <bounds x=" 60" y=" 0" width="5" height="1" /> </bezel> |
| 151 | <bezel name="pg_3071" element="Page3" state="0"> <bounds x=" 60" y=" 1" width="5" height="1" /> </bezel> |
| 152 | <bezel name="pg_3072" element="Page3" state="0"> <bounds x=" 60" y=" 2" width="5" height="1" /> </bezel> |
| 153 | <bezel name="pg_3073" element="Page3" state="0"> <bounds x=" 60" y=" 3" width="5" height="1" /> </bezel> |
| 154 | <bezel name="pg_3074" element="Page3" state="0"> <bounds x=" 60" y=" 4" width="5" height="1" /> </bezel> |
| 155 | <bezel name="pg_3075" element="Page3" state="0"> <bounds x=" 60" y=" 5" width="5" height="1" /> </bezel> |
| 156 | <bezel name="pg_3076" element="Page3" state="0"> <bounds x=" 60" y=" 6" width="5" height="1" /> </bezel> |
| 157 | <bezel name="pg_3077" element="Page3" state="0"> <bounds x=" 66" y=" 0" width="5" height="1" /> </bezel> |
| 158 | <bezel name="pg_3078" element="Page3" state="0"> <bounds x=" 66" y=" 1" width="5" height="1" /> </bezel> |
| 159 | <bezel name="pg_3079" element="Page3" state="0"> <bounds x=" 66" y=" 2" width="5" height="1" /> </bezel> |
| 160 | <bezel name="pg_3080" element="Page3" state="0"> <bounds x=" 66" y=" 3" width="5" height="1" /> </bezel> |
| 161 | <bezel name="pg_3081" element="Page3" state="0"> <bounds x=" 66" y=" 4" width="5" height="1" /> </bezel> |
| 162 | <bezel name="pg_3082" element="Page3" state="0"> <bounds x=" 66" y=" 5" width="5" height="1" /> </bezel> |
| 163 | <bezel name="pg_3083" element="Page3" state="0"> <bounds x=" 66" y=" 6" width="5" height="1" /> </bezel> |
| 164 | <bezel name="pg_3084" element="Page3" state="0"> <bounds x=" 72" y=" 0" width="5" height="1" /> </bezel> |
| 165 | <bezel name="pg_3085" element="Page3" state="0"> <bounds x=" 72" y=" 1" width="5" height="1" /> </bezel> |
| 166 | <bezel name="pg_3086" element="Page3" state="0"> <bounds x=" 72" y=" 2" width="5" height="1" /> </bezel> |
| 167 | <bezel name="pg_3087" element="Page3" state="0"> <bounds x=" 72" y=" 3" width="5" height="1" /> </bezel> |
| 168 | <bezel name="pg_3088" element="Page3" state="0"> <bounds x=" 72" y=" 4" width="5" height="1" /> </bezel> |
| 169 | <bezel name="pg_3089" element="Page3" state="0"> <bounds x=" 72" y=" 5" width="5" height="1" /> </bezel> |
| 170 | <bezel name="pg_3090" element="Page3" state="0"> <bounds x=" 72" y=" 6" width="5" height="1" /> </bezel> |
| 171 | <bezel name="pg_3091" element="Page3" state="0"> <bounds x=" 78" y=" 0" width="5" height="1" /> </bezel> |
| 172 | <bezel name="pg_3092" element="Page3" state="0"> <bounds x=" 78" y=" 1" width="5" height="1" /> </bezel> |
| 173 | <bezel name="pg_3093" element="Page3" state="0"> <bounds x=" 78" y=" 2" width="5" height="1" /> </bezel> |
| 174 | <bezel name="pg_3094" element="Page3" state="0"> <bounds x=" 78" y=" 3" width="5" height="1" /> </bezel> |
| 175 | <bezel name="pg_3095" element="Page3" state="0"> <bounds x=" 78" y=" 4" width="5" height="1" /> </bezel> |
| 176 | <bezel name="pg_3096" element="Page3" state="0"> <bounds x=" 78" y=" 5" width="5" height="1" /> </bezel> |
| 177 | <bezel name="pg_3097" element="Page3" state="0"> <bounds x=" 78" y=" 6" width="5" height="1" /> </bezel> |
| 178 | <bezel name="pg_3098" element="Page3" state="0"> <bounds x=" 84" y=" 0" width="5" height="1" /> </bezel> |
| 179 | <bezel name="pg_3099" element="Page3" state="0"> <bounds x=" 84" y=" 1" width="5" height="1" /> </bezel> |
| 180 | <bezel name="pg_3100" element="Page3" state="0"> <bounds x=" 84" y=" 2" width="5" height="1" /> </bezel> |
| 181 | <bezel name="pg_3101" element="Page3" state="0"> <bounds x=" 84" y=" 3" width="5" height="1" /> </bezel> |
| 182 | <bezel name="pg_3102" element="Page3" state="0"> <bounds x=" 84" y=" 4" width="5" height="1" /> </bezel> |
| 183 | <bezel name="pg_3103" element="Page3" state="0"> <bounds x=" 84" y=" 5" width="5" height="1" /> </bezel> |
| 184 | <bezel name="pg_3104" element="Page3" state="0"> <bounds x=" 84" y=" 6" width="5" height="1" /> </bezel> |
| 185 | <bezel name="pg_3105" element="Page3" state="0"> <bounds x=" 90" y=" 0" width="5" height="1" /> </bezel> |
| 186 | <bezel name="pg_3106" element="Page3" state="0"> <bounds x=" 90" y=" 1" width="5" height="1" /> </bezel> |
| 187 | <bezel name="pg_3107" element="Page3" state="0"> <bounds x=" 90" y=" 2" width="5" height="1" /> </bezel> |
| 188 | <bezel name="pg_3108" element="Page3" state="0"> <bounds x=" 90" y=" 3" width="5" height="1" /> </bezel> |
| 189 | <bezel name="pg_3109" element="Page3" state="0"> <bounds x=" 90" y=" 4" width="5" height="1" /> </bezel> |
| 190 | <bezel name="pg_3110" element="Page3" state="0"> <bounds x=" 90" y=" 5" width="5" height="1" /> </bezel> |
| 191 | <bezel name="pg_3111" element="Page3" state="0"> <bounds x=" 90" y=" 6" width="5" height="1" /> </bezel> |
| 192 | <bezel name="pg_3112" element="Page3" state="0"> <bounds x=" 0" y=" 10" width="5" height="1" /> </bezel> |
| 193 | <bezel name="pg_3113" element="Page3" state="0"> <bounds x=" 0" y=" 11" width="5" height="1" /> </bezel> |
| 194 | <bezel name="pg_3114" element="Page3" state="0"> <bounds x=" 0" y=" 12" width="5" height="1" /> </bezel> |
| 195 | <bezel name="pg_3115" element="Page3" state="0"> <bounds x=" 0" y=" 13" width="5" height="1" /> </bezel> |
| 196 | <bezel name="pg_3116" element="Page3" state="0"> <bounds x=" 0" y=" 14" width="5" height="1" /> </bezel> |
| 197 | <bezel name="pg_3117" element="Page3" state="0"> <bounds x=" 0" y=" 15" width="5" height="1" /> </bezel> |
| 198 | <bezel name="pg_3118" element="Page3" state="0"> <bounds x=" 0" y=" 16" width="5" height="1" /> </bezel> |
| 199 | <bezel name="pg_3119" element="Page3" state="0"> <bounds x=" 6" y=" 10" width="5" height="1" /> </bezel> |
| 200 | <bezel name="pg_3120" element="Page3" state="0"> <bounds x=" 6" y=" 11" width="5" height="1" /> </bezel> |
| 201 | <bezel name="pg_3121" element="Page3" state="0"> <bounds x=" 6" y=" 12" width="5" height="1" /> </bezel> |
| 202 | <bezel name="pg_3122" element="Page3" state="0"> <bounds x=" 6" y=" 13" width="5" height="1" /> </bezel> |
| 203 | <bezel name="pg_3123" element="Page3" state="0"> <bounds x=" 6" y=" 14" width="5" height="1" /> </bezel> |
| 204 | <bezel name="pg_3124" element="Page3" state="0"> <bounds x=" 6" y=" 15" width="5" height="1" /> </bezel> |
| 205 | <bezel name="pg_3125" element="Page3" state="0"> <bounds x=" 6" y=" 16" width="5" height="1" /> </bezel> |
| 206 | <bezel name="pg_3126" element="Page3" state="0"> <bounds x=" 12" y=" 10" width="5" height="1" /> </bezel> |
| 207 | <bezel name="pg_3127" element="Page3" state="0"> <bounds x=" 12" y=" 11" width="5" height="1" /> </bezel> |
| 208 | <bezel name="pg_3128" element="Page3" state="0"> <bounds x=" 12" y=" 12" width="5" height="1" /> </bezel> |
| 209 | <bezel name="pg_3129" element="Page3" state="0"> <bounds x=" 12" y=" 13" width="5" height="1" /> </bezel> |
| 210 | <bezel name="pg_3130" element="Page3" state="0"> <bounds x=" 12" y=" 14" width="5" height="1" /> </bezel> |
| 211 | <bezel name="pg_3131" element="Page3" state="0"> <bounds x=" 12" y=" 15" width="5" height="1" /> </bezel> |
| 212 | <bezel name="pg_3132" element="Page3" state="0"> <bounds x=" 12" y=" 16" width="5" height="1" /> </bezel> |
| 213 | <bezel name="pg_3133" element="Page3" state="0"> <bounds x=" 18" y=" 10" width="5" height="1" /> </bezel> |
| 214 | <bezel name="pg_3134" element="Page3" state="0"> <bounds x=" 18" y=" 11" width="5" height="1" /> </bezel> |
| 215 | <bezel name="pg_3135" element="Page3" state="0"> <bounds x=" 18" y=" 12" width="5" height="1" /> </bezel> |
| 216 | <bezel name="pg_3136" element="Page3" state="0"> <bounds x=" 18" y=" 13" width="5" height="1" /> </bezel> |
| 217 | <bezel name="pg_3137" element="Page3" state="0"> <bounds x=" 18" y=" 14" width="5" height="1" /> </bezel> |
| 218 | <bezel name="pg_3138" element="Page3" state="0"> <bounds x=" 18" y=" 15" width="5" height="1" /> </bezel> |
| 219 | <bezel name="pg_3139" element="Page3" state="0"> <bounds x=" 18" y=" 16" width="5" height="1" /> </bezel> |
| 220 | <bezel name="pg_3140" element="Page3" state="0"> <bounds x=" 24" y=" 10" width="5" height="1" /> </bezel> |
| 221 | <bezel name="pg_3141" element="Page3" state="0"> <bounds x=" 24" y=" 11" width="5" height="1" /> </bezel> |
| 222 | <bezel name="pg_3142" element="Page3" state="0"> <bounds x=" 24" y=" 12" width="5" height="1" /> </bezel> |
| 223 | <bezel name="pg_3143" element="Page3" state="0"> <bounds x=" 24" y=" 13" width="5" height="1" /> </bezel> |
| 224 | <bezel name="pg_3144" element="Page3" state="0"> <bounds x=" 24" y=" 14" width="5" height="1" /> </bezel> |
| 225 | <bezel name="pg_3145" element="Page3" state="0"> <bounds x=" 24" y=" 15" width="5" height="1" /> </bezel> |
| 226 | <bezel name="pg_3146" element="Page3" state="0"> <bounds x=" 24" y=" 16" width="5" height="1" /> </bezel> |
| 227 | <bezel name="pg_3147" element="Page3" state="0"> <bounds x=" 30" y=" 10" width="5" height="1" /> </bezel> |
| 228 | <bezel name="pg_3148" element="Page3" state="0"> <bounds x=" 30" y=" 11" width="5" height="1" /> </bezel> |
| 229 | <bezel name="pg_3149" element="Page3" state="0"> <bounds x=" 30" y=" 12" width="5" height="1" /> </bezel> |
| 230 | <bezel name="pg_3150" element="Page3" state="0"> <bounds x=" 30" y=" 13" width="5" height="1" /> </bezel> |
| 231 | <bezel name="pg_3151" element="Page3" state="0"> <bounds x=" 30" y=" 14" width="5" height="1" /> </bezel> |
| 232 | <bezel name="pg_3152" element="Page3" state="0"> <bounds x=" 30" y=" 15" width="5" height="1" /> </bezel> |
| 233 | <bezel name="pg_3153" element="Page3" state="0"> <bounds x=" 30" y=" 16" width="5" height="1" /> </bezel> |
| 234 | <bezel name="pg_3154" element="Page3" state="0"> <bounds x=" 36" y=" 10" width="5" height="1" /> </bezel> |
| 235 | <bezel name="pg_3155" element="Page3" state="0"> <bounds x=" 36" y=" 11" width="5" height="1" /> </bezel> |
| 236 | <bezel name="pg_3156" element="Page3" state="0"> <bounds x=" 36" y=" 12" width="5" height="1" /> </bezel> |
| 237 | <bezel name="pg_3157" element="Page3" state="0"> <bounds x=" 36" y=" 13" width="5" height="1" /> </bezel> |
| 238 | <bezel name="pg_3158" element="Page3" state="0"> <bounds x=" 36" y=" 14" width="5" height="1" /> </bezel> |
| 239 | <bezel name="pg_3159" element="Page3" state="0"> <bounds x=" 36" y=" 15" width="5" height="1" /> </bezel> |
| 240 | <bezel name="pg_3160" element="Page3" state="0"> <bounds x=" 36" y=" 16" width="5" height="1" /> </bezel> |
| 241 | <bezel name="pg_3161" element="Page3" state="0"> <bounds x=" 42" y=" 10" width="5" height="1" /> </bezel> |
| 242 | <bezel name="pg_3162" element="Page3" state="0"> <bounds x=" 42" y=" 11" width="5" height="1" /> </bezel> |
| 243 | <bezel name="pg_3163" element="Page3" state="0"> <bounds x=" 42" y=" 12" width="5" height="1" /> </bezel> |
| 244 | <bezel name="pg_3164" element="Page3" state="0"> <bounds x=" 42" y=" 13" width="5" height="1" /> </bezel> |
| 245 | <bezel name="pg_3165" element="Page3" state="0"> <bounds x=" 42" y=" 14" width="5" height="1" /> </bezel> |
| 246 | <bezel name="pg_3166" element="Page3" state="0"> <bounds x=" 42" y=" 15" width="5" height="1" /> </bezel> |
| 247 | <bezel name="pg_3167" element="Page3" state="0"> <bounds x=" 42" y=" 16" width="5" height="1" /> </bezel> |
| 248 | <bezel name="pg_3168" element="Page3" state="0"> <bounds x=" 48" y=" 10" width="5" height="1" /> </bezel> |
| 249 | <bezel name="pg_3169" element="Page3" state="0"> <bounds x=" 48" y=" 11" width="5" height="1" /> </bezel> |
| 250 | <bezel name="pg_3170" element="Page3" state="0"> <bounds x=" 48" y=" 12" width="5" height="1" /> </bezel> |
| 251 | <bezel name="pg_3171" element="Page3" state="0"> <bounds x=" 48" y=" 13" width="5" height="1" /> </bezel> |
| 252 | <bezel name="pg_3172" element="Page3" state="0"> <bounds x=" 48" y=" 14" width="5" height="1" /> </bezel> |
| 253 | <bezel name="pg_3173" element="Page3" state="0"> <bounds x=" 48" y=" 15" width="5" height="1" /> </bezel> |
| 254 | <bezel name="pg_3174" element="Page3" state="0"> <bounds x=" 48" y=" 16" width="5" height="1" /> </bezel> |
| 255 | <bezel name="pg_3175" element="Page3" state="0"> <bounds x=" 54" y=" 10" width="5" height="1" /> </bezel> |
| 256 | <bezel name="pg_3176" element="Page3" state="0"> <bounds x=" 54" y=" 11" width="5" height="1" /> </bezel> |
| 257 | <bezel name="pg_3177" element="Page3" state="0"> <bounds x=" 54" y=" 12" width="5" height="1" /> </bezel> |
| 258 | <bezel name="pg_3178" element="Page3" state="0"> <bounds x=" 54" y=" 13" width="5" height="1" /> </bezel> |
| 259 | <bezel name="pg_3179" element="Page3" state="0"> <bounds x=" 54" y=" 14" width="5" height="1" /> </bezel> |
| 260 | <bezel name="pg_3180" element="Page3" state="0"> <bounds x=" 54" y=" 15" width="5" height="1" /> </bezel> |
| 261 | <bezel name="pg_3181" element="Page3" state="0"> <bounds x=" 54" y=" 16" width="5" height="1" /> </bezel> |
| 262 | <bezel name="pg_3182" element="Page3" state="0"> <bounds x=" 60" y=" 10" width="5" height="1" /> </bezel> |
| 263 | <bezel name="pg_3183" element="Page3" state="0"> <bounds x=" 60" y=" 11" width="5" height="1" /> </bezel> |
| 264 | <bezel name="pg_3184" element="Page3" state="0"> <bounds x=" 60" y=" 12" width="5" height="1" /> </bezel> |
| 265 | <bezel name="pg_3185" element="Page3" state="0"> <bounds x=" 60" y=" 13" width="5" height="1" /> </bezel> |
| 266 | <bezel name="pg_3186" element="Page3" state="0"> <bounds x=" 60" y=" 14" width="5" height="1" /> </bezel> |
| 267 | <bezel name="pg_3187" element="Page3" state="0"> <bounds x=" 60" y=" 15" width="5" height="1" /> </bezel> |
| 268 | <bezel name="pg_3188" element="Page3" state="0"> <bounds x=" 60" y=" 16" width="5" height="1" /> </bezel> |
| 269 | <bezel name="pg_3189" element="Page3" state="0"> <bounds x=" 66" y=" 10" width="5" height="1" /> </bezel> |
| 270 | <bezel name="pg_3190" element="Page3" state="0"> <bounds x=" 66" y=" 11" width="5" height="1" /> </bezel> |
| 271 | <bezel name="pg_3191" element="Page3" state="0"> <bounds x=" 66" y=" 12" width="5" height="1" /> </bezel> |
| 272 | <bezel name="pg_3192" element="Page3" state="0"> <bounds x=" 66" y=" 13" width="5" height="1" /> </bezel> |
| 273 | <bezel name="pg_3193" element="Page3" state="0"> <bounds x=" 66" y=" 14" width="5" height="1" /> </bezel> |
| 274 | <bezel name="pg_3194" element="Page3" state="0"> <bounds x=" 66" y=" 15" width="5" height="1" /> </bezel> |
| 275 | <bezel name="pg_3195" element="Page3" state="0"> <bounds x=" 66" y=" 16" width="5" height="1" /> </bezel> |
| 276 | <bezel name="pg_3196" element="Page3" state="0"> <bounds x=" 72" y=" 10" width="5" height="1" /> </bezel> |
| 277 | <bezel name="pg_3197" element="Page3" state="0"> <bounds x=" 72" y=" 11" width="5" height="1" /> </bezel> |
| 278 | <bezel name="pg_3198" element="Page3" state="0"> <bounds x=" 72" y=" 12" width="5" height="1" /> </bezel> |
| 279 | <bezel name="pg_3199" element="Page3" state="0"> <bounds x=" 72" y=" 13" width="5" height="1" /> </bezel> |
| 280 | <bezel name="pg_3200" element="Page3" state="0"> <bounds x=" 72" y=" 14" width="5" height="1" /> </bezel> |
| 281 | <bezel name="pg_3201" element="Page3" state="0"> <bounds x=" 72" y=" 15" width="5" height="1" /> </bezel> |
| 282 | <bezel name="pg_3202" element="Page3" state="0"> <bounds x=" 72" y=" 16" width="5" height="1" /> </bezel> |
| 283 | <bezel name="pg_3203" element="Page3" state="0"> <bounds x=" 78" y=" 10" width="5" height="1" /> </bezel> |
| 284 | <bezel name="pg_3204" element="Page3" state="0"> <bounds x=" 78" y=" 11" width="5" height="1" /> </bezel> |
| 285 | <bezel name="pg_3205" element="Page3" state="0"> <bounds x=" 78" y=" 12" width="5" height="1" /> </bezel> |
| 286 | <bezel name="pg_3206" element="Page3" state="0"> <bounds x=" 78" y=" 13" width="5" height="1" /> </bezel> |
| 287 | <bezel name="pg_3207" element="Page3" state="0"> <bounds x=" 78" y=" 14" width="5" height="1" /> </bezel> |
| 288 | <bezel name="pg_3208" element="Page3" state="0"> <bounds x=" 78" y=" 15" width="5" height="1" /> </bezel> |
| 289 | <bezel name="pg_3209" element="Page3" state="0"> <bounds x=" 78" y=" 16" width="5" height="1" /> </bezel> |
| 290 | <bezel name="pg_3210" element="Page3" state="0"> <bounds x=" 84" y=" 10" width="5" height="1" /> </bezel> |
| 291 | <bezel name="pg_3211" element="Page3" state="0"> <bounds x=" 84" y=" 11" width="5" height="1" /> </bezel> |
| 292 | <bezel name="pg_3212" element="Page3" state="0"> <bounds x=" 84" y=" 12" width="5" height="1" /> </bezel> |
| 293 | <bezel name="pg_3213" element="Page3" state="0"> <bounds x=" 84" y=" 13" width="5" height="1" /> </bezel> |
| 294 | <bezel name="pg_3214" element="Page3" state="0"> <bounds x=" 84" y=" 14" width="5" height="1" /> </bezel> |
| 295 | <bezel name="pg_3215" element="Page3" state="0"> <bounds x=" 84" y=" 15" width="5" height="1" /> </bezel> |
| 296 | <bezel name="pg_3216" element="Page3" state="0"> <bounds x=" 84" y=" 16" width="5" height="1" /> </bezel> |
| 297 | <bezel name="pg_3217" element="Page3" state="0"> <bounds x=" 90" y=" 10" width="5" height="1" /> </bezel> |
| 298 | <bezel name="pg_3218" element="Page3" state="0"> <bounds x=" 90" y=" 11" width="5" height="1" /> </bezel> |
| 299 | <bezel name="pg_3219" element="Page3" state="0"> <bounds x=" 90" y=" 12" width="5" height="1" /> </bezel> |
| 300 | <bezel name="pg_3220" element="Page3" state="0"> <bounds x=" 90" y=" 13" width="5" height="1" /> </bezel> |
| 301 | <bezel name="pg_3221" element="Page3" state="0"> <bounds x=" 90" y=" 14" width="5" height="1" /> </bezel> |
| 302 | <bezel name="pg_3222" element="Page3" state="0"> <bounds x=" 90" y=" 15" width="5" height="1" /> </bezel> |
| 303 | <bezel name="pg_3223" element="Page3" state="0"> <bounds x=" 90" y=" 16" width="5" height="1" /> </bezel> |
| 304 | 304 | |
| 305 | | <bezel name="pg_2000" element="Page2" state="0"> <bounds x=" 0" y=" 20" width="5" height="1" /> </bezel> |
| 306 | | <bezel name="pg_2001" element="Page2" state="0"> <bounds x=" 0" y=" 21" width="5" height="1" /> </bezel> |
| 307 | | <bezel name="pg_2002" element="Page2" state="0"> <bounds x=" 0" y=" 22" width="5" height="1" /> </bezel> |
| 308 | | <bezel name="pg_2003" element="Page2" state="0"> <bounds x=" 0" y=" 23" width="5" height="1" /> </bezel> |
| 309 | | <bezel name="pg_2004" element="Page2" state="0"> <bounds x=" 0" y=" 24" width="5" height="1" /> </bezel> |
| 310 | | <bezel name="pg_2005" element="Page2" state="0"> <bounds x=" 0" y=" 25" width="5" height="1" /> </bezel> |
| 311 | | <bezel name="pg_2006" element="Page2" state="0"> <bounds x=" 0" y=" 26" width="5" height="1" /> </bezel> |
| 312 | | <bezel name="pg_2007" element="Page2" state="0"> <bounds x=" 6" y=" 20" width="5" height="1" /> </bezel> |
| 313 | | <bezel name="pg_2008" element="Page2" state="0"> <bounds x=" 6" y=" 21" width="5" height="1" /> </bezel> |
| 314 | | <bezel name="pg_2009" element="Page2" state="0"> <bounds x=" 6" y=" 22" width="5" height="1" /> </bezel> |
| 315 | | <bezel name="pg_2010" element="Page2" state="0"> <bounds x=" 6" y=" 23" width="5" height="1" /> </bezel> |
| 316 | | <bezel name="pg_2011" element="Page2" state="0"> <bounds x=" 6" y=" 24" width="5" height="1" /> </bezel> |
| 317 | | <bezel name="pg_2012" element="Page2" state="0"> <bounds x=" 6" y=" 25" width="5" height="1" /> </bezel> |
| 318 | | <bezel name="pg_2013" element="Page2" state="0"> <bounds x=" 6" y=" 26" width="5" height="1" /> </bezel> |
| 319 | | <bezel name="pg_2014" element="Page2" state="0"> <bounds x=" 12" y=" 20" width="5" height="1" /> </bezel> |
| 320 | | <bezel name="pg_2015" element="Page2" state="0"> <bounds x=" 12" y=" 21" width="5" height="1" /> </bezel> |
| 321 | | <bezel name="pg_2016" element="Page2" state="0"> <bounds x=" 12" y=" 22" width="5" height="1" /> </bezel> |
| 322 | | <bezel name="pg_2017" element="Page2" state="0"> <bounds x=" 12" y=" 23" width="5" height="1" /> </bezel> |
| 323 | | <bezel name="pg_2018" element="Page2" state="0"> <bounds x=" 12" y=" 24" width="5" height="1" /> </bezel> |
| 324 | | <bezel name="pg_2019" element="Page2" state="0"> <bounds x=" 12" y=" 25" width="5" height="1" /> </bezel> |
| 325 | | <bezel name="pg_2020" element="Page2" state="0"> <bounds x=" 12" y=" 26" width="5" height="1" /> </bezel> |
| 326 | | <bezel name="pg_2021" element="Page2" state="0"> <bounds x=" 18" y=" 20" width="5" height="1" /> </bezel> |
| 327 | | <bezel name="pg_2022" element="Page2" state="0"> <bounds x=" 18" y=" 21" width="5" height="1" /> </bezel> |
| 328 | | <bezel name="pg_2023" element="Page2" state="0"> <bounds x=" 18" y=" 22" width="5" height="1" /> </bezel> |
| 329 | | <bezel name="pg_2024" element="Page2" state="0"> <bounds x=" 18" y=" 23" width="5" height="1" /> </bezel> |
| 330 | | <bezel name="pg_2025" element="Page2" state="0"> <bounds x=" 18" y=" 24" width="5" height="1" /> </bezel> |
| 331 | | <bezel name="pg_2026" element="Page2" state="0"> <bounds x=" 18" y=" 25" width="5" height="1" /> </bezel> |
| 332 | | <bezel name="pg_2027" element="Page2" state="0"> <bounds x=" 18" y=" 26" width="5" height="1" /> </bezel> |
| 333 | | <bezel name="pg_2028" element="Page2" state="0"> <bounds x=" 24" y=" 20" width="5" height="1" /> </bezel> |
| 334 | | <bezel name="pg_2029" element="Page2" state="0"> <bounds x=" 24" y=" 21" width="5" height="1" /> </bezel> |
| 335 | | <bezel name="pg_2030" element="Page2" state="0"> <bounds x=" 24" y=" 22" width="5" height="1" /> </bezel> |
| 336 | | <bezel name="pg_2031" element="Page2" state="0"> <bounds x=" 24" y=" 23" width="5" height="1" /> </bezel> |
| 337 | | <bezel name="pg_2032" element="Page2" state="0"> <bounds x=" 24" y=" 24" width="5" height="1" /> </bezel> |
| 338 | | <bezel name="pg_2033" element="Page2" state="0"> <bounds x=" 24" y=" 25" width="5" height="1" /> </bezel> |
| 339 | | <bezel name="pg_2034" element="Page2" state="0"> <bounds x=" 24" y=" 26" width="5" height="1" /> </bezel> |
| 340 | | <bezel name="pg_2035" element="Page2" state="0"> <bounds x=" 30" y=" 20" width="5" height="1" /> </bezel> |
| 341 | | <bezel name="pg_2036" element="Page2" state="0"> <bounds x=" 30" y=" 21" width="5" height="1" /> </bezel> |
| 342 | | <bezel name="pg_2037" element="Page2" state="0"> <bounds x=" 30" y=" 22" width="5" height="1" /> </bezel> |
| 343 | | <bezel name="pg_2038" element="Page2" state="0"> <bounds x=" 30" y=" 23" width="5" height="1" /> </bezel> |
| 344 | | <bezel name="pg_2039" element="Page2" state="0"> <bounds x=" 30" y=" 24" width="5" height="1" /> </bezel> |
| 345 | | <bezel name="pg_2040" element="Page2" state="0"> <bounds x=" 30" y=" 25" width="5" height="1" /> </bezel> |
| 346 | | <bezel name="pg_2041" element="Page2" state="0"> <bounds x=" 30" y=" 26" width="5" height="1" /> </bezel> |
| 347 | | <bezel name="pg_2042" element="Page2" state="0"> <bounds x=" 36" y=" 20" width="5" height="1" /> </bezel> |
| 348 | | <bezel name="pg_2043" element="Page2" state="0"> <bounds x=" 36" y=" 21" width="5" height="1" /> </bezel> |
| 349 | | <bezel name="pg_2044" element="Page2" state="0"> <bounds x=" 36" y=" 22" width="5" height="1" /> </bezel> |
| 350 | | <bezel name="pg_2045" element="Page2" state="0"> <bounds x=" 36" y=" 23" width="5" height="1" /> </bezel> |
| 351 | | <bezel name="pg_2046" element="Page2" state="0"> <bounds x=" 36" y=" 24" width="5" height="1" /> </bezel> |
| 352 | | <bezel name="pg_2047" element="Page2" state="0"> <bounds x=" 36" y=" 25" width="5" height="1" /> </bezel> |
| 353 | | <bezel name="pg_2048" element="Page2" state="0"> <bounds x=" 36" y=" 26" width="5" height="1" /> </bezel> |
| 354 | | <bezel name="pg_2049" element="Page2" state="0"> <bounds x=" 42" y=" 20" width="5" height="1" /> </bezel> |
| 355 | | <bezel name="pg_2050" element="Page2" state="0"> <bounds x=" 42" y=" 21" width="5" height="1" /> </bezel> |
| 356 | | <bezel name="pg_2051" element="Page2" state="0"> <bounds x=" 42" y=" 22" width="5" height="1" /> </bezel> |
| 357 | | <bezel name="pg_2052" element="Page2" state="0"> <bounds x=" 42" y=" 23" width="5" height="1" /> </bezel> |
| 358 | | <bezel name="pg_2053" element="Page2" state="0"> <bounds x=" 42" y=" 24" width="5" height="1" /> </bezel> |
| 359 | | <bezel name="pg_2054" element="Page2" state="0"> <bounds x=" 42" y=" 25" width="5" height="1" /> </bezel> |
| 360 | | <bezel name="pg_2055" element="Page2" state="0"> <bounds x=" 42" y=" 26" width="5" height="1" /> </bezel> |
| 361 | | <bezel name="pg_2056" element="Page2" state="0"> <bounds x=" 48" y=" 20" width="5" height="1" /> </bezel> |
| 362 | | <bezel name="pg_2057" element="Page2" state="0"> <bounds x=" 48" y=" 21" width="5" height="1" /> </bezel> |
| 363 | | <bezel name="pg_2058" element="Page2" state="0"> <bounds x=" 48" y=" 22" width="5" height="1" /> </bezel> |
| 364 | | <bezel name="pg_2059" element="Page2" state="0"> <bounds x=" 48" y=" 23" width="5" height="1" /> </bezel> |
| 365 | | <bezel name="pg_2060" element="Page2" state="0"> <bounds x=" 48" y=" 24" width="5" height="1" /> </bezel> |
| 366 | | <bezel name="pg_2061" element="Page2" state="0"> <bounds x=" 48" y=" 25" width="5" height="1" /> </bezel> |
| 367 | | <bezel name="pg_2062" element="Page2" state="0"> <bounds x=" 48" y=" 26" width="5" height="1" /> </bezel> |
| 368 | | <bezel name="pg_2063" element="Page2" state="0"> <bounds x=" 54" y=" 20" width="5" height="1" /> </bezel> |
| 369 | | <bezel name="pg_2064" element="Page2" state="0"> <bounds x=" 54" y=" 21" width="5" height="1" /> </bezel> |
| 370 | | <bezel name="pg_2065" element="Page2" state="0"> <bounds x=" 54" y=" 22" width="5" height="1" /> </bezel> |
| 371 | | <bezel name="pg_2066" element="Page2" state="0"> <bounds x=" 54" y=" 23" width="5" height="1" /> </bezel> |
| 372 | | <bezel name="pg_2067" element="Page2" state="0"> <bounds x=" 54" y=" 24" width="5" height="1" /> </bezel> |
| 373 | | <bezel name="pg_2068" element="Page2" state="0"> <bounds x=" 54" y=" 25" width="5" height="1" /> </bezel> |
| 374 | | <bezel name="pg_2069" element="Page2" state="0"> <bounds x=" 54" y=" 26" width="5" height="1" /> </bezel> |
| 375 | | <bezel name="pg_2070" element="Page2" state="0"> <bounds x=" 60" y=" 20" width="5" height="1" /> </bezel> |
| 376 | | <bezel name="pg_2071" element="Page2" state="0"> <bounds x=" 60" y=" 21" width="5" height="1" /> </bezel> |
| 377 | | <bezel name="pg_2072" element="Page2" state="0"> <bounds x=" 60" y=" 22" width="5" height="1" /> </bezel> |
| 378 | | <bezel name="pg_2073" element="Page2" state="0"> <bounds x=" 60" y=" 23" width="5" height="1" /> </bezel> |
| 379 | | <bezel name="pg_2074" element="Page2" state="0"> <bounds x=" 60" y=" 24" width="5" height="1" /> </bezel> |
| 380 | | <bezel name="pg_2075" element="Page2" state="0"> <bounds x=" 60" y=" 25" width="5" height="1" /> </bezel> |
| 381 | | <bezel name="pg_2076" element="Page2" state="0"> <bounds x=" 60" y=" 26" width="5" height="1" /> </bezel> |
| 382 | | <bezel name="pg_2077" element="Page2" state="0"> <bounds x=" 66" y=" 20" width="5" height="1" /> </bezel> |
| 383 | | <bezel name="pg_2078" element="Page2" state="0"> <bounds x=" 66" y=" 21" width="5" height="1" /> </bezel> |
| 384 | | <bezel name="pg_2079" element="Page2" state="0"> <bounds x=" 66" y=" 22" width="5" height="1" /> </bezel> |
| 385 | | <bezel name="pg_2080" element="Page2" state="0"> <bounds x=" 66" y=" 23" width="5" height="1" /> </bezel> |
| 386 | | <bezel name="pg_2081" element="Page2" state="0"> <bounds x=" 66" y=" 24" width="5" height="1" /> </bezel> |
| 387 | | <bezel name="pg_2082" element="Page2" state="0"> <bounds x=" 66" y=" 25" width="5" height="1" /> </bezel> |
| 388 | | <bezel name="pg_2083" element="Page2" state="0"> <bounds x=" 66" y=" 26" width="5" height="1" /> </bezel> |
| 389 | | <bezel name="pg_2084" element="Page2" state="0"> <bounds x=" 72" y=" 20" width="5" height="1" /> </bezel> |
| 390 | | <bezel name="pg_2085" element="Page2" state="0"> <bounds x=" 72" y=" 21" width="5" height="1" /> </bezel> |
| 391 | | <bezel name="pg_2086" element="Page2" state="0"> <bounds x=" 72" y=" 22" width="5" height="1" /> </bezel> |
| 392 | | <bezel name="pg_2087" element="Page2" state="0"> <bounds x=" 72" y=" 23" width="5" height="1" /> </bezel> |
| 393 | | <bezel name="pg_2088" element="Page2" state="0"> <bounds x=" 72" y=" 24" width="5" height="1" /> </bezel> |
| 394 | | <bezel name="pg_2089" element="Page2" state="0"> <bounds x=" 72" y=" 25" width="5" height="1" /> </bezel> |
| 395 | | <bezel name="pg_2090" element="Page2" state="0"> <bounds x=" 72" y=" 26" width="5" height="1" /> </bezel> |
| 396 | | <bezel name="pg_2091" element="Page2" state="0"> <bounds x=" 78" y=" 20" width="5" height="1" /> </bezel> |
| 397 | | <bezel name="pg_2092" element="Page2" state="0"> <bounds x=" 78" y=" 21" width="5" height="1" /> </bezel> |
| 398 | | <bezel name="pg_2093" element="Page2" state="0"> <bounds x=" 78" y=" 22" width="5" height="1" /> </bezel> |
| 399 | | <bezel name="pg_2094" element="Page2" state="0"> <bounds x=" 78" y=" 23" width="5" height="1" /> </bezel> |
| 400 | | <bezel name="pg_2095" element="Page2" state="0"> <bounds x=" 78" y=" 24" width="5" height="1" /> </bezel> |
| 401 | | <bezel name="pg_2096" element="Page2" state="0"> <bounds x=" 78" y=" 25" width="5" height="1" /> </bezel> |
| 402 | | <bezel name="pg_2097" element="Page2" state="0"> <bounds x=" 78" y=" 26" width="5" height="1" /> </bezel> |
| 403 | | <bezel name="pg_2098" element="Page2" state="0"> <bounds x=" 84" y=" 20" width="5" height="1" /> </bezel> |
| 404 | | <bezel name="pg_2099" element="Page2" state="0"> <bounds x=" 84" y=" 21" width="5" height="1" /> </bezel> |
| 405 | | <bezel name="pg_2100" element="Page2" state="0"> <bounds x=" 84" y=" 22" width="5" height="1" /> </bezel> |
| 406 | | <bezel name="pg_2101" element="Page2" state="0"> <bounds x=" 84" y=" 23" width="5" height="1" /> </bezel> |
| 407 | | <bezel name="pg_2102" element="Page2" state="0"> <bounds x=" 84" y=" 24" width="5" height="1" /> </bezel> |
| 408 | | <bezel name="pg_2103" element="Page2" state="0"> <bounds x=" 84" y=" 25" width="5" height="1" /> </bezel> |
| 409 | | <bezel name="pg_2104" element="Page2" state="0"> <bounds x=" 84" y=" 26" width="5" height="1" /> </bezel> |
| 410 | | <bezel name="pg_2105" element="Page2" state="0"> <bounds x=" 90" y=" 20" width="5" height="1" /> </bezel> |
| 411 | | <bezel name="pg_2106" element="Page2" state="0"> <bounds x=" 90" y=" 21" width="5" height="1" /> </bezel> |
| 412 | | <bezel name="pg_2107" element="Page2" state="0"> <bounds x=" 90" y=" 22" width="5" height="1" /> </bezel> |
| 413 | | <bezel name="pg_2108" element="Page2" state="0"> <bounds x=" 90" y=" 23" width="5" height="1" /> </bezel> |
| 414 | | <bezel name="pg_2109" element="Page2" state="0"> <bounds x=" 90" y=" 24" width="5" height="1" /> </bezel> |
| 415 | | <bezel name="pg_2110" element="Page2" state="0"> <bounds x=" 90" y=" 25" width="5" height="1" /> </bezel> |
| 416 | | <bezel name="pg_2111" element="Page2" state="0"> <bounds x=" 90" y=" 26" width="5" height="1" /> </bezel> |
| 417 | | <bezel name="pg_2112" element="Page2" state="0"> <bounds x=" 0" y=" 30" width="5" height="1" /> </bezel> |
| 418 | | <bezel name="pg_2113" element="Page2" state="0"> <bounds x=" 0" y=" 31" width="5" height="1" /> </bezel> |
| 419 | | <bezel name="pg_2114" element="Page2" state="0"> <bounds x=" 0" y=" 32" width="5" height="1" /> </bezel> |
| 420 | | <bezel name="pg_2115" element="Page2" state="0"> <bounds x=" 0" y=" 33" width="5" height="1" /> </bezel> |
| 421 | | <bezel name="pg_2116" element="Page2" state="0"> <bounds x=" 0" y=" 34" width="5" height="1" /> </bezel> |
| 422 | | <bezel name="pg_2117" element="Page2" state="0"> <bounds x=" 0" y=" 35" width="5" height="1" /> </bezel> |
| 423 | | <bezel name="pg_2118" element="Page2" state="0"> <bounds x=" 0" y=" 36" width="5" height="1" /> </bezel> |
| 424 | | <bezel name="pg_2119" element="Page2" state="0"> <bounds x=" 6" y=" 30" width="5" height="1" /> </bezel> |
| 425 | | <bezel name="pg_2120" element="Page2" state="0"> <bounds x=" 6" y=" 31" width="5" height="1" /> </bezel> |
| 426 | | <bezel name="pg_2121" element="Page2" state="0"> <bounds x=" 6" y=" 32" width="5" height="1" /> </bezel> |
| 427 | | <bezel name="pg_2122" element="Page2" state="0"> <bounds x=" 6" y=" 33" width="5" height="1" /> </bezel> |
| 428 | | <bezel name="pg_2123" element="Page2" state="0"> <bounds x=" 6" y=" 34" width="5" height="1" /> </bezel> |
| 429 | | <bezel name="pg_2124" element="Page2" state="0"> <bounds x=" 6" y=" 35" width="5" height="1" /> </bezel> |
| 430 | | <bezel name="pg_2125" element="Page2" state="0"> <bounds x=" 6" y=" 36" width="5" height="1" /> </bezel> |
| 431 | | <bezel name="pg_2126" element="Page2" state="0"> <bounds x=" 12" y=" 30" width="5" height="1" /> </bezel> |
| 432 | | <bezel name="pg_2127" element="Page2" state="0"> <bounds x=" 12" y=" 31" width="5" height="1" /> </bezel> |
| 433 | | <bezel name="pg_2128" element="Page2" state="0"> <bounds x=" 12" y=" 32" width="5" height="1" /> </bezel> |
| 434 | | <bezel name="pg_2129" element="Page2" state="0"> <bounds x=" 12" y=" 33" width="5" height="1" /> </bezel> |
| 435 | | <bezel name="pg_2130" element="Page2" state="0"> <bounds x=" 12" y=" 34" width="5" height="1" /> </bezel> |
| 436 | | <bezel name="pg_2131" element="Page2" state="0"> <bounds x=" 12" y=" 35" width="5" height="1" /> </bezel> |
| 437 | | <bezel name="pg_2132" element="Page2" state="0"> <bounds x=" 12" y=" 36" width="5" height="1" /> </bezel> |
| 438 | | <bezel name="pg_2133" element="Page2" state="0"> <bounds x=" 18" y=" 30" width="5" height="1" /> </bezel> |
| 439 | | <bezel name="pg_2134" element="Page2" state="0"> <bounds x=" 18" y=" 31" width="5" height="1" /> </bezel> |
| 440 | | <bezel name="pg_2135" element="Page2" state="0"> <bounds x=" 18" y=" 32" width="5" height="1" /> </bezel> |
| 441 | | <bezel name="pg_2136" element="Page2" state="0"> <bounds x=" 18" y=" 33" width="5" height="1" /> </bezel> |
| 442 | | <bezel name="pg_2137" element="Page2" state="0"> <bounds x=" 18" y=" 34" width="5" height="1" /> </bezel> |
| 443 | | <bezel name="pg_2138" element="Page2" state="0"> <bounds x=" 18" y=" 35" width="5" height="1" /> </bezel> |
| 444 | | <bezel name="pg_2139" element="Page2" state="0"> <bounds x=" 18" y=" 36" width="5" height="1" /> </bezel> |
| 445 | | <bezel name="pg_2140" element="Page2" state="0"> <bounds x=" 24" y=" 30" width="5" height="1" /> </bezel> |
| 446 | | <bezel name="pg_2141" element="Page2" state="0"> <bounds x=" 24" y=" 31" width="5" height="1" /> </bezel> |
| 447 | | <bezel name="pg_2142" element="Page2" state="0"> <bounds x=" 24" y=" 32" width="5" height="1" /> </bezel> |
| 448 | | <bezel name="pg_2143" element="Page2" state="0"> <bounds x=" 24" y=" 33" width="5" height="1" /> </bezel> |
| 449 | | <bezel name="pg_2144" element="Page2" state="0"> <bounds x=" 24" y=" 34" width="5" height="1" /> </bezel> |
| 450 | | <bezel name="pg_2145" element="Page2" state="0"> <bounds x=" 24" y=" 35" width="5" height="1" /> </bezel> |
| 451 | | <bezel name="pg_2146" element="Page2" state="0"> <bounds x=" 24" y=" 36" width="5" height="1" /> </bezel> |
| 452 | | <bezel name="pg_2147" element="Page2" state="0"> <bounds x=" 30" y=" 30" width="5" height="1" /> </bezel> |
| 453 | | <bezel name="pg_2148" element="Page2" state="0"> <bounds x=" 30" y=" 31" width="5" height="1" /> </bezel> |
| 454 | | <bezel name="pg_2149" element="Page2" state="0"> <bounds x=" 30" y=" 32" width="5" height="1" /> </bezel> |
| 455 | | <bezel name="pg_2150" element="Page2" state="0"> <bounds x=" 30" y=" 33" width="5" height="1" /> </bezel> |
| 456 | | <bezel name="pg_2151" element="Page2" state="0"> <bounds x=" 30" y=" 34" width="5" height="1" /> </bezel> |
| 457 | | <bezel name="pg_2152" element="Page2" state="0"> <bounds x=" 30" y=" 35" width="5" height="1" /> </bezel> |
| 458 | | <bezel name="pg_2153" element="Page2" state="0"> <bounds x=" 30" y=" 36" width="5" height="1" /> </bezel> |
| 459 | | <bezel name="pg_2154" element="Page2" state="0"> <bounds x=" 36" y=" 30" width="5" height="1" /> </bezel> |
| 460 | | <bezel name="pg_2155" element="Page2" state="0"> <bounds x=" 36" y=" 31" width="5" height="1" /> </bezel> |
| 461 | | <bezel name="pg_2156" element="Page2" state="0"> <bounds x=" 36" y=" 32" width="5" height="1" /> </bezel> |
| 462 | | <bezel name="pg_2157" element="Page2" state="0"> <bounds x=" 36" y=" 33" width="5" height="1" /> </bezel> |
| 463 | | <bezel name="pg_2158" element="Page2" state="0"> <bounds x=" 36" y=" 34" width="5" height="1" /> </bezel> |
| 464 | | <bezel name="pg_2159" element="Page2" state="0"> <bounds x=" 36" y=" 35" width="5" height="1" /> </bezel> |
| 465 | | <bezel name="pg_2160" element="Page2" state="0"> <bounds x=" 36" y=" 36" width="5" height="1" /> </bezel> |
| 466 | | <bezel name="pg_2161" element="Page2" state="0"> <bounds x=" 42" y=" 30" width="5" height="1" /> </bezel> |
| 467 | | <bezel name="pg_2162" element="Page2" state="0"> <bounds x=" 42" y=" 31" width="5" height="1" /> </bezel> |
| 468 | | <bezel name="pg_2163" element="Page2" state="0"> <bounds x=" 42" y=" 32" width="5" height="1" /> </bezel> |
| 469 | | <bezel name="pg_2164" element="Page2" state="0"> <bounds x=" 42" y=" 33" width="5" height="1" /> </bezel> |
| 470 | | <bezel name="pg_2165" element="Page2" state="0"> <bounds x=" 42" y=" 34" width="5" height="1" /> </bezel> |
| 471 | | <bezel name="pg_2166" element="Page2" state="0"> <bounds x=" 42" y=" 35" width="5" height="1" /> </bezel> |
| 472 | | <bezel name="pg_2167" element="Page2" state="0"> <bounds x=" 42" y=" 36" width="5" height="1" /> </bezel> |
| 473 | | <bezel name="pg_2168" element="Page2" state="0"> <bounds x=" 48" y=" 30" width="5" height="1" /> </bezel> |
| 474 | | <bezel name="pg_2169" element="Page2" state="0"> <bounds x=" 48" y=" 31" width="5" height="1" /> </bezel> |
| 475 | | <bezel name="pg_2170" element="Page2" state="0"> <bounds x=" 48" y=" 32" width="5" height="1" /> </bezel> |
| 476 | | <bezel name="pg_2171" element="Page2" state="0"> <bounds x=" 48" y=" 33" width="5" height="1" /> </bezel> |
| 477 | | <bezel name="pg_2172" element="Page2" state="0"> <bounds x=" 48" y=" 34" width="5" height="1" /> </bezel> |
| 478 | | <bezel name="pg_2173" element="Page2" state="0"> <bounds x=" 48" y=" 35" width="5" height="1" /> </bezel> |
| 479 | | <bezel name="pg_2174" element="Page2" state="0"> <bounds x=" 48" y=" 36" width="5" height="1" /> </bezel> |
| 480 | | <bezel name="pg_2175" element="Page2" state="0"> <bounds x=" 54" y=" 30" width="5" height="1" /> </bezel> |
| 481 | | <bezel name="pg_2176" element="Page2" state="0"> <bounds x=" 54" y=" 31" width="5" height="1" /> </bezel> |
| 482 | | <bezel name="pg_2177" element="Page2" state="0"> <bounds x=" 54" y=" 32" width="5" height="1" /> </bezel> |
| 483 | | <bezel name="pg_2178" element="Page2" state="0"> <bounds x=" 54" y=" 33" width="5" height="1" /> </bezel> |
| 484 | | <bezel name="pg_2179" element="Page2" state="0"> <bounds x=" 54" y=" 34" width="5" height="1" /> </bezel> |
| 485 | | <bezel name="pg_2180" element="Page2" state="0"> <bounds x=" 54" y=" 35" width="5" height="1" /> </bezel> |
| 486 | | <bezel name="pg_2181" element="Page2" state="0"> <bounds x=" 54" y=" 36" width="5" height="1" /> </bezel> |
| 487 | | <bezel name="pg_2182" element="Page2" state="0"> <bounds x=" 60" y=" 30" width="5" height="1" /> </bezel> |
| 488 | | <bezel name="pg_2183" element="Page2" state="0"> <bounds x=" 60" y=" 31" width="5" height="1" /> </bezel> |
| 489 | | <bezel name="pg_2184" element="Page2" state="0"> <bounds x=" 60" y=" 32" width="5" height="1" /> </bezel> |
| 490 | | <bezel name="pg_2185" element="Page2" state="0"> <bounds x=" 60" y=" 33" width="5" height="1" /> </bezel> |
| 491 | | <bezel name="pg_2186" element="Page2" state="0"> <bounds x=" 60" y=" 34" width="5" height="1" /> </bezel> |
| 492 | | <bezel name="pg_2187" element="Page2" state="0"> <bounds x=" 60" y=" 35" width="5" height="1" /> </bezel> |
| 493 | | <bezel name="pg_2188" element="Page2" state="0"> <bounds x=" 60" y=" 36" width="5" height="1" /> </bezel> |
| 494 | | <bezel name="pg_2189" element="Page2" state="0"> <bounds x=" 66" y=" 30" width="5" height="1" /> </bezel> |
| 495 | | <bezel name="pg_2190" element="Page2" state="0"> <bounds x=" 66" y=" 31" width="5" height="1" /> </bezel> |
| 496 | | <bezel name="pg_2191" element="Page2" state="0"> <bounds x=" 66" y=" 32" width="5" height="1" /> </bezel> |
| 497 | | <bezel name="pg_2192" element="Page2" state="0"> <bounds x=" 66" y=" 33" width="5" height="1" /> </bezel> |
| 498 | | <bezel name="pg_2193" element="Page2" state="0"> <bounds x=" 66" y=" 34" width="5" height="1" /> </bezel> |
| 499 | | <bezel name="pg_2194" element="Page2" state="0"> <bounds x=" 66" y=" 35" width="5" height="1" /> </bezel> |
| 500 | | <bezel name="pg_2195" element="Page2" state="0"> <bounds x=" 66" y=" 36" width="5" height="1" /> </bezel> |
| 501 | | <bezel name="pg_2196" element="Page2" state="0"> <bounds x=" 72" y=" 30" width="5" height="1" /> </bezel> |
| 502 | | <bezel name="pg_2197" element="Page2" state="0"> <bounds x=" 72" y=" 31" width="5" height="1" /> </bezel> |
| 503 | | <bezel name="pg_2198" element="Page2" state="0"> <bounds x=" 72" y=" 32" width="5" height="1" /> </bezel> |
| 504 | | <bezel name="pg_2199" element="Page2" state="0"> <bounds x=" 72" y=" 33" width="5" height="1" /> </bezel> |
| 505 | | <bezel name="pg_2200" element="Page2" state="0"> <bounds x=" 72" y=" 34" width="5" height="1" /> </bezel> |
| 506 | | <bezel name="pg_2201" element="Page2" state="0"> <bounds x=" 72" y=" 35" width="5" height="1" /> </bezel> |
| 507 | | <bezel name="pg_2202" element="Page2" state="0"> <bounds x=" 72" y=" 36" width="5" height="1" /> </bezel> |
| 508 | | <bezel name="pg_2203" element="Page2" state="0"> <bounds x=" 78" y=" 30" width="5" height="1" /> </bezel> |
| 509 | | <bezel name="pg_2204" element="Page2" state="0"> <bounds x=" 78" y=" 31" width="5" height="1" /> </bezel> |
| 510 | | <bezel name="pg_2205" element="Page2" state="0"> <bounds x=" 78" y=" 32" width="5" height="1" /> </bezel> |
| 511 | | <bezel name="pg_2206" element="Page2" state="0"> <bounds x=" 78" y=" 33" width="5" height="1" /> </bezel> |
| 512 | | <bezel name="pg_2207" element="Page2" state="0"> <bounds x=" 78" y=" 34" width="5" height="1" /> </bezel> |
| 513 | | <bezel name="pg_2208" element="Page2" state="0"> <bounds x=" 78" y=" 35" width="5" height="1" /> </bezel> |
| 514 | | <bezel name="pg_2209" element="Page2" state="0"> <bounds x=" 78" y=" 36" width="5" height="1" /> </bezel> |
| 515 | | <bezel name="pg_2210" element="Page2" state="0"> <bounds x=" 84" y=" 30" width="5" height="1" /> </bezel> |
| 516 | | <bezel name="pg_2211" element="Page2" state="0"> <bounds x=" 84" y=" 31" width="5" height="1" /> </bezel> |
| 517 | | <bezel name="pg_2212" element="Page2" state="0"> <bounds x=" 84" y=" 32" width="5" height="1" /> </bezel> |
| 518 | | <bezel name="pg_2213" element="Page2" state="0"> <bounds x=" 84" y=" 33" width="5" height="1" /> </bezel> |
| 519 | | <bezel name="pg_2214" element="Page2" state="0"> <bounds x=" 84" y=" 34" width="5" height="1" /> </bezel> |
| 520 | | <bezel name="pg_2215" element="Page2" state="0"> <bounds x=" 84" y=" 35" width="5" height="1" /> </bezel> |
| 521 | | <bezel name="pg_2216" element="Page2" state="0"> <bounds x=" 84" y=" 36" width="5" height="1" /> </bezel> |
| 522 | | <bezel name="pg_2217" element="Page2" state="0"> <bounds x=" 90" y=" 30" width="5" height="1" /> </bezel> |
| 523 | | <bezel name="pg_2218" element="Page2" state="0"> <bounds x=" 90" y=" 31" width="5" height="1" /> </bezel> |
| 524 | | <bezel name="pg_2219" element="Page2" state="0"> <bounds x=" 90" y=" 32" width="5" height="1" /> </bezel> |
| 525 | | <bezel name="pg_2220" element="Page2" state="0"> <bounds x=" 90" y=" 33" width="5" height="1" /> </bezel> |
| 526 | | <bezel name="pg_2221" element="Page2" state="0"> <bounds x=" 90" y=" 34" width="5" height="1" /> </bezel> |
| 527 | | <bezel name="pg_2222" element="Page2" state="0"> <bounds x=" 90" y=" 35" width="5" height="1" /> </bezel> |
| 528 | | <bezel name="pg_2223" element="Page2" state="0"> <bounds x=" 90" y=" 36" width="5" height="1" /> </bezel> |
| 305 | <bezel name="pg_2000" element="Page2" state="0"> <bounds x=" 0" y=" 20" width="5" height="1" /> </bezel> |
| 306 | <bezel name="pg_2001" element="Page2" state="0"> <bounds x=" 0" y=" 21" width="5" height="1" /> </bezel> |
| 307 | <bezel name="pg_2002" element="Page2" state="0"> <bounds x=" 0" y=" 22" width="5" height="1" /> </bezel> |
| 308 | <bezel name="pg_2003" element="Page2" state="0"> <bounds x=" 0" y=" 23" width="5" height="1" /> </bezel> |
| 309 | <bezel name="pg_2004" element="Page2" state="0"> <bounds x=" 0" y=" 24" width="5" height="1" /> </bezel> |
| 310 | <bezel name="pg_2005" element="Page2" state="0"> <bounds x=" 0" y=" 25" width="5" height="1" /> </bezel> |
| 311 | <bezel name="pg_2006" element="Page2" state="0"> <bounds x=" 0" y=" 26" width="5" height="1" /> </bezel> |
| 312 | <bezel name="pg_2007" element="Page2" state="0"> <bounds x=" 6" y=" 20" width="5" height="1" /> </bezel> |
| 313 | <bezel name="pg_2008" element="Page2" state="0"> <bounds x=" 6" y=" 21" width="5" height="1" /> </bezel> |
| 314 | <bezel name="pg_2009" element="Page2" state="0"> <bounds x=" 6" y=" 22" width="5" height="1" /> </bezel> |
| 315 | <bezel name="pg_2010" element="Page2" state="0"> <bounds x=" 6" y=" 23" width="5" height="1" /> </bezel> |
| 316 | <bezel name="pg_2011" element="Page2" state="0"> <bounds x=" 6" y=" 24" width="5" height="1" /> </bezel> |
| 317 | <bezel name="pg_2012" element="Page2" state="0"> <bounds x=" 6" y=" 25" width="5" height="1" /> </bezel> |
| 318 | <bezel name="pg_2013" element="Page2" state="0"> <bounds x=" 6" y=" 26" width="5" height="1" /> </bezel> |
| 319 | <bezel name="pg_2014" element="Page2" state="0"> <bounds x=" 12" y=" 20" width="5" height="1" /> </bezel> |
| 320 | <bezel name="pg_2015" element="Page2" state="0"> <bounds x=" 12" y=" 21" width="5" height="1" /> </bezel> |
| 321 | <bezel name="pg_2016" element="Page2" state="0"> <bounds x=" 12" y=" 22" width="5" height="1" /> </bezel> |
| 322 | <bezel name="pg_2017" element="Page2" state="0"> <bounds x=" 12" y=" 23" width="5" height="1" /> </bezel> |
| 323 | <bezel name="pg_2018" element="Page2" state="0"> <bounds x=" 12" y=" 24" width="5" height="1" /> </bezel> |
| 324 | <bezel name="pg_2019" element="Page2" state="0"> <bounds x=" 12" y=" 25" width="5" height="1" /> </bezel> |
| 325 | <bezel name="pg_2020" element="Page2" state="0"> <bounds x=" 12" y=" 26" width="5" height="1" /> </bezel> |
| 326 | <bezel name="pg_2021" element="Page2" state="0"> <bounds x=" 18" y=" 20" width="5" height="1" /> </bezel> |
| 327 | <bezel name="pg_2022" element="Page2" state="0"> <bounds x=" 18" y=" 21" width="5" height="1" /> </bezel> |
| 328 | <bezel name="pg_2023" element="Page2" state="0"> <bounds x=" 18" y=" 22" width="5" height="1" /> </bezel> |
| 329 | <bezel name="pg_2024" element="Page2" state="0"> <bounds x=" 18" y=" 23" width="5" height="1" /> </bezel> |
| 330 | <bezel name="pg_2025" element="Page2" state="0"> <bounds x=" 18" y=" 24" width="5" height="1" /> </bezel> |
| 331 | <bezel name="pg_2026" element="Page2" state="0"> <bounds x=" 18" y=" 25" width="5" height="1" /> </bezel> |
| 332 | <bezel name="pg_2027" element="Page2" state="0"> <bounds x=" 18" y=" 26" width="5" height="1" /> </bezel> |
| 333 | <bezel name="pg_2028" element="Page2" state="0"> <bounds x=" 24" y=" 20" width="5" height="1" /> </bezel> |
| 334 | <bezel name="pg_2029" element="Page2" state="0"> <bounds x=" 24" y=" 21" width="5" height="1" /> </bezel> |
| 335 | <bezel name="pg_2030" element="Page2" state="0"> <bounds x=" 24" y=" 22" width="5" height="1" /> </bezel> |
| 336 | <bezel name="pg_2031" element="Page2" state="0"> <bounds x=" 24" y=" 23" width="5" height="1" /> </bezel> |
| 337 | <bezel name="pg_2032" element="Page2" state="0"> <bounds x=" 24" y=" 24" width="5" height="1" /> </bezel> |
| 338 | <bezel name="pg_2033" element="Page2" state="0"> <bounds x=" 24" y=" 25" width="5" height="1" /> </bezel> |
| 339 | <bezel name="pg_2034" element="Page2" state="0"> <bounds x=" 24" y=" 26" width="5" height="1" /> </bezel> |
| 340 | <bezel name="pg_2035" element="Page2" state="0"> <bounds x=" 30" y=" 20" width="5" height="1" /> </bezel> |
| 341 | <bezel name="pg_2036" element="Page2" state="0"> <bounds x=" 30" y=" 21" width="5" height="1" /> </bezel> |
| 342 | <bezel name="pg_2037" element="Page2" state="0"> <bounds x=" 30" y=" 22" width="5" height="1" /> </bezel> |
| 343 | <bezel name="pg_2038" element="Page2" state="0"> <bounds x=" 30" y=" 23" width="5" height="1" /> </bezel> |
| 344 | <bezel name="pg_2039" element="Page2" state="0"> <bounds x=" 30" y=" 24" width="5" height="1" /> </bezel> |
| 345 | <bezel name="pg_2040" element="Page2" state="0"> <bounds x=" 30" y=" 25" width="5" height="1" /> </bezel> |
| 346 | <bezel name="pg_2041" element="Page2" state="0"> <bounds x=" 30" y=" 26" width="5" height="1" /> </bezel> |
| 347 | <bezel name="pg_2042" element="Page2" state="0"> <bounds x=" 36" y=" 20" width="5" height="1" /> </bezel> |
| 348 | <bezel name="pg_2043" element="Page2" state="0"> <bounds x=" 36" y=" 21" width="5" height="1" /> </bezel> |
| 349 | <bezel name="pg_2044" element="Page2" state="0"> <bounds x=" 36" y=" 22" width="5" height="1" /> </bezel> |
| 350 | <bezel name="pg_2045" element="Page2" state="0"> <bounds x=" 36" y=" 23" width="5" height="1" /> </bezel> |
| 351 | <bezel name="pg_2046" element="Page2" state="0"> <bounds x=" 36" y=" 24" width="5" height="1" /> </bezel> |
| 352 | <bezel name="pg_2047" element="Page2" state="0"> <bounds x=" 36" y=" 25" width="5" height="1" /> </bezel> |
| 353 | <bezel name="pg_2048" element="Page2" state="0"> <bounds x=" 36" y=" 26" width="5" height="1" /> </bezel> |
| 354 | <bezel name="pg_2049" element="Page2" state="0"> <bounds x=" 42" y=" 20" width="5" height="1" /> </bezel> |
| 355 | <bezel name="pg_2050" element="Page2" state="0"> <bounds x=" 42" y=" 21" width="5" height="1" /> </bezel> |
| 356 | <bezel name="pg_2051" element="Page2" state="0"> <bounds x=" 42" y=" 22" width="5" height="1" /> </bezel> |
| 357 | <bezel name="pg_2052" element="Page2" state="0"> <bounds x=" 42" y=" 23" width="5" height="1" /> </bezel> |
| 358 | <bezel name="pg_2053" element="Page2" state="0"> <bounds x=" 42" y=" 24" width="5" height="1" /> </bezel> |
| 359 | <bezel name="pg_2054" element="Page2" state="0"> <bounds x=" 42" y=" 25" width="5" height="1" /> </bezel> |
| 360 | <bezel name="pg_2055" element="Page2" state="0"> <bounds x=" 42" y=" 26" width="5" height="1" /> </bezel> |
| 361 | <bezel name="pg_2056" element="Page2" state="0"> <bounds x=" 48" y=" 20" width="5" height="1" /> </bezel> |
| 362 | <bezel name="pg_2057" element="Page2" state="0"> <bounds x=" 48" y=" 21" width="5" height="1" /> </bezel> |
| 363 | <bezel name="pg_2058" element="Page2" state="0"> <bounds x=" 48" y=" 22" width="5" height="1" /> </bezel> |
| 364 | <bezel name="pg_2059" element="Page2" state="0"> <bounds x=" 48" y=" 23" width="5" height="1" /> </bezel> |
| 365 | <bezel name="pg_2060" element="Page2" state="0"> <bounds x=" 48" y=" 24" width="5" height="1" /> </bezel> |
| 366 | <bezel name="pg_2061" element="Page2" state="0"> <bounds x=" 48" y=" 25" width="5" height="1" /> </bezel> |
| 367 | <bezel name="pg_2062" element="Page2" state="0"> <bounds x=" 48" y=" 26" width="5" height="1" /> </bezel> |
| 368 | <bezel name="pg_2063" element="Page2" state="0"> <bounds x=" 54" y=" 20" width="5" height="1" /> </bezel> |
| 369 | <bezel name="pg_2064" element="Page2" state="0"> <bounds x=" 54" y=" 21" width="5" height="1" /> </bezel> |
| 370 | <bezel name="pg_2065" element="Page2" state="0"> <bounds x=" 54" y=" 22" width="5" height="1" /> </bezel> |
| 371 | <bezel name="pg_2066" element="Page2" state="0"> <bounds x=" 54" y=" 23" width="5" height="1" /> </bezel> |
| 372 | <bezel name="pg_2067" element="Page2" state="0"> <bounds x=" 54" y=" 24" width="5" height="1" /> </bezel> |
| 373 | <bezel name="pg_2068" element="Page2" state="0"> <bounds x=" 54" y=" 25" width="5" height="1" /> </bezel> |
| 374 | <bezel name="pg_2069" element="Page2" state="0"> <bounds x=" 54" y=" 26" width="5" height="1" /> </bezel> |
| 375 | <bezel name="pg_2070" element="Page2" state="0"> <bounds x=" 60" y=" 20" width="5" height="1" /> </bezel> |
| 376 | <bezel name="pg_2071" element="Page2" state="0"> <bounds x=" 60" y=" 21" width="5" height="1" /> </bezel> |
| 377 | <bezel name="pg_2072" element="Page2" state="0"> <bounds x=" 60" y=" 22" width="5" height="1" /> </bezel> |
| 378 | <bezel name="pg_2073" element="Page2" state="0"> <bounds x=" 60" y=" 23" width="5" height="1" /> </bezel> |
| 379 | <bezel name="pg_2074" element="Page2" state="0"> <bounds x=" 60" y=" 24" width="5" height="1" /> </bezel> |
| 380 | <bezel name="pg_2075" element="Page2" state="0"> <bounds x=" 60" y=" 25" width="5" height="1" /> </bezel> |
| 381 | <bezel name="pg_2076" element="Page2" state="0"> <bounds x=" 60" y=" 26" width="5" height="1" /> </bezel> |
| 382 | <bezel name="pg_2077" element="Page2" state="0"> <bounds x=" 66" y=" 20" width="5" height="1" /> </bezel> |
| 383 | <bezel name="pg_2078" element="Page2" state="0"> <bounds x=" 66" y=" 21" width="5" height="1" /> </bezel> |
| 384 | <bezel name="pg_2079" element="Page2" state="0"> <bounds x=" 66" y=" 22" width="5" height="1" /> </bezel> |
| 385 | <bezel name="pg_2080" element="Page2" state="0"> <bounds x=" 66" y=" 23" width="5" height="1" /> </bezel> |
| 386 | <bezel name="pg_2081" element="Page2" state="0"> <bounds x=" 66" y=" 24" width="5" height="1" /> </bezel> |
| 387 | <bezel name="pg_2082" element="Page2" state="0"> <bounds x=" 66" y=" 25" width="5" height="1" /> </bezel> |
| 388 | <bezel name="pg_2083" element="Page2" state="0"> <bounds x=" 66" y=" 26" width="5" height="1" /> </bezel> |
| 389 | <bezel name="pg_2084" element="Page2" state="0"> <bounds x=" 72" y=" 20" width="5" height="1" /> </bezel> |
| 390 | <bezel name="pg_2085" element="Page2" state="0"> <bounds x=" 72" y=" 21" width="5" height="1" /> </bezel> |
| 391 | <bezel name="pg_2086" element="Page2" state="0"> <bounds x=" 72" y=" 22" width="5" height="1" /> </bezel> |
| 392 | <bezel name="pg_2087" element="Page2" state="0"> <bounds x=" 72" y=" 23" width="5" height="1" /> </bezel> |
| 393 | <bezel name="pg_2088" element="Page2" state="0"> <bounds x=" 72" y=" 24" width="5" height="1" /> </bezel> |
| 394 | <bezel name="pg_2089" element="Page2" state="0"> <bounds x=" 72" y=" 25" width="5" height="1" /> </bezel> |
| 395 | <bezel name="pg_2090" element="Page2" state="0"> <bounds x=" 72" y=" 26" width="5" height="1" /> </bezel> |
| 396 | <bezel name="pg_2091" element="Page2" state="0"> <bounds x=" 78" y=" 20" width="5" height="1" /> </bezel> |
| 397 | <bezel name="pg_2092" element="Page2" state="0"> <bounds x=" 78" y=" 21" width="5" height="1" /> </bezel> |
| 398 | <bezel name="pg_2093" element="Page2" state="0"> <bounds x=" 78" y=" 22" width="5" height="1" /> </bezel> |
| 399 | <bezel name="pg_2094" element="Page2" state="0"> <bounds x=" 78" y=" 23" width="5" height="1" /> </bezel> |
| 400 | <bezel name="pg_2095" element="Page2" state="0"> <bounds x=" 78" y=" 24" width="5" height="1" /> </bezel> |
| 401 | <bezel name="pg_2096" element="Page2" state="0"> <bounds x=" 78" y=" 25" width="5" height="1" /> </bezel> |
| 402 | <bezel name="pg_2097" element="Page2" state="0"> <bounds x=" 78" y=" 26" width="5" height="1" /> </bezel> |
| 403 | <bezel name="pg_2098" element="Page2" state="0"> <bounds x=" 84" y=" 20" width="5" height="1" /> </bezel> |
| 404 | <bezel name="pg_2099" element="Page2" state="0"> <bounds x=" 84" y=" 21" width="5" height="1" /> </bezel> |
| 405 | <bezel name="pg_2100" element="Page2" state="0"> <bounds x=" 84" y=" 22" width="5" height="1" /> </bezel> |
| 406 | <bezel name="pg_2101" element="Page2" state="0"> <bounds x=" 84" y=" 23" width="5" height="1" /> </bezel> |
| 407 | <bezel name="pg_2102" element="Page2" state="0"> <bounds x=" 84" y=" 24" width="5" height="1" /> </bezel> |
| 408 | <bezel name="pg_2103" element="Page2" state="0"> <bounds x=" 84" y=" 25" width="5" height="1" /> </bezel> |
| 409 | <bezel name="pg_2104" element="Page2" state="0"> <bounds x=" 84" y=" 26" width="5" height="1" /> </bezel> |
| 410 | <bezel name="pg_2105" element="Page2" state="0"> <bounds x=" 90" y=" 20" width="5" height="1" /> </bezel> |
| 411 | <bezel name="pg_2106" element="Page2" state="0"> <bounds x=" 90" y=" 21" width="5" height="1" /> </bezel> |
| 412 | <bezel name="pg_2107" element="Page2" state="0"> <bounds x=" 90" y=" 22" width="5" height="1" /> </bezel> |
| 413 | <bezel name="pg_2108" element="Page2" state="0"> <bounds x=" 90" y=" 23" width="5" height="1" /> </bezel> |
| 414 | <bezel name="pg_2109" element="Page2" state="0"> <bounds x=" 90" y=" 24" width="5" height="1" /> </bezel> |
| 415 | <bezel name="pg_2110" element="Page2" state="0"> <bounds x=" 90" y=" 25" width="5" height="1" /> </bezel> |
| 416 | <bezel name="pg_2111" element="Page2" state="0"> <bounds x=" 90" y=" 26" width="5" height="1" /> </bezel> |
| 417 | <bezel name="pg_2112" element="Page2" state="0"> <bounds x=" 0" y=" 30" width="5" height="1" /> </bezel> |
| 418 | <bezel name="pg_2113" element="Page2" state="0"> <bounds x=" 0" y=" 31" width="5" height="1" /> </bezel> |
| 419 | <bezel name="pg_2114" element="Page2" state="0"> <bounds x=" 0" y=" 32" width="5" height="1" /> </bezel> |
| 420 | <bezel name="pg_2115" element="Page2" state="0"> <bounds x=" 0" y=" 33" width="5" height="1" /> </bezel> |
| 421 | <bezel name="pg_2116" element="Page2" state="0"> <bounds x=" 0" y=" 34" width="5" height="1" /> </bezel> |
| 422 | <bezel name="pg_2117" element="Page2" state="0"> <bounds x=" 0" y=" 35" width="5" height="1" /> </bezel> |
| 423 | <bezel name="pg_2118" element="Page2" state="0"> <bounds x=" 0" y=" 36" width="5" height="1" /> </bezel> |
| 424 | <bezel name="pg_2119" element="Page2" state="0"> <bounds x=" 6" y=" 30" width="5" height="1" /> </bezel> |
| 425 | <bezel name="pg_2120" element="Page2" state="0"> <bounds x=" 6" y=" 31" width="5" height="1" /> </bezel> |
| 426 | <bezel name="pg_2121" element="Page2" state="0"> <bounds x=" 6" y=" 32" width="5" height="1" /> </bezel> |
| 427 | <bezel name="pg_2122" element="Page2" state="0"> <bounds x=" 6" y=" 33" width="5" height="1" /> </bezel> |
| 428 | <bezel name="pg_2123" element="Page2" state="0"> <bounds x=" 6" y=" 34" width="5" height="1" /> </bezel> |
| 429 | <bezel name="pg_2124" element="Page2" state="0"> <bounds x=" 6" y=" 35" width="5" height="1" /> </bezel> |
| 430 | <bezel name="pg_2125" element="Page2" state="0"> <bounds x=" 6" y=" 36" width="5" height="1" /> </bezel> |
| 431 | <bezel name="pg_2126" element="Page2" state="0"> <bounds x=" 12" y=" 30" width="5" height="1" /> </bezel> |
| 432 | <bezel name="pg_2127" element="Page2" state="0"> <bounds x=" 12" y=" 31" width="5" height="1" /> </bezel> |
| 433 | <bezel name="pg_2128" element="Page2" state="0"> <bounds x=" 12" y=" 32" width="5" height="1" /> </bezel> |
| 434 | <bezel name="pg_2129" element="Page2" state="0"> <bounds x=" 12" y=" 33" width="5" height="1" /> </bezel> |
| 435 | <bezel name="pg_2130" element="Page2" state="0"> <bounds x=" 12" y=" 34" width="5" height="1" /> </bezel> |
| 436 | <bezel name="pg_2131" element="Page2" state="0"> <bounds x=" 12" y=" 35" width="5" height="1" /> </bezel> |
| 437 | <bezel name="pg_2132" element="Page2" state="0"> <bounds x=" 12" y=" 36" width="5" height="1" /> </bezel> |
| 438 | <bezel name="pg_2133" element="Page2" state="0"> <bounds x=" 18" y=" 30" width="5" height="1" /> </bezel> |
| 439 | <bezel name="pg_2134" element="Page2" state="0"> <bounds x=" 18" y=" 31" width="5" height="1" /> </bezel> |
| 440 | <bezel name="pg_2135" element="Page2" state="0"> <bounds x=" 18" y=" 32" width="5" height="1" /> </bezel> |
| 441 | <bezel name="pg_2136" element="Page2" state="0"> <bounds x=" 18" y=" 33" width="5" height="1" /> </bezel> |
| 442 | <bezel name="pg_2137" element="Page2" state="0"> <bounds x=" 18" y=" 34" width="5" height="1" /> </bezel> |
| 443 | <bezel name="pg_2138" element="Page2" state="0"> <bounds x=" 18" y=" 35" width="5" height="1" /> </bezel> |
| 444 | <bezel name="pg_2139" element="Page2" state="0"> <bounds x=" 18" y=" 36" width="5" height="1" /> </bezel> |
| 445 | <bezel name="pg_2140" element="Page2" state="0"> <bounds x=" 24" y=" 30" width="5" height="1" /> </bezel> |
| 446 | <bezel name="pg_2141" element="Page2" state="0"> <bounds x=" 24" y=" 31" width="5" height="1" /> </bezel> |
| 447 | <bezel name="pg_2142" element="Page2" state="0"> <bounds x=" 24" y=" 32" width="5" height="1" /> </bezel> |
| 448 | <bezel name="pg_2143" element="Page2" state="0"> <bounds x=" 24" y=" 33" width="5" height="1" /> </bezel> |
| 449 | <bezel name="pg_2144" element="Page2" state="0"> <bounds x=" 24" y=" 34" width="5" height="1" /> </bezel> |
| 450 | <bezel name="pg_2145" element="Page2" state="0"> <bounds x=" 24" y=" 35" width="5" height="1" /> </bezel> |
| 451 | <bezel name="pg_2146" element="Page2" state="0"> <bounds x=" 24" y=" 36" width="5" height="1" /> </bezel> |
| 452 | <bezel name="pg_2147" element="Page2" state="0"> <bounds x=" 30" y=" 30" width="5" height="1" /> </bezel> |
| 453 | <bezel name="pg_2148" element="Page2" state="0"> <bounds x=" 30" y=" 31" width="5" height="1" /> </bezel> |
| 454 | <bezel name="pg_2149" element="Page2" state="0"> <bounds x=" 30" y=" 32" width="5" height="1" /> </bezel> |
| 455 | <bezel name="pg_2150" element="Page2" state="0"> <bounds x=" 30" y=" 33" width="5" height="1" /> </bezel> |
| 456 | <bezel name="pg_2151" element="Page2" state="0"> <bounds x=" 30" y=" 34" width="5" height="1" /> </bezel> |
| 457 | <bezel name="pg_2152" element="Page2" state="0"> <bounds x=" 30" y=" 35" width="5" height="1" /> </bezel> |
| 458 | <bezel name="pg_2153" element="Page2" state="0"> <bounds x=" 30" y=" 36" width="5" height="1" /> </bezel> |
| 459 | <bezel name="pg_2154" element="Page2" state="0"> <bounds x=" 36" y=" 30" width="5" height="1" /> </bezel> |
| 460 | <bezel name="pg_2155" element="Page2" state="0"> <bounds x=" 36" y=" 31" width="5" height="1" /> </bezel> |
| 461 | <bezel name="pg_2156" element="Page2" state="0"> <bounds x=" 36" y=" 32" width="5" height="1" /> </bezel> |
| 462 | <bezel name="pg_2157" element="Page2" state="0"> <bounds x=" 36" y=" 33" width="5" height="1" /> </bezel> |
| 463 | <bezel name="pg_2158" element="Page2" state="0"> <bounds x=" 36" y=" 34" width="5" height="1" /> </bezel> |
| 464 | <bezel name="pg_2159" element="Page2" state="0"> <bounds x=" 36" y=" 35" width="5" height="1" /> </bezel> |
| 465 | <bezel name="pg_2160" element="Page2" state="0"> <bounds x=" 36" y=" 36" width="5" height="1" /> </bezel> |
| 466 | <bezel name="pg_2161" element="Page2" state="0"> <bounds x=" 42" y=" 30" width="5" height="1" /> </bezel> |
| 467 | <bezel name="pg_2162" element="Page2" state="0"> <bounds x=" 42" y=" 31" width="5" height="1" /> </bezel> |
| 468 | <bezel name="pg_2163" element="Page2" state="0"> <bounds x=" 42" y=" 32" width="5" height="1" /> </bezel> |
| 469 | <bezel name="pg_2164" element="Page2" state="0"> <bounds x=" 42" y=" 33" width="5" height="1" /> </bezel> |
| 470 | <bezel name="pg_2165" element="Page2" state="0"> <bounds x=" 42" y=" 34" width="5" height="1" /> </bezel> |
| 471 | <bezel name="pg_2166" element="Page2" state="0"> <bounds x=" 42" y=" 35" width="5" height="1" /> </bezel> |
| 472 | <bezel name="pg_2167" element="Page2" state="0"> <bounds x=" 42" y=" 36" width="5" height="1" /> </bezel> |
| 473 | <bezel name="pg_2168" element="Page2" state="0"> <bounds x=" 48" y=" 30" width="5" height="1" /> </bezel> |
| 474 | <bezel name="pg_2169" element="Page2" state="0"> <bounds x=" 48" y=" 31" width="5" height="1" /> </bezel> |
| 475 | <bezel name="pg_2170" element="Page2" state="0"> <bounds x=" 48" y=" 32" width="5" height="1" /> </bezel> |
| 476 | <bezel name="pg_2171" element="Page2" state="0"> <bounds x=" 48" y=" 33" width="5" height="1" /> </bezel> |
| 477 | <bezel name="pg_2172" element="Page2" state="0"> <bounds x=" 48" y=" 34" width="5" height="1" /> </bezel> |
| 478 | <bezel name="pg_2173" element="Page2" state="0"> <bounds x=" 48" y=" 35" width="5" height="1" /> </bezel> |
| 479 | <bezel name="pg_2174" element="Page2" state="0"> <bounds x=" 48" y=" 36" width="5" height="1" /> </bezel> |
| 480 | <bezel name="pg_2175" element="Page2" state="0"> <bounds x=" 54" y=" 30" width="5" height="1" /> </bezel> |
| 481 | <bezel name="pg_2176" element="Page2" state="0"> <bounds x=" 54" y=" 31" width="5" height="1" /> </bezel> |
| 482 | <bezel name="pg_2177" element="Page2" state="0"> <bounds x=" 54" y=" 32" width="5" height="1" /> </bezel> |
| 483 | <bezel name="pg_2178" element="Page2" state="0"> <bounds x=" 54" y=" 33" width="5" height="1" /> </bezel> |
| 484 | <bezel name="pg_2179" element="Page2" state="0"> <bounds x=" 54" y=" 34" width="5" height="1" /> </bezel> |
| 485 | <bezel name="pg_2180" element="Page2" state="0"> <bounds x=" 54" y=" 35" width="5" height="1" /> </bezel> |
| 486 | <bezel name="pg_2181" element="Page2" state="0"> <bounds x=" 54" y=" 36" width="5" height="1" /> </bezel> |
| 487 | <bezel name="pg_2182" element="Page2" state="0"> <bounds x=" 60" y=" 30" width="5" height="1" /> </bezel> |
| 488 | <bezel name="pg_2183" element="Page2" state="0"> <bounds x=" 60" y=" 31" width="5" height="1" /> </bezel> |
| 489 | <bezel name="pg_2184" element="Page2" state="0"> <bounds x=" 60" y=" 32" width="5" height="1" /> </bezel> |
| 490 | <bezel name="pg_2185" element="Page2" state="0"> <bounds x=" 60" y=" 33" width="5" height="1" /> </bezel> |
| 491 | <bezel name="pg_2186" element="Page2" state="0"> <bounds x=" 60" y=" 34" width="5" height="1" /> </bezel> |
| 492 | <bezel name="pg_2187" element="Page2" state="0"> <bounds x=" 60" y=" 35" width="5" height="1" /> </bezel> |
| 493 | <bezel name="pg_2188" element="Page2" state="0"> <bounds x=" 60" y=" 36" width="5" height="1" /> </bezel> |
| 494 | <bezel name="pg_2189" element="Page2" state="0"> <bounds x=" 66" y=" 30" width="5" height="1" /> </bezel> |
| 495 | <bezel name="pg_2190" element="Page2" state="0"> <bounds x=" 66" y=" 31" width="5" height="1" /> </bezel> |
| 496 | <bezel name="pg_2191" element="Page2" state="0"> <bounds x=" 66" y=" 32" width="5" height="1" /> </bezel> |
| 497 | <bezel name="pg_2192" element="Page2" state="0"> <bounds x=" 66" y=" 33" width="5" height="1" /> </bezel> |
| 498 | <bezel name="pg_2193" element="Page2" state="0"> <bounds x=" 66" y=" 34" width="5" height="1" /> </bezel> |
| 499 | <bezel name="pg_2194" element="Page2" state="0"> <bounds x=" 66" y=" 35" width="5" height="1" /> </bezel> |
| 500 | <bezel name="pg_2195" element="Page2" state="0"> <bounds x=" 66" y=" 36" width="5" height="1" /> </bezel> |
| 501 | <bezel name="pg_2196" element="Page2" state="0"> <bounds x=" 72" y=" 30" width="5" height="1" /> </bezel> |
| 502 | <bezel name="pg_2197" element="Page2" state="0"> <bounds x=" 72" y=" 31" width="5" height="1" /> </bezel> |
| 503 | <bezel name="pg_2198" element="Page2" state="0"> <bounds x=" 72" y=" 32" width="5" height="1" /> </bezel> |
| 504 | <bezel name="pg_2199" element="Page2" state="0"> <bounds x=" 72" y=" 33" width="5" height="1" /> </bezel> |
| 505 | <bezel name="pg_2200" element="Page2" state="0"> <bounds x=" 72" y=" 34" width="5" height="1" /> </bezel> |
| 506 | <bezel name="pg_2201" element="Page2" state="0"> <bounds x=" 72" y=" 35" width="5" height="1" /> </bezel> |
| 507 | <bezel name="pg_2202" element="Page2" state="0"> <bounds x=" 72" y=" 36" width="5" height="1" /> </bezel> |
| 508 | <bezel name="pg_2203" element="Page2" state="0"> <bounds x=" 78" y=" 30" width="5" height="1" /> </bezel> |
| 509 | <bezel name="pg_2204" element="Page2" state="0"> <bounds x=" 78" y=" 31" width="5" height="1" /> </bezel> |
| 510 | <bezel name="pg_2205" element="Page2" state="0"> <bounds x=" 78" y=" 32" width="5" height="1" /> </bezel> |
| 511 | <bezel name="pg_2206" element="Page2" state="0"> <bounds x=" 78" y=" 33" width="5" height="1" /> </bezel> |
| 512 | <bezel name="pg_2207" element="Page2" state="0"> <bounds x=" 78" y=" 34" width="5" height="1" /> </bezel> |
| 513 | <bezel name="pg_2208" element="Page2" state="0"> <bounds x=" 78" y=" 35" width="5" height="1" /> </bezel> |
| 514 | <bezel name="pg_2209" element="Page2" state="0"> <bounds x=" 78" y=" 36" width="5" height="1" /> </bezel> |
| 515 | <bezel name="pg_2210" element="Page2" state="0"> <bounds x=" 84" y=" 30" width="5" height="1" /> </bezel> |
| 516 | <bezel name="pg_2211" element="Page2" state="0"> <bounds x=" 84" y=" 31" width="5" height="1" /> </bezel> |
| 517 | <bezel name="pg_2212" element="Page2" state="0"> <bounds x=" 84" y=" 32" width="5" height="1" /> </bezel> |
| 518 | <bezel name="pg_2213" element="Page2" state="0"> <bounds x=" 84" y=" 33" width="5" height="1" /> </bezel> |
| 519 | <bezel name="pg_2214" element="Page2" state="0"> <bounds x=" 84" y=" 34" width="5" height="1" /> </bezel> |
| 520 | <bezel name="pg_2215" element="Page2" state="0"> <bounds x=" 84" y=" 35" width="5" height="1" /> </bezel> |
| 521 | <bezel name="pg_2216" element="Page2" state="0"> <bounds x=" 84" y=" 36" width="5" height="1" /> </bezel> |
| 522 | <bezel name="pg_2217" element="Page2" state="0"> <bounds x=" 90" y=" 30" width="5" height="1" /> </bezel> |
| 523 | <bezel name="pg_2218" element="Page2" state="0"> <bounds x=" 90" y=" 31" width="5" height="1" /> </bezel> |
| 524 | <bezel name="pg_2219" element="Page2" state="0"> <bounds x=" 90" y=" 32" width="5" height="1" /> </bezel> |
| 525 | <bezel name="pg_2220" element="Page2" state="0"> <bounds x=" 90" y=" 33" width="5" height="1" /> </bezel> |
| 526 | <bezel name="pg_2221" element="Page2" state="0"> <bounds x=" 90" y=" 34" width="5" height="1" /> </bezel> |
| 527 | <bezel name="pg_2222" element="Page2" state="0"> <bounds x=" 90" y=" 35" width="5" height="1" /> </bezel> |
| 528 | <bezel name="pg_2223" element="Page2" state="0"> <bounds x=" 90" y=" 36" width="5" height="1" /> </bezel> |
| 529 | 529 | |
| 530 | | <bezel name="pg_1000" element="Page1" state="0"> <bounds x=" 0" y=" 40" width="5" height="1" /> </bezel> |
| 531 | | <bezel name="pg_1001" element="Page1" state="0"> <bounds x=" 0" y=" 41" width="5" height="1" /> </bezel> |
| 532 | | <bezel name="pg_1002" element="Page1" state="0"> <bounds x=" 0" y=" 42" width="5" height="1" /> </bezel> |
| 533 | | <bezel name="pg_1003" element="Page1" state="0"> <bounds x=" 0" y=" 43" width="5" height="1" /> </bezel> |
| 534 | | <bezel name="pg_1004" element="Page1" state="0"> <bounds x=" 0" y=" 44" width="5" height="1" /> </bezel> |
| 535 | | <bezel name="pg_1005" element="Page1" state="0"> <bounds x=" 0" y=" 45" width="5" height="1" /> </bezel> |
| 536 | | <bezel name="pg_1006" element="Page1" state="0"> <bounds x=" 0" y=" 46" width="5" height="1" /> </bezel> |
| 537 | | <bezel name="pg_1007" element="Page1" state="0"> <bounds x=" 6" y=" 40" width="5" height="1" /> </bezel> |
| 538 | | <bezel name="pg_1008" element="Page1" state="0"> <bounds x=" 6" y=" 41" width="5" height="1" /> </bezel> |
| 539 | | <bezel name="pg_1009" element="Page1" state="0"> <bounds x=" 6" y=" 42" width="5" height="1" /> </bezel> |
| 540 | | <bezel name="pg_1010" element="Page1" state="0"> <bounds x=" 6" y=" 43" width="5" height="1" /> </bezel> |
| 541 | | <bezel name="pg_1011" element="Page1" state="0"> <bounds x=" 6" y=" 44" width="5" height="1" /> </bezel> |
| 542 | | <bezel name="pg_1012" element="Page1" state="0"> <bounds x=" 6" y=" 45" width="5" height="1" /> </bezel> |
| 543 | | <bezel name="pg_1013" element="Page1" state="0"> <bounds x=" 6" y=" 46" width="5" height="1" /> </bezel> |
| 544 | | <bezel name="pg_1014" element="Page1" state="0"> <bounds x=" 12" y=" 40" width="5" height="1" /> </bezel> |
| 545 | | <bezel name="pg_1015" element="Page1" state="0"> <bounds x=" 12" y=" 41" width="5" height="1" /> </bezel> |
| 546 | | <bezel name="pg_1016" element="Page1" state="0"> <bounds x=" 12" y=" 42" width="5" height="1" /> </bezel> |
| 547 | | <bezel name="pg_1017" element="Page1" state="0"> <bounds x=" 12" y=" 43" width="5" height="1" /> </bezel> |
| 548 | | <bezel name="pg_1018" element="Page1" state="0"> <bounds x=" 12" y=" 44" width="5" height="1" /> </bezel> |
| 549 | | <bezel name="pg_1019" element="Page1" state="0"> <bounds x=" 12" y=" 45" width="5" height="1" /> </bezel> |
| 550 | | <bezel name="pg_1020" element="Page1" state="0"> <bounds x=" 12" y=" 46" width="5" height="1" /> </bezel> |
| 551 | | <bezel name="pg_1021" element="Page1" state="0"> <bounds x=" 18" y=" 40" width="5" height="1" /> </bezel> |
| 552 | | <bezel name="pg_1022" element="Page1" state="0"> <bounds x=" 18" y=" 41" width="5" height="1" /> </bezel> |
| 553 | | <bezel name="pg_1023" element="Page1" state="0"> <bounds x=" 18" y=" 42" width="5" height="1" /> </bezel> |
| 554 | | <bezel name="pg_1024" element="Page1" state="0"> <bounds x=" 18" y=" 43" width="5" height="1" /> </bezel> |
| 555 | | <bezel name="pg_1025" element="Page1" state="0"> <bounds x=" 18" y=" 44" width="5" height="1" /> </bezel> |
| 556 | | <bezel name="pg_1026" element="Page1" state="0"> <bounds x=" 18" y=" 45" width="5" height="1" /> </bezel> |
| 557 | | <bezel name="pg_1027" element="Page1" state="0"> <bounds x=" 18" y=" 46" width="5" height="1" /> </bezel> |
| 558 | | <bezel name="pg_1028" element="Page1" state="0"> <bounds x=" 24" y=" 40" width="5" height="1" /> </bezel> |
| 559 | | <bezel name="pg_1029" element="Page1" state="0"> <bounds x=" 24" y=" 41" width="5" height="1" /> </bezel> |
| 560 | | <bezel name="pg_1030" element="Page1" state="0"> <bounds x=" 24" y=" 42" width="5" height="1" /> </bezel> |
| 561 | | <bezel name="pg_1031" element="Page1" state="0"> <bounds x=" 24" y=" 43" width="5" height="1" /> </bezel> |
| 562 | | <bezel name="pg_1032" element="Page1" state="0"> <bounds x=" 24" y=" 44" width="5" height="1" /> </bezel> |
| 563 | | <bezel name="pg_1033" element="Page1" state="0"> <bounds x=" 24" y=" 45" width="5" height="1" /> </bezel> |
| 564 | | <bezel name="pg_1034" element="Page1" state="0"> <bounds x=" 24" y=" 46" width="5" height="1" /> </bezel> |
| 565 | | <bezel name="pg_1035" element="Page1" state="0"> <bounds x=" 30" y=" 40" width="5" height="1" /> </bezel> |
| 566 | | <bezel name="pg_1036" element="Page1" state="0"> <bounds x=" 30" y=" 41" width="5" height="1" /> </bezel> |
| 567 | | <bezel name="pg_1037" element="Page1" state="0"> <bounds x=" 30" y=" 42" width="5" height="1" /> </bezel> |
| 568 | | <bezel name="pg_1038" element="Page1" state="0"> <bounds x=" 30" y=" 43" width="5" height="1" /> </bezel> |
| 569 | | <bezel name="pg_1039" element="Page1" state="0"> <bounds x=" 30" y=" 44" width="5" height="1" /> </bezel> |
| 570 | | <bezel name="pg_1040" element="Page1" state="0"> <bounds x=" 30" y=" 45" width="5" height="1" /> </bezel> |
| 571 | | <bezel name="pg_1041" element="Page1" state="0"> <bounds x=" 30" y=" 46" width="5" height="1" /> </bezel> |
| 572 | | <bezel name="pg_1042" element="Page1" state="0"> <bounds x=" 36" y=" 40" width="5" height="1" /> </bezel> |
| 573 | | <bezel name="pg_1043" element="Page1" state="0"> <bounds x=" 36" y=" 41" width="5" height="1" /> </bezel> |
| 574 | | <bezel name="pg_1044" element="Page1" state="0"> <bounds x=" 36" y=" 42" width="5" height="1" /> </bezel> |
| 575 | | <bezel name="pg_1045" element="Page1" state="0"> <bounds x=" 36" y=" 43" width="5" height="1" /> </bezel> |
| 576 | | <bezel name="pg_1046" element="Page1" state="0"> <bounds x=" 36" y=" 44" width="5" height="1" /> </bezel> |
| 577 | | <bezel name="pg_1047" element="Page1" state="0"> <bounds x=" 36" y=" 45" width="5" height="1" /> </bezel> |
| 578 | | <bezel name="pg_1048" element="Page1" state="0"> <bounds x=" 36" y=" 46" width="5" height="1" /> </bezel> |
| 579 | | <bezel name="pg_1049" element="Page1" state="0"> <bounds x=" 42" y=" 40" width="5" height="1" /> </bezel> |
| 580 | | <bezel name="pg_1050" element="Page1" state="0"> <bounds x=" 42" y=" 41" width="5" height="1" /> </bezel> |
| 581 | | <bezel name="pg_1051" element="Page1" state="0"> <bounds x=" 42" y=" 42" width="5" height="1" /> </bezel> |
| 582 | | <bezel name="pg_1052" element="Page1" state="0"> <bounds x=" 42" y=" 43" width="5" height="1" /> </bezel> |
| 583 | | <bezel name="pg_1053" element="Page1" state="0"> <bounds x=" 42" y=" 44" width="5" height="1" /> </bezel> |
| 584 | | <bezel name="pg_1054" element="Page1" state="0"> <bounds x=" 42" y=" 45" width="5" height="1" /> </bezel> |
| 585 | | <bezel name="pg_1055" element="Page1" state="0"> <bounds x=" 42" y=" 46" width="5" height="1" /> </bezel> |
| 586 | | <bezel name="pg_1056" element="Page1" state="0"> <bounds x=" 48" y=" 40" width="5" height="1" /> </bezel> |
| 587 | | <bezel name="pg_1057" element="Page1" state="0"> <bounds x=" 48" y=" 41" width="5" height="1" /> </bezel> |
| 588 | | <bezel name="pg_1058" element="Page1" state="0"> <bounds x=" 48" y=" 42" width="5" height="1" /> </bezel> |
| 589 | | <bezel name="pg_1059" element="Page1" state="0"> <bounds x=" 48" y=" 43" width="5" height="1" /> </bezel> |
| 590 | | <bezel name="pg_1060" element="Page1" state="0"> <bounds x=" 48" y=" 44" width="5" height="1" /> </bezel> |
| 591 | | <bezel name="pg_1061" element="Page1" state="0"> <bounds x=" 48" y=" 45" width="5" height="1" /> </bezel> |
| 592 | | <bezel name="pg_1062" element="Page1" state="0"> <bounds x=" 48" y=" 46" width="5" height="1" /> </bezel> |
| 593 | | <bezel name="pg_1063" element="Page1" state="0"> <bounds x=" 54" y=" 40" width="5" height="1" /> </bezel> |
| 594 | | <bezel name="pg_1064" element="Page1" state="0"> <bounds x=" 54" y=" 41" width="5" height="1" /> </bezel> |
| 595 | | <bezel name="pg_1065" element="Page1" state="0"> <bounds x=" 54" y=" 42" width="5" height="1" /> </bezel> |
| 596 | | <bezel name="pg_1066" element="Page1" state="0"> <bounds x=" 54" y=" 43" width="5" height="1" /> </bezel> |
| 597 | | <bezel name="pg_1067" element="Page1" state="0"> <bounds x=" 54" y=" 44" width="5" height="1" /> </bezel> |
| 598 | | <bezel name="pg_1068" element="Page1" state="0"> <bounds x=" 54" y=" 45" width="5" height="1" /> </bezel> |
| 599 | | <bezel name="pg_1069" element="Page1" state="0"> <bounds x=" 54" y=" 46" width="5" height="1" /> </bezel> |
| 600 | | <bezel name="pg_1070" element="Page1" state="0"> <bounds x=" 60" y=" 40" width="5" height="1" /> </bezel> |
| 601 | | <bezel name="pg_1071" element="Page1" state="0"> <bounds x=" 60" y=" 41" width="5" height="1" /> </bezel> |
| 602 | | <bezel name="pg_1072" element="Page1" state="0"> <bounds x=" 60" y=" 42" width="5" height="1" /> </bezel> |
| 603 | | <bezel name="pg_1073" element="Page1" state="0"> <bounds x=" 60" y=" 43" width="5" height="1" /> </bezel> |
| 604 | | <bezel name="pg_1074" element="Page1" state="0"> <bounds x=" 60" y=" 44" width="5" height="1" /> </bezel> |
| 605 | | <bezel name="pg_1075" element="Page1" state="0"> <bounds x=" 60" y=" 45" width="5" height="1" /> </bezel> |
| 606 | | <bezel name="pg_1076" element="Page1" state="0"> <bounds x=" 60" y=" 46" width="5" height="1" /> </bezel> |
| 607 | | <bezel name="pg_1077" element="Page1" state="0"> <bounds x=" 66" y=" 40" width="5" height="1" /> </bezel> |
| 608 | | <bezel name="pg_1078" element="Page1" state="0"> <bounds x=" 66" y=" 41" width="5" height="1" /> </bezel> |
| 609 | | <bezel name="pg_1079" element="Page1" state="0"> <bounds x=" 66" y=" 42" width="5" height="1" /> </bezel> |
| 610 | | <bezel name="pg_1080" element="Page1" state="0"> <bounds x=" 66" y=" 43" width="5" height="1" /> </bezel> |
| 611 | | <bezel name="pg_1081" element="Page1" state="0"> <bounds x=" 66" y=" 44" width="5" height="1" /> </bezel> |
| 612 | | <bezel name="pg_1082" element="Page1" state="0"> <bounds x=" 66" y=" 45" width="5" height="1" /> </bezel> |
| 613 | | <bezel name="pg_1083" element="Page1" state="0"> <bounds x=" 66" y=" 46" width="5" height="1" /> </bezel> |
| 614 | | <bezel name="pg_1084" element="Page1" state="0"> <bounds x=" 72" y=" 40" width="5" height="1" /> </bezel> |
| 615 | | <bezel name="pg_1085" element="Page1" state="0"> <bounds x=" 72" y=" 41" width="5" height="1" /> </bezel> |
| 616 | | <bezel name="pg_1086" element="Page1" state="0"> <bounds x=" 72" y=" 42" width="5" height="1" /> </bezel> |
| 617 | | <bezel name="pg_1087" element="Page1" state="0"> <bounds x=" 72" y=" 43" width="5" height="1" /> </bezel> |
| 618 | | <bezel name="pg_1088" element="Page1" state="0"> <bounds x=" 72" y=" 44" width="5" height="1" /> </bezel> |
| 619 | | <bezel name="pg_1089" element="Page1" state="0"> <bounds x=" 72" y=" 45" width="5" height="1" /> </bezel> |
| 620 | | <bezel name="pg_1090" element="Page1" state="0"> <bounds x=" 72" y=" 46" width="5" height="1" /> </bezel> |
| 621 | | <bezel name="pg_1091" element="Page1" state="0"> <bounds x=" 78" y=" 40" width="5" height="1" /> </bezel> |
| 622 | | <bezel name="pg_1092" element="Page1" state="0"> <bounds x=" 78" y=" 41" width="5" height="1" /> </bezel> |
| 623 | | <bezel name="pg_1093" element="Page1" state="0"> <bounds x=" 78" y=" 42" width="5" height="1" /> </bezel> |
| 624 | | <bezel name="pg_1094" element="Page1" state="0"> <bounds x=" 78" y=" 43" width="5" height="1" /> </bezel> |
| 625 | | <bezel name="pg_1095" element="Page1" state="0"> <bounds x=" 78" y=" 44" width="5" height="1" /> </bezel> |
| 626 | | <bezel name="pg_1096" element="Page1" state="0"> <bounds x=" 78" y=" 45" width="5" height="1" /> </bezel> |
| 627 | | <bezel name="pg_1097" element="Page1" state="0"> <bounds x=" 78" y=" 46" width="5" height="1" /> </bezel> |
| 628 | | <bezel name="pg_1098" element="Page1" state="0"> <bounds x=" 84" y=" 40" width="5" height="1" /> </bezel> |
| 629 | | <bezel name="pg_1099" element="Page1" state="0"> <bounds x=" 84" y=" 41" width="5" height="1" /> </bezel> |
| 630 | | <bezel name="pg_1100" element="Page1" state="0"> <bounds x=" 84" y=" 42" width="5" height="1" /> </bezel> |
| 631 | | <bezel name="pg_1101" element="Page1" state="0"> <bounds x=" 84" y=" 43" width="5" height="1" /> </bezel> |
| 632 | | <bezel name="pg_1102" element="Page1" state="0"> <bounds x=" 84" y=" 44" width="5" height="1" /> </bezel> |
| 633 | | <bezel name="pg_1103" element="Page1" state="0"> <bounds x=" 84" y=" 45" width="5" height="1" /> </bezel> |
| 634 | | <bezel name="pg_1104" element="Page1" state="0"> <bounds x=" 84" y=" 46" width="5" height="1" /> </bezel> |
| 635 | | <bezel name="pg_1105" element="Page1" state="0"> <bounds x=" 90" y=" 40" width="5" height="1" /> </bezel> |
| 636 | | <bezel name="pg_1106" element="Page1" state="0"> <bounds x=" 90" y=" 41" width="5" height="1" /> </bezel> |
| 637 | | <bezel name="pg_1107" element="Page1" state="0"> <bounds x=" 90" y=" 42" width="5" height="1" /> </bezel> |
| 638 | | <bezel name="pg_1108" element="Page1" state="0"> <bounds x=" 90" y=" 43" width="5" height="1" /> </bezel> |
| 639 | | <bezel name="pg_1109" element="Page1" state="0"> <bounds x=" 90" y=" 44" width="5" height="1" /> </bezel> |
| 640 | | <bezel name="pg_1110" element="Page1" state="0"> <bounds x=" 90" y=" 45" width="5" height="1" /> </bezel> |
| 641 | | <bezel name="pg_1111" element="Page1" state="0"> <bounds x=" 90" y=" 46" width="5" height="1" /> </bezel> |
| 642 | | <bezel name="pg_1112" element="Page1" state="0"> <bounds x=" 0" y=" 50" width="5" height="1" /> </bezel> |
| 643 | | <bezel name="pg_1113" element="Page1" state="0"> <bounds x=" 0" y=" 51" width="5" height="1" /> </bezel> |
| 644 | | <bezel name="pg_1114" element="Page1" state="0"> <bounds x=" 0" y=" 52" width="5" height="1" /> </bezel> |
| 645 | | <bezel name="pg_1115" element="Page1" state="0"> <bounds x=" 0" y=" 53" width="5" height="1" /> </bezel> |
| 646 | | <bezel name="pg_1116" element="Page1" state="0"> <bounds x=" 0" y=" 54" width="5" height="1" /> </bezel> |
| 647 | | <bezel name="pg_1117" element="Page1" state="0"> <bounds x=" 0" y=" 55" width="5" height="1" /> </bezel> |
| 648 | | <bezel name="pg_1118" element="Page1" state="0"> <bounds x=" 0" y=" 56" width="5" height="1" /> </bezel> |
| 649 | | <bezel name="pg_1119" element="Page1" state="0"> <bounds x=" 6" y=" 50" width="5" height="1" /> </bezel> |
| 650 | | <bezel name="pg_1120" element="Page1" state="0"> <bounds x=" 6" y=" 51" width="5" height="1" /> </bezel> |
| 651 | | <bezel name="pg_1121" element="Page1" state="0"> <bounds x=" 6" y=" 52" width="5" height="1" /> </bezel> |
| 652 | | <bezel name="pg_1122" element="Page1" state="0"> <bounds x=" 6" y=" 53" width="5" height="1" /> </bezel> |
| 653 | | <bezel name="pg_1123" element="Page1" state="0"> <bounds x=" 6" y=" 54" width="5" height="1" /> </bezel> |
| 654 | | <bezel name="pg_1124" element="Page1" state="0"> <bounds x=" 6" y=" 55" width="5" height="1" /> </bezel> |
| 655 | | <bezel name="pg_1125" element="Page1" state="0"> <bounds x=" 6" y=" 56" width="5" height="1" /> </bezel> |
| 656 | | <bezel name="pg_1126" element="Page1" state="0"> <bounds x=" 12" y=" 50" width="5" height="1" /> </bezel> |
| 657 | | <bezel name="pg_1127" element="Page1" state="0"> <bounds x=" 12" y=" 51" width="5" height="1" /> </bezel> |
| 658 | | <bezel name="pg_1128" element="Page1" state="0"> <bounds x=" 12" y=" 52" width="5" height="1" /> </bezel> |
| 659 | | <bezel name="pg_1129" element="Page1" state="0"> <bounds x=" 12" y=" 53" width="5" height="1" /> </bezel> |
| 660 | | <bezel name="pg_1130" element="Page1" state="0"> <bounds x=" 12" y=" 54" width="5" height="1" /> </bezel> |
| 661 | | <bezel name="pg_1131" element="Page1" state="0"> <bounds x=" 12" y=" 55" width="5" height="1" /> </bezel> |
| 662 | | <bezel name="pg_1132" element="Page1" state="0"> <bounds x=" 12" y=" 56" width="5" height="1" /> </bezel> |
| 663 | | <bezel name="pg_1133" element="Page1" state="0"> <bounds x=" 18" y=" 50" width="5" height="1" /> </bezel> |
| 664 | | <bezel name="pg_1134" element="Page1" state="0"> <bounds x=" 18" y=" 51" width="5" height="1" /> </bezel> |
| 665 | | <bezel name="pg_1135" element="Page1" state="0"> <bounds x=" 18" y=" 52" width="5" height="1" /> </bezel> |
| 666 | | <bezel name="pg_1136" element="Page1" state="0"> <bounds x=" 18" y=" 53" width="5" height="1" /> </bezel> |
| 667 | | <bezel name="pg_1137" element="Page1" state="0"> <bounds x=" 18" y=" 54" width="5" height="1" /> </bezel> |
| 668 | | <bezel name="pg_1138" element="Page1" state="0"> <bounds x=" 18" y=" 55" width="5" height="1" /> </bezel> |
| 669 | | <bezel name="pg_1139" element="Page1" state="0"> <bounds x=" 18" y=" 56" width="5" height="1" /> </bezel> |
| 670 | | <bezel name="pg_1140" element="Page1" state="0"> <bounds x=" 24" y=" 50" width="5" height="1" /> </bezel> |
| 671 | | <bezel name="pg_1141" element="Page1" state="0"> <bounds x=" 24" y=" 51" width="5" height="1" /> </bezel> |
| 672 | | <bezel name="pg_1142" element="Page1" state="0"> <bounds x=" 24" y=" 52" width="5" height="1" /> </bezel> |
| 673 | | <bezel name="pg_1143" element="Page1" state="0"> <bounds x=" 24" y=" 53" width="5" height="1" /> </bezel> |
| 674 | | <bezel name="pg_1144" element="Page1" state="0"> <bounds x=" 24" y=" 54" width="5" height="1" /> </bezel> |
| 675 | | <bezel name="pg_1145" element="Page1" state="0"> <bounds x=" 24" y=" 55" width="5" height="1" /> </bezel> |
| 676 | | <bezel name="pg_1146" element="Page1" state="0"> <bounds x=" 24" y=" 56" width="5" height="1" /> </bezel> |
| 677 | | <bezel name="pg_1147" element="Page1" state="0"> <bounds x=" 30" y=" 50" width="5" height="1" /> </bezel> |
| 678 | | <bezel name="pg_1148" element="Page1" state="0"> <bounds x=" 30" y=" 51" width="5" height="1" /> </bezel> |
| 679 | | <bezel name="pg_1149" element="Page1" state="0"> <bounds x=" 30" y=" 52" width="5" height="1" /> </bezel> |
| 680 | | <bezel name="pg_1150" element="Page1" state="0"> <bounds x=" 30" y=" 53" width="5" height="1" /> </bezel> |
| 681 | | <bezel name="pg_1151" element="Page1" state="0"> <bounds x=" 30" y=" 54" width="5" height="1" /> </bezel> |
| 682 | | <bezel name="pg_1152" element="Page1" state="0"> <bounds x=" 30" y=" 55" width="5" height="1" /> </bezel> |
| 683 | | <bezel name="pg_1153" element="Page1" state="0"> <bounds x=" 30" y=" 56" width="5" height="1" /> </bezel> |
| 684 | | <bezel name="pg_1154" element="Page1" state="0"> <bounds x=" 36" y=" 50" width="5" height="1" /> </bezel> |
| 685 | | <bezel name="pg_1155" element="Page1" state="0"> <bounds x=" 36" y=" 51" width="5" height="1" /> </bezel> |
| 686 | | <bezel name="pg_1156" element="Page1" state="0"> <bounds x=" 36" y=" 52" width="5" height="1" /> </bezel> |
| 687 | | <bezel name="pg_1157" element="Page1" state="0"> <bounds x=" 36" y=" 53" width="5" height="1" /> </bezel> |
| 688 | | <bezel name="pg_1158" element="Page1" state="0"> <bounds x=" 36" y=" 54" width="5" height="1" /> </bezel> |
| 689 | | <bezel name="pg_1159" element="Page1" state="0"> <bounds x=" 36" y=" 55" width="5" height="1" /> </bezel> |
| 690 | | <bezel name="pg_1160" element="Page1" state="0"> <bounds x=" 36" y=" 56" width="5" height="1" /> </bezel> |
| 691 | | <bezel name="pg_1161" element="Page1" state="0"> <bounds x=" 42" y=" 50" width="5" height="1" /> </bezel> |
| 692 | | <bezel name="pg_1162" element="Page1" state="0"> <bounds x=" 42" y=" 51" width="5" height="1" /> </bezel> |
| 693 | | <bezel name="pg_1163" element="Page1" state="0"> <bounds x=" 42" y=" 52" width="5" height="1" /> </bezel> |
| 694 | | <bezel name="pg_1164" element="Page1" state="0"> <bounds x=" 42" y=" 53" width="5" height="1" /> </bezel> |
| 695 | | <bezel name="pg_1165" element="Page1" state="0"> <bounds x=" 42" y=" 54" width="5" height="1" /> </bezel> |
| 696 | | <bezel name="pg_1166" element="Page1" state="0"> <bounds x=" 42" y=" 55" width="5" height="1" /> </bezel> |
| 697 | | <bezel name="pg_1167" element="Page1" state="0"> <bounds x=" 42" y=" 56" width="5" height="1" /> </bezel> |
| 698 | | <bezel name="pg_1168" element="Page1" state="0"> <bounds x=" 48" y=" 50" width="5" height="1" /> </bezel> |
| 699 | | <bezel name="pg_1169" element="Page1" state="0"> <bounds x=" 48" y=" 51" width="5" height="1" /> </bezel> |
| 700 | | <bezel name="pg_1170" element="Page1" state="0"> <bounds x=" 48" y=" 52" width="5" height="1" /> </bezel> |
| 701 | | <bezel name="pg_1171" element="Page1" state="0"> <bounds x=" 48" y=" 53" width="5" height="1" /> </bezel> |
| 702 | | <bezel name="pg_1172" element="Page1" state="0"> <bounds x=" 48" y=" 54" width="5" height="1" /> </bezel> |
| 703 | | <bezel name="pg_1173" element="Page1" state="0"> <bounds x=" 48" y=" 55" width="5" height="1" /> </bezel> |
| 704 | | <bezel name="pg_1174" element="Page1" state="0"> <bounds x=" 48" y=" 56" width="5" height="1" /> </bezel> |
| 705 | | <bezel name="pg_1175" element="Page1" state="0"> <bounds x=" 54" y=" 50" width="5" height="1" /> </bezel> |
| 706 | | <bezel name="pg_1176" element="Page1" state="0"> <bounds x=" 54" y=" 51" width="5" height="1" /> </bezel> |
| 707 | | <bezel name="pg_1177" element="Page1" state="0"> <bounds x=" 54" y=" 52" width="5" height="1" /> </bezel> |
| 708 | | <bezel name="pg_1178" element="Page1" state="0"> <bounds x=" 54" y=" 53" width="5" height="1" /> </bezel> |
| 709 | | <bezel name="pg_1179" element="Page1" state="0"> <bounds x=" 54" y=" 54" width="5" height="1" /> </bezel> |
| 710 | | <bezel name="pg_1180" element="Page1" state="0"> <bounds x=" 54" y=" 55" width="5" height="1" /> </bezel> |
| 711 | | <bezel name="pg_1181" element="Page1" state="0"> <bounds x=" 54" y=" 56" width="5" height="1" /> </bezel> |
| 712 | | <bezel name="pg_1182" element="Page1" state="0"> <bounds x=" 60" y=" 50" width="5" height="1" /> </bezel> |
| 713 | | <bezel name="pg_1183" element="Page1" state="0"> <bounds x=" 60" y=" 51" width="5" height="1" /> </bezel> |
| 714 | | <bezel name="pg_1184" element="Page1" state="0"> <bounds x=" 60" y=" 52" width="5" height="1" /> </bezel> |
| 715 | | <bezel name="pg_1185" element="Page1" state="0"> <bounds x=" 60" y=" 53" width="5" height="1" /> </bezel> |
| 716 | | <bezel name="pg_1186" element="Page1" state="0"> <bounds x=" 60" y=" 54" width="5" height="1" /> </bezel> |
| 717 | | <bezel name="pg_1187" element="Page1" state="0"> <bounds x=" 60" y=" 55" width="5" height="1" /> </bezel> |
| 718 | | <bezel name="pg_1188" element="Page1" state="0"> <bounds x=" 60" y=" 56" width="5" height="1" /> </bezel> |
| 719 | | <bezel name="pg_1189" element="Page1" state="0"> <bounds x=" 66" y=" 50" width="5" height="1" /> </bezel> |
| 720 | | <bezel name="pg_1190" element="Page1" state="0"> <bounds x=" 66" y=" 51" width="5" height="1" /> </bezel> |
| 721 | | <bezel name="pg_1191" element="Page1" state="0"> <bounds x=" 66" y=" 52" width="5" height="1" /> </bezel> |
| 722 | | <bezel name="pg_1192" element="Page1" state="0"> <bounds x=" 66" y=" 53" width="5" height="1" /> </bezel> |
| 723 | | <bezel name="pg_1193" element="Page1" state="0"> <bounds x=" 66" y=" 54" width="5" height="1" /> </bezel> |
| 724 | | <bezel name="pg_1194" element="Page1" state="0"> <bounds x=" 66" y=" 55" width="5" height="1" /> </bezel> |
| 725 | | <bezel name="pg_1195" element="Page1" state="0"> <bounds x=" 66" y=" 56" width="5" height="1" /> </bezel> |
| 726 | | <bezel name="pg_1196" element="Page1" state="0"> <bounds x=" 72" y=" 50" width="5" height="1" /> </bezel> |
| 727 | | <bezel name="pg_1197" element="Page1" state="0"> <bounds x=" 72" y=" 51" width="5" height="1" /> </bezel> |
| 728 | | <bezel name="pg_1198" element="Page1" state="0"> <bounds x=" 72" y=" 52" width="5" height="1" /> </bezel> |
| 729 | | <bezel name="pg_1199" element="Page1" state="0"> <bounds x=" 72" y=" 53" width="5" height="1" /> </bezel> |
| 730 | | <bezel name="pg_1200" element="Page1" state="0"> <bounds x=" 72" y=" 54" width="5" height="1" /> </bezel> |
| 731 | | <bezel name="pg_1201" element="Page1" state="0"> <bounds x=" 72" y=" 55" width="5" height="1" /> </bezel> |
| 732 | | <bezel name="pg_1202" element="Page1" state="0"> <bounds x=" 72" y=" 56" width="5" height="1" /> </bezel> |
| 733 | | <bezel name="pg_1203" element="Page1" state="0"> <bounds x=" 78" y=" 50" width="5" height="1" /> </bezel> |
| 734 | | <bezel name="pg_1204" element="Page1" state="0"> <bounds x=" 78" y=" 51" width="5" height="1" /> </bezel> |
| 735 | | <bezel name="pg_1205" element="Page1" state="0"> <bounds x=" 78" y=" 52" width="5" height="1" /> </bezel> |
| 736 | | <bezel name="pg_1206" element="Page1" state="0"> <bounds x=" 78" y=" 53" width="5" height="1" /> </bezel> |
| 737 | | <bezel name="pg_1207" element="Page1" state="0"> <bounds x=" 78" y=" 54" width="5" height="1" /> </bezel> |
| 738 | | <bezel name="pg_1208" element="Page1" state="0"> <bounds x=" 78" y=" 55" width="5" height="1" /> </bezel> |
| 739 | | <bezel name="pg_1209" element="Page1" state="0"> <bounds x=" 78" y=" 56" width="5" height="1" /> </bezel> |
| 740 | | <bezel name="pg_1210" element="Page1" state="0"> <bounds x=" 84" y=" 50" width="5" height="1" /> </bezel> |
| 741 | | <bezel name="pg_1211" element="Page1" state="0"> <bounds x=" 84" y=" 51" width="5" height="1" /> </bezel> |
| 742 | | <bezel name="pg_1212" element="Page1" state="0"> <bounds x=" 84" y=" 52" width="5" height="1" /> </bezel> |
| 743 | | <bezel name="pg_1213" element="Page1" state="0"> <bounds x=" 84" y=" 53" width="5" height="1" /> </bezel> |
| 744 | | <bezel name="pg_1214" element="Page1" state="0"> <bounds x=" 84" y=" 54" width="5" height="1" /> </bezel> |
| 745 | | <bezel name="pg_1215" element="Page1" state="0"> <bounds x=" 84" y=" 55" width="5" height="1" /> </bezel> |
| 746 | | <bezel name="pg_1216" element="Page1" state="0"> <bounds x=" 84" y=" 56" width="5" height="1" /> </bezel> |
| 747 | | <bezel name="pg_1217" element="Page1" state="0"> <bounds x=" 90" y=" 50" width="5" height="1" /> </bezel> |
| 748 | | <bezel name="pg_1218" element="Page1" state="0"> <bounds x=" 90" y=" 51" width="5" height="1" /> </bezel> |
| 749 | | <bezel name="pg_1219" element="Page1" state="0"> <bounds x=" 90" y=" 52" width="5" height="1" /> </bezel> |
| 750 | | <bezel name="pg_1220" element="Page1" state="0"> <bounds x=" 90" y=" 53" width="5" height="1" /> </bezel> |
| 751 | | <bezel name="pg_1221" element="Page1" state="0"> <bounds x=" 90" y=" 54" width="5" height="1" /> </bezel> |
| 752 | | <bezel name="pg_1222" element="Page1" state="0"> <bounds x=" 90" y=" 55" width="5" height="1" /> </bezel> |
| 753 | | <bezel name="pg_1223" element="Page1" state="0"> <bounds x=" 90" y=" 56" width="5" height="1" /> </bezel> |
| 530 | <bezel name="pg_1000" element="Page1" state="0"> <bounds x=" 0" y=" 40" width="5" height="1" /> </bezel> |
| 531 | <bezel name="pg_1001" element="Page1" state="0"> <bounds x=" 0" y=" 41" width="5" height="1" /> </bezel> |
| 532 | <bezel name="pg_1002" element="Page1" state="0"> <bounds x=" 0" y=" 42" width="5" height="1" /> </bezel> |
| 533 | <bezel name="pg_1003" element="Page1" state="0"> <bounds x=" 0" y=" 43" width="5" height="1" /> </bezel> |
| 534 | <bezel name="pg_1004" element="Page1" state="0"> <bounds x=" 0" y=" 44" width="5" height="1" /> </bezel> |
| 535 | <bezel name="pg_1005" element="Page1" state="0"> <bounds x=" 0" y=" 45" width="5" height="1" /> </bezel> |
| 536 | <bezel name="pg_1006" element="Page1" state="0"> <bounds x=" 0" y=" 46" width="5" height="1" /> </bezel> |
| 537 | <bezel name="pg_1007" element="Page1" state="0"> <bounds x=" 6" y=" 40" width="5" height="1" /> </bezel> |
| 538 | <bezel name="pg_1008" element="Page1" state="0"> <bounds x=" 6" y=" 41" width="5" height="1" /> </bezel> |
| 539 | <bezel name="pg_1009" element="Page1" state="0"> <bounds x=" 6" y=" 42" width="5" height="1" /> </bezel> |
| 540 | <bezel name="pg_1010" element="Page1" state="0"> <bounds x=" 6" y=" 43" width="5" height="1" /> </bezel> |
| 541 | <bezel name="pg_1011" element="Page1" state="0"> <bounds x=" 6" y=" 44" width="5" height="1" /> </bezel> |
| 542 | <bezel name="pg_1012" element="Page1" state="0"> <bounds x=" 6" y=" 45" width="5" height="1" /> </bezel> |
| 543 | <bezel name="pg_1013" element="Page1" state="0"> <bounds x=" 6" y=" 46" width="5" height="1" /> </bezel> |
| 544 | <bezel name="pg_1014" element="Page1" state="0"> <bounds x=" 12" y=" 40" width="5" height="1" /> </bezel> |
| 545 | <bezel name="pg_1015" element="Page1" state="0"> <bounds x=" 12" y=" 41" width="5" height="1" /> </bezel> |
| 546 | <bezel name="pg_1016" element="Page1" state="0"> <bounds x=" 12" y=" 42" width="5" height="1" /> </bezel> |
| 547 | <bezel name="pg_1017" element="Page1" state="0"> <bounds x=" 12" y=" 43" width="5" height="1" /> </bezel> |
| 548 | <bezel name="pg_1018" element="Page1" state="0"> <bounds x=" 12" y=" 44" width="5" height="1" /> </bezel> |
| 549 | <bezel name="pg_1019" element="Page1" state="0"> <bounds x=" 12" y=" 45" width="5" height="1" /> </bezel> |
| 550 | <bezel name="pg_1020" element="Page1" state="0"> <bounds x=" 12" y=" 46" width="5" height="1" /> </bezel> |
| 551 | <bezel name="pg_1021" element="Page1" state="0"> <bounds x=" 18" y=" 40" width="5" height="1" /> </bezel> |
| 552 | <bezel name="pg_1022" element="Page1" state="0"> <bounds x=" 18" y=" 41" width="5" height="1" /> </bezel> |
| 553 | <bezel name="pg_1023" element="Page1" state="0"> <bounds x=" 18" y=" 42" width="5" height="1" /> </bezel> |
| 554 | <bezel name="pg_1024" element="Page1" state="0"> <bounds x=" 18" y=" 43" width="5" height="1" /> </bezel> |
| 555 | <bezel name="pg_1025" element="Page1" state="0"> <bounds x=" 18" y=" 44" width="5" height="1" /> </bezel> |
| 556 | <bezel name="pg_1026" element="Page1" state="0"> <bounds x=" 18" y=" 45" width="5" height="1" /> </bezel> |
| 557 | <bezel name="pg_1027" element="Page1" state="0"> <bounds x=" 18" y=" 46" width="5" height="1" /> </bezel> |
| 558 | <bezel name="pg_1028" element="Page1" state="0"> <bounds x=" 24" y=" 40" width="5" height="1" /> </bezel> |
| 559 | <bezel name="pg_1029" element="Page1" state="0"> <bounds x=" 24" y=" 41" width="5" height="1" /> </bezel> |
| 560 | <bezel name="pg_1030" element="Page1" state="0"> <bounds x=" 24" y=" 42" width="5" height="1" /> </bezel> |
| 561 | <bezel name="pg_1031" element="Page1" state="0"> <bounds x=" 24" y=" 43" width="5" height="1" /> </bezel> |
| 562 | <bezel name="pg_1032" element="Page1" state="0"> <bounds x=" 24" y=" 44" width="5" height="1" /> </bezel> |
| 563 | <bezel name="pg_1033" element="Page1" state="0"> <bounds x=" 24" y=" 45" width="5" height="1" /> </bezel> |
| 564 | <bezel name="pg_1034" element="Page1" state="0"> <bounds x=" 24" y=" 46" width="5" height="1" /> </bezel> |
| 565 | <bezel name="pg_1035" element="Page1" state="0"> <bounds x=" 30" y=" 40" width="5" height="1" /> </bezel> |
| 566 | <bezel name="pg_1036" element="Page1" state="0"> <bounds x=" 30" y=" 41" width="5" height="1" /> </bezel> |
| 567 | <bezel name="pg_1037" element="Page1" state="0"> <bounds x=" 30" y=" 42" width="5" height="1" /> </bezel> |
| 568 | <bezel name="pg_1038" element="Page1" state="0"> <bounds x=" 30" y=" 43" width="5" height="1" /> </bezel> |
| 569 | <bezel name="pg_1039" element="Page1" state="0"> <bounds x=" 30" y=" 44" width="5" height="1" /> </bezel> |
| 570 | <bezel name="pg_1040" element="Page1" state="0"> <bounds x=" 30" y=" 45" width="5" height="1" /> </bezel> |
| 571 | <bezel name="pg_1041" element="Page1" state="0"> <bounds x=" 30" y=" 46" width="5" height="1" /> </bezel> |
| 572 | <bezel name="pg_1042" element="Page1" state="0"> <bounds x=" 36" y=" 40" width="5" height="1" /> </bezel> |
| 573 | <bezel name="pg_1043" element="Page1" state="0"> <bounds x=" 36" y=" 41" width="5" height="1" /> </bezel> |
| 574 | <bezel name="pg_1044" element="Page1" state="0"> <bounds x=" 36" y=" 42" width="5" height="1" /> </bezel> |
| 575 | <bezel name="pg_1045" element="Page1" state="0"> <bounds x=" 36" y=" 43" width="5" height="1" /> </bezel> |
| 576 | <bezel name="pg_1046" element="Page1" state="0"> <bounds x=" 36" y=" 44" width="5" height="1" /> </bezel> |
| 577 | <bezel name="pg_1047" element="Page1" state="0"> <bounds x=" 36" y=" 45" width="5" height="1" /> </bezel> |
| 578 | <bezel name="pg_1048" element="Page1" state="0"> <bounds x=" 36" y=" 46" width="5" height="1" /> </bezel> |
| 579 | <bezel name="pg_1049" element="Page1" state="0"> <bounds x=" 42" y=" 40" width="5" height="1" /> </bezel> |
| 580 | <bezel name="pg_1050" element="Page1" state="0"> <bounds x=" 42" y=" 41" width="5" height="1" /> </bezel> |
| 581 | <bezel name="pg_1051" element="Page1" state="0"> <bounds x=" 42" y=" 42" width="5" height="1" /> </bezel> |
| 582 | <bezel name="pg_1052" element="Page1" state="0"> <bounds x=" 42" y=" 43" width="5" height="1" /> </bezel> |
| 583 | <bezel name="pg_1053" element="Page1" state="0"> <bounds x=" 42" y=" 44" width="5" height="1" /> </bezel> |
| 584 | <bezel name="pg_1054" element="Page1" state="0"> <bounds x=" 42" y=" 45" width="5" height="1" /> </bezel> |
| 585 | <bezel name="pg_1055" element="Page1" state="0"> <bounds x=" 42" y=" 46" width="5" height="1" /> </bezel> |
| 586 | <bezel name="pg_1056" element="Page1" state="0"> <bounds x=" 48" y=" 40" width="5" height="1" /> </bezel> |
| 587 | <bezel name="pg_1057" element="Page1" state="0"> <bounds x=" 48" y=" 41" width="5" height="1" /> </bezel> |
| 588 | <bezel name="pg_1058" element="Page1" state="0"> <bounds x=" 48" y=" 42" width="5" height="1" /> </bezel> |
| 589 | <bezel name="pg_1059" element="Page1" state="0"> <bounds x=" 48" y=" 43" width="5" height="1" /> </bezel> |
| 590 | <bezel name="pg_1060" element="Page1" state="0"> <bounds x=" 48" y=" 44" width="5" height="1" /> </bezel> |
| 591 | <bezel name="pg_1061" element="Page1" state="0"> <bounds x=" 48" y=" 45" width="5" height="1" /> </bezel> |
| 592 | <bezel name="pg_1062" element="Page1" state="0"> <bounds x=" 48" y=" 46" width="5" height="1" /> </bezel> |
| 593 | <bezel name="pg_1063" element="Page1" state="0"> <bounds x=" 54" y=" 40" width="5" height="1" /> </bezel> |
| 594 | <bezel name="pg_1064" element="Page1" state="0"> <bounds x=" 54" y=" 41" width="5" height="1" /> </bezel> |
| 595 | <bezel name="pg_1065" element="Page1" state="0"> <bounds x=" 54" y=" 42" width="5" height="1" /> </bezel> |
| 596 | <bezel name="pg_1066" element="Page1" state="0"> <bounds x=" 54" y=" 43" width="5" height="1" /> </bezel> |
| 597 | <bezel name="pg_1067" element="Page1" state="0"> <bounds x=" 54" y=" 44" width="5" height="1" /> </bezel> |
| 598 | <bezel name="pg_1068" element="Page1" state="0"> <bounds x=" 54" y=" 45" width="5" height="1" /> </bezel> |
| 599 | <bezel name="pg_1069" element="Page1" state="0"> <bounds x=" 54" y=" 46" width="5" height="1" /> </bezel> |
| 600 | <bezel name="pg_1070" element="Page1" state="0"> <bounds x=" 60" y=" 40" width="5" height="1" /> </bezel> |
| 601 | <bezel name="pg_1071" element="Page1" state="0"> <bounds x=" 60" y=" 41" width="5" height="1" /> </bezel> |
| 602 | <bezel name="pg_1072" element="Page1" state="0"> <bounds x=" 60" y=" 42" width="5" height="1" /> </bezel> |
| 603 | <bezel name="pg_1073" element="Page1" state="0"> <bounds x=" 60" y=" 43" width="5" height="1" /> </bezel> |
| 604 | <bezel name="pg_1074" element="Page1" state="0"> <bounds x=" 60" y=" 44" width="5" height="1" /> </bezel> |
| 605 | <bezel name="pg_1075" element="Page1" state="0"> <bounds x=" 60" y=" 45" width="5" height="1" /> </bezel> |
| 606 | <bezel name="pg_1076" element="Page1" state="0"> <bounds x=" 60" y=" 46" width="5" height="1" /> </bezel> |
| 607 | <bezel name="pg_1077" element="Page1" state="0"> <bounds x=" 66" y=" 40" width="5" height="1" /> </bezel> |
| 608 | <bezel name="pg_1078" element="Page1" state="0"> <bounds x=" 66" y=" 41" width="5" height="1" /> </bezel> |
| 609 | <bezel name="pg_1079" element="Page1" state="0"> <bounds x=" 66" y=" 42" width="5" height="1" /> </bezel> |
| 610 | <bezel name="pg_1080" element="Page1" state="0"> <bounds x=" 66" y=" 43" width="5" height="1" /> </bezel> |
| 611 | <bezel name="pg_1081" element="Page1" state="0"> <bounds x=" 66" y=" 44" width="5" height="1" /> </bezel> |
| 612 | <bezel name="pg_1082" element="Page1" state="0"> <bounds x=" 66" y=" 45" width="5" height="1" /> </bezel> |
| 613 | <bezel name="pg_1083" element="Page1" state="0"> <bounds x=" 66" y=" 46" width="5" height="1" /> </bezel> |
| 614 | <bezel name="pg_1084" element="Page1" state="0"> <bounds x=" 72" y=" 40" width="5" height="1" /> </bezel> |
| 615 | <bezel name="pg_1085" element="Page1" state="0"> <bounds x=" 72" y=" 41" width="5" height="1" /> </bezel> |
| 616 | <bezel name="pg_1086" element="Page1" state="0"> <bounds x=" 72" y=" 42" width="5" height="1" /> </bezel> |
| 617 | <bezel name="pg_1087" element="Page1" state="0"> <bounds x=" 72" y=" 43" width="5" height="1" /> </bezel> |
| 618 | <bezel name="pg_1088" element="Page1" state="0"> <bounds x=" 72" y=" 44" width="5" height="1" /> </bezel> |
| 619 | <bezel name="pg_1089" element="Page1" state="0"> <bounds x=" 72" y=" 45" width="5" height="1" /> </bezel> |
| 620 | <bezel name="pg_1090" element="Page1" state="0"> <bounds x=" 72" y=" 46" width="5" height="1" /> </bezel> |
| 621 | <bezel name="pg_1091" element="Page1" state="0"> <bounds x=" 78" y=" 40" width="5" height="1" /> </bezel> |
| 622 | <bezel name="pg_1092" element="Page1" state="0"> <bounds x=" 78" y=" 41" width="5" height="1" /> </bezel> |
| 623 | <bezel name="pg_1093" element="Page1" state="0"> <bounds x=" 78" y=" 42" width="5" height="1" /> </bezel> |
| 624 | <bezel name="pg_1094" element="Page1" state="0"> <bounds x=" 78" y=" 43" width="5" height="1" /> </bezel> |
| 625 | <bezel name="pg_1095" element="Page1" state="0"> <bounds x=" 78" y=" 44" width="5" height="1" /> </bezel> |
| 626 | <bezel name="pg_1096" element="Page1" state="0"> <bounds x=" 78" y=" 45" width="5" height="1" /> </bezel> |
| 627 | <bezel name="pg_1097" element="Page1" state="0"> <bounds x=" 78" y=" 46" width="5" height="1" /> </bezel> |
| 628 | <bezel name="pg_1098" element="Page1" state="0"> <bounds x=" 84" y=" 40" width="5" height="1" /> </bezel> |
| 629 | <bezel name="pg_1099" element="Page1" state="0"> <bounds x=" 84" y=" 41" width="5" height="1" /> </bezel> |
| 630 | <bezel name="pg_1100" element="Page1" state="0"> <bounds x=" 84" y=" 42" width="5" height="1" /> </bezel> |
| 631 | <bezel name="pg_1101" element="Page1" state="0"> <bounds x=" 84" y=" 43" width="5" height="1" /> </bezel> |
| 632 | <bezel name="pg_1102" element="Page1" state="0"> <bounds x=" 84" y=" 44" width="5" height="1" /> </bezel> |
| 633 | <bezel name="pg_1103" element="Page1" state="0"> <bounds x=" 84" y=" 45" width="5" height="1" /> </bezel> |
| 634 | <bezel name="pg_1104" element="Page1" state="0"> <bounds x=" 84" y=" 46" width="5" height="1" /> </bezel> |
| 635 | <bezel name="pg_1105" element="Page1" state="0"> <bounds x=" 90" y=" 40" width="5" height="1" /> </bezel> |
| 636 | <bezel name="pg_1106" element="Page1" state="0"> <bounds x=" 90" y=" 41" width="5" height="1" /> </bezel> |
| 637 | <bezel name="pg_1107" element="Page1" state="0"> <bounds x=" 90" y=" 42" width="5" height="1" /> </bezel> |
| 638 | <bezel name="pg_1108" element="Page1" state="0"> <bounds x=" 90" y=" 43" width="5" height="1" /> </bezel> |
| 639 | <bezel name="pg_1109" element="Page1" state="0"> <bounds x=" 90" y=" 44" width="5" height="1" /> </bezel> |
| 640 | <bezel name="pg_1110" element="Page1" state="0"> <bounds x=" 90" y=" 45" width="5" height="1" /> </bezel> |
| 641 | <bezel name="pg_1111" element="Page1" state="0"> <bounds x=" 90" y=" 46" width="5" height="1" /> </bezel> |
| 642 | <bezel name="pg_1112" element="Page1" state="0"> <bounds x=" 0" y=" 50" width="5" height="1" /> </bezel> |
| 643 | <bezel name="pg_1113" element="Page1" state="0"> <bounds x=" 0" y=" 51" width="5" height="1" /> </bezel> |
| 644 | <bezel name="pg_1114" element="Page1" state="0"> <bounds x=" 0" y=" 52" width="5" height="1" /> </bezel> |
| 645 | <bezel name="pg_1115" element="Page1" state="0"> <bounds x=" 0" y=" 53" width="5" height="1" /> </bezel> |
| 646 | <bezel name="pg_1116" element="Page1" state="0"> <bounds x=" 0" y=" 54" width="5" height="1" /> </bezel> |
| 647 | <bezel name="pg_1117" element="Page1" state="0"> <bounds x=" 0" y=" 55" width="5" height="1" /> </bezel> |
| 648 | <bezel name="pg_1118" element="Page1" state="0"> <bounds x=" 0" y=" 56" width="5" height="1" /> </bezel> |
| 649 | <bezel name="pg_1119" element="Page1" state="0"> <bounds x=" 6" y=" 50" width="5" height="1" /> </bezel> |
| 650 | <bezel name="pg_1120" element="Page1" state="0"> <bounds x=" 6" y=" 51" width="5" height="1" /> </bezel> |
| 651 | <bezel name="pg_1121" element="Page1" state="0"> <bounds x=" 6" y=" 52" width="5" height="1" /> </bezel> |
| 652 | <bezel name="pg_1122" element="Page1" state="0"> <bounds x=" 6" y=" 53" width="5" height="1" /> </bezel> |
| 653 | <bezel name="pg_1123" element="Page1" state="0"> <bounds x=" 6" y=" 54" width="5" height="1" /> </bezel> |
| 654 | <bezel name="pg_1124" element="Page1" state="0"> <bounds x=" 6" y=" 55" width="5" height="1" /> </bezel> |
| 655 | <bezel name="pg_1125" element="Page1" state="0"> <bounds x=" 6" y=" 56" width="5" height="1" /> </bezel> |
| 656 | <bezel name="pg_1126" element="Page1" state="0"> <bounds x=" 12" y=" 50" width="5" height="1" /> </bezel> |
| 657 | <bezel name="pg_1127" element="Page1" state="0"> <bounds x=" 12" y=" 51" width="5" height="1" /> </bezel> |
| 658 | <bezel name="pg_1128" element="Page1" state="0"> <bounds x=" 12" y=" 52" width="5" height="1" /> </bezel> |
| 659 | <bezel name="pg_1129" element="Page1" state="0"> <bounds x=" 12" y=" 53" width="5" height="1" /> </bezel> |
| 660 | <bezel name="pg_1130" element="Page1" state="0"> <bounds x=" 12" y=" 54" width="5" height="1" /> </bezel> |
| 661 | <bezel name="pg_1131" element="Page1" state="0"> <bounds x=" 12" y=" 55" width="5" height="1" /> </bezel> |
| 662 | <bezel name="pg_1132" element="Page1" state="0"> <bounds x=" 12" y=" 56" width="5" height="1" /> </bezel> |
| 663 | <bezel name="pg_1133" element="Page1" state="0"> <bounds x=" 18" y=" 50" width="5" height="1" /> </bezel> |
| 664 | <bezel name="pg_1134" element="Page1" state="0"> <bounds x=" 18" y=" 51" width="5" height="1" /> </bezel> |
| 665 | <bezel name="pg_1135" element="Page1" state="0"> <bounds x=" 18" y=" 52" width="5" height="1" /> </bezel> |
| 666 | <bezel name="pg_1136" element="Page1" state="0"> <bounds x=" 18" y=" 53" width="5" height="1" /> </bezel> |
| 667 | <bezel name="pg_1137" element="Page1" state="0"> <bounds x=" 18" y=" 54" width="5" height="1" /> </bezel> |
| 668 | <bezel name="pg_1138" element="Page1" state="0"> <bounds x=" 18" y=" 55" width="5" height="1" /> </bezel> |
| 669 | <bezel name="pg_1139" element="Page1" state="0"> <bounds x=" 18" y=" 56" width="5" height="1" /> </bezel> |
| 670 | <bezel name="pg_1140" element="Page1" state="0"> <bounds x=" 24" y=" 50" width="5" height="1" /> </bezel> |
| 671 | <bezel name="pg_1141" element="Page1" state="0"> <bounds x=" 24" y=" 51" width="5" height="1" /> </bezel> |
| 672 | <bezel name="pg_1142" element="Page1" state="0"> <bounds x=" 24" y=" 52" width="5" height="1" /> </bezel> |
| 673 | <bezel name="pg_1143" element="Page1" state="0"> <bounds x=" 24" y=" 53" width="5" height="1" /> </bezel> |
| 674 | <bezel name="pg_1144" element="Page1" state="0"> <bounds x=" 24" y=" 54" width="5" height="1" /> </bezel> |
| 675 | <bezel name="pg_1145" element="Page1" state="0"> <bounds x=" 24" y=" 55" width="5" height="1" /> </bezel> |
| 676 | <bezel name="pg_1146" element="Page1" state="0"> <bounds x=" 24" y=" 56" width="5" height="1" /> </bezel> |
| 677 | <bezel name="pg_1147" element="Page1" state="0"> <bounds x=" 30" y=" 50" width="5" height="1" /> </bezel> |
| 678 | <bezel name="pg_1148" element="Page1" state="0"> <bounds x=" 30" y=" 51" width="5" height="1" /> </bezel> |
| 679 | <bezel name="pg_1149" element="Page1" state="0"> <bounds x=" 30" y=" 52" width="5" height="1" /> </bezel> |
| 680 | <bezel name="pg_1150" element="Page1" state="0"> <bounds x=" 30" y=" 53" width="5" height="1" /> </bezel> |
| 681 | <bezel name="pg_1151" element="Page1" state="0"> <bounds x=" 30" y=" 54" width="5" height="1" /> </bezel> |
| 682 | <bezel name="pg_1152" element="Page1" state="0"> <bounds x=" 30" y=" 55" width="5" height="1" /> </bezel> |
| 683 | <bezel name="pg_1153" element="Page1" state="0"> <bounds x=" 30" y=" 56" width="5" height="1" /> </bezel> |
| 684 | <bezel name="pg_1154" element="Page1" state="0"> <bounds x=" 36" y=" 50" width="5" height="1" /> </bezel> |
| 685 | <bezel name="pg_1155" element="Page1" state="0"> <bounds x=" 36" y=" 51" width="5" height="1" /> </bezel> |
| 686 | <bezel name="pg_1156" element="Page1" state="0"> <bounds x=" 36" y=" 52" width="5" height="1" /> </bezel> |
| 687 | <bezel name="pg_1157" element="Page1" state="0"> <bounds x=" 36" y=" 53" width="5" height="1" /> </bezel> |
| 688 | <bezel name="pg_1158" element="Page1" state="0"> <bounds x=" 36" y=" 54" width="5" height="1" /> </bezel> |
| 689 | <bezel name="pg_1159" element="Page1" state="0"> <bounds x=" 36" y=" 55" width="5" height="1" /> </bezel> |
| 690 | <bezel name="pg_1160" element="Page1" state="0"> <bounds x=" 36" y=" 56" width="5" height="1" /> </bezel> |
| 691 | <bezel name="pg_1161" element="Page1" state="0"> <bounds x=" 42" y=" 50" width="5" height="1" /> </bezel> |
| 692 | <bezel name="pg_1162" element="Page1" state="0"> <bounds x=" 42" y=" 51" width="5" height="1" /> </bezel> |
| 693 | <bezel name="pg_1163" element="Page1" state="0"> <bounds x=" 42" y=" 52" width="5" height="1" /> </bezel> |
| 694 | <bezel name="pg_1164" element="Page1" state="0"> <bounds x=" 42" y=" 53" width="5" height="1" /> </bezel> |
| 695 | <bezel name="pg_1165" element="Page1" state="0"> <bounds x=" 42" y=" 54" width="5" height="1" /> </bezel> |
| 696 | <bezel name="pg_1166" element="Page1" state="0"> <bounds x=" 42" y=" 55" width="5" height="1" /> </bezel> |
| 697 | <bezel name="pg_1167" element="Page1" state="0"> <bounds x=" 42" y=" 56" width="5" height="1" /> </bezel> |
| 698 | <bezel name="pg_1168" element="Page1" state="0"> <bounds x=" 48" y=" 50" width="5" height="1" /> </bezel> |
| 699 | <bezel name="pg_1169" element="Page1" state="0"> <bounds x=" 48" y=" 51" width="5" height="1" /> </bezel> |
| 700 | <bezel name="pg_1170" element="Page1" state="0"> <bounds x=" 48" y=" 52" width="5" height="1" /> </bezel> |
| 701 | <bezel name="pg_1171" element="Page1" state="0"> <bounds x=" 48" y=" 53" width="5" height="1" /> </bezel> |
| 702 | <bezel name="pg_1172" element="Page1" state="0"> <bounds x=" 48" y=" 54" width="5" height="1" /> </bezel> |
| 703 | <bezel name="pg_1173" element="Page1" state="0"> <bounds x=" 48" y=" 55" width="5" height="1" /> </bezel> |
| 704 | <bezel name="pg_1174" element="Page1" state="0"> <bounds x=" 48" y=" 56" width="5" height="1" /> </bezel> |
| 705 | <bezel name="pg_1175" element="Page1" state="0"> <bounds x=" 54" y=" 50" width="5" height="1" /> </bezel> |
| 706 | <bezel name="pg_1176" element="Page1" state="0"> <bounds x=" 54" y=" 51" width="5" height="1" /> </bezel> |
| 707 | <bezel name="pg_1177" element="Page1" state="0"> <bounds x=" 54" y=" 52" width="5" height="1" /> </bezel> |
| 708 | <bezel name="pg_1178" element="Page1" state="0"> <bounds x=" 54" y=" 53" width="5" height="1" /> </bezel> |
| 709 | <bezel name="pg_1179" element="Page1" state="0"> <bounds x=" 54" y=" 54" width="5" height="1" /> </bezel> |
| 710 | <bezel name="pg_1180" element="Page1" state="0"> <bounds x=" 54" y=" 55" width="5" height="1" /> </bezel> |
| 711 | <bezel name="pg_1181" element="Page1" state="0"> <bounds x=" 54" y=" 56" width="5" height="1" /> </bezel> |
| 712 | <bezel name="pg_1182" element="Page1" state="0"> <bounds x=" 60" y=" 50" width="5" height="1" /> </bezel> |
| 713 | <bezel name="pg_1183" element="Page1" state="0"> <bounds x=" 60" y=" 51" width="5" height="1" /> </bezel> |
| 714 | <bezel name="pg_1184" element="Page1" state="0"> <bounds x=" 60" y=" 52" width="5" height="1" /> </bezel> |
| 715 | <bezel name="pg_1185" element="Page1" state="0"> <bounds x=" 60" y=" 53" width="5" height="1" /> </bezel> |
| 716 | <bezel name="pg_1186" element="Page1" state="0"> <bounds x=" 60" y=" 54" width="5" height="1" /> </bezel> |
| 717 | <bezel name="pg_1187" element="Page1" state="0"> <bounds x=" 60" y=" 55" width="5" height="1" /> </bezel> |
| 718 | <bezel name="pg_1188" element="Page1" state="0"> <bounds x=" 60" y=" 56" width="5" height="1" /> </bezel> |
| 719 | <bezel name="pg_1189" element="Page1" state="0"> <bounds x=" 66" y=" 50" width="5" height="1" /> </bezel> |
| 720 | <bezel name="pg_1190" element="Page1" state="0"> <bounds x=" 66" y=" 51" width="5" height="1" /> </bezel> |
| 721 | <bezel name="pg_1191" element="Page1" state="0"> <bounds x=" 66" y=" 52" width="5" height="1" /> </bezel> |
| 722 | <bezel name="pg_1192" element="Page1" state="0"> <bounds x=" 66" y=" 53" width="5" height="1" /> </bezel> |
| 723 | <bezel name="pg_1193" element="Page1" state="0"> <bounds x=" 66" y=" 54" width="5" height="1" /> </bezel> |
| 724 | <bezel name="pg_1194" element="Page1" state="0"> <bounds x=" 66" y=" 55" width="5" height="1" /> </bezel> |
| 725 | <bezel name="pg_1195" element="Page1" state="0"> <bounds x=" 66" y=" 56" width="5" height="1" /> </bezel> |
| 726 | <bezel name="pg_1196" element="Page1" state="0"> <bounds x=" 72" y=" 50" width="5" height="1" /> </bezel> |
| 727 | <bezel name="pg_1197" element="Page1" state="0"> <bounds x=" 72" y=" 51" width="5" height="1" /> </bezel> |
| 728 | <bezel name="pg_1198" element="Page1" state="0"> <bounds x=" 72" y=" 52" width="5" height="1" /> </bezel> |
| 729 | <bezel name="pg_1199" element="Page1" state="0"> <bounds x=" 72" y=" 53" width="5" height="1" /> </bezel> |
| 730 | <bezel name="pg_1200" element="Page1" state="0"> <bounds x=" 72" y=" 54" width="5" height="1" /> </bezel> |
| 731 | <bezel name="pg_1201" element="Page1" state="0"> <bounds x=" 72" y=" 55" width="5" height="1" /> </bezel> |
| 732 | <bezel name="pg_1202" element="Page1" state="0"> <bounds x=" 72" y=" 56" width="5" height="1" /> </bezel> |
| 733 | <bezel name="pg_1203" element="Page1" state="0"> <bounds x=" 78" y=" 50" width="5" height="1" /> </bezel> |
| 734 | <bezel name="pg_1204" element="Page1" state="0"> <bounds x=" 78" y=" 51" width="5" height="1" /> </bezel> |
| 735 | <bezel name="pg_1205" element="Page1" state="0"> <bounds x=" 78" y=" 52" width="5" height="1" /> </bezel> |
| 736 | <bezel name="pg_1206" element="Page1" state="0"> <bounds x=" 78" y=" 53" width="5" height="1" /> </bezel> |
| 737 | <bezel name="pg_1207" element="Page1" state="0"> <bounds x=" 78" y=" 54" width="5" height="1" /> </bezel> |
| 738 | <bezel name="pg_1208" element="Page1" state="0"> <bounds x=" 78" y=" 55" width="5" height="1" /> </bezel> |
| 739 | <bezel name="pg_1209" element="Page1" state="0"> <bounds x=" 78" y=" 56" width="5" height="1" /> </bezel> |
| 740 | <bezel name="pg_1210" element="Page1" state="0"> <bounds x=" 84" y=" 50" width="5" height="1" /> </bezel> |
| 741 | <bezel name="pg_1211" element="Page1" state="0"> <bounds x=" 84" y=" 51" width="5" height="1" /> </bezel> |
| 742 | <bezel name="pg_1212" element="Page1" state="0"> <bounds x=" 84" y=" 52" width="5" height="1" /> </bezel> |
| 743 | <bezel name="pg_1213" element="Page1" state="0"> <bounds x=" 84" y=" 53" width="5" height="1" /> </bezel> |
| 744 | <bezel name="pg_1214" element="Page1" state="0"> <bounds x=" 84" y=" 54" width="5" height="1" /> </bezel> |
| 745 | <bezel name="pg_1215" element="Page1" state="0"> <bounds x=" 84" y=" 55" width="5" height="1" /> </bezel> |
| 746 | <bezel name="pg_1216" element="Page1" state="0"> <bounds x=" 84" y=" 56" width="5" height="1" /> </bezel> |
| 747 | <bezel name="pg_1217" element="Page1" state="0"> <bounds x=" 90" y=" 50" width="5" height="1" /> </bezel> |
| 748 | <bezel name="pg_1218" element="Page1" state="0"> <bounds x=" 90" y=" 51" width="5" height="1" /> </bezel> |
| 749 | <bezel name="pg_1219" element="Page1" state="0"> <bounds x=" 90" y=" 52" width="5" height="1" /> </bezel> |
| 750 | <bezel name="pg_1220" element="Page1" state="0"> <bounds x=" 90" y=" 53" width="5" height="1" /> </bezel> |
| 751 | <bezel name="pg_1221" element="Page1" state="0"> <bounds x=" 90" y=" 54" width="5" height="1" /> </bezel> |
| 752 | <bezel name="pg_1222" element="Page1" state="0"> <bounds x=" 90" y=" 55" width="5" height="1" /> </bezel> |
| 753 | <bezel name="pg_1223" element="Page1" state="0"> <bounds x=" 90" y=" 56" width="5" height="1" /> </bezel> |
| 754 | 754 | |
| 755 | | <bezel name="pg_4000" element="Page4" state="0"> <bounds x=" 0" y=" 80" width="5" height="1" /> </bezel> |
| 756 | | <bezel name="pg_4001" element="Page4" state="0"> <bounds x=" 0" y=" 81" width="5" height="1" /> </bezel> |
| 757 | | <bezel name="pg_4002" element="Page4" state="0"> <bounds x=" 0" y=" 82" width="5" height="1" /> </bezel> |
| 758 | | <bezel name="pg_4003" element="Page4" state="0"> <bounds x=" 0" y=" 83" width="5" height="1" /> </bezel> |
| 759 | | <bezel name="pg_4004" element="Page4" state="0"> <bounds x=" 0" y=" 84" width="5" height="1" /> </bezel> |
| 760 | | <bezel name="pg_4005" element="Page4" state="0"> <bounds x=" 0" y=" 85" width="5" height="1" /> </bezel> |
| 761 | | <bezel name="pg_4006" element="Page4" state="0"> <bounds x=" 0" y=" 86" width="5" height="1" /> </bezel> |
| 762 | | <bezel name="pg_4007" element="Page4" state="0"> <bounds x=" 6" y=" 80" width="5" height="1" /> </bezel> |
| 763 | | <bezel name="pg_4008" element="Page4" state="0"> <bounds x=" 6" y=" 81" width="5" height="1" /> </bezel> |
| 764 | | <bezel name="pg_4009" element="Page4" state="0"> <bounds x=" 6" y=" 82" width="5" height="1" /> </bezel> |
| 765 | | <bezel name="pg_4010" element="Page4" state="0"> <bounds x=" 6" y=" 83" width="5" height="1" /> </bezel> |
| 766 | | <bezel name="pg_4011" element="Page4" state="0"> <bounds x=" 6" y=" 84" width="5" height="1" /> </bezel> |
| 767 | | <bezel name="pg_4012" element="Page4" state="0"> <bounds x=" 6" y=" 85" width="5" height="1" /> </bezel> |
| 768 | | <bezel name="pg_4013" element="Page4" state="0"> <bounds x=" 6" y=" 86" width="5" height="1" /> </bezel> |
| 769 | | <bezel name="pg_4014" element="Page4" state="0"> <bounds x=" 12" y=" 80" width="5" height="1" /> </bezel> |
| 770 | | <bezel name="pg_4015" element="Page4" state="0"> <bounds x=" 12" y=" 81" width="5" height="1" /> </bezel> |
| 771 | | <bezel name="pg_4016" element="Page4" state="0"> <bounds x=" 12" y=" 82" width="5" height="1" /> </bezel> |
| 772 | | <bezel name="pg_4017" element="Page4" state="0"> <bounds x=" 12" y=" 83" width="5" height="1" /> </bezel> |
| 773 | | <bezel name="pg_4018" element="Page4" state="0"> <bounds x=" 12" y=" 84" width="5" height="1" /> </bezel> |
| 774 | | <bezel name="pg_4019" element="Page4" state="0"> <bounds x=" 12" y=" 85" width="5" height="1" /> </bezel> |
| 775 | | <bezel name="pg_4020" element="Page4" state="0"> <bounds x=" 12" y=" 86" width="5" height="1" /> </bezel> |
| 776 | | <bezel name="pg_4021" element="Page4" state="0"> <bounds x=" 18" y=" 80" width="5" height="1" /> </bezel> |
| 777 | | <bezel name="pg_4022" element="Page4" state="0"> <bounds x=" 18" y=" 81" width="5" height="1" /> </bezel> |
| 778 | | <bezel name="pg_4023" element="Page4" state="0"> <bounds x=" 18" y=" 82" width="5" height="1" /> </bezel> |
| 779 | | <bezel name="pg_4024" element="Page4" state="0"> <bounds x=" 18" y=" 83" width="5" height="1" /> </bezel> |
| 780 | | <bezel name="pg_4025" element="Page4" state="0"> <bounds x=" 18" y=" 84" width="5" height="1" /> </bezel> |
| 781 | | <bezel name="pg_4026" element="Page4" state="0"> <bounds x=" 18" y=" 85" width="5" height="1" /> </bezel> |
| 782 | | <bezel name="pg_4027" element="Page4" state="0"> <bounds x=" 18" y=" 86" width="5" height="1" /> </bezel> |
| 783 | | <bezel name="pg_4028" element="Page4" state="0"> <bounds x=" 24" y=" 80" width="5" height="1" /> </bezel> |
| 784 | | <bezel name="pg_4029" element="Page4" state="0"> <bounds x=" 24" y=" 81" width="5" height="1" /> </bezel> |
| 785 | | <bezel name="pg_4030" element="Page4" state="0"> <bounds x=" 24" y=" 82" width="5" height="1" /> </bezel> |
| 786 | | <bezel name="pg_4031" element="Page4" state="0"> <bounds x=" 24" y=" 83" width="5" height="1" /> </bezel> |
| 787 | | <bezel name="pg_4032" element="Page4" state="0"> <bounds x=" 24" y=" 84" width="5" height="1" /> </bezel> |
| 788 | | <bezel name="pg_4033" element="Page4" state="0"> <bounds x=" 24" y=" 85" width="5" height="1" /> </bezel> |
| 789 | | <bezel name="pg_4034" element="Page4" state="0"> <bounds x=" 24" y=" 86" width="5" height="1" /> </bezel> |
| 790 | | <bezel name="pg_4035" element="Page4" state="0"> <bounds x=" 30" y=" 80" width="5" height="1" /> </bezel> |
| 791 | | <bezel name="pg_4036" element="Page4" state="0"> <bounds x=" 30" y=" 81" width="5" height="1" /> </bezel> |
| 792 | | <bezel name="pg_4037" element="Page4" state="0"> <bounds x=" 30" y=" 82" width="5" height="1" /> </bezel> |
| 793 | | <bezel name="pg_4038" element="Page4" state="0"> <bounds x=" 30" y=" 83" width="5" height="1" /> </bezel> |
| 794 | | <bezel name="pg_4039" element="Page4" state="0"> <bounds x=" 30" y=" 84" width="5" height="1" /> </bezel> |
| 795 | | <bezel name="pg_4040" element="Page4" state="0"> <bounds x=" 30" y=" 85" width="5" height="1" /> </bezel> |
| 796 | | <bezel name="pg_4041" element="Page4" state="0"> <bounds x=" 30" y=" 86" width="5" height="1" /> </bezel> |
| 797 | | <bezel name="pg_4042" element="Page4" state="0"> <bounds x=" 36" y=" 80" width="5" height="1" /> </bezel> |
| 798 | | <bezel name="pg_4043" element="Page4" state="0"> <bounds x=" 36" y=" 81" width="5" height="1" /> </bezel> |
| 799 | | <bezel name="pg_4044" element="Page4" state="0"> <bounds x=" 36" y=" 82" width="5" height="1" /> </bezel> |
| 800 | | <bezel name="pg_4045" element="Page4" state="0"> <bounds x=" 36" y=" 83" width="5" height="1" /> </bezel> |
| 801 | | <bezel name="pg_4046" element="Page4" state="0"> <bounds x=" 36" y=" 84" width="5" height="1" /> </bezel> |
| 802 | | <bezel name="pg_4047" element="Page4" state="0"> <bounds x=" 36" y=" 85" width="5" height="1" /> </bezel> |
| 803 | | <bezel name="pg_4048" element="Page4" state="0"> <bounds x=" 36" y=" 86" width="5" height="1" /> </bezel> |
| 804 | | <bezel name="pg_4049" element="Page4" state="0"> <bounds x=" 42" y=" 80" width="5" height="1" /> </bezel> |
| 805 | | <bezel name="pg_4050" element="Page4" state="0"> <bounds x=" 42" y=" 81" width="5" height="1" /> </bezel> |
| 806 | | <bezel name="pg_4051" element="Page4" state="0"> <bounds x=" 42" y=" 82" width="5" height="1" /> </bezel> |
| 807 | | <bezel name="pg_4052" element="Page4" state="0"> <bounds x=" 42" y=" 83" width="5" height="1" /> </bezel> |
| 808 | | <bezel name="pg_4053" element="Page4" state="0"> <bounds x=" 42" y=" 84" width="5" height="1" /> </bezel> |
| 809 | | <bezel name="pg_4054" element="Page4" state="0"> <bounds x=" 42" y=" 85" width="5" height="1" /> </bezel> |
| 810 | | <bezel name="pg_4055" element="Page4" state="0"> <bounds x=" 42" y=" 86" width="5" height="1" /> </bezel> |
| 811 | | <bezel name="pg_4056" element="Page4" state="0"> <bounds x=" 48" y=" 80" width="5" height="1" /> </bezel> |
| 812 | | <bezel name="pg_4057" element="Page4" state="0"> <bounds x=" 48" y=" 81" width="5" height="1" /> </bezel> |
| 813 | | <bezel name="pg_4058" element="Page4" state="0"> <bounds x=" 48" y=" 82" width="5" height="1" /> </bezel> |
| 814 | | <bezel name="pg_4059" element="Page4" state="0"> <bounds x=" 48" y=" 83" width="5" height="1" /> </bezel> |
| 815 | | <bezel name="pg_4060" element="Page4" state="0"> <bounds x=" 48" y=" 84" width="5" height="1" /> </bezel> |
| 816 | | <bezel name="pg_4061" element="Page4" state="0"> <bounds x=" 48" y=" 85" width="5" height="1" /> </bezel> |
| 817 | | <bezel name="pg_4062" element="Page4" state="0"> <bounds x=" 48" y=" 86" width="5" height="1" /> </bezel> |
| 818 | | <bezel name="pg_4063" element="Page4" state="0"> <bounds x=" 54" y=" 80" width="5" height="1" /> </bezel> |
| 819 | | <bezel name="pg_4064" element="Page4" state="0"> <bounds x=" 54" y=" 81" width="5" height="1" /> </bezel> |
| 820 | | <bezel name="pg_4065" element="Page4" state="0"> <bounds x=" 54" y=" 82" width="5" height="1" /> </bezel> |
| 821 | | <bezel name="pg_4066" element="Page4" state="0"> <bounds x=" 54" y=" 83" width="5" height="1" /> </bezel> |
| 822 | | <bezel name="pg_4067" element="Page4" state="0"> <bounds x=" 54" y=" 84" width="5" height="1" /> </bezel> |
| 823 | | <bezel name="pg_4068" element="Page4" state="0"> <bounds x=" 54" y=" 85" width="5" height="1" /> </bezel> |
| 824 | | <bezel name="pg_4069" element="Page4" state="0"> <bounds x=" 54" y=" 86" width="5" height="1" /> </bezel> |
| 825 | | <bezel name="pg_4070" element="Page4" state="0"> <bounds x=" 60" y=" 80" width="5" height="1" /> </bezel> |
| 826 | | <bezel name="pg_4071" element="Page4" state="0"> <bounds x=" 60" y=" 81" width="5" height="1" /> </bezel> |
| 827 | | <bezel name="pg_4072" element="Page4" state="0"> <bounds x=" 60" y=" 82" width="5" height="1" /> </bezel> |
| 828 | | <bezel name="pg_4073" element="Page4" state="0"> <bounds x=" 60" y=" 83" width="5" height="1" /> </bezel> |
| 829 | | <bezel name="pg_4074" element="Page4" state="0"> <bounds x=" 60" y=" 84" width="5" height="1" /> </bezel> |
| 830 | | <bezel name="pg_4075" element="Page4" state="0"> <bounds x=" 60" y=" 85" width="5" height="1" /> </bezel> |
| 831 | | <bezel name="pg_4076" element="Page4" state="0"> <bounds x=" 60" y=" 86" width="5" height="1" /> </bezel> |
| 832 | | <bezel name="pg_4077" element="Page4" state="0"> <bounds x=" 66" y=" 80" width="5" height="1" /> </bezel> |
| 833 | | <bezel name="pg_4078" element="Page4" state="0"> <bounds x=" 66" y=" 81" width="5" height="1" /> </bezel> |
| 834 | | <bezel name="pg_4079" element="Page4" state="0"> <bounds x=" 66" y=" 82" width="5" height="1" /> </bezel> |
| 835 | | <bezel name="pg_4080" element="Page4" state="0"> <bounds x=" 66" y=" 83" width="5" height="1" /> </bezel> |
| 836 | | <bezel name="pg_4081" element="Page4" state="0"> <bounds x=" 66" y=" 84" width="5" height="1" /> </bezel> |
| 837 | | <bezel name="pg_4082" element="Page4" state="0"> <bounds x=" 66" y=" 85" width="5" height="1" /> </bezel> |
| 838 | | <bezel name="pg_4083" element="Page4" state="0"> <bounds x=" 66" y=" 86" width="5" height="1" /> </bezel> |
| 839 | | <bezel name="pg_4084" element="Page4" state="0"> <bounds x=" 72" y=" 80" width="5" height="1" /> </bezel> |
| 840 | | <bezel name="pg_4085" element="Page4" state="0"> <bounds x=" 72" y=" 81" width="5" height="1" /> </bezel> |
| 841 | | <bezel name="pg_4086" element="Page4" state="0"> <bounds x=" 72" y=" 82" width="5" height="1" /> </bezel> |
| 842 | | <bezel name="pg_4087" element="Page4" state="0"> <bounds x=" 72" y=" 83" width="5" height="1" /> </bezel> |
| 843 | | <bezel name="pg_4088" element="Page4" state="0"> <bounds x=" 72" y=" 84" width="5" height="1" /> </bezel> |
| 844 | | <bezel name="pg_4089" element="Page4" state="0"> <bounds x=" 72" y=" 85" width="5" height="1" /> </bezel> |
| 845 | | <bezel name="pg_4090" element="Page4" state="0"> <bounds x=" 72" y=" 86" width="5" height="1" /> </bezel> |
| 846 | | <bezel name="pg_4091" element="Page4" state="0"> <bounds x=" 78" y=" 80" width="5" height="1" /> </bezel> |
| 847 | | <bezel name="pg_4092" element="Page4" state="0"> <bounds x=" 78" y=" 81" width="5" height="1" /> </bezel> |
| 848 | | <bezel name="pg_4093" element="Page4" state="0"> <bounds x=" 78" y=" 82" width="5" height="1" /> </bezel> |
| 849 | | <bezel name="pg_4094" element="Page4" state="0"> <bounds x=" 78" y=" 83" width="5" height="1" /> </bezel> |
| 850 | | <bezel name="pg_4095" element="Page4" state="0"> <bounds x=" 78" y=" 84" width="5" height="1" /> </bezel> |
| 851 | | <bezel name="pg_4096" element="Page4" state="0"> <bounds x=" 78" y=" 85" width="5" height="1" /> </bezel> |
| 852 | | <bezel name="pg_4097" element="Page4" state="0"> <bounds x=" 78" y=" 86" width="5" height="1" /> </bezel> |
| 853 | | <bezel name="pg_4098" element="Page4" state="0"> <bounds x=" 84" y=" 80" width="5" height="1" /> </bezel> |
| 854 | | <bezel name="pg_4099" element="Page4" state="0"> <bounds x=" 84" y=" 81" width="5" height="1" /> </bezel> |
| 855 | | <bezel name="pg_4100" element="Page4" state="0"> <bounds x=" 84" y=" 82" width="5" height="1" /> </bezel> |
| 856 | | <bezel name="pg_4101" element="Page4" state="0"> <bounds x=" 84" y=" 83" width="5" height="1" /> </bezel> |
| 857 | | <bezel name="pg_4102" element="Page4" state="0"> <bounds x=" 84" y=" 84" width="5" height="1" /> </bezel> |
| 858 | | <bezel name="pg_4103" element="Page4" state="0"> <bounds x=" 84" y=" 85" width="5" height="1" /> </bezel> |
| 859 | | <bezel name="pg_4104" element="Page4" state="0"> <bounds x=" 84" y=" 86" width="5" height="1" /> </bezel> |
| 860 | | <bezel name="pg_4105" element="Page4" state="0"> <bounds x=" 90" y=" 80" width="5" height="1" /> </bezel> |
| 861 | | <bezel name="pg_4106" element="Page4" state="0"> <bounds x=" 90" y=" 81" width="5" height="1" /> </bezel> |
| 862 | | <bezel name="pg_4107" element="Page4" state="0"> <bounds x=" 90" y=" 82" width="5" height="1" /> </bezel> |
| 863 | | <bezel name="pg_4108" element="Page4" state="0"> <bounds x=" 90" y=" 83" width="5" height="1" /> </bezel> |
| 864 | | <bezel name="pg_4109" element="Page4" state="0"> <bounds x=" 90" y=" 84" width="5" height="1" /> </bezel> |
| 865 | | <bezel name="pg_4110" element="Page4" state="0"> <bounds x=" 90" y=" 85" width="5" height="1" /> </bezel> |
| 866 | | <bezel name="pg_4111" element="Page4" state="0"> <bounds x=" 90" y=" 86" width="5" height="1" /> </bezel> |
| 867 | | <bezel name="pg_4112" element="Page4" state="0"> <bounds x=" 0" y=" 90" width="5" height="1" /> </bezel> |
| 868 | | <bezel name="pg_4113" element="Page4" state="0"> <bounds x=" 0" y=" 91" width="5" height="1" /> </bezel> |
| 869 | | <bezel name="pg_4114" element="Page4" state="0"> <bounds x=" 0" y=" 92" width="5" height="1" /> </bezel> |
| 870 | | <bezel name="pg_4115" element="Page4" state="0"> <bounds x=" 0" y=" 93" width="5" height="1" /> </bezel> |
| 871 | | <bezel name="pg_4116" element="Page4" state="0"> <bounds x=" 0" y=" 94" width="5" height="1" /> </bezel> |
| 872 | | <bezel name="pg_4117" element="Page4" state="0"> <bounds x=" 0" y=" 95" width="5" height="1" /> </bezel> |
| 873 | | <bezel name="pg_4118" element="Page4" state="0"> <bounds x=" 0" y=" 96" width="5" height="1" /> </bezel> |
| 874 | | <bezel name="pg_4119" element="Page4" state="0"> <bounds x=" 6" y=" 90" width="5" height="1" /> </bezel> |
| 875 | | <bezel name="pg_4120" element="Page4" state="0"> <bounds x=" 6" y=" 91" width="5" height="1" /> </bezel> |
| 876 | | <bezel name="pg_4121" element="Page4" state="0"> <bounds x=" 6" y=" 92" width="5" height="1" /> </bezel> |
| 877 | | <bezel name="pg_4122" element="Page4" state="0"> <bounds x=" 6" y=" 93" width="5" height="1" /> </bezel> |
| 878 | | <bezel name="pg_4123" element="Page4" state="0"> <bounds x=" 6" y=" 94" width="5" height="1" /> </bezel> |
| 879 | | <bezel name="pg_4124" element="Page4" state="0"> <bounds x=" 6" y=" 95" width="5" height="1" /> </bezel> |
| 880 | | <bezel name="pg_4125" element="Page4" state="0"> <bounds x=" 6" y=" 96" width="5" height="1" /> </bezel> |
| 881 | | <bezel name="pg_4126" element="Page4" state="0"> <bounds x=" 12" y=" 90" width="5" height="1" /> </bezel> |
| 882 | | <bezel name="pg_4127" element="Page4" state="0"> <bounds x=" 12" y=" 91" width="5" height="1" /> </bezel> |
| 883 | | <bezel name="pg_4128" element="Page4" state="0"> <bounds x=" 12" y=" 92" width="5" height="1" /> </bezel> |
| 884 | | <bezel name="pg_4129" element="Page4" state="0"> <bounds x=" 12" y=" 93" width="5" height="1" /> </bezel> |
| 885 | | <bezel name="pg_4130" element="Page4" state="0"> <bounds x=" 12" y=" 94" width="5" height="1" /> </bezel> |
| 886 | | <bezel name="pg_4131" element="Page4" state="0"> <bounds x=" 12" y=" 95" width="5" height="1" /> </bezel> |
| 887 | | <bezel name="pg_4132" element="Page4" state="0"> <bounds x=" 12" y=" 96" width="5" height="1" /> </bezel> |
| 888 | | <bezel name="pg_4133" element="Page4" state="0"> <bounds x=" 18" y=" 90" width="5" height="1" /> </bezel> |
| 889 | | <bezel name="pg_4134" element="Page4" state="0"> <bounds x=" 18" y=" 91" width="5" height="1" /> </bezel> |
| 890 | | <bezel name="pg_4135" element="Page4" state="0"> <bounds x=" 18" y=" 92" width="5" height="1" /> </bezel> |
| 891 | | <bezel name="pg_4136" element="Page4" state="0"> <bounds x=" 18" y=" 93" width="5" height="1" /> </bezel> |
| 892 | | <bezel name="pg_4137" element="Page4" state="0"> <bounds x=" 18" y=" 94" width="5" height="1" /> </bezel> |
| 893 | | <bezel name="pg_4138" element="Page4" state="0"> <bounds x=" 18" y=" 95" width="5" height="1" /> </bezel> |
| 894 | | <bezel name="pg_4139" element="Page4" state="0"> <bounds x=" 18" y=" 96" width="5" height="1" /> </bezel> |
| 895 | | <bezel name="pg_4140" element="Page4" state="0"> <bounds x=" 24" y=" 90" width="5" height="1" /> </bezel> |
| 896 | | <bezel name="pg_4141" element="Page4" state="0"> <bounds x=" 24" y=" 91" width="5" height="1" /> </bezel> |
| 897 | | <bezel name="pg_4142" element="Page4" state="0"> <bounds x=" 24" y=" 92" width="5" height="1" /> </bezel> |
| 898 | | <bezel name="pg_4143" element="Page4" state="0"> <bounds x=" 24" y=" 93" width="5" height="1" /> </bezel> |
| 899 | | <bezel name="pg_4144" element="Page4" state="0"> <bounds x=" 24" y=" 94" width="5" height="1" /> </bezel> |
| 900 | | <bezel name="pg_4145" element="Page4" state="0"> <bounds x=" 24" y=" 95" width="5" height="1" /> </bezel> |
| 901 | | <bezel name="pg_4146" element="Page4" state="0"> <bounds x=" 24" y=" 96" width="5" height="1" /> </bezel> |
| 902 | | <bezel name="pg_4147" element="Page4" state="0"> <bounds x=" 30" y=" 90" width="5" height="1" /> </bezel> |
| 903 | | <bezel name="pg_4148" element="Page4" state="0"> <bounds x=" 30" y=" 91" width="5" height="1" /> </bezel> |
| 904 | | <bezel name="pg_4149" element="Page4" state="0"> <bounds x=" 30" y=" 92" width="5" height="1" /> </bezel> |
| 905 | | <bezel name="pg_4150" element="Page4" state="0"> <bounds x=" 30" y=" 93" width="5" height="1" /> </bezel> |
| 906 | | <bezel name="pg_4151" element="Page4" state="0"> <bounds x=" 30" y=" 94" width="5" height="1" /> </bezel> |
| 907 | | <bezel name="pg_4152" element="Page4" state="0"> <bounds x=" 30" y=" 95" width="5" height="1" /> </bezel> |
| 908 | | <bezel name="pg_4153" element="Page4" state="0"> <bounds x=" 30" y=" 96" width="5" height="1" /> </bezel> |
| 909 | | <bezel name="pg_4154" element="Page4" state="0"> <bounds x=" 36" y=" 90" width="5" height="1" /> </bezel> |
| 910 | | <bezel name="pg_4155" element="Page4" state="0"> <bounds x=" 36" y=" 91" width="5" height="1" /> </bezel> |
| 911 | | <bezel name="pg_4156" element="Page4" state="0"> <bounds x=" 36" y=" 92" width="5" height="1" /> </bezel> |
| 912 | | <bezel name="pg_4157" element="Page4" state="0"> <bounds x=" 36" y=" 93" width="5" height="1" /> </bezel> |
| 913 | | <bezel name="pg_4158" element="Page4" state="0"> <bounds x=" 36" y=" 94" width="5" height="1" /> </bezel> |
| 914 | | <bezel name="pg_4159" element="Page4" state="0"> <bounds x=" 36" y=" 95" width="5" height="1" /> </bezel> |
| 915 | | <bezel name="pg_4160" element="Page4" state="0"> <bounds x=" 36" y=" 96" width="5" height="1" /> </bezel> |
| 916 | | <bezel name="pg_4161" element="Page4" state="0"> <bounds x=" 42" y=" 90" width="5" height="1" /> </bezel> |
| 917 | | <bezel name="pg_4162" element="Page4" state="0"> <bounds x=" 42" y=" 91" width="5" height="1" /> </bezel> |
| 918 | | <bezel name="pg_4163" element="Page4" state="0"> <bounds x=" 42" y=" 92" width="5" height="1" /> </bezel> |
| 919 | | <bezel name="pg_4164" element="Page4" state="0"> <bounds x=" 42" y=" 93" width="5" height="1" /> </bezel> |
| 920 | | <bezel name="pg_4165" element="Page4" state="0"> <bounds x=" 42" y=" 94" width="5" height="1" /> </bezel> |
| 921 | | <bezel name="pg_4166" element="Page4" state="0"> <bounds x=" 42" y=" 95" width="5" height="1" /> </bezel> |
| 922 | | <bezel name="pg_4167" element="Page4" state="0"> <bounds x=" 42" y=" 96" width="5" height="1" /> </bezel> |
| 923 | | <bezel name="pg_4168" element="Page4" state="0"> <bounds x=" 48" y=" 90" width="5" height="1" /> </bezel> |
| 924 | | <bezel name="pg_4169" element="Page4" state="0"> <bounds x=" 48" y=" 91" width="5" height="1" /> </bezel> |
| 925 | | <bezel name="pg_4170" element="Page4" state="0"> <bounds x=" 48" y=" 92" width="5" height="1" /> </bezel> |
| 926 | | <bezel name="pg_4171" element="Page4" state="0"> <bounds x=" 48" y=" 93" width="5" height="1" /> </bezel> |
| 927 | | <bezel name="pg_4172" element="Page4" state="0"> <bounds x=" 48" y=" 94" width="5" height="1" /> </bezel> |
| 928 | | <bezel name="pg_4173" element="Page4" state="0"> <bounds x=" 48" y=" 95" width="5" height="1" /> </bezel> |
| 929 | | <bezel name="pg_4174" element="Page4" state="0"> <bounds x=" 48" y=" 96" width="5" height="1" /> </bezel> |
| 930 | | <bezel name="pg_4175" element="Page4" state="0"> <bounds x=" 54" y=" 90" width="5" height="1" /> </bezel> |
| 931 | | <bezel name="pg_4176" element="Page4" state="0"> <bounds x=" 54" y=" 91" width="5" height="1" /> </bezel> |
| 932 | | <bezel name="pg_4177" element="Page4" state="0"> <bounds x=" 54" y=" 92" width="5" height="1" /> </bezel> |
| 933 | | <bezel name="pg_4178" element="Page4" state="0"> <bounds x=" 54" y=" 93" width="5" height="1" /> </bezel> |
| 934 | | <bezel name="pg_4179" element="Page4" state="0"> <bounds x=" 54" y=" 94" width="5" height="1" /> </bezel> |
| 935 | | <bezel name="pg_4180" element="Page4" state="0"> <bounds x=" 54" y=" 95" width="5" height="1" /> </bezel> |
| 936 | | <bezel name="pg_4181" element="Page4" state="0"> <bounds x=" 54" y=" 96" width="5" height="1" /> </bezel> |
| 937 | | <bezel name="pg_4182" element="Page4" state="0"> <bounds x=" 60" y=" 90" width="5" height="1" /> </bezel> |
| 938 | | <bezel name="pg_4183" element="Page4" state="0"> <bounds x=" 60" y=" 91" width="5" height="1" /> </bezel> |
| 939 | | <bezel name="pg_4184" element="Page4" state="0"> <bounds x=" 60" y=" 92" width="5" height="1" /> </bezel> |
| 940 | | <bezel name="pg_4185" element="Page4" state="0"> <bounds x=" 60" y=" 93" width="5" height="1" /> </bezel> |
| 941 | | <bezel name="pg_4186" element="Page4" state="0"> <bounds x=" 60" y=" 94" width="5" height="1" /> </bezel> |
| 942 | | <bezel name="pg_4187" element="Page4" state="0"> <bounds x=" 60" y=" 95" width="5" height="1" /> </bezel> |
| 943 | | <bezel name="pg_4188" element="Page4" state="0"> <bounds x=" 60" y=" 96" width="5" height="1" /> </bezel> |
| 944 | | <bezel name="pg_4189" element="Page4" state="0"> <bounds x=" 66" y=" 90" width="5" height="1" /> </bezel> |
| 945 | | <bezel name="pg_4190" element="Page4" state="0"> <bounds x=" 66" y=" 91" width="5" height="1" /> </bezel> |
| 946 | | <bezel name="pg_4191" element="Page4" state="0"> <bounds x=" 66" y=" 92" width="5" height="1" /> </bezel> |
| 947 | | <bezel name="pg_4192" element="Page4" state="0"> <bounds x=" 66" y=" 93" width="5" height="1" /> </bezel> |
| 948 | | <bezel name="pg_4193" element="Page4" state="0"> <bounds x=" 66" y=" 94" width="5" height="1" /> </bezel> |
| 949 | | <bezel name="pg_4194" element="Page4" state="0"> <bounds x=" 66" y=" 95" width="5" height="1" /> </bezel> |
| 950 | | <bezel name="pg_4195" element="Page4" state="0"> <bounds x=" 66" y=" 96" width="5" height="1" /> </bezel> |
| 951 | | <bezel name="pg_4196" element="Page4" state="0"> <bounds x=" 72" y=" 90" width="5" height="1" /> </bezel> |
| 952 | | <bezel name="pg_4197" element="Page4" state="0"> <bounds x=" 72" y=" 91" width="5" height="1" /> </bezel> |
| 953 | | <bezel name="pg_4198" element="Page4" state="0"> <bounds x=" 72" y=" 92" width="5" height="1" /> </bezel> |
| 954 | | <bezel name="pg_4199" element="Page4" state="0"> <bounds x=" 72" y=" 93" width="5" height="1" /> </bezel> |
| 955 | | <bezel name="pg_4200" element="Page4" state="0"> <bounds x=" 72" y=" 94" width="5" height="1" /> </bezel> |
| 956 | | <bezel name="pg_4201" element="Page4" state="0"> <bounds x=" 72" y=" 95" width="5" height="1" /> </bezel> |
| 957 | | <bezel name="pg_4202" element="Page4" state="0"> <bounds x=" 72" y=" 96" width="5" height="1" /> </bezel> |
| 958 | | <bezel name="pg_4203" element="Page4" state="0"> <bounds x=" 78" y=" 90" width="5" height="1" /> </bezel> |
| 959 | | <bezel name="pg_4204" element="Page4" state="0"> <bounds x=" 78" y=" 91" width="5" height="1" /> </bezel> |
| 960 | | <bezel name="pg_4205" element="Page4" state="0"> <bounds x=" 78" y=" 92" width="5" height="1" /> </bezel> |
| 961 | | <bezel name="pg_4206" element="Page4" state="0"> <bounds x=" 78" y=" 93" width="5" height="1" /> </bezel> |
| 962 | | <bezel name="pg_4207" element="Page4" state="0"> <bounds x=" 78" y=" 94" width="5" height="1" /> </bezel> |
| 963 | | <bezel name="pg_4208" element="Page4" state="0"> <bounds x=" 78" y=" 95" width="5" height="1" /> </bezel> |
| 964 | | <bezel name="pg_4209" element="Page4" state="0"> <bounds x=" 78" y=" 96" width="5" height="1" /> </bezel> |
| 965 | | <bezel name="pg_4210" element="Page4" state="0"> <bounds x=" 84" y=" 90" width="5" height="1" /> </bezel> |
| 966 | | <bezel name="pg_4211" element="Page4" state="0"> <bounds x=" 84" y=" 91" width="5" height="1" /> </bezel> |
| 967 | | <bezel name="pg_4212" element="Page4" state="0"> <bounds x=" 84" y=" 92" width="5" height="1" /> </bezel> |
| 968 | | <bezel name="pg_4213" element="Page4" state="0"> <bounds x=" 84" y=" 93" width="5" height="1" /> </bezel> |
| 969 | | <bezel name="pg_4214" element="Page4" state="0"> <bounds x=" 84" y=" 94" width="5" height="1" /> </bezel> |
| 970 | | <bezel name="pg_4215" element="Page4" state="0"> <bounds x=" 84" y=" 95" width="5" height="1" /> </bezel> |
| 971 | | <bezel name="pg_4216" element="Page4" state="0"> <bounds x=" 84" y=" 96" width="5" height="1" /> </bezel> |
| 972 | | <bezel name="pg_4217" element="Page4" state="0"> <bounds x=" 90" y=" 90" width="5" height="1" /> </bezel> |
| 973 | | <bezel name="pg_4218" element="Page4" state="0"> <bounds x=" 90" y=" 91" width="5" height="1" /> </bezel> |
| 974 | | <bezel name="pg_4219" element="Page4" state="0"> <bounds x=" 90" y=" 92" width="5" height="1" /> </bezel> |
| 975 | | <bezel name="pg_4220" element="Page4" state="0"> <bounds x=" 90" y=" 93" width="5" height="1" /> </bezel> |
| 976 | | <bezel name="pg_4221" element="Page4" state="0"> <bounds x=" 90" y=" 94" width="5" height="1" /> </bezel> |
| 977 | | <bezel name="pg_4222" element="Page4" state="0"> <bounds x=" 90" y=" 95" width="5" height="1" /> </bezel> |
| 978 | | <bezel name="pg_4223" element="Page4" state="0"> <bounds x=" 90" y=" 96" width="5" height="1" /> </bezel> |
| 755 | <bezel name="pg_4000" element="Page4" state="0"> <bounds x=" 0" y=" 80" width="5" height="1" /> </bezel> |
| 756 | <bezel name="pg_4001" element="Page4" state="0"> <bounds x=" 0" y=" 81" width="5" height="1" /> </bezel> |
| 757 | <bezel name="pg_4002" element="Page4" state="0"> <bounds x=" 0" y=" 82" width="5" height="1" /> </bezel> |
| 758 | <bezel name="pg_4003" element="Page4" state="0"> <bounds x=" 0" y=" 83" width="5" height="1" /> </bezel> |
| 759 | <bezel name="pg_4004" element="Page4" state="0"> <bounds x=" 0" y=" 84" width="5" height="1" /> </bezel> |
| 760 | <bezel name="pg_4005" element="Page4" state="0"> <bounds x=" 0" y=" 85" width="5" height="1" /> </bezel> |
| 761 | <bezel name="pg_4006" element="Page4" state="0"> <bounds x=" 0" y=" 86" width="5" height="1" /> </bezel> |
| 762 | <bezel name="pg_4007" element="Page4" state="0"> <bounds x=" 6" y=" 80" width="5" height="1" /> </bezel> |
| 763 | <bezel name="pg_4008" element="Page4" state="0"> <bounds x=" 6" y=" 81" width="5" height="1" /> </bezel> |
| 764 | <bezel name="pg_4009" element="Page4" state="0"> <bounds x=" 6" y=" 82" width="5" height="1" /> </bezel> |
| 765 | <bezel name="pg_4010" element="Page4" state="0"> <bounds x=" 6" y=" 83" width="5" height="1" /> </bezel> |
| 766 | <bezel name="pg_4011" element="Page4" state="0"> <bounds x=" 6" y=" 84" width="5" height="1" /> </bezel> |
| 767 | <bezel name="pg_4012" element="Page4" state="0"> <bounds x=" 6" y=" 85" width="5" height="1" /> </bezel> |
| 768 | <bezel name="pg_4013" element="Page4" state="0"> <bounds x=" 6" y=" 86" width="5" height="1" /> </bezel> |
| 769 | <bezel name="pg_4014" element="Page4" state="0"> <bounds x=" 12" y=" 80" width="5" height="1" /> </bezel> |
| 770 | <bezel name="pg_4015" element="Page4" state="0"> <bounds x=" 12" y=" 81" width="5" height="1" /> </bezel> |
| 771 | <bezel name="pg_4016" element="Page4" state="0"> <bounds x=" 12" y=" 82" width="5" height="1" /> </bezel> |
| 772 | <bezel name="pg_4017" element="Page4" state="0"> <bounds x=" 12" y=" 83" width="5" height="1" /> </bezel> |
| 773 | <bezel name="pg_4018" element="Page4" state="0"> <bounds x=" 12" y=" 84" width="5" height="1" /> </bezel> |
| 774 | <bezel name="pg_4019" element="Page4" state="0"> <bounds x=" 12" y=" 85" width="5" height="1" /> </bezel> |
| 775 | <bezel name="pg_4020" element="Page4" state="0"> <bounds x=" 12" y=" 86" width="5" height="1" /> </bezel> |
| 776 | <bezel name="pg_4021" element="Page4" state="0"> <bounds x=" 18" y=" 80" width="5" height="1" /> </bezel> |
| 777 | <bezel name="pg_4022" element="Page4" state="0"> <bounds x=" 18" y=" 81" width="5" height="1" /> </bezel> |
| 778 | <bezel name="pg_4023" element="Page4" state="0"> <bounds x=" 18" y=" 82" width="5" height="1" /> </bezel> |
| 779 | <bezel name="pg_4024" element="Page4" state="0"> <bounds x=" 18" y=" 83" width="5" height="1" /> </bezel> |
| 780 | <bezel name="pg_4025" element="Page4" state="0"> <bounds x=" 18" y=" 84" width="5" height="1" /> </bezel> |
| 781 | <bezel name="pg_4026" element="Page4" state="0"> <bounds x=" 18" y=" 85" width="5" height="1" /> </bezel> |
| 782 | <bezel name="pg_4027" element="Page4" state="0"> <bounds x=" 18" y=" 86" width="5" height="1" /> </bezel> |
| 783 | <bezel name="pg_4028" element="Page4" state="0"> <bounds x=" 24" y=" 80" width="5" height="1" /> </bezel> |
| 784 | <bezel name="pg_4029" element="Page4" state="0"> <bounds x=" 24" y=" 81" width="5" height="1" /> </bezel> |
| 785 | <bezel name="pg_4030" element="Page4" state="0"> <bounds x=" 24" y=" 82" width="5" height="1" /> </bezel> |
| 786 | <bezel name="pg_4031" element="Page4" state="0"> <bounds x=" 24" y=" 83" width="5" height="1" /> </bezel> |
| 787 | <bezel name="pg_4032" element="Page4" state="0"> <bounds x=" 24" y=" 84" width="5" height="1" /> </bezel> |
| 788 | <bezel name="pg_4033" element="Page4" state="0"> <bounds x=" 24" y=" 85" width="5" height="1" /> </bezel> |
| 789 | <bezel name="pg_4034" element="Page4" state="0"> <bounds x=" 24" y=" 86" width="5" height="1" /> </bezel> |
| 790 | <bezel name="pg_4035" element="Page4" state="0"> <bounds x=" 30" y=" 80" width="5" height="1" /> </bezel> |
| 791 | <bezel name="pg_4036" element="Page4" state="0"> <bounds x=" 30" y=" 81" width="5" height="1" /> </bezel> |
| 792 | <bezel name="pg_4037" element="Page4" state="0"> <bounds x=" 30" y=" 82" width="5" height="1" /> </bezel> |
| 793 | <bezel name="pg_4038" element="Page4" state="0"> <bounds x=" 30" y=" 83" width="5" height="1" /> </bezel> |
| 794 | <bezel name="pg_4039" element="Page4" state="0"> <bounds x=" 30" y=" 84" width="5" height="1" /> </bezel> |
| 795 | <bezel name="pg_4040" element="Page4" state="0"> <bounds x=" 30" y=" 85" width="5" height="1" /> </bezel> |
| 796 | <bezel name="pg_4041" element="Page4" state="0"> <bounds x=" 30" y=" 86" width="5" height="1" /> </bezel> |
| 797 | <bezel name="pg_4042" element="Page4" state="0"> <bounds x=" 36" y=" 80" width="5" height="1" /> </bezel> |
| 798 | <bezel name="pg_4043" element="Page4" state="0"> <bounds x=" 36" y=" 81" width="5" height="1" /> </bezel> |
| 799 | <bezel name="pg_4044" element="Page4" state="0"> <bounds x=" 36" y=" 82" width="5" height="1" /> </bezel> |
| 800 | <bezel name="pg_4045" element="Page4" state="0"> <bounds x=" 36" y=" 83" width="5" height="1" /> </bezel> |
| 801 | <bezel name="pg_4046" element="Page4" state="0"> <bounds x=" 36" y=" 84" width="5" height="1" /> </bezel> |
| 802 | <bezel name="pg_4047" element="Page4" state="0"> <bounds x=" 36" y=" 85" width="5" height="1" /> </bezel> |
| 803 | <bezel name="pg_4048" element="Page4" state="0"> <bounds x=" 36" y=" 86" width="5" height="1" /> </bezel> |
| 804 | <bezel name="pg_4049" element="Page4" state="0"> <bounds x=" 42" y=" 80" width="5" height="1" /> </bezel> |
| 805 | <bezel name="pg_4050" element="Page4" state="0"> <bounds x=" 42" y=" 81" width="5" height="1" /> </bezel> |
| 806 | <bezel name="pg_4051" element="Page4" state="0"> <bounds x=" 42" y=" 82" width="5" height="1" /> </bezel> |
| 807 | <bezel name="pg_4052" element="Page4" state="0"> <bounds x=" 42" y=" 83" width="5" height="1" /> </bezel> |
| 808 | <bezel name="pg_4053" element="Page4" state="0"> <bounds x=" 42" y=" 84" width="5" height="1" /> </bezel> |
| 809 | <bezel name="pg_4054" element="Page4" state="0"> <bounds x=" 42" y=" 85" width="5" height="1" /> </bezel> |
| 810 | <bezel name="pg_4055" element="Page4" state="0"> <bounds x=" 42" y=" 86" width="5" height="1" /> </bezel> |
| 811 | <bezel name="pg_4056" element="Page4" state="0"> <bounds x=" 48" y=" 80" width="5" height="1" /> </bezel> |
| 812 | <bezel name="pg_4057" element="Page4" state="0"> <bounds x=" 48" y=" 81" width="5" height="1" /> </bezel> |
| 813 | <bezel name="pg_4058" element="Page4" state="0"> <bounds x=" 48" y=" 82" width="5" height="1" /> </bezel> |
| 814 | <bezel name="pg_4059" element="Page4" state="0"> <bounds x=" 48" y=" 83" width="5" height="1" /> </bezel> |
| 815 | <bezel name="pg_4060" element="Page4" state="0"> <bounds x=" 48" y=" 84" width="5" height="1" /> </bezel> |
| 816 | <bezel name="pg_4061" element="Page4" state="0"> <bounds x=" 48" y=" 85" width="5" height="1" /> </bezel> |
| 817 | <bezel name="pg_4062" element="Page4" state="0"> <bounds x=" 48" y=" 86" width="5" height="1" /> </bezel> |
| 818 | <bezel name="pg_4063" element="Page4" state="0"> <bounds x=" 54" y=" 80" width="5" height="1" /> </bezel> |
| 819 | <bezel name="pg_4064" element="Page4" state="0"> <bounds x=" 54" y=" 81" width="5" height="1" /> </bezel> |
| 820 | <bezel name="pg_4065" element="Page4" state="0"> <bounds x=" 54" y=" 82" width="5" height="1" /> </bezel> |
| 821 | <bezel name="pg_4066" element="Page4" state="0"> <bounds x=" 54" y=" 83" width="5" height="1" /> </bezel> |
| 822 | <bezel name="pg_4067" element="Page4" state="0"> <bounds x=" 54" y=" 84" width="5" height="1" /> </bezel> |
| 823 | <bezel name="pg_4068" element="Page4" state="0"> <bounds x=" 54" y=" 85" width="5" height="1" /> </bezel> |
| 824 | <bezel name="pg_4069" element="Page4" state="0"> <bounds x=" 54" y=" 86" width="5" height="1" /> </bezel> |
| 825 | <bezel name="pg_4070" element="Page4" state="0"> <bounds x=" 60" y=" 80" width="5" height="1" /> </bezel> |
| 826 | <bezel name="pg_4071" element="Page4" state="0"> <bounds x=" 60" y=" 81" width="5" height="1" /> </bezel> |
| 827 | <bezel name="pg_4072" element="Page4" state="0"> <bounds x=" 60" y=" 82" width="5" height="1" /> </bezel> |
| 828 | <bezel name="pg_4073" element="Page4" state="0"> <bounds x=" 60" y=" 83" width="5" height="1" /> </bezel> |
| 829 | <bezel name="pg_4074" element="Page4" state="0"> <bounds x=" 60" y=" 84" width="5" height="1" /> </bezel> |
| 830 | <bezel name="pg_4075" element="Page4" state="0"> <bounds x=" 60" y=" 85" width="5" height="1" /> </bezel> |
| 831 | <bezel name="pg_4076" element="Page4" state="0"> <bounds x=" 60" y=" 86" width="5" height="1" /> </bezel> |
| 832 | <bezel name="pg_4077" element="Page4" state="0"> <bounds x=" 66" y=" 80" width="5" height="1" /> </bezel> |
| 833 | <bezel name="pg_4078" element="Page4" state="0"> <bounds x=" 66" y=" 81" width="5" height="1" /> </bezel> |
| 834 | <bezel name="pg_4079" element="Page4" state="0"> <bounds x=" 66" y=" 82" width="5" height="1" /> </bezel> |
| 835 | <bezel name="pg_4080" element="Page4" state="0"> <bounds x=" 66" y=" 83" width="5" height="1" /> </bezel> |
| 836 | <bezel name="pg_4081" element="Page4" state="0"> <bounds x=" 66" y=" 84" width="5" height="1" /> </bezel> |
| 837 | <bezel name="pg_4082" element="Page4" state="0"> <bounds x=" 66" y=" 85" width="5" height="1" /> </bezel> |
| 838 | <bezel name="pg_4083" element="Page4" state="0"> <bounds x=" 66" y=" 86" width="5" height="1" /> </bezel> |
| 839 | <bezel name="pg_4084" element="Page4" state="0"> <bounds x=" 72" y=" 80" width="5" height="1" /> </bezel> |
| 840 | <bezel name="pg_4085" element="Page4" state="0"> <bounds x=" 72" y=" 81" width="5" height="1" /> </bezel> |
| 841 | <bezel name="pg_4086" element="Page4" state="0"> <bounds x=" 72" y=" 82" width="5" height="1" /> </bezel> |
| 842 | <bezel name="pg_4087" element="Page4" state="0"> <bounds x=" 72" y=" 83" width="5" height="1" /> </bezel> |
| 843 | <bezel name="pg_4088" element="Page4" state="0"> <bounds x=" 72" y=" 84" width="5" height="1" /> </bezel> |
| 844 | <bezel name="pg_4089" element="Page4" state="0"> <bounds x=" 72" y=" 85" width="5" height="1" /> </bezel> |
| 845 | <bezel name="pg_4090" element="Page4" state="0"> <bounds x=" 72" y=" 86" width="5" height="1" /> </bezel> |
| 846 | <bezel name="pg_4091" element="Page4" state="0"> <bounds x=" 78" y=" 80" width="5" height="1" /> </bezel> |
| 847 | <bezel name="pg_4092" element="Page4" state="0"> <bounds x=" 78" y=" 81" width="5" height="1" /> </bezel> |
| 848 | <bezel name="pg_4093" element="Page4" state="0"> <bounds x=" 78" y=" 82" width="5" height="1" /> </bezel> |
| 849 | <bezel name="pg_4094" element="Page4" state="0"> <bounds x=" 78" y=" 83" width="5" height="1" /> </bezel> |
| 850 | <bezel name="pg_4095" element="Page4" state="0"> <bounds x=" 78" y=" 84" width="5" height="1" /> </bezel> |
| 851 | <bezel name="pg_4096" element="Page4" state="0"> <bounds x=" 78" y=" 85" width="5" height="1" /> </bezel> |
| 852 | <bezel name="pg_4097" element="Page4" state="0"> <bounds x=" 78" y=" 86" width="5" height="1" /> </bezel> |
| 853 | <bezel name="pg_4098" element="Page4" state="0"> <bounds x=" 84" y=" 80" width="5" height="1" /> </bezel> |
| 854 | <bezel name="pg_4099" element="Page4" state="0"> <bounds x=" 84" y=" 81" width="5" height="1" /> </bezel> |
| 855 | <bezel name="pg_4100" element="Page4" state="0"> <bounds x=" 84" y=" 82" width="5" height="1" /> </bezel> |
| 856 | <bezel name="pg_4101" element="Page4" state="0"> <bounds x=" 84" y=" 83" width="5" height="1" /> </bezel> |
| 857 | <bezel name="pg_4102" element="Page4" state="0"> <bounds x=" 84" y=" 84" width="5" height="1" /> </bezel> |
| 858 | <bezel name="pg_4103" element="Page4" state="0"> <bounds x=" 84" y=" 85" width="5" height="1" /> </bezel> |
| 859 | <bezel name="pg_4104" element="Page4" state="0"> <bounds x=" 84" y=" 86" width="5" height="1" /> </bezel> |
| 860 | <bezel name="pg_4105" element="Page4" state="0"> <bounds x=" 90" y=" 80" width="5" height="1" /> </bezel> |
| 861 | <bezel name="pg_4106" element="Page4" state="0"> <bounds x=" 90" y=" 81" width="5" height="1" /> </bezel> |
| 862 | <bezel name="pg_4107" element="Page4" state="0"> <bounds x=" 90" y=" 82" width="5" height="1" /> </bezel> |
| 863 | <bezel name="pg_4108" element="Page4" state="0"> <bounds x=" 90" y=" 83" width="5" height="1" /> </bezel> |
| 864 | <bezel name="pg_4109" element="Page4" state="0"> <bounds x=" 90" y=" 84" width="5" height="1" /> </bezel> |
| 865 | <bezel name="pg_4110" element="Page4" state="0"> <bounds x=" 90" y=" 85" width="5" height="1" /> </bezel> |
| 866 | <bezel name="pg_4111" element="Page4" state="0"> <bounds x=" 90" y=" 86" width="5" height="1" /> </bezel> |
| 867 | <bezel name="pg_4112" element="Page4" state="0"> <bounds x=" 0" y=" 90" width="5" height="1" /> </bezel> |
| 868 | <bezel name="pg_4113" element="Page4" state="0"> <bounds x=" 0" y=" 91" width="5" height="1" /> </bezel> |
| 869 | <bezel name="pg_4114" element="Page4" state="0"> <bounds x=" 0" y=" 92" width="5" height="1" /> </bezel> |
| 870 | <bezel name="pg_4115" element="Page4" state="0"> <bounds x=" 0" y=" 93" width="5" height="1" /> </bezel> |
| 871 | <bezel name="pg_4116" element="Page4" state="0"> <bounds x=" 0" y=" 94" width="5" height="1" /> </bezel> |
| 872 | <bezel name="pg_4117" element="Page4" state="0"> <bounds x=" 0" y=" 95" width="5" height="1" /> </bezel> |
| 873 | <bezel name="pg_4118" element="Page4" state="0"> <bounds x=" 0" y=" 96" width="5" height="1" /> </bezel> |
| 874 | <bezel name="pg_4119" element="Page4" state="0"> <bounds x=" 6" y=" 90" width="5" height="1" /> </bezel> |
| 875 | <bezel name="pg_4120" element="Page4" state="0"> <bounds x=" 6" y=" 91" width="5" height="1" /> </bezel> |
| 876 | <bezel name="pg_4121" element="Page4" state="0"> <bounds x=" 6" y=" 92" width="5" height="1" /> </bezel> |
| 877 | <bezel name="pg_4122" element="Page4" state="0"> <bounds x=" 6" y=" 93" width="5" height="1" /> </bezel> |
| 878 | <bezel name="pg_4123" element="Page4" state="0"> <bounds x=" 6" y=" 94" width="5" height="1" /> </bezel> |
| 879 | <bezel name="pg_4124" element="Page4" state="0"> <bounds x=" 6" y=" 95" width="5" height="1" /> </bezel> |
| 880 | <bezel name="pg_4125" element="Page4" state="0"> <bounds x=" 6" y=" 96" width="5" height="1" /> </bezel> |
| 881 | <bezel name="pg_4126" element="Page4" state="0"> <bounds x=" 12" y=" 90" width="5" height="1" /> </bezel> |
| 882 | <bezel name="pg_4127" element="Page4" state="0"> <bounds x=" 12" y=" 91" width="5" height="1" /> </bezel> |
| 883 | <bezel name="pg_4128" element="Page4" state="0"> <bounds x=" 12" y=" 92" width="5" height="1" /> </bezel> |
| 884 | <bezel name="pg_4129" element="Page4" state="0"> <bounds x=" 12" y=" 93" width="5" height="1" /> </bezel> |
| 885 | <bezel name="pg_4130" element="Page4" state="0"> <bounds x=" 12" y=" 94" width="5" height="1" /> </bezel> |
| 886 | <bezel name="pg_4131" element="Page4" state="0"> <bounds x=" 12" y=" 95" width="5" height="1" /> </bezel> |
| 887 | <bezel name="pg_4132" element="Page4" state="0"> <bounds x=" 12" y=" 96" width="5" height="1" /> </bezel> |
| 888 | <bezel name="pg_4133" element="Page4" state="0"> <bounds x=" 18" y=" 90" width="5" height="1" /> </bezel> |
| 889 | <bezel name="pg_4134" element="Page4" state="0"> <bounds x=" 18" y=" 91" width="5" height="1" /> </bezel> |
| 890 | <bezel name="pg_4135" element="Page4" state="0"> <bounds x=" 18" y=" 92" width="5" height="1" /> </bezel> |
| 891 | <bezel name="pg_4136" element="Page4" state="0"> <bounds x=" 18" y=" 93" width="5" height="1" /> </bezel> |
| 892 | <bezel name="pg_4137" element="Page4" state="0"> <bounds x=" 18" y=" 94" width="5" height="1" /> </bezel> |
| 893 | <bezel name="pg_4138" element="Page4" state="0"> <bounds x=" 18" y=" 95" width="5" height="1" /> </bezel> |
| 894 | <bezel name="pg_4139" element="Page4" state="0"> <bounds x=" 18" y=" 96" width="5" height="1" /> </bezel> |
| 895 | <bezel name="pg_4140" element="Page4" state="0"> <bounds x=" 24" y=" 90" width="5" height="1" /> </bezel> |
| 896 | <bezel name="pg_4141" element="Page4" state="0"> <bounds x=" 24" y=" 91" width="5" height="1" /> </bezel> |
| 897 | <bezel name="pg_4142" element="Page4" state="0"> <bounds x=" 24" y=" 92" width="5" height="1" /> </bezel> |
| 898 | <bezel name="pg_4143" element="Page4" state="0"> <bounds x=" 24" y=" 93" width="5" height="1" /> </bezel> |
| 899 | <bezel name="pg_4144" element="Page4" state="0"> <bounds x=" 24" y=" 94" width="5" height="1" /> </bezel> |
| 900 | <bezel name="pg_4145" element="Page4" state="0"> <bounds x=" 24" y=" 95" width="5" height="1" /> </bezel> |
| 901 | <bezel name="pg_4146" element="Page4" state="0"> <bounds x=" 24" y=" 96" width="5" height="1" /> </bezel> |
| 902 | <bezel name="pg_4147" element="Page4" state="0"> <bounds x=" 30" y=" 90" width="5" height="1" /> </bezel> |
| 903 | <bezel name="pg_4148" element="Page4" state="0"> <bounds x=" 30" y=" 91" width="5" height="1" /> </bezel> |
| 904 | <bezel name="pg_4149" element="Page4" state="0"> <bounds x=" 30" y=" 92" width="5" height="1" /> </bezel> |
| 905 | <bezel name="pg_4150" element="Page4" state="0"> <bounds x=" 30" y=" 93" width="5" height="1" /> </bezel> |
| 906 | <bezel name="pg_4151" element="Page4" state="0"> <bounds x=" 30" y=" 94" width="5" height="1" /> </bezel> |
| 907 | <bezel name="pg_4152" element="Page4" state="0"> <bounds x=" 30" y=" 95" width="5" height="1" /> </bezel> |
| 908 | <bezel name="pg_4153" element="Page4" state="0"> <bounds x=" 30" y=" 96" width="5" height="1" /> </bezel> |
| 909 | <bezel name="pg_4154" element="Page4" state="0"> <bounds x=" 36" y=" 90" width="5" height="1" /> </bezel> |
| 910 | <bezel name="pg_4155" element="Page4" state="0"> <bounds x=" 36" y=" 91" width="5" height="1" /> </bezel> |
| 911 | <bezel name="pg_4156" element="Page4" state="0"> <bounds x=" 36" y=" 92" width="5" height="1" /> </bezel> |
| 912 | <bezel name="pg_4157" element="Page4" state="0"> <bounds x=" 36" y=" 93" width="5" height="1" /> </bezel> |
| 913 | <bezel name="pg_4158" element="Page4" state="0"> <bounds x=" 36" y=" 94" width="5" height="1" /> </bezel> |
| 914 | <bezel name="pg_4159" element="Page4" state="0"> <bounds x=" 36" y=" 95" width="5" height="1" /> </bezel> |
| 915 | <bezel name="pg_4160" element="Page4" state="0"> <bounds x=" 36" y=" 96" width="5" height="1" /> </bezel> |
| 916 | <bezel name="pg_4161" element="Page4" state="0"> <bounds x=" 42" y=" 90" width="5" height="1" /> </bezel> |
| 917 | <bezel name="pg_4162" element="Page4" state="0"> <bounds x=" 42" y=" 91" width="5" height="1" /> </bezel> |
| 918 | <bezel name="pg_4163" element="Page4" state="0"> <bounds x=" 42" y=" 92" width="5" height="1" /> </bezel> |
| 919 | <bezel name="pg_4164" element="Page4" state="0"> <bounds x=" 42" y=" 93" width="5" height="1" /> </bezel> |
| 920 | <bezel name="pg_4165" element="Page4" state="0"> <bounds x=" 42" y=" 94" width="5" height="1" /> </bezel> |
| 921 | <bezel name="pg_4166" element="Page4" state="0"> <bounds x=" 42" y=" 95" width="5" height="1" /> </bezel> |
| 922 | <bezel name="pg_4167" element="Page4" state="0"> <bounds x=" 42" y=" 96" width="5" height="1" /> </bezel> |
| 923 | <bezel name="pg_4168" element="Page4" state="0"> <bounds x=" 48" y=" 90" width="5" height="1" /> </bezel> |
| 924 | <bezel name="pg_4169" element="Page4" state="0"> <bounds x=" 48" y=" 91" width="5" height="1" /> </bezel> |
| 925 | <bezel name="pg_4170" element="Page4" state="0"> <bounds x=" 48" y=" 92" width="5" height="1" /> </bezel> |
| 926 | <bezel name="pg_4171" element="Page4" state="0"> <bounds x=" 48" y=" 93" width="5" height="1" /> </bezel> |
| 927 | <bezel name="pg_4172" element="Page4" state="0"> <bounds x=" 48" y=" 94" width="5" height="1" /> </bezel> |
| 928 | <bezel name="pg_4173" element="Page4" state="0"> <bounds x=" 48" y=" 95" width="5" height="1" /> </bezel> |
| 929 | <bezel name="pg_4174" element="Page4" state="0"> <bounds x=" 48" y=" 96" width="5" height="1" /> </bezel> |
| 930 | <bezel name="pg_4175" element="Page4" state="0"> <bounds x=" 54" y=" 90" width="5" height="1" /> </bezel> |
| 931 | <bezel name="pg_4176" element="Page4" state="0"> <bounds x=" 54" y=" 91" width="5" height="1" /> </bezel> |
| 932 | <bezel name="pg_4177" element="Page4" state="0"> <bounds x=" 54" y=" 92" width="5" height="1" /> </bezel> |
| 933 | <bezel name="pg_4178" element="Page4" state="0"> <bounds x=" 54" y=" 93" width="5" height="1" /> </bezel> |
| 934 | <bezel name="pg_4179" element="Page4" state="0"> <bounds x=" 54" y=" 94" width="5" height="1" /> </bezel> |
| 935 | <bezel name="pg_4180" element="Page4" state="0"> <bounds x=" 54" y=" 95" width="5" height="1" /> </bezel> |
| 936 | <bezel name="pg_4181" element="Page4" state="0"> <bounds x=" 54" y=" 96" width="5" height="1" /> </bezel> |
| 937 | <bezel name="pg_4182" element="Page4" state="0"> <bounds x=" 60" y=" 90" width="5" height="1" /> </bezel> |
| 938 | <bezel name="pg_4183" element="Page4" state="0"> <bounds x=" 60" y=" 91" width="5" height="1" /> </bezel> |
| 939 | <bezel name="pg_4184" element="Page4" state="0"> <bounds x=" 60" y=" 92" width="5" height="1" /> </bezel> |
| 940 | <bezel name="pg_4185" element="Page4" state="0"> <bounds x=" 60" y=" 93" width="5" height="1" /> </bezel> |
| 941 | <bezel name="pg_4186" element="Page4" state="0"> <bounds x=" 60" y=" 94" width="5" height="1" /> </bezel> |
| 942 | <bezel name="pg_4187" element="Page4" state="0"> <bounds x=" 60" y=" 95" width="5" height="1" /> </bezel> |
| 943 | <bezel name="pg_4188" element="Page4" state="0"> <bounds x=" 60" y=" 96" width="5" height="1" /> </bezel> |
| 944 | <bezel name="pg_4189" element="Page4" state="0"> <bounds x=" 66" y=" 90" width="5" height="1" /> </bezel> |
| 945 | <bezel name="pg_4190" element="Page4" state="0"> <bounds x=" 66" y=" 91" width="5" height="1" /> </bezel> |
| 946 | <bezel name="pg_4191" element="Page4" state="0"> <bounds x=" 66" y=" 92" width="5" height="1" /> </bezel> |
| 947 | <bezel name="pg_4192" element="Page4" state="0"> <bounds x=" 66" y=" 93" width="5" height="1" /> </bezel> |
| 948 | <bezel name="pg_4193" element="Page4" state="0"> <bounds x=" 66" y=" 94" width="5" height="1" /> </bezel> |
| 949 | <bezel name="pg_4194" element="Page4" state="0"> <bounds x=" 66" y=" 95" width="5" height="1" /> </bezel> |
| 950 | <bezel name="pg_4195" element="Page4" state="0"> <bounds x=" 66" y=" 96" width="5" height="1" /> </bezel> |
| 951 | <bezel name="pg_4196" element="Page4" state="0"> <bounds x=" 72" y=" 90" width="5" height="1" /> </bezel> |
| 952 | <bezel name="pg_4197" element="Page4" state="0"> <bounds x=" 72" y=" 91" width="5" height="1" /> </bezel> |
| 953 | <bezel name="pg_4198" element="Page4" state="0"> <bounds x=" 72" y=" 92" width="5" height="1" /> </bezel> |
| 954 | <bezel name="pg_4199" element="Page4" state="0"> <bounds x=" 72" y=" 93" width="5" height="1" /> </bezel> |
| 955 | <bezel name="pg_4200" element="Page4" state="0"> <bounds x=" 72" y=" 94" width="5" height="1" /> </bezel> |
| 956 | <bezel name="pg_4201" element="Page4" state="0"> <bounds x=" 72" y=" 95" width="5" height="1" /> </bezel> |
| 957 | <bezel name="pg_4202" element="Page4" state="0"> <bounds x=" 72" y=" 96" width="5" height="1" /> </bezel> |
| 958 | <bezel name="pg_4203" element="Page4" state="0"> <bounds x=" 78" y=" 90" width="5" height="1" /> </bezel> |
| 959 | <bezel name="pg_4204" element="Page4" state="0"> <bounds x=" 78" y=" 91" width="5" height="1" /> </bezel> |
| 960 | <bezel name="pg_4205" element="Page4" state="0"> <bounds x=" 78" y=" 92" width="5" height="1" /> </bezel> |
| 961 | <bezel name="pg_4206" element="Page4" state="0"> <bounds x=" 78" y=" 93" width="5" height="1" /> </bezel> |
| 962 | <bezel name="pg_4207" element="Page4" state="0"> <bounds x=" 78" y=" 94" width="5" height="1" /> </bezel> |
| 963 | <bezel name="pg_4208" element="Page4" state="0"> <bounds x=" 78" y=" 95" width="5" height="1" /> </bezel> |
| 964 | <bezel name="pg_4209" element="Page4" state="0"> <bounds x=" 78" y=" 96" width="5" height="1" /> </bezel> |
| 965 | <bezel name="pg_4210" element="Page4" state="0"> <bounds x=" 84" y=" 90" width="5" height="1" /> </bezel> |
| 966 | <bezel name="pg_4211" element="Page4" state="0"> <bounds x=" 84" y=" 91" width="5" height="1" /> </bezel> |
| 967 | <bezel name="pg_4212" element="Page4" state="0"> <bounds x=" 84" y=" 92" width="5" height="1" /> </bezel> |
| 968 | <bezel name="pg_4213" element="Page4" state="0"> <bounds x=" 84" y=" 93" width="5" height="1" /> </bezel> |
| 969 | <bezel name="pg_4214" element="Page4" state="0"> <bounds x=" 84" y=" 94" width="5" height="1" /> </bezel> |
| 970 | <bezel name="pg_4215" element="Page4" state="0"> <bounds x=" 84" y=" 95" width="5" height="1" /> </bezel> |
| 971 | <bezel name="pg_4216" element="Page4" state="0"> <bounds x=" 84" y=" 96" width="5" height="1" /> </bezel> |
| 972 | <bezel name="pg_4217" element="Page4" state="0"> <bounds x=" 90" y=" 90" width="5" height="1" /> </bezel> |
| 973 | <bezel name="pg_4218" element="Page4" state="0"> <bounds x=" 90" y=" 91" width="5" height="1" /> </bezel> |
| 974 | <bezel name="pg_4219" element="Page4" state="0"> <bounds x=" 90" y=" 92" width="5" height="1" /> </bezel> |
| 975 | <bezel name="pg_4220" element="Page4" state="0"> <bounds x=" 90" y=" 93" width="5" height="1" /> </bezel> |
| 976 | <bezel name="pg_4221" element="Page4" state="0"> <bounds x=" 90" y=" 94" width="5" height="1" /> </bezel> |
| 977 | <bezel name="pg_4222" element="Page4" state="0"> <bounds x=" 90" y=" 95" width="5" height="1" /> </bezel> |
| 978 | <bezel name="pg_4223" element="Page4" state="0"> <bounds x=" 90" y=" 96" width="5" height="1" /> </bezel> |
| 979 | 979 | </view> |
| 980 | 980 | </mamelayout> |
trunk/src/mame/machine/esqlcd.cpp
| r253707 | r253708 | |
| 9 | 9 | |
| 10 | 10 | //#define VERBOSE |
| 11 | 11 | |
| 12 | | const device_type ESQ2x16_SQ1 = &device_creator<esq2x16_sq1_t>; |
| 12 | const device_type ESQ2x16_SQ1 = &device_creator<esq2x16_sq1_t>; |
| 13 | 13 | |
| 14 | 14 | // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- |
| 15 | 15 | static MACHINE_CONFIG_FRAGMENT(esq2x16) |
| r253707 | r253708 | |
| 19 | 19 | /*! \file font5x7.h \brief Graphic LCD Font (Ascii Characters). */ |
| 20 | 20 | //***************************************************************************** |
| 21 | 21 | // |
| 22 | | // File Name : 'font5x7.h' |
| 23 | | // Title : Graphic LCD Font (Ascii Charaters) |
| 24 | | // Author : Pascal Stang |
| 25 | | // Date : 10/19/2001 |
| 26 | | // Revised : 10/19/2001 |
| 27 | | // Version : 0.1 |
| 28 | | // Target MCU : Atmel AVR |
| 29 | | // Editor Tabs : 4 |
| 22 | // File Name : 'font5x7.h' |
| 23 | // Title : Graphic LCD Font (Ascii Charaters) |
| 24 | // Author : Pascal Stang |
| 25 | // Date : 10/19/2001 |
| 26 | // Revised : 10/19/2001 |
| 27 | // Version : 0.1 |
| 28 | // Target MCU : Atmel AVR |
| 29 | // Editor Tabs : 4 |
| 30 | 30 | // |
| 31 | 31 | //***************************************************************************** |
| 32 | 32 | // standard ascii 5x7 font |
| 33 | 33 | // defines ascii characters 0x20-0x7F (32-127) |
| 34 | 34 | static unsigned char Font5x7[][5] = { |
| 35 | | {0x00, 0x00, 0x08, 0x00, 0x00}, // _Undef_ 0x00 - dots for debug purposes |
| 36 | | {0x01, 0x00, 0x00, 0x00, 0x40}, // _Undef_ 0x01 - dots for debug purposes |
| 37 | | {0x02, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x02 |
| 38 | | {0x03, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x03 |
| 39 | | {0x04, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x04 |
| 40 | | {0x05, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x05 |
| 41 | | {0x06, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x06 |
| 42 | | {0x07, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x07 |
| 43 | | {0x20, 0x70, 0x3F, 0x00, 0x00}, // Croma 0x08 |
| 44 | | {0x20, 0x70, 0x3F, 0x02, 0x0C}, // Croma 0x09 |
| 45 | | {0x20, 0x70, 0x3F, 0x05, 0x0A}, // Croma 0x0A |
| 46 | | {0x20, 0x70, 0x3F, 0x15, 0x2A}, // Croma 0x0B |
| 47 | | {0x20, 0x50, 0x50, 0x3F, 0x00}, // Croma 0x0C |
| 48 | | {0x0D, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x0D |
| 49 | | {0x0E, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x0E |
| 50 | | {0x0F, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x0F |
| 51 | | {0x10, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x10 |
| 52 | | {0x11, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x11 |
| 53 | | {0x12, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x12 |
| 54 | | {0x13, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x13 |
| 55 | | {0x14, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x14 |
| 56 | | {0x15, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x15 |
| 57 | | {0x16, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x16 |
| 58 | | {0x17, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x17 |
| 59 | | {0x18, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x18 |
| 60 | | {0x19, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x19 |
| 61 | | {0x1A, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1A |
| 62 | | {0x1B, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1B |
| 63 | | {0x1C, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1C |
| 64 | | {0x1D, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1D |
| 65 | | {0x1E, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1E |
| 66 | | {0x1F, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1F |
| 67 | | {0x00, 0x00, 0x00, 0x00, 0x00}, // (space) 0x20 |
| 68 | | {0x00, 0x00, 0x5F, 0x00, 0x00}, // ! 0x21 |
| 69 | | {0x00, 0x07, 0x00, 0x07, 0x00}, // " 0x22 |
| 70 | | {0x14, 0x7F, 0x14, 0x7F, 0x14}, // # 0x23 |
| 71 | | {0x24, 0x2A, 0x7F, 0x2A, 0x12}, // $ 0x24 |
| 72 | | {0x23, 0x13, 0x08, 0x64, 0x62}, // % 0x25 |
| 73 | | {0x36, 0x49, 0x55, 0x22, 0x50}, // & 0x26 |
| 74 | | {0x00, 0x05, 0x03, 0x00, 0x00}, // ' 0x27 |
| 75 | | {0x00, 0x1C, 0x22, 0x41, 0x00}, // ( 0x28 |
| 76 | | {0x00, 0x41, 0x22, 0x1C, 0x00}, // ) 0x29 |
| 77 | | {0x08, 0x2A, 0x1C, 0x2A, 0x08}, // * 0x2A |
| 78 | | {0x08, 0x08, 0x3E, 0x08, 0x08}, // + 0x2B |
| 79 | | {0x00, 0x50, 0x30, 0x00, 0x00}, // , 0x2C |
| 80 | | {0x08, 0x08, 0x08, 0x08, 0x08}, // - 0x2D |
| 81 | | {0x00, 0x60, 0x60, 0x00, 0x00}, // . 0x2E |
| 82 | | {0x20, 0x10, 0x08, 0x04, 0x02}, // / 0x2F |
| 83 | | {0x3E, 0x51, 0x49, 0x45, 0x3E}, // 0 0x30 |
| 84 | | {0x00, 0x42, 0x7F, 0x40, 0x00}, // 1 0x31 |
| 85 | | {0x42, 0x61, 0x51, 0x49, 0x46}, // 2 0x32 |
| 86 | | {0x21, 0x41, 0x45, 0x4B, 0x31}, // 3 0x33 |
| 87 | | {0x18, 0x14, 0x12, 0x7F, 0x10}, // 4 0x34 |
| 88 | | {0x27, 0x45, 0x45, 0x45, 0x39}, // 5 0x35 |
| 89 | | {0x3C, 0x4A, 0x49, 0x49, 0x30}, // 6 0x36 |
| 90 | | {0x01, 0x71, 0x09, 0x05, 0x03}, // 7 0x37 |
| 91 | | {0x36, 0x49, 0x49, 0x49, 0x36}, // 8 0x38 |
| 92 | | {0x06, 0x49, 0x49, 0x29, 0x1E}, // 9 0x39 |
| 93 | | {0x00, 0x36, 0x36, 0x00, 0x00}, // : 0x3A |
| 94 | | {0x00, 0x56, 0x36, 0x00, 0x00}, // ; 0x3B |
| 95 | | {0x00, 0x08, 0x14, 0x22, 0x41}, // < 0x3C |
| 96 | | {0x14, 0x14, 0x14, 0x14, 0x14}, // = 0x3D |
| 97 | | {0x41, 0x22, 0x14, 0x08, 0x00}, // > 0x3E |
| 98 | | {0x02, 0x01, 0x51, 0x09, 0x06}, // ? 0x3F |
| 99 | | {0x32, 0x49, 0x79, 0x41, 0x3E}, // @ 0x40 |
| 100 | | {0x7E, 0x11, 0x11, 0x11, 0x7E}, // A 0x41 |
| 101 | | {0x7F, 0x49, 0x49, 0x49, 0x36}, // B 0x42 |
| 102 | | {0x3E, 0x41, 0x41, 0x41, 0x22}, // C 0x43 |
| 103 | | {0x7F, 0x41, 0x41, 0x22, 0x1C}, // D 0x44 |
| 104 | | {0x7F, 0x49, 0x49, 0x49, 0x41}, // E 0x45 |
| 105 | | {0x7F, 0x09, 0x09, 0x01, 0x01}, // F 0x46 |
| 106 | | {0x3E, 0x41, 0x41, 0x51, 0x32}, // G 0x47 |
| 107 | | {0x7F, 0x08, 0x08, 0x08, 0x7F}, // H 0x48 |
| 108 | | {0x00, 0x41, 0x7F, 0x41, 0x00}, // I 0x49 |
| 109 | | {0x20, 0x40, 0x41, 0x3F, 0x01}, // J 0x4A |
| 110 | | {0x7F, 0x08, 0x14, 0x22, 0x41}, // K 0x4B |
| 111 | | {0x7F, 0x40, 0x40, 0x40, 0x40}, // L 0x4C |
| 112 | | {0x7F, 0x02, 0x04, 0x02, 0x7F}, // M 0x4D |
| 113 | | {0x7F, 0x04, 0x08, 0x10, 0x7F}, // N 0x4E |
| 114 | | {0x3E, 0x41, 0x41, 0x41, 0x3E}, // O 0x4F |
| 115 | | {0x7F, 0x09, 0x09, 0x09, 0x06}, // P 0x50 |
| 116 | | {0x3E, 0x41, 0x51, 0x21, 0x5E}, // Q 0x51 |
| 117 | | {0x7F, 0x09, 0x19, 0x29, 0x46}, // R 0x52 |
| 118 | | {0x46, 0x49, 0x49, 0x49, 0x31}, // S 0x53 |
| 119 | | {0x01, 0x01, 0x7F, 0x01, 0x01}, // T 0x54 |
| 120 | | {0x3F, 0x40, 0x40, 0x40, 0x3F}, // U 0x55 |
| 121 | | {0x1F, 0x20, 0x40, 0x20, 0x1F}, // V 0x56 |
| 122 | | {0x7F, 0x20, 0x18, 0x20, 0x7F}, // W 0x57 |
| 123 | | {0x63, 0x14, 0x08, 0x14, 0x63}, // X 0x58 |
| 124 | | {0x03, 0x04, 0x78, 0x04, 0x03}, // Y 0x59 |
| 125 | | {0x61, 0x51, 0x49, 0x45, 0x43}, // Z 0x5A |
| 126 | | {0x00, 0x00, 0x7F, 0x41, 0x41}, // [ 0x5B |
| 127 | | {0x02, 0x04, 0x08, 0x10, 0x20}, // \ 0x5C |
| 128 | | {0x41, 0x41, 0x7F, 0x00, 0x00}, // ] 0x5D |
| 129 | | {0x04, 0x02, 0x01, 0x02, 0x04}, // ^ 0x5E |
| 130 | | {0x40, 0x40, 0x40, 0x40, 0x40}, // _ 0x5F |
| 131 | | {0x00, 0x01, 0x02, 0x04, 0x00}, // ` 0x60 |
| 132 | | {0x20, 0x54, 0x54, 0x54, 0x78}, // a 0x61 |
| 133 | | {0x7F, 0x48, 0x44, 0x44, 0x38}, // b 0x62 |
| 134 | | {0x38, 0x44, 0x44, 0x44, 0x20}, // c 0x63 |
| 135 | | {0x38, 0x44, 0x44, 0x48, 0x7F}, // d 0x64 |
| 136 | | {0x38, 0x54, 0x54, 0x54, 0x18}, // e 0x65 |
| 137 | | {0x08, 0x7E, 0x09, 0x01, 0x02}, // f 0x66 |
| 138 | | {0x08, 0x14, 0x54, 0x54, 0x3C}, // g 0x67 |
| 139 | | {0x7F, 0x08, 0x04, 0x04, 0x78}, // h 0x68 |
| 140 | | {0x00, 0x44, 0x7D, 0x40, 0x00}, // i 0x69 |
| 141 | | {0x20, 0x40, 0x44, 0x3D, 0x00}, // j 0x6A |
| 142 | | {0x00, 0x7F, 0x10, 0x28, 0x44}, // k 0x6B |
| 143 | | {0x00, 0x41, 0x7F, 0x40, 0x00}, // l 0x6C |
| 144 | | {0x7C, 0x04, 0x18, 0x04, 0x78}, // m 0x6D |
| 145 | | {0x7C, 0x08, 0x04, 0x04, 0x78}, // n 0x6E |
| 146 | | {0x38, 0x44, 0x44, 0x44, 0x38}, // o 0x6F |
| 147 | | {0x7C, 0x14, 0x14, 0x14, 0x08}, // p 0x70 |
| 148 | | {0x08, 0x14, 0x14, 0x18, 0x7C}, // q 0x71 |
| 149 | | {0x7C, 0x08, 0x04, 0x04, 0x08}, // r 0x72 |
| 150 | | {0x48, 0x54, 0x54, 0x54, 0x20}, // s 0x73 |
| 151 | | {0x04, 0x3F, 0x44, 0x40, 0x20}, // t 0x74 |
| 152 | | {0x3C, 0x40, 0x40, 0x20, 0x7C}, // u 0x75 |
| 153 | | {0x1C, 0x20, 0x40, 0x20, 0x1C}, // v 0x76 |
| 154 | | {0x3C, 0x40, 0x30, 0x40, 0x3C}, // w 0x77 |
| 155 | | {0x44, 0x28, 0x10, 0x28, 0x44}, // x 0x78 |
| 156 | | {0x0C, 0x50, 0x50, 0x50, 0x3C}, // y 0x79 |
| 157 | | {0x44, 0x64, 0x54, 0x4C, 0x44}, // z 0x7A |
| 158 | | {0x00, 0x08, 0x36, 0x41, 0x00}, // { 0x7B |
| 159 | | {0x00, 0x00, 0x7F, 0x00, 0x00}, // | 0x7C |
| 160 | | {0x00, 0x41, 0x36, 0x08, 0x00}, // } 0x7D |
| 161 | | {0x08, 0x08, 0x2A, 0x1C, 0x08}, // -> 0x7E |
| 162 | | {0x08, 0x1C, 0x2A, 0x08, 0x08} // <- 0x7F |
| 35 | {0x00, 0x00, 0x08, 0x00, 0x00}, // _Undef_ 0x00 - dots for debug purposes |
| 36 | {0x01, 0x00, 0x00, 0x00, 0x40}, // _Undef_ 0x01 - dots for debug purposes |
| 37 | {0x02, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x02 |
| 38 | {0x03, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x03 |
| 39 | {0x04, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x04 |
| 40 | {0x05, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x05 |
| 41 | {0x06, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x06 |
| 42 | {0x07, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x07 |
| 43 | {0x20, 0x70, 0x3F, 0x00, 0x00}, // Croma 0x08 |
| 44 | {0x20, 0x70, 0x3F, 0x02, 0x0C}, // Croma 0x09 |
| 45 | {0x20, 0x70, 0x3F, 0x05, 0x0A}, // Croma 0x0A |
| 46 | {0x20, 0x70, 0x3F, 0x15, 0x2A}, // Croma 0x0B |
| 47 | {0x20, 0x50, 0x50, 0x3F, 0x00}, // Croma 0x0C |
| 48 | {0x0D, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x0D |
| 49 | {0x0E, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x0E |
| 50 | {0x0F, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x0F |
| 51 | {0x10, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x10 |
| 52 | {0x11, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x11 |
| 53 | {0x12, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x12 |
| 54 | {0x13, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x13 |
| 55 | {0x14, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x14 |
| 56 | {0x15, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x15 |
| 57 | {0x16, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x16 |
| 58 | {0x17, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x17 |
| 59 | {0x18, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x18 |
| 60 | {0x19, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x19 |
| 61 | {0x1A, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1A |
| 62 | {0x1B, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1B |
| 63 | {0x1C, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1C |
| 64 | {0x1D, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1D |
| 65 | {0x1E, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1E |
| 66 | {0x1F, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x1F |
| 67 | {0x00, 0x00, 0x00, 0x00, 0x00}, // (space) 0x20 |
| 68 | {0x00, 0x00, 0x5F, 0x00, 0x00}, // ! 0x21 |
| 69 | {0x00, 0x07, 0x00, 0x07, 0x00}, // " 0x22 |
| 70 | {0x14, 0x7F, 0x14, 0x7F, 0x14}, // # 0x23 |
| 71 | {0x24, 0x2A, 0x7F, 0x2A, 0x12}, // $ 0x24 |
| 72 | {0x23, 0x13, 0x08, 0x64, 0x62}, // % 0x25 |
| 73 | {0x36, 0x49, 0x55, 0x22, 0x50}, // & 0x26 |
| 74 | {0x00, 0x05, 0x03, 0x00, 0x00}, // ' 0x27 |
| 75 | {0x00, 0x1C, 0x22, 0x41, 0x00}, // ( 0x28 |
| 76 | {0x00, 0x41, 0x22, 0x1C, 0x00}, // ) 0x29 |
| 77 | {0x08, 0x2A, 0x1C, 0x2A, 0x08}, // * 0x2A |
| 78 | {0x08, 0x08, 0x3E, 0x08, 0x08}, // + 0x2B |
| 79 | {0x00, 0x50, 0x30, 0x00, 0x00}, // , 0x2C |
| 80 | {0x08, 0x08, 0x08, 0x08, 0x08}, // - 0x2D |
| 81 | {0x00, 0x60, 0x60, 0x00, 0x00}, // . 0x2E |
| 82 | {0x20, 0x10, 0x08, 0x04, 0x02}, // / 0x2F |
| 83 | {0x3E, 0x51, 0x49, 0x45, 0x3E}, // 0 0x30 |
| 84 | {0x00, 0x42, 0x7F, 0x40, 0x00}, // 1 0x31 |
| 85 | {0x42, 0x61, 0x51, 0x49, 0x46}, // 2 0x32 |
| 86 | {0x21, 0x41, 0x45, 0x4B, 0x31}, // 3 0x33 |
| 87 | {0x18, 0x14, 0x12, 0x7F, 0x10}, // 4 0x34 |
| 88 | {0x27, 0x45, 0x45, 0x45, 0x39}, // 5 0x35 |
| 89 | {0x3C, 0x4A, 0x49, 0x49, 0x30}, // 6 0x36 |
| 90 | {0x01, 0x71, 0x09, 0x05, 0x03}, // 7 0x37 |
| 91 | {0x36, 0x49, 0x49, 0x49, 0x36}, // 8 0x38 |
| 92 | {0x06, 0x49, 0x49, 0x29, 0x1E}, // 9 0x39 |
| 93 | {0x00, 0x36, 0x36, 0x00, 0x00}, // : 0x3A |
| 94 | {0x00, 0x56, 0x36, 0x00, 0x00}, // ; 0x3B |
| 95 | {0x00, 0x08, 0x14, 0x22, 0x41}, // < 0x3C |
| 96 | {0x14, 0x14, 0x14, 0x14, 0x14}, // = 0x3D |
| 97 | {0x41, 0x22, 0x14, 0x08, 0x00}, // > 0x3E |
| 98 | {0x02, 0x01, 0x51, 0x09, 0x06}, // ? 0x3F |
| 99 | {0x32, 0x49, 0x79, 0x41, 0x3E}, // @ 0x40 |
| 100 | {0x7E, 0x11, 0x11, 0x11, 0x7E}, // A 0x41 |
| 101 | {0x7F, 0x49, 0x49, 0x49, 0x36}, // B 0x42 |
| 102 | {0x3E, 0x41, 0x41, 0x41, 0x22}, // C 0x43 |
| 103 | {0x7F, 0x41, 0x41, 0x22, 0x1C}, // D 0x44 |
| 104 | {0x7F, 0x49, 0x49, 0x49, 0x41}, // E 0x45 |
| 105 | {0x7F, 0x09, 0x09, 0x01, 0x01}, // F 0x46 |
| 106 | {0x3E, 0x41, 0x41, 0x51, 0x32}, // G 0x47 |
| 107 | {0x7F, 0x08, 0x08, 0x08, 0x7F}, // H 0x48 |
| 108 | {0x00, 0x41, 0x7F, 0x41, 0x00}, // I 0x49 |
| 109 | {0x20, 0x40, 0x41, 0x3F, 0x01}, // J 0x4A |
| 110 | {0x7F, 0x08, 0x14, 0x22, 0x41}, // K 0x4B |
| 111 | {0x7F, 0x40, 0x40, 0x40, 0x40}, // L 0x4C |
| 112 | {0x7F, 0x02, 0x04, 0x02, 0x7F}, // M 0x4D |
| 113 | {0x7F, 0x04, 0x08, 0x10, 0x7F}, // N 0x4E |
| 114 | {0x3E, 0x41, 0x41, 0x41, 0x3E}, // O 0x4F |
| 115 | {0x7F, 0x09, 0x09, 0x09, 0x06}, // P 0x50 |
| 116 | {0x3E, 0x41, 0x51, 0x21, 0x5E}, // Q 0x51 |
| 117 | {0x7F, 0x09, 0x19, 0x29, 0x46}, // R 0x52 |
| 118 | {0x46, 0x49, 0x49, 0x49, 0x31}, // S 0x53 |
| 119 | {0x01, 0x01, 0x7F, 0x01, 0x01}, // T 0x54 |
| 120 | {0x3F, 0x40, 0x40, 0x40, 0x3F}, // U 0x55 |
| 121 | {0x1F, 0x20, 0x40, 0x20, 0x1F}, // V 0x56 |
| 122 | {0x7F, 0x20, 0x18, 0x20, 0x7F}, // W 0x57 |
| 123 | {0x63, 0x14, 0x08, 0x14, 0x63}, // X 0x58 |
| 124 | {0x03, 0x04, 0x78, 0x04, 0x03}, // Y 0x59 |
| 125 | {0x61, 0x51, 0x49, 0x45, 0x43}, // Z 0x5A |
| 126 | {0x00, 0x00, 0x7F, 0x41, 0x41}, // [ 0x5B |
| 127 | {0x02, 0x04, 0x08, 0x10, 0x20}, // \ 0x5C |
| 128 | {0x41, 0x41, 0x7F, 0x00, 0x00}, // ] 0x5D |
| 129 | {0x04, 0x02, 0x01, 0x02, 0x04}, // ^ 0x5E |
| 130 | {0x40, 0x40, 0x40, 0x40, 0x40}, // _ 0x5F |
| 131 | {0x00, 0x01, 0x02, 0x04, 0x00}, // ` 0x60 |
| 132 | {0x20, 0x54, 0x54, 0x54, 0x78}, // a 0x61 |
| 133 | {0x7F, 0x48, 0x44, 0x44, 0x38}, // b 0x62 |
| 134 | {0x38, 0x44, 0x44, 0x44, 0x20}, // c 0x63 |
| 135 | {0x38, 0x44, 0x44, 0x48, 0x7F}, // d 0x64 |
| 136 | {0x38, 0x54, 0x54, 0x54, 0x18}, // e 0x65 |
| 137 | {0x08, 0x7E, 0x09, 0x01, 0x02}, // f 0x66 |
| 138 | {0x08, 0x14, 0x54, 0x54, 0x3C}, // g 0x67 |
| 139 | {0x7F, 0x08, 0x04, 0x04, 0x78}, // h 0x68 |
| 140 | {0x00, 0x44, 0x7D, 0x40, 0x00}, // i 0x69 |
| 141 | {0x20, 0x40, 0x44, 0x3D, 0x00}, // j 0x6A |
| 142 | {0x00, 0x7F, 0x10, 0x28, 0x44}, // k 0x6B |
| 143 | {0x00, 0x41, 0x7F, 0x40, 0x00}, // l 0x6C |
| 144 | {0x7C, 0x04, 0x18, 0x04, 0x78}, // m 0x6D |
| 145 | {0x7C, 0x08, 0x04, 0x04, 0x78}, // n 0x6E |
| 146 | {0x38, 0x44, 0x44, 0x44, 0x38}, // o 0x6F |
| 147 | {0x7C, 0x14, 0x14, 0x14, 0x08}, // p 0x70 |
| 148 | {0x08, 0x14, 0x14, 0x18, 0x7C}, // q 0x71 |
| 149 | {0x7C, 0x08, 0x04, 0x04, 0x08}, // r 0x72 |
| 150 | {0x48, 0x54, 0x54, 0x54, 0x20}, // s 0x73 |
| 151 | {0x04, 0x3F, 0x44, 0x40, 0x20}, // t 0x74 |
| 152 | {0x3C, 0x40, 0x40, 0x20, 0x7C}, // u 0x75 |
| 153 | {0x1C, 0x20, 0x40, 0x20, 0x1C}, // v 0x76 |
| 154 | {0x3C, 0x40, 0x30, 0x40, 0x3C}, // w 0x77 |
| 155 | {0x44, 0x28, 0x10, 0x28, 0x44}, // x 0x78 |
| 156 | {0x0C, 0x50, 0x50, 0x50, 0x3C}, // y 0x79 |
| 157 | {0x44, 0x64, 0x54, 0x4C, 0x44}, // z 0x7A |
| 158 | {0x00, 0x08, 0x36, 0x41, 0x00}, // { 0x7B |
| 159 | {0x00, 0x00, 0x7F, 0x00, 0x00}, // | 0x7C |
| 160 | {0x00, 0x41, 0x36, 0x08, 0x00}, // } 0x7D |
| 161 | {0x08, 0x08, 0x2A, 0x1C, 0x08}, // -> 0x7E |
| 162 | {0x08, 0x1C, 0x2A, 0x08, 0x08} // <- 0x7F |
| 163 | 163 | }; |
| 164 | 164 | //-------------------------------------------------------------------------------------------------------------------------------------------- |
| 165 | 165 | machine_config_constructor esq2x16_sq1_t::device_mconfig_additions() const |
| r253707 | r253708 | |
| 174 | 174 | |
| 175 | 175 | // Non-ASCII codes that needs to be treated as ASCII characters |
| 176 | 176 | if ( |
| 177 | | data == 0x08 || |
| 178 | | data == 0x09 || |
| 179 | | data == 0x0A || |
| 180 | | data == 0x0B || |
| 181 | | data == 0x0C |
| 177 | data == 0x08 || |
| 178 | data == 0x09 || |
| 179 | data == 0x0A || |
| 180 | data == 0x0B || |
| 181 | data == 0x0C |
| 182 | 182 | ) data = '^'; // musical notes |
| 183 | 183 | |
| 184 | 184 | // Resolve here 2-Bytes commands: the command was saved previously |
| r253707 | r253708 | |
| 221 | 221 | case 0x8E: |
| 222 | 222 | case 0x8F: |
| 223 | 223 | // LED OFF, ON, BLINK |
| 224 | | LedState = m_LcdCommand & 0x03; |
| 224 | LedState = m_LcdCommand & 0x03; |
| 225 | 225 | if ( |
| 226 | | DisplayCode >= 16 || // Out of bounds |
| 227 | | DisplayCode == 6 || // non-existent |
| 228 | | DisplayCode == 7 || // non-existent |
| 229 | | DisplayCode == 14 || // non-existent |
| 230 | | DisplayCode == 15 // non-existent |
| 231 | | ) |
| 226 | DisplayCode >= 16 || // Out of bounds |
| 227 | DisplayCode == 6 || // non-existent |
| 228 | DisplayCode == 7 || // non-existent |
| 229 | DisplayCode == 14 || // non-existent |
| 230 | DisplayCode == 15 // non-existent |
| 231 | ) |
| 232 | 232 | { |
| 233 | 233 | #ifdef VERBOSE |
| 234 | 234 | printf("LCD %02X: Led %02d does'nt exist - pos=%02X (%d)\n", m_LcdCommand, DisplayCode, m_lcdPos, m_lcdPage); |
| r253707 | r253708 | |
| 236 | 236 | } |
| 237 | 237 | else |
| 238 | 238 | { |
| 239 | | if (m_leds[DisplayCode] != LedState) |
| 239 | if (m_leds[DisplayCode] != LedState) |
| 240 | 240 | { |
| 241 | 241 | m_leds[DisplayCode] = LedState; |
| 242 | | m_ledsDirty[DisplayCode] = 1; |
| 243 | | } |
| 242 | m_ledsDirty[DisplayCode] = 1; |
| 243 | } |
| 244 | 244 | update_display(); |
| 245 | 245 | } |
| 246 | 246 | m_LcdCommand = 0; |
| r253707 | r253708 | |
| 255 | 255 | return; |
| 256 | 256 | break; |
| 257 | 257 | } |
| 258 | | |
| 258 | |
| 259 | 259 | if ((data >= 0x20) && (data <= 0x7f)) |
| 260 | 260 | { |
| 261 | 261 | #ifdef VERBOSE |
| 262 | 262 | printf("LCD %02X: \"%c\" - pos=%02X (%d)\n", DisplayCode, data, m_lcdPos, m_lcdPage); |
| 263 | 263 | #endif |
| 264 | 264 | m_lcdpg[m_lcdPage][m_lcdPos++] = DisplayCode; |
| 265 | | if (m_lcdPos > 31) m_lcdPos = 31; |
| 265 | if (m_lcdPos > 31) m_lcdPos = 31; |
| 266 | 266 | |
| 267 | 267 | update_display(); |
| 268 | 268 | return; |
| 269 | 269 | } |
| 270 | | |
| 270 | |
| 271 | 271 | if (DisplayCode >= 0x80) |
| 272 | 272 | { |
| 273 | 273 | switch (DisplayCode) { |
| 274 | 274 | // Known 2-bytes command |
| 275 | | case 0x87: // Go To |
| 276 | | case 0x88: // Save Cursor Position |
| 277 | | case 0x89: // Restore Cursor Position |
| 275 | case 0x87: // Go To |
| 276 | case 0x88: // Save Cursor Position |
| 277 | case 0x89: // Restore Cursor Position |
| 278 | 278 | // Save the command for the next byte |
| 279 | 279 | m_LcdCommand = DisplayCode; |
| 280 | 280 | return; |
| r253707 | r253708 | |
| 354 | 354 | for (int led = 0; led < 16; led++) |
| 355 | 355 | { |
| 356 | 356 | if (m_ledsDirty[led]) { |
| 357 | | machine().output().set_indexed_value("rLed_", led, m_leds[led]); |
| 358 | | m_ledsDirty[led] = 0; |
| 359 | | } |
| 357 | machine().output().set_indexed_value("rLed_", led, m_leds[led]); |
| 358 | m_ledsDirty[led] = 0; |
| 359 | } |
| 360 | 360 | } |
| 361 | 361 | |
| 362 | 362 | for (int page = 0; page < 4; page++) |
| 363 | 363 | { |
| 364 | 364 | for (int pos = 0; pos < 32; pos++) |
| 365 | 365 | { |
| 366 | | // stealed from tecnbras.cpp and modified |
| 366 | // stealed from tecnbras.cpp and modified |
| 367 | 367 | for (int rr=0; rr<7; rr++) { |
| 368 | 368 | lcdCharRow = RotateLcdChar(m_lcdpg[page][pos],rr); |
| 369 | | machine().output().set_indexed_value("pg_", (page+1)*1000 + pos*7 + rr, 0x1F & lcdCharRow); |
| 369 | machine().output().set_indexed_value("pg_", (page+1)*1000 + pos*7 + rr, 0x1F & lcdCharRow); |
| 370 | 370 | } |
| 371 | 371 | } |
| 372 | 372 | } |
| r253707 | r253708 | |
| 377 | 377 | //lcd_reset(); |
| 378 | 378 | m_lcdPage = m_lcdSavedPos = m_lcdPos = m_LcdCommand = 0; |
| 379 | 379 | memset(m_leds, 0, sizeof(m_leds)); |
| 380 | | memset(m_lcdpg, 1, sizeof(m_lcdpg)); // Set to 1 for debug: to see what "pages" are set to 0 from the firmware |
| 380 | memset(m_lcdpg, 1, sizeof(m_lcdpg)); // Set to 1 for debug: to see what "pages" are set to 0 from the firmware |
| 381 | 381 | } |
| 382 | 382 | //-------------------------------------------------------------------------------------------------------------------------------------------- |
| 383 | 383 | void esq2x16_sq1_t::lcd_reset() |