mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-02-08 01:01:24 +00:00
218 lines
3.1 KiB
NASM
218 lines
3.1 KiB
NASM
PAGE
|
|
SBTTL "--- OPCODE DISPATCH TABLES ---"
|
|
|
|
|
|
; 0-OPS
|
|
|
|
OPT0H: DB >ZRTRUE ;0
|
|
DB >ZRFALS ;1
|
|
DB >ZPRI ;2
|
|
DB >ZPRR ;3
|
|
DB >ZNOOP ;4
|
|
DB >ZSAVE ;5
|
|
DB >ZREST ;6
|
|
DB >ZSTART ;7
|
|
DB >ZRSTAK ;8
|
|
DB >POPVAL ;9
|
|
DB >ZQUIT ;10
|
|
DB >ZCRLF ;11
|
|
DB >ZUSL ;12
|
|
DB >ZVER ;13
|
|
DB >BADOP0 ;14
|
|
DB >BADOP0 ;15
|
|
|
|
OPT0L: DB <ZRTRUE ;0
|
|
DB <ZRFALS ;1
|
|
DB <ZPRI ;2
|
|
DB <ZPRR ;3
|
|
DB <ZNOOP ;4
|
|
DB <ZSAVE ;5
|
|
DB <ZREST ;6
|
|
DB <ZSTART ;7
|
|
DB <ZRSTAK ;8
|
|
DB <POPVAL ;9
|
|
DB <ZQUIT ;10
|
|
DB <ZCRLF ;11
|
|
DB <ZUSL ;12
|
|
DB <ZVER ;13
|
|
DB <BADOP0 ;14
|
|
DB <BADOP0 ;15
|
|
|
|
; 1-OPS
|
|
|
|
OPT1H: DB >ZZERO ;0
|
|
DB >ZNEXT ;1
|
|
DB >ZFIRST ;2
|
|
DB >ZLOC ;3
|
|
DB >ZPTSIZ ;4
|
|
DB >ZINC ;5
|
|
DB >ZDEC ;6
|
|
DB >ZPRB ;7
|
|
DB >ZCALL1 ;8 (EZIP)
|
|
DB >ZREMOV ;9
|
|
DB >ZPRD ;10
|
|
DB >ZRET ;11
|
|
DB >ZJUMP ;12
|
|
DB >ZPRINT ;13
|
|
DB >ZVALUE ;14
|
|
DB >ZBCOM ;15
|
|
|
|
OPT1L: DB <ZZERO ;0
|
|
DB <ZNEXT ;1
|
|
DB <ZFIRST ;2
|
|
DB <ZLOC ;3
|
|
DB <ZPTSIZ ;4
|
|
DB <ZINC ;5
|
|
DB <ZDEC ;6
|
|
DB <ZPRB ;7
|
|
DB <ZCALL1 ;8 (EZIP)
|
|
DB <ZREMOV ;9
|
|
DB <ZPRD ;10
|
|
DB <ZRET ;11
|
|
DB <ZJUMP ;12
|
|
DB <ZPRINT ;13
|
|
DB <ZVALUE ;14
|
|
DB <ZBCOM ;15
|
|
|
|
; 2-OPS
|
|
|
|
OPT2H: DB >BADOP2 ;0 (UNDEFINED)
|
|
DB >ZEQUAL ;1
|
|
DB >ZLESS ;2
|
|
DB >ZGRTR ;3
|
|
DB >ZDLESS ;4
|
|
DB >ZIGRTR ;5
|
|
DB >ZIN ;6
|
|
DB >ZBTST ;7
|
|
DB >ZBOR ;8
|
|
DB >ZBAND ;9
|
|
DB >ZFSETP ;10
|
|
DB >ZFSET ;11
|
|
DB >ZFCLR ;12
|
|
DB >ZSET ;13
|
|
DB >ZMOVE ;14
|
|
DB >ZGET ;15
|
|
DB >ZGETB ;16
|
|
DB >ZGETP ;17
|
|
DB >ZGETPT ;18
|
|
DB >ZNEXTP ;19
|
|
DB >ZADD ;20
|
|
DB >ZSUB ;21
|
|
DB >ZMUL ;22
|
|
DB >ZDIV ;23
|
|
DB >ZMOD ;24
|
|
DB >ZCALL2 ;25 (EZIP)
|
|
DB >BADOP2 ;26
|
|
DB >BADOP2 ;27
|
|
DB >BADOP2 ;28
|
|
DB >BADOP2 ;29
|
|
DB >BADOP2 ;30
|
|
DB >BADOP2 ;31
|
|
|
|
OPT2L: DB <BADOP2 ;0 (UNDEFINED)
|
|
DB <ZEQUAL ;1
|
|
DB <ZLESS ;2
|
|
DB <ZGRTR ;3
|
|
DB <ZDLESS ;4
|
|
DB <ZIGRTR ;5
|
|
DB <ZIN ;6
|
|
DB <ZBTST ;7
|
|
DB <ZBOR ;8
|
|
DB <ZBAND ;9
|
|
DB <ZFSETP ;10
|
|
DB <ZFSET ;11
|
|
DB <ZFCLR ;12
|
|
DB <ZSET ;13
|
|
DB <ZMOVE ;14
|
|
DB <ZGET ;15
|
|
DB <ZGETB ;16
|
|
DB <ZGETP ;17
|
|
DB <ZGETPT ;18
|
|
DB <ZNEXTP ;19
|
|
DB <ZADD ;20
|
|
DB <ZSUB ;21
|
|
DB <ZMUL ;22
|
|
DB <ZDIV ;23
|
|
DB <ZMOD ;24
|
|
DB <ZCALL2 ;25 (EZIP)
|
|
DB <BADOP2 ;26
|
|
DB <BADOP2 ;27
|
|
DB <BADOP2 ;28
|
|
DB <BADOP2 ;29
|
|
DB <BADOP2 ;30
|
|
DB <BADOP2 ;31
|
|
|
|
; X-OPS
|
|
|
|
OPTXH: DB >ZCALL ;0
|
|
DB >ZPUT ;1
|
|
DB >ZPUTB ;2
|
|
DB >ZPUTP ;3
|
|
DB >ZREAD ;4
|
|
DB >ZPRC ;5
|
|
DB >ZPRN ;6
|
|
DB >ZRAND ;7
|
|
DB >ZPUSH ;8
|
|
DB >ZPOP ;9
|
|
DB >ZSPLIT ;10
|
|
DB >ZSCRN ;11
|
|
|
|
; (EZIPS FROM HERE ON)
|
|
DB >ZXCALL ;12
|
|
DB >ZCLR ;13
|
|
DB >ZERASE ;14
|
|
DB >ZCURST ;15
|
|
DB >ZCURGT ;16 (NOT IMPLEMENTED)
|
|
DB >ZLIGHT ;17
|
|
DB >ZBUFOUT ;18
|
|
DB >ZDIRT ;19
|
|
DB >ZDIRIN ;20 (NOT IMPLEMENTED)
|
|
DB >ZSOUND ;21
|
|
DB >ZINPUT ;22
|
|
DB >ZINTBL ;23
|
|
DB >BADOPX ;24
|
|
DB >BADOPX ;25
|
|
DB >BADOPX ;26
|
|
DB >BADOPX ;27
|
|
DB >BADOPX ;28
|
|
DB >BADOPX ;29
|
|
DB >BADOPX ;30
|
|
DB >BADOPX ;31
|
|
|
|
OPTXL: DB <ZCALL ;0
|
|
DB <ZPUT ;1
|
|
DB <ZPUTB ;2
|
|
DB <ZPUTP ;3
|
|
DB <ZREAD ;4
|
|
DB <ZPRC ;5
|
|
DB <ZPRN ;6
|
|
DB <ZRAND ;7
|
|
DB <ZPUSH ;8
|
|
DB <ZPOP ;9
|
|
DB <ZSPLIT ;10
|
|
DB <ZSCRN ;11
|
|
|
|
; (EZIPS FROM HERE ON)
|
|
DB <ZXCALL ;12
|
|
DB <ZCLR ;13
|
|
DB <ZERASE ;14
|
|
DB <ZCURST ;15
|
|
DB <ZCURGT ;16 (NOT IMPLEMENTED)
|
|
DB <ZLIGHT ;17
|
|
DB <ZBUFOUT ;18
|
|
DB <ZDIRT ;19
|
|
DB <ZDIRIN ;20 (NOT IMPLEMENTED)
|
|
DB <ZSOUND ;21
|
|
DB <ZINPUT ;22
|
|
DB <ZINTBL ;23
|
|
DB <BADOPX ;24
|
|
DB <BADOPX ;25
|
|
DB <BADOPX ;26
|
|
DB <BADOPX ;27
|
|
DB <BADOPX ;28
|
|
DB <BADOPX ;29
|
|
DB <BADOPX ;30
|
|
DB <BADOPX ;31
|
|
|
|
END
|