scummvm/devtools/tasmrecover/tasm-recover
2011-12-18 16:54:16 +01:00

1673 lines
37 KiB
Python
Executable File

#!/usr/bin/python
# ScummVM - Graphic Adventure Engine
#
# ScummVM is the legal property of its developers, whose names
# are too numerous to list here. Please refer to the COPYRIGHT
# file distributed with this source distribution.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
from tasm.parser import parser
from tasm.cpp import cpp
p = parser(skip_binary_data = [
# These data blobs are not output
# dreamweb.asm
'characterset1',
'roomdata',
'mainlist',
'mainlist2',
'menulist',
'folderlist',
'stak',
'keyconverttab',
'atmospherelist',
'linedata',
'madeuproomdat',
'recname',
'fileheader',
'filedata',
'extradata',
'keybuffer',
'spritename1',
'icongraphics0',
'icongraphics1',
'savenames',
'volumetabname',
'commandline',
'openchangesize',
# keypad.asm
'keypadlist',
'symbollist',
'diarylist',
# monitor.asm
'comlist',
# newplace.asm
'destlist',
# object.asm
'invlist1',
'invlist1continued',
'examlist',
'withlist1',
# saveload.asm
'loadlist',
'savelist',
'gameerror1',
'gameerror2',
'gameerror3',
'gameerror4',
'gameerror5',
'gameerror6',
'gameerror7',
'gameerror8',
'error2patch',
'error6patch',
'gameinfo',
'endgametext1',
'savefiles',
'decidelist',
'discopslist',
'opslist',
# sblaster.asm
'dmaaddresses',
'speechfilename',
'speechfile',
# sprite.asm
'reelroutines',
'reelcalls',
'facelist',
'rainlocations',
'roombyroom',
'r0','r1','r2','r6','r8','r9','r10','r11','r12','r13','r14',
'r20','r22','r23','r25','r26','r27','r28','r29',
'r45','r46','r47','r52','r53','r55',
#talk.asm
'talklist',
'quitlist',
# titles.asm
'introtextname',
'title0graphics',
'title1graphics',
'title2graphics',
'title3graphics',
'title4graphics',
'title5graphics',
'title6graphics',
# use.asm
'uselist',
'money1poke',
'money2poke',
# vars.asm
'currentset',
'icons1',
'icons2',
'tempcharset',
'currentframe',
'takeoff',
'reelpointer',
'needsoundbuff',
'oldint8seg',
'oldint8add',
'oldint9seg',
'oldint9add',
'soundbuffer',
'soundbufferad',
'soundbufferpage',
'soundtimes',
'oldsoundintseg',
'oldsoundintadd',
'soundbaseadd',
'dsp_status',
'dsp_write',
'dmaaddress',
'soundint',
'sounddmachannel',
'sampleplaying',
'testresult',
'currentirq',
'gameerror',
'howmuchalloc',
'inputport',
'emmhandle',
'emmpageframe',
'emmhardwarepage',
'ch0emmpage',
'ch0offset',
'ch0oldemmpage',
'ch0oldoffset',
'ch0oldblockstocopy',
'ch1emmpage',
'ch1offset',
'ch1blocksplayed',
'soundemmpage',
'speechemmpage',
'lineroutine',
'increment1',
'increment2',
'keypadax',
'keypadcx',
'soundbuffer',
'cursloc',
'liftsoundcount',
'playblock',
'gotfrom',
'flagx',
'flagy',
'lastflagex',
# vgagrafx.asm
'cityname',
'extragraphics1',
'icongraphics8',
'shaketable',
'symbolgraphic',
'travelgraphic1',
'travelgraphic2',
'foldergraphic1',
'foldergraphic2',
'foldergraphic3',
'foldertext',
'traveltextname',
'mongraphics2',
'spritename3',
'mongraphicname',
'puzzletextname',
'commandtextname',
'characterset2',
'characterset3',
'monitorfile1',
'monitorfile2',
'monitorfile10',
'monitorfile11',
'monitorfile12',
'monitorfile13',
'monitorfile20',
'monitorfile21',
'monitorfile22',
'monitorfile23',
'monitorfile24',
'introtextfile',
'palettescreen',
'idname',
'samplename',
'diarygraphic',
'diarytext',
'title7graphics',
'handle',
# 'basicsample', # This can't be removed due to tasm-recover limitations
'endtextname',
'gungraphic',
'monkface',
])
p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
p.link()
generator = cpp(context, "DreamGen", blacklist = [
# These functions are not processed
'aboutturn',
'accesslightoff',
'accesslighton',
'actualload',
'actualsave',
'addalong',
'additionaltext',
'addlength',
'addtopeoplelist',
'addtopresslist',
'adjustdown',
'adjustleft',
'adjustlen',
'adjustright',
'adjustup',
'advisor',
'afterintroroom',
'afternewroom',
'aide',
'alleybarksound',
'allocatebuffers',
'allocateload',
'allocatemem',
'allocatework',
'allpalette',
'allpointer',
'animpointer',
'atmospheres',
'attendant',
'autoappear',
'autolook',
'autosetwalk',
'backobject',
'bartender',
'barwoman',
'biblequote',
'blank',
'blockget',
'blocknametext',
'bossman',
'bothchannels',
'bresenhams',
'businessman',
'buttoneight',
'buttonenter',
'buttonfive',
'buttonfour',
'buttonnine',
'buttonnought',
'buttonone',
'buttonpress',
'buttonseven',
'buttonsix',
'buttonthree',
'buttontwo',
'calcfrframe',
'calcmapad',
'calledensdlift',
'calledenslift',
'callhotellift',
'cancelch0',
'cancelch1',
'candles',
'candles1',
'candles2',
'cantdrop',
'carparkdrip',
'channel0only',
'channel0tran',
'channel1only',
'checkbasemem',
'checkcoords',
'checkdest',
'checkforemm',
'checkforexit',
'checkforshake',
'checkifex',
'checkiffree',
'checkifpathison',
'checkifperson',
'checkifset',
'checkinput',
'checkinside',
'checkone',
'checksoundint',
'checkspeed',
'chewy',
'clearbeforeload',
'clearbuffers',
'clearchanges',
'clearendpal',
'clearpalette',
'clearreels',
'clearrest',
'clearsprites',
'clearstartpal',
'clearwork',
'closefile',
'cls',
'commandonly',
'commandwithob',
'compare',
'constant',
'convertkey',
'convicons',
'convnum',
'copper',
'copyname',
'createfile',
'createname',
'createpanel',
'createpanel2',
'credits',
'crosshair',
'dealwithspecial',
'deallocatemem',
'decide',
'delchar',
'delcurs',
'deleteexframe',
'deleteextext',
'deleteexobject',
'deletetaken',
'deleverything',
'delpointer',
'delsprite',
'deltextline',
'delthisone',
'describeob',
'destselect',
'diarykeyp',
'diarykeyn',
'disablepath',
'disablesoundint',
'discops',
'dmaend',
'doblocks',
'dochange',
'dodoor',
'dofade',
'doload',
'dolook',
'domix',
'dontloadseg',
'doorway',
'dosaveload',
'dosreturn',
'doshake',
'drawflags',
'drawfloor',
'drawitall',
'drinker',
'droperror',
'drunk',
'dumpblink',
'dumpcurrent',
'dumpdiarykeys',
'dumpeverything',
'dumpkeypad',
'dumpmap',
'dumpmenu',
'dumppointer',
'dumpsymbol',
'dumpsymbox',
'dumptextline',
'dumptimedtext',
'dumpwatch',
'dumpzoom',
'eden',
'edeninbath',
'edenscdplayer',
'enablesoundint',
'endgame',
'endgameseq',
'endpaltostart',
'entercode',
'entersymbol',
'entryanims',
'entrytexts',
'eraseoldobs',
'error',
'errormessage1',
'errormessage2',
'errormessage3',
'examicon',
'examinventory',
'examineob',
'examineobtext',
'execcommand',
'facerightway',
'fadecalculation',
'fadedos',
'fadefromwhite',
'fadescreenup',
'fadescreenups',
'fadescreenuphalf',
'fadescreendown',
'fadescreendowns',
'fadescreendownhalf',
'fadetowhite',
'fadeupmonfirst',
'fadeupyellows',
'femalefan',
'fillryan',
'fillspace',
'finalframe',
'findallryan',
'findexobject',
'findinvpos',
'findlen',
'findnextcolon',
'findobname',
'findormake',
'findpuztext',
'findroominloc',
'findsetobject',
'findsource',
'findtext1',
'findxyfrompath',
'finishedwalking',
'folderexit',
'folderhints',
'foghornsound',
'frameoutbh',
'frameoutfx',
'frameoutnm',
'frameoutv',
'gamer',
'gates',
'generalerror',
'getanyaddir',
'getback1',
'getbackfromob',
'getbackfromops',
'getbacktoops',
'getblockofpixel',
'getdimension',
'getexpos',
'getflagunderp',
'getkeyandlogo',
'getlocation',
'getmapad',
'getnamepos',
'getnextword',
'getnumber',
'getopenedsize',
'getpersframe',
'getreelframeax',
'getreelstart',
'getridofall',
'getridofpit',
'getridofreels',
'getridoftemp',
'getridoftemp2',
'getridoftemp3',
'getridoftempcharset',
'getridoftempsp',
'getridoftemptext',
'getroomdata',
'getroomspaths',
'gettime',
'gettingshot',
'getundercentre',
'getundermenu',
'getundertimed',
'getunderzoom',
'getxad',
'getyad',
'grafittidoor',
'greyscalesum',
'handclap',
'hangon',
'hangoncurs',
'hangone',
'hangonp',
'hangonpq',
'hangonw',
'heavy',
'helicopter',
'hotelbell',
'hotelcontrol',
'identifyob',
'initialinv',
'initman',
'initrain',
'input',
'interupttest',
'interviewer',
'intro',
'intro1text',
'intro2text',
'intro3text',
'intromagic1',
'intromagic2',
'intromagic3',
'intromonks1',
'intromonks2',
'intromusic',
'inventory',
'isitdescribed',
'isitright',
'isitworn',
'isryanholding',
'issetobonmap',
'keeper',
'kernchars',
'keyboardread',
'keynum',
'lastdest',
'lastfolder',
'liftnoise',
'liftsprite',
'loadcart',
'loadfolder',
'loadgame',
'loadintroroom',
'loadintotemp',
'loadintotemp2',
'loadintotemp3',
'loadkeypad',
'loadmenu',
'loadnews',
'loadold',
'loadpalfromiff',
'loadpersonal',
'loadposition',
'loadseg',
'loadspeech',
'loadroom',
'loadroomssample',
'loadsample',
'loadsavebox',
'loadsecondsample',
'loadtempcharset',
'loadtemptext',
'loadtraveltext',
'lockeddoorway',
'locklightoff',
'locklighton',
'lockmon',
'look',
'lookatcard',
'lookininterface',
'loopchannel0',
'louis',
'louischair',
'madman',
'madmanrun',
'madmanstelly',
'madmantext',
'madmode',
'mainman',
'mainscreen',
'makebackob',
'makecaps',
'makeheader',
'makemainscreen',
'makename',
'makenextblock',
'makesprite',
'makeworn',
'malefan',
'manasleep',
'manasleep2',
'mansatstill',
'maptopanel',
'middlepanel',
'mode640x480',
'modifychar',
'moneypoke',
'monitorlogo',
'monkandryan',
'monks2text',
'monkspeaking',
'monmessage',
'monprint',
'moretalk',
'mousecall',
'movemap',
'mugger',
'multidump',
'multiget',
'multiput',
'namestoold',
'neterror',
'newgame',
'newplace',
'nextdest',
'nextfolder',
'nextsymbol',
'nothelderror',
'obicons',
'obname',
'obpicture',
'obsthatdothings',
'obtoinv',
'oldtonames',
'onedigit',
'openeden',
'openfile',
'openfilefromc',
'openfilenocheck',
'openforsave',
'openhoteldoor',
'openhoteldoor2',
'openinv',
'openlouis',
'openob',
'openpoolboss',
'openryan',
'opensarters',
'opentomb',
'opentvdoor',
'openyourneighbour',
'othersmoker',
'out22c',
'paltoendpal',
'paltostartpal',
'panelicons1',
'paneltomap',
'parseblaster',
'personnametext',
'pickupob',
'pitinterupt',
'pixelcheckset',
'placefreeobject',
'placesetobject',
'playchannel0',
'playchannel1',
'playguitar',
'plotreel',
'poolguard',
'powerlightoff',
'powerlighton',
'priest',
'priesttext',
'printasprite',
'printboth',
'printchar',
'printcurs',
'printdirect',
'printlogo',
'printmessage',
'printmessage2',
'printoutermon',
'printslow',
'printsprites',
'printundermon',
'processtrigger',
'putbackobstuff',
'putundercentre',
'putundermenu',
'putundertimed',
'putunderzoom',
'quickquit',
'quickquit2',
'quitkey',
'quitsymbol',
'random',
'randomaccess',
'randomnum1',
'randomnum2',
'randomnumber',
'readabyte',
'readcitypic',
'readdesticon',
'readfromfile',
'readheader',
'readkey',
'readmouse',
'readmouse1',
'readmouse2',
'readmouse3',
'readmouse4',
'readoneblock',
'readsetdata',
'realcredits',
'receptionist',
'reconstruct',
'redes',
'redrawmainscrn',
'reelsonscreen',
'reexfromopen',
'removeemm',
'removefreeobject',
'removesetobject',
'removeobfrominv',
'resetkeyboard',
'restoreall',
'restoreems',
'restorereels',
'rockstar',
'rollendcredits',
'rollendcredits2',
'roomname',
'runendseq',
'runtap',
'runintroseq',
'saveems',
'savefileread',
'savefilewrite',
'savegame',
'saveload',
'saveposition',
'saveseg',
'scanfornames',
'screenupdate',
'scrollmonitor',
'security',
'seecommandtail',
'selectlocation',
'selectob',
'selectslot',
'selectslot2',
'set16colpalette',
'setallchanges',
'setbotleft',
'setbotright',
'setkeyboardint',
'setlocation',
'setmode',
'setmouse',
'setpickup',
'setsoundoff',
'settopleft',
'settopright',
'setupemm',
'setuppit',
'setuptimedtemp',
'setuptimeduse',
'setwalk',
'showallex',
'showallfree',
'showallobs',
'showarrows',
'showblink',
'showbyte',
'showcity',
'showcurrentfile',
'showdecisions',
'showdiary',
'showdiarykeys',
'showdiarypage',
'showdiscops',
'showexit',
'showfirstuse',
'showfolder',
'showframe',
'showgamereel',
'showgroup',
'showgun',
'showicon',
'showkeypad',
'showkeys',
'showleftpage',
'showloadops',
'showmainops',
'showman',
'showmenu',
'showmonk',
'shownames',
'showopbox',
'showoutermenu',
'showouterpad',
'showpanel',
'showpcx',
'showpointer',
'showpuztext',
'showrain',
'showreelframe',
'showrightpage',
'showryanpage',
'showsaveops',
'showseconduse',
'showslots',
'showsymbol',
'showtime',
'showwatch',
'showword',
'singlekey',
'sitdowninbar',
'slabdoora',
'slabdoorb',
'slabdoorc',
'slabdoord',
'slabdoore',
'slabdoorf',
'smallcandle',
'smokebloke',
'soldier1',
'sortoutmap',
'soundend',
'soundonreels',
'soundstartup',
'sparky',
'sparkydrip',
'splitintolines',
'spriteupdate',
'standardload',
'startdmablock',
'startloading',
'startpaltoend',
'startup',
'startup1',
'steady',
'storeit',
'switchryanoff',
'switchryanon',
'talk',
'tattooman',
'textforend',
'textformonk',
'titles',
'train',
'transferinv',
'transfertext',
'trapdoor',
'triggermessage',
'trysoundalloc',
'turnanypathoff',
'turnanypathon',
'turnonpower',
'turnpathoff',
'turnpathon',
'twodigitnum',
'undertextline',
'updatepeople',
'updatesymboltop',
'updatesymbolbot',
'usealtar',
'useaxe',
'usebalcony',
'usebuttona',
'usecardreader1',
'usecardreader2',
'usecardreader3',
'usecart',
'usecashcard',
'usecharset1',
'usechurchgate',
'usechurchhole',
'useclearbox',
'usecontrol',
'usecooker',
'usecoveredbox',
'usediary',
'usedryer',
'useelevator1',
'useelevator2',
'useelevator3',
'useelevator4',
'useelevator5',
'useelvdoor',
'usefullcart',
'usegun',
'usehandle',
'usehole',
'usekey',
'useladder',
'useladderb',
'uselighter',
'usehatch',
'usemenu',
'usemon',
'useobject',
'useopenbox',
'usepipe',
'useplate',
'useplinth',
'usepoolreader',
'userailing',
'useroutine',
'useshield',
'useslab',
'usestereo',
'usetempcharset',
'usetext',
'usetimedtext',
'usetrainer',
'usewall',
'usewinch',
'usewindow',
'usewire',
'viewfolder',
'vsync',
'volumeadjust',
'waitframes',
'walkandexamine',
'walking',
'walkintoroom',
'walktotext',
'watchcount',
'watchreel',
'wearwatch',
'wearshades',
'wheelsound',
'widedoor',
'width160',
'withwhat',
'workoutframes',
'worktoscreen',
'worktoscreenm',
'wornerror',
'zoom',
'zoomicon',
'zoomonoff',
], skip_output = [
# These functions are processed but not output
'dreamweb',
], skip_dispatch_call = True, skip_addr_constants = True,
header_omit_blacklisted = True,
function_name_remapping = {
# This remaps the function naming at output for readability
'aboutturn' : 'aboutTurn',
'accesslightoff' : 'accessLightOff',
'accesslighton' : 'accessLightOn',
'actualload' : 'actualLoad',
'actualsave' : 'actualSave',
'addalong' : 'addAlong',
'additionaltext' : 'additionalText',
'addlength' : 'addLength',
'addtopeoplelist' : 'addToPeopleList',
'addtopresslist' : 'addToPressList',
'adjustdown' : 'adjustDown',
'adjustleft' : 'adjustLeft',
'adjustlen' : 'adjustLen',
'adjustright' : 'adjustRight',
'adjustup' : 'adjustUp',
'advisor' : 'advisor',
'afterintroroom' : 'afterIntroRoom',
'afternewroom' : 'afterNewRoom',
'aide' : 'aide',
'alleybarksound' : 'alleyBarkSound',
'allocatebuffers' : 'allocateBuffers',
'allocateload' : 'allocateLoad',
'allocatemem' : 'allocateMem',
'allocatework' : 'allocateWork',
'allpointer' : 'allPointer',
'animpointer' : 'animPointer',
'atmospheres' : 'atmospheres',
'attendant' : 'attendant',
'autoappear' : 'autoAppear',
'autolook' : 'autoLook',
'autosetwalk' : 'autoSetWalk',
'backobject' : 'backObject',
'bartender' : 'bartender',
'barwoman' : 'barWoman',
'biblequote' : 'bibleQuote',
'blank' : 'blank',
'blockget' : 'blockGet',
'blocknametext' : 'blockNameText',
'bossman' : 'bossMan',
'bothchannels' : 'bothChannels',
'businessman' : 'businessMan',
'buttoneight' : 'buttonEight',
'buttonenter' : 'buttonEnter',
'buttonfive' : 'buttonFive',
'buttonfour' : 'buttonFour',
'buttonnine' : 'buttonNine',
'buttonnought' : 'buttonNought',
'buttonone' : 'buttonOne',
'buttonpress' : 'buttonPress',
'buttonseven' : 'buttonSeven',
'buttonsix' : 'buttonSix',
'buttonthree' : 'buttonThree',
'buttontwo' : 'buttonTwo',
'calcfrframe' : 'calcFrFrame',
'calcmapad' : 'calcMapAd',
'calledensdlift' : 'callEdensDLift',
'calledenslift' : 'callEdensLift',
'callhotellift' : 'callHotelLift',
'cancelch0' : 'cancelCh0',
'cancelch1' : 'cancelCh1',
'candles' : 'candles',
'candles1' : 'candles1',
'candles2' : 'candles2',
'cantdrop' : 'cantDrop',
'carparkdrip' : 'carParkDrip',
'channel0only' : 'channel0only',
'channel0tran' : 'channel0Tran',
'channel1only' : 'channel1only',
'checkbasemem' : 'checkBaseMem',
'checkcoords' : 'checkCoords',
'checkdest' : 'checkDest',
'checkforemm' : 'checkForEMM',
'checkforexit' : 'checkForExit',
'checkforshake' : 'checkForShake',
'checkifex' : 'checkIfEx',
'checkiffree' : 'checkIfFree',
'checkifpathison' : 'checkIfPathIsOn',
'checkifperson' : 'checkIfPerson',
'checkifset' : 'checkIfSet',
'checkinput' : 'checkInput',
'checkinside' : 'checkInside',
'checkobjectsize' : 'checkObjectSize',
'checkone' : 'checkOne',
'checksoundint' : 'checkSoundInt',
'checkspeed' : 'checkSpeed',
'chewy' : 'chewy',
'clearbeforeload' : 'clearBeforeLoad',
'clearbuffers' : 'clearBuffers',
'clearchanges' : 'clearChanges',
'clearendpal' : 'clearEndPal',
'clearpalette' : 'clearPalette',
'clearreels' : 'clearReels',
'clearrest' : 'clearRest',
'clearsprites' : 'clearSprites',
'clearstartpal' : 'clearStartPal',
'clearwork' : 'clearWork',
'closefile' : 'closeFile',
'commandonly' : 'commandOnly',
'commandwithob' : 'commandWithOb',
'constant' : 'constant',
'convertkey' : 'convertKey',
'convicons' : 'convIcons',
'convnum' : 'convNum',
'copper' : 'copper',
'copyname' : 'copyName',
'createfile' : 'createFile',
'createname' : 'createName',
'createpanel' : 'createPanel',
'createpanel2' : 'createPanel2',
'credits' : 'credits',
'crosshair' : 'crossHair',
'deallocatemem' : 'deallocateMem',
'dealwithspecial' : 'dealWithSpecial',
'decide' : 'decide',
'delchar' : 'delChar',
'delcurs' : 'delCurs',
'deleteexframe' : 'deleteExFrame',
'deleteexobject' : 'deleteExObject',
'deleteextext' : 'deleteExText',
'deletetaken' : 'deleteTaken',
'deleverything' : 'delEverything',
'delpointer' : 'delPointer',
'delsprite' : 'delSprite',
'deltextline' : 'delTextLine',
'delthisone' : 'delThisOne',
'describeob' : 'describeOb',
'destselect' : 'destSelect',
'diarykeyn' : 'diaryKeyN',
'diarykeyp' : 'diaryKeyP',
'dircom' : 'dirCom',
'dirfile' : 'dirFile',
'disablepath' : 'disablePath',
'disablesoundint' : 'disableSoundInt',
'discops' : 'discOps',
'dmaend' : 'DMAEnd',
'doblocks' : 'doBlocks',
'dochange' : 'doChange',
'dodoor' : 'doDoor',
'doload' : 'doLoad',
'dolook' : 'doLook',
'domix' : 'doMix',
'dontloadseg' : 'dontLoadSeg',
'dosaveload' : 'doSaveLoad',
'doshake' : 'doShake',
'dosometalk' : 'doSomeTalk',
'dosreturn' : 'DOSReturn',
'drawflags' : 'drawFlags',
'drawfloor' : 'drawFloor',
'drawitall' : 'drawItAll',
'dreamweb' : 'dreamweb',
'drinker' : 'drinker',
'droperror' : 'dropError',
'dropobject' : 'dropObject',
'drunk' : 'drunk',
'dumpblink' : 'dumpBlink',
'dumpdiarykeys' : 'dumpDiaryKeys',
'dumpeverything' : 'dumpEverything',
'dumpkeypad' : 'dumpKeypad',
'dumpmap' : 'dumpMap',
'dumpmenu' : 'dumpMenu',
'dumppointer' : 'dumpPointer',
'dumpsymbol' : 'dumpSymbol',
'dumpsymbox' : 'dumpSymBox',
'dumptextline' : 'dumpTextLine',
'dumptimedtext' : 'dumpTimedText',
'dumpwatch' : 'dumpWatch',
'dumpzoom' : 'dumpZoom',
'eden' : 'eden',
'edeninbath' : 'edenInBath',
'edenscdplayer' : 'edensCDPlayer',
'emergencypurge' : 'emergencyPurge',
'enablesoundint' : 'enableSoundInt',
'endgame' : 'endGame',
'endgameseq' : 'endGameSeq',
'endpaltostart' : 'endPalToStart',
'entercode' : 'enterCode',
'entersymbol' : 'enterSymbol',
'entryanims' : 'entryAnims',
'entrytexts' : 'entryTexts',
'eraseoldobs' : 'eraseOldObs',
'error' : 'error',
'errormessage1' : 'errorMessage1',
'errormessage2' : 'errorMessage2',
'errormessage3' : 'errorMessage3',
'examicon' : 'examIcon',
'examineob' : 'examineOb',
'examineobtext' : 'examineObText',
'examinventory' : 'examineInventory',
'execcommand' : 'execCommand',
'facerightway' : 'faceRightWay',
'fadecalculation' : 'fadeCalculation',
'fadedownmon' : 'fadeDownMon',
'fadefromwhite' : 'fadeFromWhite',
'fadescreendown' : 'fadeScreenDown',
'fadescreendownhalf' : 'fadeScreenDownHalf',
'fadescreendowns' : 'fadeScreenDowns',
'fadescreenup' : 'fadeScreenUp',
'fadescreenuphalf' : 'fadeScreenUpHalf',
'fadescreenups' : 'fadeScreenUps',
'fadetowhite' : 'fadeToWhite',
'fadeupmon' : 'fadeUpMon',
'fadeupmonfirst' : 'fadeUpMonFirst',
'fadeupyellows' : 'fadeUpYellows',
'femalefan' : 'femaleFan',
'fillopen' : 'fillOpen',
'fillryan' : 'fillRyan',
'fillspace' : 'fillSpace',
'finalframe' : 'finalFrame',
'findallopen' : 'findAllOpen',
'findallryan' : 'findAllRyan',
'findexobject' : 'findExObject',
'findfirstpath' : 'findFirstPath',
'findinvpos' : 'findInvPos',
'findlen' : 'findLen',
'findnextcolon' : 'findNextColon',
'findobname' : 'findObName',
'findopenpos' : 'findOpenPos',
'findormake' : 'findOrMake',
'findpathofpoint' : 'findPathOfPoint',
'findpuztext' : 'findPuzText',
'findroominloc' : 'findRoomInLoc',
'findsetobject' : 'findSetObject',
'findsource' : 'findSource',
'findtext1' : 'findText1',
'findxyfrompath' : 'findXYFromPath',
'finishedwalking' : 'finishedWalking',
'foghornsound' : 'foghornSound',
'folderexit' : 'folderExit',
'folderhints' : 'folderHints',
'frameoutbh' : 'frameOutbh',
'frameoutfx' : 'frameOutfx',
'frameoutnm' : 'frameOutnm',
'frameoutv' : 'frameOutV',
'gamer' : 'gamer',
'gates' : 'gates',
'generalerror' : 'generalError',
'getanyad' : 'getAnyAd',
'getanyaddir' : 'getAnyAdDir',
'getback1' : 'getBack1',
'getbackfromob' : 'getBackFromOb',
'getbackfromops' : 'getBackFromOps',
'getbacktoops' : 'getBackToOps',
'getblockofpixel' : 'getBlockOfPixel',
'getdestinfo' : 'getDestInfo',
'getdimension' : 'getDimension',
'geteitherad' : 'getEitherAd',
'getexad' : 'getExAd',
'getexpos' : 'getExPos',
'getflagunderp' : 'getFlagUnderP',
'getfreead' : 'getFreeAd',
'getkeyandlogo' : 'getKeyAndLogo',
'getlocation' : 'getLocation',
'getmapad' : 'getMapAd',
'getnamepos' : 'getNamePos',
'getnextword' : 'getNextWord',
'getnumber' : 'getNumber',
'getobtextstart' : 'getObTextStart',
'getopenedsize' : 'getOpenedSize',
'getpersframe' : 'getPersFrame',
'getpersontext' : 'getPersonText',
'getreelframeax' : 'getReelFrameAX',
'getreelstart' : 'getReelStart',
'getridofall' : 'getRidOfAll',
'getridofpit' : 'getRidOfPit',
'getridofpitsetuppit' : 'getRidOfPitSetupPit',
'getridofreels' : 'getRidOfReels',
'getridoftemp' : 'getRidOfTemp',
'getridoftemp2' : 'getRidOfTemp2',
'getridoftemp3' : 'getRidOfTemp3',
'getridoftempcharset' : 'getRidOfTempCharset',
'getridoftempsp' : 'getRidOfTempsP',
'getridoftemptext' : 'getRidOfTempText',
'getroomdata' : 'getRoomData',
'getroomspaths' : 'getRoomsPaths',
'getsetad' : 'getSetAd',
'gettime' : 'getTime',
'gettingshot' : 'gettingShot',
'getundercentre' : 'getUnderCentre',
'getundermenu' : 'getUnderMenu',
'getundertimed' : 'getUnderTimed',
'getunderzoom' : 'getUnderZoom',
'getxad' : 'getXAd',
'getyad' : 'getYAd',
'grafittidoor' : 'grafittiDoor',
'handclap' : 'handClap',
'hangon' : 'hangOn',
'hangoncurs' : 'hangOnCurs',
'hangone' : 'hangOne',
'hangonp' : 'hangOnP',
'hangonpq' : 'hangOnPQ',
'hangonw' : 'hangOnW',
'heavy' : 'heavy',
'helicopter' : 'helicopter',
'hotelbell' : 'hotelBell',
'hotelcontrol' : 'hotelControl',
'identifyob' : 'identifyOb',
'incryanpage' : 'incRyanPage',
'initialinv' : 'initialInv',
'initialmoncols' : 'initialMonCols',
'initman' : 'initMan',
'initrain' : 'initRain',
'interupttest' : 'interruptTest',
'interviewer' : 'interviewer',
'intoinv' : 'inToInv',
'intro' : 'intro',
'intro1text' : 'intro1Text',
'intro2text' : 'intro2Text',
'intro3text' : 'intro3Text',
'intromagic1' : 'introMagic1',
'intromagic2' : 'introMagic2',
'intromagic3' : 'introMagic3',
'intromonks1' : 'introMonks1',
'intromonks2' : 'introMonks2',
'intromusic' : 'introMusic',
'inventory' : 'inventory',
'isitdescribed' : 'isItDescribed',
'isitright' : 'isItRight',
'isitworn' : 'isItWorn',
'isryanholding' : 'isRyanHolding',
'issetobonmap' : 'isSetObOnMap',
'keeper' : 'keeper',
'kernchars' : 'kernChars',
'keyboardread' : 'keyboardRead',
'lastdest' : 'lastDest',
'lastfolder' : 'lastFolder',
'liftnoise' : 'liftNoise',
'liftsprite' : 'liftSprite',
'loadcart' : 'loadCart',
'loadfolder' : 'loadFolder',
'loadgame' : 'loadGame',
'loadintotemp' : 'loadIntoTemp',
'loadintotemp2' : 'loadIntoTemp2',
'loadintotemp3' : 'loadIntoTemp3',
'loadintroroom' : 'loadIntroRoom',
'loadkeypad' : 'loadKeypad',
'loadmenu' : 'loadMenu',
'loadnews' : 'loadNews',
'loadold' : 'loadOld',
'loadpalfromiff' : 'loadPalFromIFF',
'loadpersonal' : 'loadPersonal',
'loadposition' : 'loadPosition',
'loadroom' : 'loadRoom',
'loadroomssample' : 'loadRoomsSample',
'loadsample' : 'loadSample',
'loadsavebox' : 'loadSaveBox',
'loadsecondsample' : 'loadSecondSample',
'loadseg' : 'loadSeg',
'loadspeech' : 'loadSpeech',
'loadtempcharset' : 'loadTempCharset',
'loadtemptext' : 'loadTempText',
'loadtraveltext' : 'loadTravelText',
'locationpic' : 'locationPic',
'lockeddoorway' : 'lockedDoorway',
'locklightoff' : 'lockLightOff',
'locklighton' : 'lockLightOn',
'lockmon' : 'lockMon',
'lookatcard' : 'lookAtCard',
'lookatplace' : 'lookAtPlace',
'lookininterface' : 'lookInInterface',
'loopchannel0' : 'loopChannel0',
'louis' : 'louis',
'louischair' : 'louisChair',
'madman' : 'madman',
'madmanrun' : 'madmanRun',
'madmanstelly' : 'madmansTelly',
'madmantext' : 'madmanText',
'madmode' : 'madMode',
'mainman' : 'mainMan',
'mainscreen' : 'mainScreen',
'makebackob' : 'makeBackOb',
'makecaps' : 'makeCaps',
'makeheader' : 'makeHeader',
'makemainscreen' : 'makeMainScreen',
'makename' : 'makeName',
'makenextblock' : 'makeNextBlock',
'makesprite' : 'makeSprite',
'makeworn' : 'makeWorn',
'malefan' : 'maleFan',
'manasleep' : 'manAsleep',
'manasleep2' : 'manAsleep2',
'mansatstill' : 'manSatStill',
'maptopanel' : 'mapToPanel',
'middlepanel' : 'middlePanel',
'mode640x480' : 'mode640x480',
'modifychar' : 'modifyChar',
'moneypoke' : 'moneyPoke',
'monitorlogo' : 'monitorLogo',
'monkandryan' : 'monkAndRyan',
'monks2text' : 'monks2text',
'monkspeaking' : 'monkSpeaking',
'monmessage' : 'monMessage',
'monprint' : 'monPrint',
'moretalk' : 'moreTalk',
'mousecall' : 'mouseCall',
'movemap' : 'moveMap',
'mugger' : 'mugger',
'multidump' : 'multiDump',
'multiget' : 'multiGet',
'multiput' : 'multiPut',
'namestoold' : 'namesToOld',
'neterror' : 'netError',
'newgame' : 'newGame',
'newplace' : 'newPlace',
'nextcolon' : 'nextColon',
'nextdest' : 'nextDest',
'nextfolder' : 'nextFolder',
'nextsymbol' : 'nextSymbol',
'obicons' : 'obIcons',
'obname' : 'obName',
'obpicture' : 'obPicture',
'obsthatdothings' : 'obsThatDoThings',
'obtoinv' : 'obToInv',
'oldtonames' : 'oldToNames',
'onedigit' : 'oneDigit',
'openeden' : 'openEden',
'openfile' : 'openFile',
'openfilefromc' : 'openFileFromC',
'openfilenocheck' : 'openFileNoCheck',
'openforsave' : 'openForSave',
'openhoteldoor' : 'openHotelDoor',
'openhoteldoor2' : 'openHotelDoor2',
'openinv' : 'openInv',
'openlouis' : 'openLouis',
'openob' : 'openOb',
'openpoolboss' : 'openPoolBoss',
'openryan' : 'openRyan',
'opensarters' : 'openSarters',
'opentomb' : 'openTomb',
'opentvdoor' : 'openTVDoor',
'openyourneighbour' : 'openYourNeighbour',
'othersmoker' : 'otherSmoker',
'out22c' : 'out22c',
'outofinv' : 'outOfInv',
'outofopen' : 'outOfOpen',
'paltoendpal' : 'palToEndPal',
'paltostartpal' : 'palToStartPal',
'panelicons1' : 'panelIcons1',
'paneltomap' : 'panelToMap',
'parseblaster' : 'parseBlaster',
'parser' : 'parser',
'personnametext' : 'personNameText',
'pickupconts' : 'pickupConts',
'pickupob' : 'pickupOb',
'pitinterupt' : 'pitInterrupt',
'pixelcheckset' : 'pixelCheckSet',
'placefreeobject' : 'placeFreeObject',
'placesetobject' : 'placeSetObject',
'playchannel0' : 'playChannel0',
'playchannel1' : 'playChannel1',
'playguitar' : 'playGuitar',
'plotreel' : 'plotReel',
'poolguard' : 'poolGuard',
'powerlightoff' : 'powerLightOff',
'powerlighton' : 'powerLightOn',
'priest' : 'priest',
'priesttext' : 'priestText',
'printasprite' : 'printASprite',
'printboth' : 'printBoth',
'printchar' : 'printChar',
'printcurs' : 'printCurs',
'printdirect' : 'printDirect',
'printlogo' : 'printLogo',
'printmessage' : 'printMessage',
'printmessage2' : 'printMessage2',
'printoutermon' : 'printOuterMon',
'printslow' : 'printSlow',
'printsprites' : 'printSprites',
'printundermon' : 'printUnderMon',
'processtrigger' : 'processTrigger',
'purgealocation' : 'purgeALocation',
'purgeanitem' : 'purgeAnItem',
'putbackobstuff' : 'putBackObStuff',
'putundercentre' : 'putUnderCentre',
'putundermenu' : 'putUnderMenu',
'putundertimed' : 'putUnderTimed',
'putunderzoom' : 'putUnderZoom',
'quickquit' : 'quickQuit',
'quickquit2' : 'quickQuit2',
'quitkey' : 'quitKey',
'quitsymbol' : 'quitSymbol',
'random' : 'random',
'randomaccess' : 'randomAccess',
'randomnum1' : 'randomNum1',
'randomnum2' : 'randomNum2',
'randomnumber' : 'randomNumber',
'read' : 'read',
'readabyte' : 'readAByte',
'readcitypic' : 'readCityPic',
'readdesticon' : 'readDestIcon',
'readfromfile' : 'readFromFile',
'readheader' : 'readHeader',
'readkey' : 'readKey',
'readmouse' : 'readMouse',
'readmouse1' : 'readMouse1',
'readmouse2' : 'readMouse2',
'readmouse3' : 'readMouse3',
'readmouse4' : 'readMouse4',
'readoneblock' : 'readOneBlock',
'readsetdata' : 'readSetData',
'realcredits' : 'realCredits',
'receptionist' : 'receptionist',
'redes' : 'redes',
'redrawmainscrn' : 'redrawMainScrn',
'reelsonscreen' : 'reelsOnScreen',
'reexfrominv' : 'reExFromInv',
'reexfromopen' : 'reExFromOpen',
'reminders' : 'reminders',
'removeemm' : 'removeEMM',
'removefreeobject' : 'removeFreeObject',
'removeobfrominv' : 'removeObFromInv',
'removesetobject' : 'removeSetObject',
'resetkeyboard' : 'resetKeyboard',
'resetlocation' : 'resetLocation',
'restoreall' : 'restoreAll',
'restoreems' : 'restoreEMS',
'restorereels' : 'restoreReels',
'rockstar' : 'rockstar',
'rollem' : 'rollEm',
'rollendcredits' : 'rollEndCredits',
'rollendcredits2' : 'rollEndCredits2',
'roomname' : 'roomName',
'runendseq' : 'runEndSeq',
'runintroseq' : 'runIntroSeq',
'runtap' : 'runTap',
'saveems' : 'saveEMS',
'savefileread' : 'saveFileRead',
'savefilewrite' : 'savefileWrite',
'savegame' : 'saveGame',
'saveload' : 'saveLoad',
'saveposition' : 'savePosition',
'saveseg' : 'saveSeg',
'scanfornames' : 'scanForNames',
'screenupdate' : 'screenUpdate',
'scrollmonitor' : 'scrollMonitor',
'searchforfiles' : 'searchForFiles',
'searchforsame' : 'searchForSame',
'searchforstring' : 'searchForString',
'security' : 'security',
'seecommandtail' : 'seeCommandTail',
'selectlocation' : 'selectLocation',
'selectob' : 'selectOb',
'selectopenob' : 'selectOpenOb',
'selectslot' : 'selectSlot',
'selectslot2' : 'selectSlot2',
'set16colpalette' : 'set16ColPalette',
'setallchanges' : 'setAllChanges',
'setbotleft' : 'setBotLeft',
'setbotright' : 'setBotRight',
'setkeyboardint' : 'setKeyboardInt',
'setlocation' : 'setLocation',
'setmode' : 'setMode',
'setmouse' : 'setMouse',
'setpickup' : 'setPickup',
'setsoundoff' : 'setSoundOff',
'settopleft' : 'setTopLeft',
'settopright' : 'setTopRight',
'setupemm' : 'setupEMM',
'setuppit' : 'setupPit',
'setuptimedtemp' : 'setupTimedTemp',
'setuptimeduse' : 'setupTimedUse',
'setwalk' : 'setWalk',
'showallex' : 'showAllEx',
'showallfree' : 'showAllFree',
'showallobs' : 'showAllObs',
'showarrows' : 'showArrows',
'showblink' : 'showBlink',
'showbyte' : 'showByte',
'showcity' : 'showCity',
'showcurrentfile' : 'showCurrentFile',
'showdecisions' : 'showDecisions',
'showdiary' : 'showDiary',
'showdiarykeys' : 'showDiaryKeys',
'showdiarypage' : 'showDiaryPage',
'showdiscops' : 'showDiscOps',
'showexit' : 'showExit',
'showfirstuse' : 'showFirstUse',
'showfolder' : 'showFolder',
'showframe' : 'showFrame',
'showgamereel' : 'showGameReel',
'showgroup' : 'showGroup',
'showgun' : 'showGun',
'showicon' : 'showIcon',
'showkeypad' : 'showKeypad',
'showkeys' : 'showKeys',
'showleftpage' : 'showLeftPage',
'showloadops' : 'showLoadOps',
'showmainops' : 'showMainOps',
'showman' : 'showMan',
'showmenu' : 'showMenu',
'showmonk' : 'showMonk',
'shownames' : 'showNames',
'showopbox' : 'showOpBox',
'showoutermenu' : 'showOuterMenu',
'showouterpad' : 'showOuterPad',
'showpanel' : 'showPanel',
'showpcx' : 'showPCX',
'showpointer' : 'showPointer',
'showpuztext' : 'showPuzText',
'showrain' : 'showRain',
'showreelframe' : 'showReelFrame',
'showrightpage' : 'showRightPage',
'showryanpage' : 'showRyanPage',
'showsaveops' : 'showSaveOps',
'showseconduse' : 'showSecondUse',
'showslots' : 'showSlots',
'showsymbol' : 'showSymbol',
'showtime' : 'showTime',
'showwatch' : 'showWatch',
'showword' : 'showWord',
'signon' : 'signOn',
'singlekey' : 'singleKey',
'sitdowninbar' : 'sitDownInBar',
'slabdoora' : 'sLabDoorA',
'slabdoorb' : 'sLabDoorB',
'slabdoorc' : 'sLabDoorC',
'slabdoord' : 'sLabDoorD',
'slabdoore' : 'sLabDoorE',
'slabdoorf' : 'sLabDoorF',
'smallcandle' : 'smallCandle',
'smokebloke' : 'smokeBloke',
'soldier1' : 'soldier1',
'sortoutmap' : 'sortOutMap',
'soundend' : 'soundEnd',
'soundonreels' : 'soundOnReels',
'soundstartup' : 'soundStartup',
'sparky' : 'sparky',
'sparkydrip' : 'sparkyDrip',
'splitintolines' : 'splitIntoLines',
'spriteupdate' : 'spriteUpdate',
'standardload' : 'standardLoad',
'startdmablock' : 'startDMABlock',
'startloading' : 'startLoading',
'startpaltoend' : 'startPalToEnd',
'starttalk' : 'startTalk',
'steady' : 'steady',
'storeit' : 'storeIt',
'swapwithinv' : 'swapWithInv',
'swapwithopen' : 'swapWithOpen',
'switchryanoff' : 'switchRyanOff',
'switchryanon' : 'switchRyanOn',
'talk' : 'talk',
'tattooman' : 'tattooMan',
'textforend' : 'textForEnd',
'textformonk' : 'textForMonk',
'titles' : 'titles',
'train' : 'train',
'transfercontoex' : 'transferConToEx',
'transferinv' : 'transferInv',
'transfermap' : 'transferMap',
'transfertext' : 'transferText',
'transfertoex' : 'transferToEx',
'trapdoor' : 'trapDoor',
'triggermessage' : 'triggerMessage',
'trysoundalloc' : 'trySoundAlloc',
'turnanypathoff' : 'turnAnyPathOff',
'turnanypathon' : 'turnAnyPathOn',
'turnonpower' : 'turnOnPower',
'turnpathoff' : 'turnPathOff',
'turnpathon' : 'turnPathOn',
'twodigitnum' : 'twoDigitNum',
'undertextline' : 'underTextLine',
'updatepeople' : 'updatePeople',
'updatesymbolbot' : 'updateSymbolBot',
'updatesymboltop' : 'updateSymbolTop',
'usealtar' : 'useAltar',
'useaxe' : 'useAxe',
'usebalcony' : 'useBalcony',
'usebuttona' : 'useButtonA',
'usecardreader1' : 'useCardReader1',
'usecardreader2' : 'useCardReader2',
'usecardreader3' : 'useCardReader3',
'usecart' : 'useCart',
'usecashcard' : 'useCashCard',
'usecharset1' : 'useCharset1',
'usechurchgate' : 'useChurchGate',
'usechurchhole' : 'useChurchHole',
'useclearbox' : 'useClearBox',
'usecontrol' : 'useControl',
'usecooker' : 'useCooker',
'usecoveredbox' : 'useCoveredBox',
'usediary' : 'useDiary',
'usedryer' : 'useDryer',
'useelevator1' : 'useElevator1',
'useelevator2' : 'useElevator2',
'useelevator3' : 'useElevator3',
'useelevator4' : 'useElevator4',
'useelevator5' : 'useElevator5',
'useelvdoor' : 'useElvDoor',
'usefullcart' : 'useFullCart',
'usegun' : 'useGun',
'usehandle' : 'useHandle',
'usehatch' : 'useHatch',
'usehole' : 'useHole',
'usekey' : 'useKey',
'useladder' : 'useLadder',
'useladderb' : 'useLadderB',
'uselighter' : 'useLighter',
'usemenu' : 'useMenu',
'usemon' : 'useMon',
'useobject' : 'useObject',
'useopenbox' : 'useOpenBox',
'useopened' : 'useOpened',
'usepipe' : 'usePipe',
'useplate' : 'usePlate',
'useplinth' : 'usePlinth',
'usepoolreader' : 'usePoolReader',
'userailing' : 'useRailing',
'useroutine' : 'useRoutine',
'useshield' : 'useShield',
'useslab' : 'useSLab',
'usestereo' : 'useStereo',
'usetempcharset' : 'useTempCharset',
'usetext' : 'useText',
'usetimedtext' : 'useTimedText',
'usetrainer' : 'useTrainer',
'usewall' : 'useWall',
'usewinch' : 'useWinch',
'usewindow' : 'useWindow',
'usewire' : 'useWire',
'viewfolder' : 'viewFolder',
'vsync' : 'vSync',
'waitframes' : 'waitFrames',
'walkandexamine' : 'walkAndExamine',
'walkintoroom' : 'walkIntoRoom',
'walktotext' : 'walkToText',
'watchcount' : 'watchCount',
'watchreel' : 'watchReel',
'wearshades' : 'wearShades',
'wearwatch' : 'wearWatch',
'wheelsound' : 'wheelSound',
'widedoor' : 'wideDoor',
'withwhat' : 'withWhat',
'worktoscreen' : 'workToScreen',
'worktoscreenm' : 'workToScreenM',
'wornerror' : 'wornError',
'zoomicon' : 'zoomIcon',
'zoomonoff' : 'zoomOnOff',
})
generator.generate('dreamweb') #start routine