Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: VM interface #557

Open
wants to merge 24 commits into
base: develop
Choose a base branch
from
Open

WIP: VM interface #557

wants to merge 24 commits into from

Conversation

alexeevdv
Copy link
Contributor

No description provided.

…eature/vm-interface

# Conflicts:
#	src/VM/Handler/Opcode8002.cpp
#	src/VM/Handler/Opcode8002.h
#	src/VM/Handler/Opcode8003.cpp
#	src/VM/Handler/Opcode8003.h
#	src/VM/Handler/Opcode8004.cpp
#	src/VM/Handler/Opcode8004.h
#	src/VM/Handler/Opcode8005.cpp
#	src/VM/Handler/Opcode8005.h
#	src/VM/Handler/Opcode800CHandler.cpp
#	src/VM/Handler/Opcode800CHandler.h
#	src/VM/Handler/Opcode800DHandler.cpp
#	src/VM/Handler/Opcode800DHandler.h
#	src/VM/Handler/Opcode8010Handler.cpp
#	src/VM/Handler/Opcode8010Handler.h
#	src/VM/Handler/Opcode8012Handler.cpp
#	src/VM/Handler/Opcode8012Handler.h
#	src/VM/Handler/Opcode8013Handler.cpp
#	src/VM/Handler/Opcode8013Handler.h
#	src/VM/Handler/Opcode8014Handler.cpp
#	src/VM/Handler/Opcode8014Handler.h
#	src/VM/Handler/Opcode8015Handler.cpp
#	src/VM/Handler/Opcode8015Handler.h
#	src/VM/Handler/Opcode8016Handler.cpp
#	src/VM/Handler/Opcode8016Handler.h
#	src/VM/Handler/Opcode8018Handler.cpp
#	src/VM/Handler/Opcode8018Handler.h
#	src/VM/Handler/Opcode8019Handler.cpp
#	src/VM/Handler/Opcode8019Handler.h
#	src/VM/Handler/Opcode801AHandler.cpp
#	src/VM/Handler/Opcode801AHandler.h
#	src/VM/Handler/Opcode801BHandler.cpp
#	src/VM/Handler/Opcode801BHandler.h
#	src/VM/Handler/Opcode801CHandler.cpp
#	src/VM/Handler/Opcode801CHandler.h
#	src/VM/Handler/Opcode8027Handler.cpp
#	src/VM/Handler/Opcode8027Handler.h
#	src/VM/Handler/Opcode8028Handler.cpp
#	src/VM/Handler/Opcode8028Handler.h
#	src/VM/Handler/Opcode8029Handler.cpp
#	src/VM/Handler/Opcode8029Handler.h
#	src/VM/Handler/Opcode802AHandler.cpp
#	src/VM/Handler/Opcode802AHandler.h
#	src/VM/Handler/Opcode802BHandler.cpp
#	src/VM/Handler/Opcode802BHandler.h
#	src/VM/Handler/Opcode802CHandler.cpp
#	src/VM/Handler/Opcode802CHandler.h
#	src/VM/Handler/Opcode802FHandler.cpp
#	src/VM/Handler/Opcode802FHandler.h
#	src/VM/Handler/Opcode8030Handler.cpp
#	src/VM/Handler/Opcode8030Handler.h
#	src/VM/Handler/Opcode8031Handler.cpp
#	src/VM/Handler/Opcode8031Handler.h
#	src/VM/Handler/Opcode8032Handler.cpp
#	src/VM/Handler/Opcode8032Handler.h
#	src/VM/Handler/Opcode8039Handler.cpp
#	src/VM/Handler/Opcode8039Handler.h
#	src/VM/Handler/Opcode803AHandler.cpp
#	src/VM/Handler/Opcode803AHandler.h
#	src/VM/Handler/Opcode803BHandler.cpp
#	src/VM/Handler/Opcode803BHandler.h
#	src/VM/Handler/Opcode803CHandler.cpp
#	src/VM/Handler/Opcode803CHandler.h
#	src/VM/Handler/Opcode803DHandler.cpp
#	src/VM/Handler/Opcode803DHandler.h
#	src/VM/Handler/Opcode803EHandler.cpp
#	src/VM/Handler/Opcode803EHandler.h
#	src/VM/Handler/Opcode803FHandler.cpp
#	src/VM/Handler/Opcode803FHandler.h
#	src/VM/Handler/Opcode8040Handler.cpp
#	src/VM/Handler/Opcode8040Handler.h
#	src/VM/Handler/Opcode8041Handler.cpp
#	src/VM/Handler/Opcode8041Handler.h
#	src/VM/Handler/Opcode8042Handler.cpp
#	src/VM/Handler/Opcode8042Handler.h
#	src/VM/Handler/Opcode8043Handler.cpp
#	src/VM/Handler/Opcode8043Handler.h
#	src/VM/Handler/Opcode8044Handler.cpp
#	src/VM/Handler/Opcode8044Handler.h
#	src/VM/Handler/Opcode8045Handler.cpp
#	src/VM/Handler/Opcode8045Handler.h
#	src/VM/Handler/Opcode8046Handler.cpp
#	src/VM/Handler/Opcode8046Handler.h
#	src/VM/Handler/Opcode80A1Handler.cpp
#	src/VM/Handler/Opcode80A1Handler.h
#	src/VM/Handler/Opcode80A3Handler.cpp
#	src/VM/Handler/Opcode80A3Handler.h
#	src/VM/Handler/Opcode80A4Handler.cpp
#	src/VM/Handler/Opcode80A4Handler.h
#	src/VM/Handler/Opcode80A6Handler.cpp
#	src/VM/Handler/Opcode80A6Handler.h
#	src/VM/Handler/Opcode80A7Handler.cpp
#	src/VM/Handler/Opcode80A7Handler.h
#	src/VM/Handler/Opcode80A8Handler.cpp
#	src/VM/Handler/Opcode80A8Handler.h
#	src/VM/Handler/Opcode80A9Handler.cpp
#	src/VM/Handler/Opcode80A9Handler.h
#	src/VM/Handler/Opcode80AAHandler.cpp
#	src/VM/Handler/Opcode80AAHandler.h
#	src/VM/Handler/Opcode80ABHandler.cpp
#	src/VM/Handler/Opcode80ABHandler.h
#	src/VM/Handler/Opcode80ACHandler.cpp
#	src/VM/Handler/Opcode80ACHandler.h
#	src/VM/Handler/Opcode80AEHandler.cpp
#	src/VM/Handler/Opcode80AEHandler.h
#	src/VM/Handler/Opcode80AFHandler.cpp
#	src/VM/Handler/Opcode80AFHandler.h
#	src/VM/Handler/Opcode80B0Handler.cpp
#	src/VM/Handler/Opcode80B0Handler.h
#	src/VM/Handler/Opcode80B2Handler.cpp
#	src/VM/Handler/Opcode80B2Handler.h
#	src/VM/Handler/Opcode80B4Handler.cpp
#	src/VM/Handler/Opcode80B4Handler.h
#	src/VM/Handler/Opcode80B6Handler.cpp
#	src/VM/Handler/Opcode80B6Handler.h
#	src/VM/Handler/Opcode80B7Handler.cpp
#	src/VM/Handler/Opcode80B7Handler.h
#	src/VM/Handler/Opcode80B8Handler.cpp
#	src/VM/Handler/Opcode80B8Handler.h
#	src/VM/Handler/Opcode80B9Handler.cpp
#	src/VM/Handler/Opcode80B9Handler.h
#	src/VM/Handler/Opcode80BAHandler.cpp
#	src/VM/Handler/Opcode80BAHandler.h
#	src/VM/Handler/Opcode80BBHandler.cpp
#	src/VM/Handler/Opcode80BBHandler.h
#	src/VM/Handler/Opcode80BCHandler.cpp
#	src/VM/Handler/Opcode80BCHandler.h
#	src/VM/Handler/Opcode80BDHandler.cpp
#	src/VM/Handler/Opcode80BDHandler.h
#	src/VM/Handler/Opcode80BEHandler.cpp
#	src/VM/Handler/Opcode80BEHandler.h
#	src/VM/Handler/Opcode80BFHandler.cpp
#	src/VM/Handler/Opcode80BFHandler.h
#	src/VM/Handler/Opcode80C1Handler.cpp
#	src/VM/Handler/Opcode80C1Handler.h
#	src/VM/Handler/Opcode80C2Handler.cpp
#	src/VM/Handler/Opcode80C2Handler.h
#	src/VM/Handler/Opcode80C3Handler.cpp
#	src/VM/Handler/Opcode80C3Handler.h
#	src/VM/Handler/Opcode80C4Handler.cpp
#	src/VM/Handler/Opcode80C4Handler.h
#	src/VM/Handler/Opcode80C5Handler.cpp
#	src/VM/Handler/Opcode80C5Handler.h
#	src/VM/Handler/Opcode80C6Handler.cpp
#	src/VM/Handler/Opcode80C6Handler.h
#	src/VM/Handler/Opcode80C7Handler.cpp
#	src/VM/Handler/Opcode80C7Handler.h
#	src/VM/Handler/Opcode80C8Handler.cpp
#	src/VM/Handler/Opcode80C8Handler.h
#	src/VM/Handler/Opcode80C9Handler.cpp
#	src/VM/Handler/Opcode80C9Handler.h
#	src/VM/Handler/Opcode80CAHandler.cpp
#	src/VM/Handler/Opcode80CAHandler.h
#	src/VM/Handler/Opcode80CBHandler.cpp
#	src/VM/Handler/Opcode80CBHandler.h
#	src/VM/Handler/Opcode80CCHandler.cpp
#	src/VM/Handler/Opcode80CCHandler.h
#	src/VM/Handler/Opcode80CEHandler.cpp
#	src/VM/Handler/Opcode80CEHandler.h
#	src/VM/Handler/Opcode80CFHandler.cpp
#	src/VM/Handler/Opcode80CFHandler.h
#	src/VM/Handler/Opcode80D0Handler.cpp
#	src/VM/Handler/Opcode80D0Handler.h
#	src/VM/Handler/Opcode80D2Handler.cpp
#	src/VM/Handler/Opcode80D2Handler.h
#	src/VM/Handler/Opcode80D3Handler.cpp
#	src/VM/Handler/Opcode80D3Handler.h
#	src/VM/Handler/Opcode80D4Handler.cpp
#	src/VM/Handler/Opcode80D4Handler.h
#	src/VM/Handler/Opcode80D5Handler.cpp
#	src/VM/Handler/Opcode80D5Handler.h
#	src/VM/Handler/Opcode80D8Handler.cpp
#	src/VM/Handler/Opcode80D8Handler.h
#	src/VM/Handler/Opcode80D9Handler.cpp
#	src/VM/Handler/Opcode80D9Handler.h
#	src/VM/Handler/Opcode80DAHandler.cpp
#	src/VM/Handler/Opcode80DAHandler.h
#	src/VM/Handler/Opcode80DCHandler.cpp
#	src/VM/Handler/Opcode80DCHandler.h
#	src/VM/Handler/Opcode80DEHandler.cpp
#	src/VM/Handler/Opcode80DEHandler.h
#	src/VM/Handler/Opcode80DFHandler.cpp
#	src/VM/Handler/Opcode80DFHandler.h
#	src/VM/Handler/Opcode80E1Handler.cpp
#	src/VM/Handler/Opcode80E1Handler.h
#	src/VM/Handler/Opcode80E3Handler.cpp
#	src/VM/Handler/Opcode80E3Handler.h
#	src/VM/Handler/Opcode80E4Handler.cpp
#	src/VM/Handler/Opcode80E4Handler.h
#	src/VM/Handler/Opcode80E5Handler.cpp
#	src/VM/Handler/Opcode80E5Handler.h
#	src/VM/Handler/Opcode80E7Handler.cpp
#	src/VM/Handler/Opcode80E7Handler.h
#	src/VM/Handler/Opcode80E8Handler.cpp
#	src/VM/Handler/Opcode80E8Handler.h
#	src/VM/Handler/Opcode80E9Handler.cpp
#	src/VM/Handler/Opcode80E9Handler.h
#	src/VM/Handler/Opcode80EAHandler.cpp
#	src/VM/Handler/Opcode80EAHandler.h
#	src/VM/Handler/Opcode80ECHandler.cpp
#	src/VM/Handler/Opcode80ECHandler.h
#	src/VM/Handler/Opcode80EFHandler.cpp
#	src/VM/Handler/Opcode80EFHandler.h
#	src/VM/Handler/Opcode80F0Handler.cpp
#	src/VM/Handler/Opcode80F0Handler.h
#	src/VM/Handler/Opcode80F1Handler.cpp
#	src/VM/Handler/Opcode80F1Handler.h
#	src/VM/Handler/Opcode80F2Handler.cpp
#	src/VM/Handler/Opcode80F2Handler.h
#	src/VM/Handler/Opcode80F3Handler.cpp
#	src/VM/Handler/Opcode80F3Handler.h
#	src/VM/Handler/Opcode80F4Handler.cpp
#	src/VM/Handler/Opcode80F4Handler.h
#	src/VM/Handler/Opcode80F6Handler.cpp
#	src/VM/Handler/Opcode80F6Handler.h
#	src/VM/Handler/Opcode80F7Handler.cpp
#	src/VM/Handler/Opcode80F7Handler.h
#	src/VM/Handler/Opcode80F8Handler.cpp
#	src/VM/Handler/Opcode80F8Handler.h
#	src/VM/Handler/Opcode80F9Handler.cpp
#	src/VM/Handler/Opcode80F9Handler.h
#	src/VM/Handler/Opcode80FAHandler.cpp
#	src/VM/Handler/Opcode80FAHandler.h
#	src/VM/Handler/Opcode80FBHandler.cpp
#	src/VM/Handler/Opcode80FBHandler.h
#	src/VM/Handler/Opcode80FCHandler.cpp
#	src/VM/Handler/Opcode80FCHandler.h
#	src/VM/Handler/Opcode80FDHandler.cpp
#	src/VM/Handler/Opcode80FDHandler.h
#	src/VM/Handler/Opcode80FEHandler.cpp
#	src/VM/Handler/Opcode80FEHandler.h
#	src/VM/Handler/Opcode80FFHandler.cpp
#	src/VM/Handler/Opcode80FFHandler.h
#	src/VM/Handler/Opcode8100Handler.cpp
#	src/VM/Handler/Opcode8100Handler.h
#	src/VM/Handler/Opcode8101Handler.cpp
#	src/VM/Handler/Opcode8101Handler.h
#	src/VM/Handler/Opcode8102Handler.cpp
#	src/VM/Handler/Opcode8102Handler.h
#	src/VM/Handler/Opcode8105Handler.cpp
#	src/VM/Handler/Opcode8105Handler.h
#	src/VM/Handler/Opcode8106Handler.cpp
#	src/VM/Handler/Opcode8106Handler.h
#	src/VM/Handler/Opcode8107Handler.cpp
#	src/VM/Handler/Opcode8107Handler.h
#	src/VM/Handler/Opcode810AHandler.cpp
#	src/VM/Handler/Opcode810AHandler.h
#	src/VM/Handler/Opcode810BHandler.cpp
#	src/VM/Handler/Opcode810BHandler.h
#	src/VM/Handler/Opcode810CHandler.cpp
#	src/VM/Handler/Opcode810CHandler.h
#	src/VM/Handler/Opcode810DHandler.cpp
#	src/VM/Handler/Opcode810DHandler.h
#	src/VM/Handler/Opcode810EHandler.cpp
#	src/VM/Handler/Opcode810EHandler.h
#	src/VM/Handler/Opcode810FHandler.cpp
#	src/VM/Handler/Opcode810FHandler.h
#	src/VM/Handler/Opcode8113Handler.cpp
#	src/VM/Handler/Opcode8113Handler.h
#	src/VM/Handler/Opcode8115Handler.cpp
#	src/VM/Handler/Opcode8115Handler.h
#	src/VM/Handler/Opcode8116Handler.cpp
#	src/VM/Handler/Opcode8116Handler.h
#	src/VM/Handler/Opcode8117Handler.cpp
#	src/VM/Handler/Opcode8117Handler.h
#	src/VM/Handler/Opcode8118Handler.cpp
#	src/VM/Handler/Opcode8118Handler.h
#	src/VM/Handler/Opcode8119Handler.cpp
#	src/VM/Handler/Opcode8119Handler.h
#	src/VM/Handler/Opcode811CHandler.cpp
#	src/VM/Handler/Opcode811CHandler.h
#	src/VM/Handler/Opcode811DHandler.cpp
#	src/VM/Handler/Opcode811DHandler.h
#	src/VM/Handler/Opcode811EHandler.cpp
#	src/VM/Handler/Opcode811EHandler.h
#	src/VM/Handler/Opcode8120Handler.cpp
#	src/VM/Handler/Opcode8120Handler.h
#	src/VM/Handler/Opcode8121Handler.cpp
#	src/VM/Handler/Opcode8121Handler.h
#	src/VM/Handler/Opcode8122Handler.cpp
#	src/VM/Handler/Opcode8122Handler.h
#	src/VM/Handler/Opcode8123Handler.cpp
#	src/VM/Handler/Opcode8123Handler.h
#	src/VM/Handler/Opcode8125Handler.cpp
#	src/VM/Handler/Opcode8125Handler.h
#	src/VM/Handler/Opcode8126Handler.cpp
#	src/VM/Handler/Opcode8126Handler.h
#	src/VM/Handler/Opcode8127Handler.cpp
#	src/VM/Handler/Opcode8127Handler.h
#	src/VM/Handler/Opcode8128Handler.cpp
#	src/VM/Handler/Opcode8128Handler.h
#	src/VM/Handler/Opcode8129Handler.cpp
#	src/VM/Handler/Opcode8129Handler.h
#	src/VM/Handler/Opcode812DHandler.cpp
#	src/VM/Handler/Opcode812DHandler.h
#	src/VM/Handler/Opcode812EHandler.cpp
#	src/VM/Handler/Opcode812EHandler.h
#	src/VM/Handler/Opcode812FHandler.cpp
#	src/VM/Handler/Opcode812FHandler.h
#	src/VM/Handler/Opcode8130Handler.cpp
#	src/VM/Handler/Opcode8130Handler.h
#	src/VM/Handler/Opcode8131Handler.cpp
#	src/VM/Handler/Opcode8131Handler.h
#	src/VM/Handler/Opcode8132Handler.cpp
#	src/VM/Handler/Opcode8132Handler.h
#	src/VM/Handler/Opcode8133Handler.cpp
#	src/VM/Handler/Opcode8133Handler.h
#	src/VM/Handler/Opcode8134Handler.cpp
#	src/VM/Handler/Opcode8134Handler.h
#	src/VM/Handler/Opcode8136Handler.cpp
#	src/VM/Handler/Opcode8136Handler.h
#	src/VM/Handler/Opcode8137Handler.cpp
#	src/VM/Handler/Opcode8137Handler.h
#	src/VM/Handler/Opcode8138Handler.cpp
#	src/VM/Handler/Opcode8138Handler.h
#	src/VM/Handler/Opcode8139Handler.cpp
#	src/VM/Handler/Opcode8139Handler.h
#	src/VM/Handler/Opcode813CHandler.cpp
#	src/VM/Handler/Opcode813CHandler.h
#	src/VM/Handler/Opcode8143Handler.cpp
#	src/VM/Handler/Opcode8143Handler.h
#	src/VM/Handler/Opcode8145Handler.cpp
#	src/VM/Handler/Opcode8145Handler.h
#	src/VM/Handler/Opcode8147Handler.cpp
#	src/VM/Handler/Opcode8147Handler.h
#	src/VM/Handler/Opcode8149Handler.cpp
#	src/VM/Handler/Opcode8149Handler.h
#	src/VM/Handler/Opcode814AHandler.cpp
#	src/VM/Handler/Opcode814AHandler.h
#	src/VM/Handler/Opcode814BHandler.cpp
#	src/VM/Handler/Opcode814BHandler.h
#	src/VM/Handler/Opcode814CHandler.cpp
#	src/VM/Handler/Opcode814CHandler.h
#	src/VM/Handler/Opcode814EHandler.cpp
#	src/VM/Handler/Opcode814EHandler.h
#	src/VM/Handler/Opcode8150Handler.cpp
#	src/VM/Handler/Opcode8150Handler.h
#	src/VM/Handler/Opcode8151Handler.cpp
#	src/VM/Handler/Opcode8151Handler.h
#	src/VM/Handler/Opcode8152Handler.cpp
#	src/VM/Handler/Opcode8152Handler.h
#	src/VM/Handler/Opcode8153Handler.cpp
#	src/VM/Handler/Opcode8153Handler.h
#	src/VM/Handler/Opcode8154Handler.cpp
#	src/VM/Handler/Opcode8154Handler.h
#	src/VM/Handler/Opcode9001Handler.cpp
#	src/VM/Handler/Opcode9001Handler.h
#	src/VM/Handler/OpcodeA001Handler.cpp
#	src/VM/Handler/OpcodeA001Handler.h
#	src/VM/Handler/OpcodeC001Handler.cpp
#	src/VM/Handler/OpcodeC001Handler.h
#	src/VM/Handler/OpcodeComparisonHandler.cpp
#	src/VM/Handler/OpcodeComparisonHandler.h
#	src/VM/OpcodeFactory.cpp
#	src/VM/OpcodeFactory.h
#	src/VM/OpcodeHandler.cpp
#	src/VM/OpcodeHandler.h
#	src/VM/Script.cpp
#	src/VM/Script.h
@Zervox
Copy link
Contributor

Zervox commented Jun 21, 2018

This is very similar to what I did when I rewrote it in my local copy to utilize function pointers instead of separate objects for every opcode handler(this way I could maintain only a single header for all the handlers while still keeping it small(easier to scroll singular functions compared to objects) while minimizing duplicate includes etc.

@FakelsHub
Copy link

Какие-то подвижки в проекте.
Не забудьте сделать поддержку sfall функций(опкодов) :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants