Source Code
001254,000001: # Copyright 2004 Ronald S. Burkey <info@sandroid.org>
001255,000002: #
001256,000003: # This file is part of yaAGC.
001257,000004:
001258,000005: # yaAGC is free software; you can redistribute it and/or modify
001259,000006: # it under the terms of the GNU General Public License as published by
001260,000007: # the Free Software Foundation; either version 2 of the License, or
001261,000008: # (at your option) any later version.
001262,000009:
001263,000010: # yaAGC is distributed in the hope that it will be useful,
001264,000011: # but WITHOUT ANY WARRANTY; without even the implied warranty of
001265,000012: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
001266,000013: # GNU General Public License for more details.
001267,000014:
001268,000015: # You should have received a copy of the GNU General Public License
001269,000016: # along with yaAGC; if not, write to the Free Software
001270,000017: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
001271,000018:
001272,000019: # Filename: ValidateTS.agc
001273,000020: # Purpose: This is the part of the Validation program that validates
001274,000021: # just the TS instruction.
001275,000022: # Mod history: 07/05/04 RSB. Began.
001276,000023:
001277,000024: 5436 24061 INCR ERRNUM
001278,000025:
001279,000026: # I think that the "normal" uses of TS have been
001280,000027: # adequately check by the previous tests, since data has
001281,000028: # been saved and compared for correctness. In other words,
001282,000029: # we know that it correctly saves data. That leaves
001283,000030: # only weird cases like overflow behavior and +-0 to check.
001284,000031:
001285,000032: # +0.
001286,000033: 5437 24062 INCR ERRSUB # 1
001287,000034: 5440 30007 CA ZEROES
001288,000035: 5441 54001 TS L
001289,000036: 5442 10001 CCS L
001290,000037: 5443 15563 TCF VTSERROR
001291,000038: 5444 15447 TCF TS1
001292,000039: 5445 15446 NOOP
001293,000040: 5446 15563 TCF VTSERROR
001294,000041: 5447 TS1
001295,000042:
001296,000043: # -0.
001297,000044: 5447 24062 INCR ERRSUB # 2
001298,000045: 5450 37630 CA NEGZERO
001299,000046: 5451 54001 TS L
001300,000047: 5452 10001 CCS L
001301,000048: 5453 15454 NOOP
001302,000049: 5454 15455 NOOP
001303,000050: 5455 15563 TCF VTSERROR
001304,000051:
001305,000052: # +Overflow
001306,000053: 5456 24062 INCR ERRSUB # 3
001307,000054: 5457 37651 CA MAXP
001308,000055: 5460 67642 AD TEN
001309,000056: 5461 54002 TS Q # Should be 9.
001310,000057: 5462 15563 TCF VTSERROR # No overflow.
001311,000058: 5463 24062 INCR ERRSUB # 4
001312,000059: 5464 67631 AD NEGONE # A should have been +1.
001313,000060: 5465 00006 EXTEND
001314,000061: 5466 15470 BZF TS2
001315,000062: 5467 15563 TCF VTSERROR
001316,000063: 5470 24062 TS2 INCR ERRSUB # 5
001317,000064: 5471 37641 CA NINE
001318,000065: 5472 00006 EXTEND
001319,000066: 5473 60002 SU Q
001320,000067: 5474 00006 EXTEND
001321,000068: 5475 15563 BZF VTSERROR # Q contains overflow.
001322,000069: 5476 30002 CA Q
001323,000070: 5477 54063 TS TEMPI
001324,000071: 5500 15501 NOOP
001325,000072: 5501 37641 CA NINE
001326,000073: 5502 00006 EXTEND
001327,000074: 5503 60063 SU TEMPI # ... but TEMPI does not.
001328,000075: 5504 00006 EXTEND
001329,000076: 5505 15507 BZF +2
001330,000077: 5506 15563 TCF VTSERROR
001331,000078:
001332,000079: 5507 TS3
001333,000080:
001334,000081: # -Overflow
001335,000082: 5507 24062 INCR ERRSUB # 6
001336,000083: 5510 37642 CA TEN
001337,000084: 5511 54002 TS Q
001338,000085: 5512 37655 CA MAXN
001339,000086: 5513 00006 EXTEND
001340,000087: 5514 60002 SU Q
001341,000088: 5515 54002 TS Q # Should be -9.
001342,000089: 5516 15563 TCF VTSERROR # No overflow.
001343,000090: 5517 24062 INCR ERRSUB # 7
001344,000091: 5520 67635 AD ONE # A should have been -1.
001345,000092: 5521 00006 EXTEND
001346,000093: 5522 15524 BZF TS4A
001347,000094: 5523 15563 TCF VTSERROR
001348,000095: 5524 24062 TS4A INCR ERRSUB # 10 octal
001349,000096: 5525 37641 CA NINE
001350,000097: 5526 60002 AD Q
001351,000098: 5527 00006 EXTEND
001352,000099: 5530 15563 BZF VTSERROR # Q contains overflow.
001353,000100: 5531 30002 CA Q
001354,000101: 5532 54063 TS TEMPI
001355,000102: 5533 15534 NOOP
001356,000103: 5534 37641 CA NINE
001357,000104: 5535 60063 AD TEMPI
001358,000105: 5536 00006 EXTEND
001359,000106: 5537 15541 BZF +2 # ... but TEMPI does not.
001360,000107: 5540 15563 TCF VTSERROR
001361,000108:
001362,000109: 5541 TS4
001363,000110:
001364,000111: # No overflow
001365,000112: 5541 24062 INCR ERRSUB # 11
001366,000113: 5542 37640 CA FIVE
001367,000114: 5543 40000 COM
001368,000115: 5544 54001 TS L # -5
001369,000116: 5545 15547 TCF TS5A # No overflow.
001370,000117: 5546 15563 TCF VTSERROR # Overflow.
001371,000118: 5547 24062 TS5A INCR ERRSUB # 12
001372,000119: 5550 67640 AD FIVE # A should have been -5.
001373,000120: 5551 00006 EXTEND
001374,000121: 5552 15554 BZF TS5
001375,000122: 5553 15563 TCF VTSERROR
001376,000123: 5554 24062 TS5 INCR ERRSUB # 13
001377,000124: 5555 37640 CA FIVE
001378,000125: 5556 60001 AD L
001379,000126: 5557 00006 EXTEND
001380,000127: 5560 15562 BZF TS6
001381,000128: 5561 15563 TCF VTSERROR
001382,000129: 5562 TS6
001383,000130:
001384,000131: 5562 15564 TCF +2
001385,000132: 5563 07437 VTSERROR TC ERRORDSP
001386,000133: 5564 30007 CA ZEROES
001387,000134: 5565 54062 TS ERRSUB
001388,000135:
End of include-file ValidateTS.agc. Parent file is Validation.agc