as: Fix RST handling
authorAlan Cox <alan@linux.intel.com>
Wed, 15 Nov 2017 23:06:48 +0000 (23:06 +0000)
committerAlan Cox <alan@linux.intel.com>
Wed, 15 Nov 2017 23:06:48 +0000 (23:06 +0000)
The old code expected the Intel 8080 syntax for RST not the Z80 one.

Applications/MWC/cmd/asz80/as1.c

index 74b444f..8340018 100644 (file)
@@ -248,11 +248,10 @@ loop:
        case TRST:
                getaddr(&a1);
                istuser(&a1);
-               if (a1.a_value < 8) {
-                       outab(OPRST|(a1.a_value<<3));
-                       break;  
-               }
-               aerr(INVALID_CONST);
+               if ((a1.a_value & 7) || a1.a_value < 0 || a1.a_value > 0x38)
+                       aerr(INVALID_CONST);
+               else
+                       outab(OPRST|a1.a_value);
                break;
 
        case TREL: