~ubuntu-branches/ubuntu/jaunty/simh/jaunty

« back to all changes in this revision

Viewing changes to PDP10/pdp10_ksio.c

  • Committer: Bazaar Package Importer
  • Author(s): Vince Mulhollon
  • Date: 2007-04-13 20:16:15 UTC
  • mfrom: (1.1.7 upstream) (2.1.3 lenny)
  • Revision ID: james.westby@ubuntu.com-20070413201615-jiar46bgkrs0dw2h
Tags: 3.7.0-1
* New upstream released 03-Feb-2007
* i7094 added which emulates the IBM 7090/7094
* Upstream has converted almost entirely to pdf format for docs
* All manpages updated
* All docs are registered with the doc-base system

Show diffs side-by-side

added added

removed removed

Lines of Context:
188
188
 
189
189
/* IO 710       (DEC) TIOE - test I/O word, skip if zero
190
190
                (ITS) IORDI - read word from Unibus 3
191
 
                        returns TRUE if skip, FALSE otherwise
 
191
                returns TRUE if skip, FALSE otherwise
192
192
*/
193
193
 
194
194
t_bool io710 (int32 ac, a10 ea)
195
195
{
196
196
d10 val;
197
197
 
198
 
if (ITS) AC(ac) = ReadIO (IO_UBA3 | ea);                /* IORDI */
 
198
if (Q_ITS) AC(ac) = ReadIO (IO_UBA3 | ea);              /* IORDI */
199
199
else {                                                  /* TIOE */
200
200
    val = ReadIO (ea);                                  /* read word */
201
201
    if ((AC(ac) & val) == 0) return TRUE;
205
205
 
206
206
/* IO 711       (DEC) TION - test I/O word, skip if non-zero
207
207
                (ITS) IORDQ - read word from Unibus 1
208
 
                        returns TRUE if skip, FALSE otherwise
 
208
                returns TRUE if skip, FALSE otherwise
209
209
*/
210
210
 
211
211
t_bool io711 (int32 ac, a10 ea)
212
212
{
213
213
d10 val;
214
214
 
215
 
if (ITS) AC(ac) = ReadIO (IO_UBA1 | ea);                /* IORDQ */
 
215
if (Q_ITS) AC(ac) = ReadIO (IO_UBA1 | ea);              /* IORDQ */
216
216
else {                                                  /* TION */
217
217
    val = ReadIO (ea);                                  /* read word */
218
218
    if ((AC(ac) & val) != 0) return TRUE;
248
248
d10 temp;
249
249
 
250
250
val = val & 0177777;
251
 
if (ITS) WriteIO (IO_UBA3 | ea, val, WRITE);            /* IOWRI */
 
251
if (Q_ITS) WriteIO (IO_UBA3 | ea, val, WRITE);          /* IOWRI */
252
252
else {
253
253
    temp = ReadIO (ea);                                 /* BSIO */
254
254
    temp = temp | val;
266
266
d10 temp;
267
267
 
268
268
val = val & 0177777;
269
 
if (ITS) WriteIO (IO_UBA1 | ea, val, WRITE);            /* IOWRQ */
 
269
if (Q_ITS) WriteIO (IO_UBA1 | ea, val, WRITE);          /* IOWRQ */
270
270
else {
271
271
    temp = ReadIO (ea);                                 /* BCIO */
272
272
    temp = temp & ~val;
277
277
 
278
278
/* IO 720       (DEC) TIOEB - test I/O byte, skip if zero
279
279
                (ITS) IORDBI - read byte from Unibus 3
280
 
                        returns TRUE if skip, FALSE otherwise
 
280
                returns TRUE if skip, FALSE otherwise
281
281
*/
282
282
 
283
283
t_bool io720 (int32 ac, a10 ea)
284
284
{
285
285
d10 val;
286
286
 
287
 
if (ITS) {                                              /* IORDBI */
 
287
if (Q_ITS) {                                            /* IORDBI */
288
288
    val = ReadIO (IO_UBA3 | eaRB);
289
289
    AC(ac) = GETBYTE (ea, val);
290
290
    }
298
298
 
299
299
/* IO 721       (DEC) TIONB - test I/O word, skip if non-zero
300
300
                (ITS) IORDBQ - read word from Unibus 1
301
 
                        returns TRUE if skip, FALSE otherwise
 
301
                returns TRUE if skip, FALSE otherwise
302
302
*/
303
303
 
304
304
t_bool io721 (int32 ac, a10 ea)
305
305
{
306
306
d10 val;
307
307
 
308
 
if (ITS) {                                              /* IORDBQ */
 
308
if (Q_ITS) {                                            /* IORDBQ */
309
309
    val = ReadIO (IO_UBA1 | eaRB);
310
310
    AC(ac) = GETBYTE (ea, val);
311
311
    }
348
348
d10 temp;
349
349
 
350
350
val = val & 0377;
351
 
if (ITS) WriteIO (IO_UBA3 | ea, val, WRITEB);           /* IOWRBI */
 
351
if (Q_ITS) WriteIO (IO_UBA3 | ea, val, WRITEB);         /* IOWRBI */
352
352
else {
353
353
    temp = ReadIO (eaRB);                               /* BSIOB */
354
354
    temp = GETBYTE (ea, temp);
367
367
d10 temp;
368
368
 
369
369
val = val & 0377;
370
 
if (ITS) WriteIO (IO_UBA1 | ea, val, WRITEB);           /* IOWRBQ */
 
370
if (Q_ITS) WriteIO (IO_UBA1 | ea, val, WRITEB);         /* IOWRBQ */
371
371
else {
372
372
    temp = ReadIO (eaRB);                               /* BCIOB */
373
373
    temp = GETBYTE (ea, temp);