|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T a
Length: 1156 (0x484) Types: TextFile Names: »adltrans.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Adl/adlrun/adltrans.c«
#include <stdio.h> #include "adltypes.h" #include "adlprog.h" #include "builtins.h" #include "adlrun.h" setverb() { int16 i; assertargs( "$setv", 10 ); for( i = 0; i <= 9; i++ ) vecverb[ i ] = ARG( i + 1 ); RETVAL = 0; } hitverb() { int16 i; assertargs( "$hit", 11 ); for( i = 0; i <= 9; i++ ) if( vecverb[ i ] == Verb ) { ARG( 2 ) = ARG( i + 2 ); if( ARG( 2 ) ) move_obj(); RETVAL = 0; return; } RETVAL = 0; } missverb() { int16 i, oldbp, which; assertargs( "$miss", 10 ); for( i = 0; i <= 9; i++ ) { if( vecverb[ i ] == Verb ) { popip(); oldbp = pop(); which = ARG( i + 1 ); #if DEBUG if( (which < 0) || (which > NUMROUT) ) error( 26 ); /* Illegal rout for $miss */ #endif sp = bp; /* Cut args off stack */ if( which && routspace[ which ] ) { push( 1 ); /* stackdepth */ push( oldbp ); /* bp */ puship(); /* ip */ ip = routspace[ which ]; } else { push( 0 ); bp = oldbp; } return; } } popip(); oldbp = pop(); sp = bp + 1; stack[ bp ] = 0; bp = oldbp; } /*** EOF adltrans.c ***/