Previous 15994 Revisions Next

r6545 Saturday 5th December, 2009 at 12:56:08 UTC by Miodrag Milanović
[ALTAIR] Added quickload and added few more ports, makes 4k basic works
[src/mess/drivers]altair.c

src/mess/drivers/altair.c
r6544r6545
99#include "driver.h"
1010#include "cpu/i8085/i8085.h"
1111#include "machine/terminal.h"
12#include "devices/snapquik.h"
1213
1314static UINT8 term_data;
15static UINT8* altair_ram;
1416
1517static READ8_HANDLER(sio_status_r)
1618{
r6544r6545
3638   terminal_write(devconf,0,data);
3739}
3840
41static READ8_HANDLER(sio_key_status_r)
42{
43   return (term_data!=0) ? 0x40 : 0x01;
44}
45
3946static ADDRESS_MAP_START(altair_mem, ADDRESS_SPACE_PROGRAM, 8)
4047   ADDRESS_MAP_UNMAP_HIGH
41   AM_RANGE( 0x0000, 0xfcff ) AM_RAM
48   AM_RANGE( 0x0000, 0xfcff ) AM_RAM  AM_BASE(&altair_ram)
4249   AM_RANGE( 0xfd00, 0xfdff ) AM_ROM
4350   AM_RANGE( 0xff00, 0xffff ) AM_ROM
4451ADDRESS_MAP_END
4552
4653static ADDRESS_MAP_START( altair_io , ADDRESS_SPACE_IO, 8)
4754   ADDRESS_MAP_UNMAP_HIGH
55   AM_RANGE( 0x00, 0x00 ) AM_READ(sio_key_status_r)
56   AM_RANGE( 0x01, 0x01 ) AM_READWRITE(sio_data_r,sio_data_w)
4857   AM_RANGE( 0x10, 0x10 ) AM_READWRITE(sio_status_r,sio_command_w)
4958   AM_RANGE( 0x11, 0x11 ) AM_READWRITE(sio_data_r,sio_data_w)
5059ADDRESS_MAP_END
r6544r6545
5564INPUT_PORTS_END
5665
5766
67QUICKLOAD_LOAD(altair)
68{
69   int quick_length;
70   int read_;
71   quick_length = image_length(image);
72   if (quick_length >= 0xfd00)
73      return INIT_FAIL;
74   read_ = image_fread(image, altair_ram, quick_length);
75   if (read_ != quick_length)
76      return INIT_FAIL;
77
78   return INIT_PASS;
79}
80
81
5882static MACHINE_RESET(altair)
5983{
6084   // Set startup addess done by turn-key
6185   cpu_set_reg(cputag_get_cpu(machine, "maincpu"), I8085_PC, 0xFD00);
86   
87   term_data = 0;
6288}
6389
6490static WRITE8_DEVICE_HANDLER( altair_kbd_put )
r6544r6545
82108   /* video hardware */
83109   MDRV_IMPORT_FROM( generic_terminal )
84110   MDRV_GENERIC_TERMINAL_ADD(TERMINAL_TAG,altair_terminal_intf)
111   
112   /* quickload */
113   MDRV_QUICKLOAD_ADD("quickload", altair, "bin", 0)   
85114MACHINE_DRIVER_END
86115
87116/* ROM definition */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team