Changeset cc8cb3093a2c3f411f5312b929e7df6e9785ba00

User picture

Commiter: Charles Childers

Author: Charles Childers

Parent: f35805c2c5

(2010/03/09 00:13) Almost 2 years ago

sdl vm disallows negative addresses

Affected files

Updated vm/graphical/vm.c Download diff

f35805c2c56c0dc7b89bf5c8b341f450093fa7c9cc8cb3093a2c3f411f5312b929e7df6e9785ba00
122
         vm.rsp++;
122
         vm.rsp++;
123
         TORS = vm.ip;
123
         TORS = vm.ip;
124
         vm.ip = vm.image[vm.ip] - 1;
124
         vm.ip = vm.image[vm.ip] - 1;
125
         if (vm.image[vm.ip+1] == 0)
125
         if (vm.ip < 0)
126
         {
126
         {
127
           vm.ip++;
127
           vm.ip = IMAGE_SIZE;
128
         }
128
         }
129
         if (vm.image[vm.ip+1] == 0)
129
         else
130
         {
130
         {
131
           vm.ip++;
131
           if (vm.image[vm.ip+1] == 0)
132
             vm.ip++;
133
           if (vm.image[vm.ip+1] == 0)
134
             vm.ip++;
132
         }
135
         }
133
         break;
136
         break;
134
137
...
...
139
    case VM_JUMP:
142
    case VM_JUMP:
140
         vm.ip++;
143
         vm.ip++;
141
         vm.ip = vm.image[vm.ip] - 1;
144
         vm.ip = vm.image[vm.ip] - 1;
142
#ifdef EXPERIMENTAL
145
         if (vm.ip < 0)
143
         if (vm.image[vm.ip+1] == 0)
144
         {
146
         {
145
           vm.ip++;
147
           vm.ip = IMAGE_SIZE;
146
         }
148
         }
147
         if (vm.image[vm.ip+1] == 0)
149
         else
148
         {
150
         {
149
           vm.ip++;
151
           if (vm.image[vm.ip+1] == 0)
152
             vm.ip++;
153
           if (vm.image[vm.ip+1] == 0)
154
             vm.ip++;
150
         }
155
         }
151
#endif
152
         break;
156
         break;
153
157
154
    /***************************************************/
158
    /***************************************************/
...
...
371
         vm.rsp++;
375
         vm.rsp++;
372
         TORS = vm.ip;
376
         TORS = vm.ip;
373
         vm.ip = vm.image[vm.ip] - 1;
377
         vm.ip = vm.image[vm.ip] - 1;
374
         if (vm.image[vm.ip+1] == 0)
378
         if (vm.ip < 0)
375
         {
379
         {
376
           vm.ip++;
380
           vm.ip = IMAGE_SIZE;
377
         }
381
         }
378
         if (vm.image[vm.ip+1] == 0)
382
         else
379
         {
383
         {
380
           vm.ip++;
384
           if (vm.image[vm.ip+1] == 0)
385
             vm.ip++;
386
           if (vm.image[vm.ip+1] == 0)
387
             vm.ip++;
381
         }
388
         }
382
         break;
389
         break;
383
  }
390
  }