temp commit 1; needs to be merged
This commit is contained in:
parent
7c4e3738ee
commit
49e2df75ca
|
@ -1,5 +1,5 @@
|
|||
function main() {
|
||||
let socket = new WebSocket("ws://localhost:8765");
|
||||
let socket = new WebSocket("ws://localhost:8764");
|
||||
var ids = [];
|
||||
|
||||
socket.onopen = function(e) {
|
||||
|
@ -43,4 +43,4 @@ function main() {
|
|||
console.log(`[LOG] couldn't parse message ${e.data}`)
|
||||
}
|
||||
}
|
||||
} main();
|
||||
} main();
|
||||
|
|
|
@ -37,6 +37,8 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|||
: ibl(addr, b, c) = {less = 1 : ijmp(addr, 0, 0), jumped -> 1}
|
||||
|
||||
: isto(v, addr) = setlistval(addr, v)
|
||||
: imov(from, target) = setlistval(target, B[from])
|
||||
: ipsto(value, ptr) = setlistval(B[ptr], value)
|
||||
|
||||
# registers
|
||||
# instruction pointer
|
||||
|
@ -65,20 +67,22 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|||
paramtwo -> B[addr + 2], \
|
||||
paramthree -> B[addr + 3]
|
||||
: exec = { \
|
||||
inst = sto : isto(paramone, paramtwo), \
|
||||
inst = add : iadd(paramone, paramtwo, paramthree), \
|
||||
inst = cmp : icmp(paramone, paramtwo, paramthree), \
|
||||
inst = eld : ield(paramone, paramtwo), \
|
||||
inst = gld : igld(paramone, paramtwo), \
|
||||
inst = lld : illd(paramone, paramtwo), \
|
||||
inst = jmp : ijmp(paramone, paramtwo, paramthree), \
|
||||
inst = be : ibe(paramone, paramtwo, paramthree), \
|
||||
inst = bne : ibne(paramone, paramtwo, paramthree), \
|
||||
inst = bg : ibg(paramone, paramtwo, paramthree), \
|
||||
inst = bl : ibl(paramone, paramtwo, paramthree), \
|
||||
inst = sub : isub(paramone, paramtwo, paramthree), \
|
||||
inst = mul : imul(paramone, paramtwo, paramthree), \
|
||||
inst = div : idiv(paramone, paramtwo, paramthree) \
|
||||
inst = sto : isto(paramone, paramtwo), \
|
||||
inst = psto : ipsto(paramone, paramtwo), \
|
||||
inst = mov : imov(paramone, paramtwo), \
|
||||
inst = add : iadd(paramone, paramtwo, paramthree), \
|
||||
inst = cmp : icmp(paramone, paramtwo, paramthree), \
|
||||
inst = eld : ield(paramone, paramtwo), \
|
||||
inst = gld : igld(paramone, paramtwo), \
|
||||
inst = lld : illd(paramone, paramtwo), \
|
||||
inst = jmp : ijmp(paramone, paramtwo, paramthree), \
|
||||
inst = be : ibe(paramone, paramtwo, paramthree), \
|
||||
inst = bne : ibne(paramone, paramtwo, paramthree), \
|
||||
inst = bg : ibg(paramone, paramtwo, paramthree), \
|
||||
inst = bl : ibl(paramone, paramtwo, paramthree), \
|
||||
inst = sub : isub(paramone, paramtwo, paramthree), \
|
||||
inst = mul : imul(paramone, paramtwo, paramthree), \
|
||||
inst = div : idiv(paramone, paramtwo, paramthree) \
|
||||
}
|
||||
: incip = {jumped = 0 : ip -> ip + instwidth[inst] + 1}
|
||||
|
||||
|
@ -91,6 +95,8 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|||
: main = loopaction, loop
|
||||
|
||||
: sto = 1
|
||||
: psto = 16
|
||||
: mov = 17
|
||||
: add = 2
|
||||
: cmp = 3
|
||||
: eld = 4
|
||||
|
@ -106,4 +112,4 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|||
: div = 14
|
||||
: rst = 15
|
||||
|
||||
: instwidth = [2,3,1,1,1,1,1,1,1,1,3,3,3,3,0]
|
||||
: instwidth = [2,3,1,1,1,1,1,1,1,1,3,3,3,3,0,2,2]
|
||||
|
|
|
@ -9,16 +9,21 @@ def get_overrides(file):
|
|||
fd.close()
|
||||
return data
|
||||
|
||||
def entry():
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="desmos-sync",
|
||||
description="Synchronize from local file to Desmos calculator",
|
||||
)
|
||||
|
||||
def define_args(parser):
|
||||
parser.add_argument('--copy', action="store_true", help="copy the client side JS to clipboard")
|
||||
parser.add_argument('--assemble', nargs=2, help="assemble the file INFILE and write the resultant overrides to OUTFILE")
|
||||
parser.add_argument('--run', help="specify file to start the desmos server for")
|
||||
parser.add_argument('--overrides', help="specify file that contains overrides for desmos expressions")
|
||||
|
||||
|
||||
def entry():
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="desmosisa",
|
||||
description="a smörgåsbord of utilities for desmos, including some implementations of an desmos-based isa",
|
||||
)
|
||||
|
||||
define_args(parser)
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.overrides:
|
||||
args.overrides = get_overrides(args.overrides)
|
||||
|
|
|
@ -96,8 +96,10 @@ async def serv(websocket, file, overrides={}):
|
|||
)
|
||||
|
||||
async def start_server(file, overrides):
|
||||
print("starting server")
|
||||
wrapper = functools.partial(serv, file=file, overrides=overrides)
|
||||
async with serve(wrapper, "localhost", 8765):
|
||||
async with serve(wrapper, "localhost", 8764):
|
||||
print("starting server for realz")
|
||||
await asyncio.Future()
|
||||
|
||||
def main(file, overrides):
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
import setuptools
|
||||
setuptools.setup(
|
||||
name='desmos-sync',
|
||||
version='0.1',
|
||||
author='Ryan Marina',
|
||||
description='synchronize Desmos expressions between the local filesystem and the web calculator',
|
||||
packages=["desmossync"],
|
||||
entry_points = {
|
||||
"console-scripts": [ "desmos-sync=desmossync.cli.entry" ]
|
||||
},
|
||||
install_requires=[
|
||||
'setuptools',
|
||||
'websockets',
|
||||
'watchdog'
|
||||
]
|
||||
)
|
12
shell.nix
12
shell.nix
|
@ -1,10 +1,4 @@
|
|||
{ pkgs ? import <nixpkgs> {} }:
|
||||
let
|
||||
my-python-packages = ps: with ps; [
|
||||
pip
|
||||
pkgs.python311Packages.websockets
|
||||
pkgs.python311Packages.watchdog
|
||||
pkgs.python311Packages.pyperclip
|
||||
];
|
||||
my-python = pkgs.python3.withPackages my-python-packages;
|
||||
in my-python.env
|
||||
pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs.python311Packages; [ websockets watchdog pyperclip ];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue