Source Code
001335,000001: # Copyright 2004 Ronald S. Burkey <info@sandroid.org>
001336,000002: #
001337,000003: # This file is part of yaAGC.
001338,000004:
001339,000005: # yaAGC is free software; you can redistribute it and/or modify
001340,000006: # it under the terms of the GNU General Public License as published by
001341,000007: # the Free Software Foundation; either version 2 of the License, or
001342,000008: # (at your option) any later version.
001343,000009:
001344,000010: # yaAGC is distributed in the hope that it will be useful,
001345,000011: # but WITHOUT ANY WARRANTY; without even the implied warranty of
001346,000012: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
001347,000013: # GNU General Public License for more details.
001348,000014:
001349,000015: # You should have received a copy of the GNU General Public License
001350,000016: # along with yaAGC; if not, write to the Free Software
001351,000017: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
001352,000018:
001353,000019: # Filename: ValidateINDEX.agc
001354,000020: # Purpose: This is the part of the Validation program that validates
001355,000021: # just the INDEX instruction.
001356,000022: # Mod history: 07/05/04 RSB. Began.
001357,000023:
001358,000024: 5510 24061 INCR ERRNUM
001359,000025:
001360,000026: # First do the "basic" (non-Extracode) INDEX instruction.
001361,000027: # Just load values from the table and check them.
001362,000028: 5511 15517 TCF AFTERTAB
001363,000029: 5512 77772 DEC -5 B-14
001364,000030: 5513 77766 DEC -9 B-14
001365,000031: 5514 77765 TABLE DEC -10 B-14
001366,000032: 5515 77776 DEC -1 B-14
001367,000033: 5516 00001 DEC 1 B-14
001368,000034: 5517 AFTERTAB
001369,000035: 5517 37430 CA ONE
001370,000036: 5520 67430 AD ONE
001371,000037: 5521 40000 COM
001372,000038: 5522 54063 TS TEMPI # TEMPI is -2.
001373,000039:
001374,000040: 5523 24062 INCR ERRSUB # 1
001375,000041: 5524 50063 INDEX TEMPI
001376,000042: 5525 35514 CA TABLE
001377,000043: 5526 67433 AD FIVE
001378,000044: 5527 00006 EXTEND
001379,000045: 5530 15532 BZF INDEX1
001380,000046: 5531 15653 TCF VNDERROR
001381,000047: 5532 INDEX1
001382,000048: 5532 24062 INCR ERRSUB # 2
001383,000049: 5533 24063 INCR TEMPI
001384,000050: 5534 50063 INDEX TEMPI
001385,000051: 5535 35514 CA TABLE
001386,000052: 5536 67434 AD NINE
001387,000053: 5537 00006 EXTEND
001388,000054: 5540 15542 BZF INDEX2
001389,000055: 5541 15653 TCF VNDERROR
001390,000056: 5542 INDEX2
001391,000057: 5542 24062 INCR ERRSUB # 3
001392,000058: 5543 24063 INCR TEMPI
001393,000059: 5544 50063 INDEX TEMPI
001394,000060: 5545 35514 CA TABLE
001395,000061: 5546 67435 AD TEN
001396,000062: 5547 00006 EXTEND
001397,000063: 5550 15552 BZF INDEX3
001398,000064: 5551 15653 TCF VNDERROR
001399,000065: 5552 INDEX3
001400,000066: 5552 24062 INCR ERRSUB # 4
001401,000067: 5553 24063 INCR TEMPI
001402,000068: 5554 50063 INDEX TEMPI
001403,000069: 5555 35514 CA TABLE
001404,000070: 5556 67430 AD ONE
001405,000071: 5557 00006 EXTEND
001406,000072: 5560 15562 BZF INDEX4
001407,000073: 5561 15653 TCF VNDERROR
001408,000074: 5562 INDEX4
001409,000075: 5562 24062 INCR ERRSUB # 5
001410,000076: 5563 24063 INCR TEMPI
001411,000077: 5564 50063 INDEX TEMPI
001412,000078: 5565 35514 CA TABLE
001413,000079: 5566 67424 AD NEGONE
001414,000080: 5567 00006 EXTEND
001415,000081: 5570 15572 BZF INDEX5
001416,000082: 5571 15653 TCF VNDERROR
001417,000083: 5572 INDEX5
001418,000084:
001419,000085: # The test of the Extracode version is done the same way,
001420,000086: # except that we use DCA rather than CA to load the values.
001421,000087: # (We discard the extra word loaded into L without checking.
001422,000088: 5572 37430 CA ONE
001423,000089: 5573 67430 AD ONE
001424,000090: 5574 40000 COM
001425,000091: 5575 54063 TS TEMPI # TEMPI is -2.
001426,000092:
001427,000093: 5576 24062 INCR ERRSUB # 6
001428,000094: 5577 00006 EXTEND
001429,000095: 5600 50063 INDEX TEMPI
001430,000096: 5601 35515 DCA TABLE
001431,000097: 5602 67433 AD FIVE
001432,000098: 5603 00006 EXTEND
001433,000099: 5604 15606 BZF INDEX6
001434,000100: 5605 15653 TCF VNDERROR
001435,000101: 5606 INDEX6
001436,000102: 5606 24062 INCR ERRSUB # 7
001437,000103: 5607 24063 INCR TEMPI
001438,000104: 5610 00006 EXTEND
001439,000105: 5611 50063 INDEX TEMPI
001440,000106: 5612 35515 DCA TABLE
001441,000107: 5613 67434 AD NINE
001442,000108: 5614 00006 EXTEND
001443,000109: 5615 15617 BZF INDEX7
001444,000110: 5616 15653 TCF VNDERROR
001445,000111: 5617 INDEX7
001446,000112: 5617 24062 INCR ERRSUB # 10 octal
001447,000113: 5620 24063 INCR TEMPI
001448,000114: 5621 00006 EXTEND
001449,000115: 5622 50063 INDEX TEMPI
001450,000116: 5623 35515 DCA TABLE
001451,000117: 5624 67435 AD TEN
001452,000118: 5625 00006 EXTEND
001453,000119: 5626 15630 BZF INDEX8
001454,000120: 5627 15653 TCF VNDERROR
001455,000121: 5630 INDEX8
001456,000122: 5630 24062 INCR ERRSUB # 11
001457,000123: 5631 24063 INCR TEMPI
001458,000124: 5632 00006 EXTEND
001459,000125: 5633 50063 INDEX TEMPI
001460,000126: 5634 35515 DCA TABLE
001461,000127: 5635 67430 AD ONE
001462,000128: 5636 00006 EXTEND
001463,000129: 5637 15641 BZF INDEX9
001464,000130: 5640 15653 TCF VNDERROR
001465,000131: 5641 INDEX9
001466,000132: 5641 24062 INCR ERRSUB # 12
001467,000133: 5642 24063 INCR TEMPI
001468,000134: 5643 00006 EXTEND
001469,000135: 5644 50063 INDEX TEMPI
001470,000136: 5645 35515 DCA TABLE
001471,000137: 5646 67424 AD NEGONE
001472,000138: 5647 00006 EXTEND
001473,000139: 5650 15652 BZF INDEX10
001474,000140: 5651 15653 TCF VNDERROR
001475,000141: 5652 INDEX10
001476,000142:
001477,000143: # We also need to check that if the following instructions
001478,000144: # are created by indexing, that they are treated as real,
001479,000145: # rather than as the special codes RELINT, INHINT, EXTEND,
001480,000146: # and RESUME:
001481,000147: # TC 3
001482,000148: # TC 4
001483,000149: # TC 6
001484,000150: # INDEX 17
001485,000151: # However, we DON'T actually check that now, since that's
001486,000152: # not the way yaAGC is implemented currently.
001487,000153:
001488,000154: 5652 15654 TCF +2
001489,000155: 5653 07240 VNDERROR TC ERRORDSP
001490,000156: 5654 30007 CA ZEROES
001491,000157: 5655 54062 TS ERRSUB
001492,000158:
End of include-file ValidateINDEX.agc. Parent file is Validation.agc