]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/z180-stamp-avr.c
Revert "Refactro Tupfiles"
[z180-stamp.git] / avr / z180-stamp-avr.c
index 68710277716714d97d2e3bd5be73d004abb47e36..4ea4d472f7ccf3f038f16be628883e9287925e18 100644 (file)
 #undef const
 
 #define FLASH __flash
+//#define FLASH 
 
 #define ESCCHAR                ('^'-0x40)
 
 #define S_10MS_TO      (1<<0)
 
 
-static volatile int_fast8_t timeout_1s;
-static volatile uint_least8_t Stat;
+volatile int_fast8_t timeout_1s;
+volatile uint_least8_t Stat;
 
 
+/****************************************************************/
+
+#define P_ADL          PORTA
+#define P_ADH          PORTC
+#define P_ADB          PORTE
+#define PIN_ADB                PINE
+
+#define ADB_WIDTH      3
+#define ADB_SHIFT      2
+//#define ADB_PORT     GPIOE
+
+#define MASK(n)        ((1<<(n))-1)
+#define SMASK(w,s) (MASK(w) << (s))
+
+typedef union {
+       uint32_t l;
+       uint16_t w[2];
+       uint8_t b[4];
+} addr_t;
+
+
+void z80_setaddress(uint32_t addr)
+{
+       addr_t x;
+
+       x.l = addr;
+       P_ADL = x.b[0];
+       P_ADH = x.b[1];
+       PIN_ADB = ((x.b[2] << ADB_SHIFT) ^ P_ADB) & MASK(ADB_WIDTH) << ADB_SHIFT ;
+
+}
+
+/****************************************************************/
+
 /*--------------------------------------------------------------------------*/
 
 
@@ -46,7 +82,10 @@ void sys_tick_handler(void)
        if (tick_10ms == 10)
        {
                Stat |= S_10MS_TO;
+
                tick_10ms = 0;
+               
+               
                /* Drive timer procedure of low level disk I/O module */
                //disk_timerproc();
        }
@@ -62,10 +101,6 @@ void sys_tick_handler(void)
 }
 
 
-static void do_10ms(void) 
-{
-}
-
 /*--------------------------------------------------------------------------*/
 
 static uint32_t z80_sram_cmp(uint32_t addr, uint32_t length, uint8_t wval, int inc)
@@ -73,7 +108,7 @@ static uint32_t z80_sram_cmp(uint32_t addr, uint32_t length, uint8_t wval, int i
        uint8_t rval;
        int_fast8_t errors = 0;
        
-       DBG_P(1, "SRAM: Check 0x%.5lX byte... ", length);
+       DBG_P(1, "SRAM: Check %#.5x byte... ", length);
        while (length--) {
                if ((rval = z80_read(addr)) != wval) {
                        if (errors == 0) { 
@@ -141,8 +176,6 @@ const char * const qbcat = "Zhe quick brown fox jumps over the lazy cat!";
 
 #endif
 
-/*--------------------------------------------------------------------------*/
-
 uint8_t z80_get_byte(uint32_t adr)
 {
        uint8_t data;
@@ -154,6 +187,13 @@ uint8_t z80_get_byte(uint32_t adr)
        return data;
 }
 
+
+/*--------------------------------------------------------------------------*/
+
+static void do_10ms(void) 
+{
+}
+
 /*--------------------------------------------------------------------------*/
 
 struct msg_item {
@@ -162,7 +202,6 @@ struct msg_item {
        void (*func)(uint8_t, int, uint8_t *);
 };
 
-static
 uint32_t msg_to_addr(uint8_t *msg)
 {
        union {
@@ -178,7 +217,6 @@ uint32_t msg_to_addr(uint8_t *msg)
        return addr.as32;
 }
 
-static
 void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg)
 {
        (void)subf; (void)len;
@@ -187,7 +225,6 @@ void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg)
 }
 
 
-static
 void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg)
 {
        (void)len;
@@ -196,7 +233,6 @@ void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg)
 }
 
 
-static
 void do_msg_char_out(uint8_t subf, int len, uint8_t * msg)
 {
        (void)subf;
@@ -206,7 +242,6 @@ void do_msg_char_out(uint8_t subf, int len, uint8_t * msg)
 }
 
 
-static
 const FLASH struct msg_item z80_messages[] =
 {
        { 0,                    /* fct nr. */
@@ -225,7 +260,8 @@ const FLASH struct msg_item z80_messages[] =
 };
 
 
-static
+
+
 void do_message(int len, uint8_t *msg)
 {
        uint8_t fct, sub_fct;
@@ -267,10 +303,9 @@ void do_message(int len, uint8_t *msg)
 }
 
 
-//TODO:
+
 #define CTRBUF_LEN 256
 
-static
 void check_msg_fifo(void)
 {
        int ch;
@@ -309,7 +344,6 @@ void check_msg_fifo(void)
 }
 
 
-static
 void z80_load_mem(void)
 {
        unsigned sec = 0;
@@ -330,7 +364,6 @@ void z80_load_mem(void)
                sec++;
        }
 }
-
 /*--------------------------------------------------------------------------*/
 
 int main(void)
@@ -340,6 +373,7 @@ int main(void)
 
 //     setvbuf(stdout, NULL, _IONBF, 0);
        serial_setup();
+//     printf("\n(STM32F100+HD64180)_stamp Tester\n");
        printf("\n(ATMEGA1281+HD64180)_stamp Tester\n");
 
        DBG_P(1, "z80_setup_bus... ");
@@ -347,6 +381,7 @@ int main(void)
        z80_setup_bus();
        DBG_P(1, "done.\n");
 
+
        DBG_P(1, "Get bus... ");
        z80_busreq(LOW);
        z80_reset(HIGH);