esp.c (1bcaf71b) esp.c (c5d7df28)
1/*
2 * QEMU ESP/NCR53C9x emulation
3 *
4 * Copyright (c) 2005-2006 Fabrice Bellard
5 * Copyright (c) 2012 Herve Poussineau
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal

--- 147 unchanged lines hidden (view full) ---

156 dmalen |= s->rregs[ESP_TCMID] << 8;
157 dmalen |= s->rregs[ESP_TCHI] << 16;
158
159 return dmalen;
160}
161
162static void esp_set_tc(ESPState *s, uint32_t dmalen)
163{
1/*
2 * QEMU ESP/NCR53C9x emulation
3 *
4 * Copyright (c) 2005-2006 Fabrice Bellard
5 * Copyright (c) 2012 Herve Poussineau
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal

--- 147 unchanged lines hidden (view full) ---

156 dmalen |= s->rregs[ESP_TCMID] << 8;
157 dmalen |= s->rregs[ESP_TCHI] << 16;
158
159 return dmalen;
160}
161
162static void esp_set_tc(ESPState *s, uint32_t dmalen)
163{
164 uint32_t old_tc = esp_get_tc(s);
165
164 s->rregs[ESP_TCLO] = dmalen;
165 s->rregs[ESP_TCMID] = dmalen >> 8;
166 s->rregs[ESP_TCHI] = dmalen >> 16;
166 s->rregs[ESP_TCLO] = dmalen;
167 s->rregs[ESP_TCMID] = dmalen >> 8;
168 s->rregs[ESP_TCHI] = dmalen >> 16;
169
170 if (old_tc && dmalen == 0) {
171 s->rregs[ESP_RSTAT] |= STAT_TC;
172 }
167}
168
169static uint32_t esp_get_stc(ESPState *s)
170{
171 uint32_t dmalen;
172
173 dmalen = s->wregs[ESP_TCLO];
174 dmalen |= s->wregs[ESP_TCMID] << 8;

--- 1371 unchanged lines hidden ---
173}
174
175static uint32_t esp_get_stc(ESPState *s)
176{
177 uint32_t dmalen;
178
179 dmalen = s->wregs[ESP_TCLO];
180 dmalen |= s->wregs[ESP_TCMID] << 8;

--- 1371 unchanged lines hidden ---