npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@sage-js/res-osi

v0.12.0

Published

SAGE resource OSI

Downloads

6

Readme

SAGE-JS RES-OSI

The main OSI resource module for SAGE-JS.

Overview

Provides an API for working with OSI files.

Includes a number of abstract instructions that can be used to make manipulating assembly easier.

Instructions

Abstract

| Name | Size | Args | Info | |----------------------------------|------|---------------|--------------------------------------------------------------------------------------------| | JumpTarget | 0 | i32u | Target for PushConstanti32JumpTarget with same ID | | PushConstanti32JumpTarget | 5 | i32u i32s | Replaces PushConstanti32 before JumpRelative references JumpTarget with target and offset* | | BranchTarget | 0 | i32u | Target for CompareAndBranchIfFalseTarget and BranchAlwaysTarget with same ID | | BranchAlwaysTarget | 3 | i32u i16s | Replaces BranchAlways, with target and offset* | | CompareAndBranchIfFalseTarget | 3 | i32u i16s | Replaces CompareAndBranchIfFalse, with target and offset* | | PushConstantStringString | 3 | sp8n | Replaces PushConstantString with inline strings from string table | | GetThisMemberFunctionString | 3 | sp8n | Replaces GetThisMemberFunction with inline strings from symbol table | | GetThisMemberValueString | 3 | sp8n | Replaces GetThisMemberValue with inline strings from symbol table | | SetThisMemberValueString | 3 | sp8n | Replaces SetThisMemberValue with inline strings from symbol table | | GetMemberFunctionString | 3 | sp8n | Replaces GetMemberFunction with inline strings from symbol table | | GetMemberValueString | 3 | sp8n | Replaces GetMemberValue with inline strings from symbol table | | SetMemberValueString | 3 | sp8n | Replaces SetMemberValue with inline strings from symbol table | | GetGameVariableString | 2 | sp8n sp8n | Replaces GetGameVariable with inline strings from string table | | SetGameVariableString | 2 | sp8n sp8n | Replaces SetGameVariable with inline strings from string table | | CallGameFunctionString | 3 | sp8n sp8n i8s | Replaces CallGameFunction with inline strings from string table | | CallGameFunctionFromStringString | 2 | sp8n i8s | Replaces CallGameFunctionFromString with inline string from string table |

* Instructions that jump to targets include an offset to handle jumps to point between instructions (compensates for off-by-one error in some original code).

BCL

| Byte | Name | Size | Args | Stack | Info | |------|-----------------------------|------|---------------|-------|-----------------------------------------------------------------| | 0x00 | Nop | 1 | | | Do nothing | | 0x02 | DebugOn | 1 | | | Enable debug or fail if disabled in engine | | 0x03 | DebugOff | 1 | | | Disable debug or fail if disabled in engine | | 0x04 | LineNumber | 5 | i16u i16u | | Source line, possibly for assembly line and column | | 0x05 | LineNumberAlt1 | 5 | i16u i16u | | Source line, line number, source file index | | 0x06 | LineNumberAlt2 | 5 | i16u i16u | | Source line number, unknown | | 0x10 | SetMemberValue | 3 | i16u | -2 | Set object property by symbol index | | 0x11 | GetMemberValue | 3 | i16u | -1 +1 | Get object property by symbol index | | 0x12 | GetMemberFunction | 3 | i16u | -1 +1 | Get object method address by symbol index | | 0x13 | CreateObject | 3 | i16u | +1 | Create an object by class ID | | 0x14 | MemberFunctionArgumentCheck | 2 | i8s | +N | Check the arg count <= N and add N number of stack variables | | 0x15 | SetThisMemberValue | 3 | i16u | -1 | Set this property by symbol index | | 0x16 | GetThisMemberValue | 3 | i16u | +1 | Get this property by symbol index | | 0x17 | GetThisMemberFunction | 3 | i16u | +1 | Get this method address by symbol index | | 0x18 | GetMemberValueFromString | 1 | | -2 +1 | Get object property by string index | | 0x19 | GetMemberFunctionFromString | 1 | | -2 +1 | Get object method address by string index | | 0x1A | SetMemberValueFromString | 1 | | -3 | Set object property by string index | | 0x21 | GetVariableValue | 3 | i16u | +1 | Get variable by index (highest bit means global) | | 0x22 | SetVariableValue | 3 | i16u | -1 | Set variable by index (highest bit means global) | | 0x23 | CreateStackVariables | 2 | i8s | +N | Add N number of stack variables | | 0x24 | IncrementVariable | 3 | i16u | | Increment variable by index (highest bit means global) | | 0x25 | DecrementVariable | 3 | i16u | | Decrement variable by index (highest bit means global) | | 0x30 | Pop | 1 | | -1 | Pop a value off the stack | | 0x31 | PopN | 2 | i8s | -N | Pop N values off the stack | | 0x32 | Swap | 1 | | -2 +2 | Swap last 2 values on stack | | 0x33 | Pull | 2 | i8s | +1 | Duplicate stack value by index onto stack | | 0x34 | DupN | 2 | i8s | +N | Duplicate last stack value N times | | 0x35 | Dup | 1 | | +1 | Duplicate last stack value | | 0x40 | PushConstanti32 | 5 | i32s | +1 | Push constant integer value | | 0x41 | PushConstanti24 | 4 | int24s | +1 | Unimplemented | | 0x42 | PushConstanti16 | 3 | i16s | +1 | Push constant integer value | | 0x43 | PushConstanti8 | 2 | i8s | +1 | Push constant integer value | | 0x44 | PushConstantf32 | 5 | f32 | +1 | Push constant float value | | 0x45 | PushConstant0 | 1 | | +1 | Push constant integer value 0 | | 0x46 | PushConstantString | 3 | i16u | +1 | Push string from string table | | 0x47 | PushNothing | 1 | | +1 | Push the nothing type | | 0x48 | PushConstantColor8888 | 5 | i32u | +1 | Push constant color value | | 0x49 | PushConstantColor5551 | 3 | i16u | +1 | Push constant color value | | 0x50 | JumpRelative | 2 | i8s | -1 | Jump to popped address relative to file start | | 0x51 | JumpAbsolute | 2 | i8s | -1 | Jump to popped address in memory | | 0x52 | Return | 1 | | ?* | Return from current subroutine | | 0x53 | CompareAndBranchIfFalse | 3 | i16s | -1 | Jump N number of bytes from after instruction if false or i0 | | 0x54 | BranchAlways | 3 | i16s | | Jump N number of bytes from after instruction | | 0x60 | EqualTo | 1 | | -2 +1 | Compare last 2 values on stack | | 0x61 | LessThan | 1 | | -2 +1 | Compare last 2 values on stack | | 0x62 | GreaterThan | 1 | | -2 +1 | Compare last 2 values on stack | | 0x63 | LessOrEqual | 1 | | -2 +1 | Compare last 2 values on stack | | 0x64 | GreaterOrEqual | 1 | | -2 +1 | Compare last 2 values on stack | | 0x6A | And | 1 | | -2 +1 | Check last 2 values on stack are both true | | 0x6B | Or | 1 | | -2 +1 | Check last 2 values on stack are have true | | 0x6C | Not | 1 | | -2 +1 | Check last 2 values on stack are not true | | 0x6D | BitwiseAnd | 1 | | -2 +1 | Bitwise and last 2 values on stack | | 0x6E | BitwiseOr | 1 | | -2 +1 | Bitwise or last 2 values on stack | | 0x6F | BitwiseXor | 1 | | -2 +1 | Bitwise xor last 2 values on stack | | 0x70 | Add | 1 | | -2 +1 | Add the last 2 values on stack | | 0x71 | Subtract | 1 | | -2 +1 | Subtract the last 2 values on stack | | 0x72 | Multiply | 1 | | -2 +1 | Multiply the last 2 values on stack | | 0x73 | Divide | 1 | | -2 +1 | Divide the last 2 values on stack | | 0x74 | Power | 1 | | -2 +1 | Raise to power the last 2 values on stack | | 0x75 | Modulus | 1 | | -2 +1 | Modulus operator the last 2 values on stack | | 0x76 | BitwiseNot | 1 | | -1 +1 | Bitwise not last value on stack | | 0x77 | ShiftLeft | 1 | | -2 +1 | Bitwise shift left last 2 values on stack | | 0x78 | ShiftRight | 1 | | -2 +1 | Bitwise shift right last 2 values on stack | | 0x7A | Increment | 1 | | -1 +1 | Increment value of last value on stack by 1 | | 0x7B | Decrement | 1 | | -1 +1 | Decrement value of last value on stack by 1 | | 0x80 | GetGameVariable | 5 | i16u i16u | | Get variable by ns and name string index seems non-functional | | 0x81 | SetGameVariable | 5 | i16u i16u | | Set variable by ns and name string index seems non-functional | | 0x82 | CallGameFunction | 6 | i16u i16u i8s | ?* | Call native by ns and name string index, N args | | 0x83 | CallGameFunctionFromString | 6 | i16u i8s | ?* | Call native by ns string index and stack string, N args | | 0x84 | CallGameFunctionDirect | 6 | i32s i8s | ?* | Call native by address, N args (should only exist in memory) | | 0x90 | CreateArray | 1 | | +1 | Create array | | 0x91 | GetArrayValue | 1 | | -2 +1 | Get array or string table element | | 0x92 | ElementsInArray | 1 | | -1 +1 | Get array or string table length | | 0x93 | SetArrayValue | 1 | | -3 | Set array element | | 0x94 | AppendToArray | 1 | | -2 | Push array element | | 0x95 | RemoveFromArray | 1 | | -2 | Remove array element at index | | 0x96 | InsertIntoArray | 1 | | -3 | Add array element at index | | 0xA0 | SetRedValue | 1 | | -2 +1 | Set color red value | | 0xA1 | SetGreenValue | 1 | | -2 +1 | Set color green value | | 0xA2 | SetBlueValue | 1 | | -2 +1 | Set color blue value | | 0xA3 | SetAlphaValue | 1 | | -2 +1 | Set color alpha value | | 0xA4 | GetRedValue | 1 | | -1 +1 | Get color red value | | 0xA5 | GetGreenValue | 1 | | -1 +1 | Get color green value | | 0xA6 | GetBlueValue | 1 | | -1 +1 | Get color blue value | | 0xA7 | GetAlphaValue | 1 | | -1 +1 | Get color alpha value | | 0xB0 | ConvertToString | 1 | | -1 +1 | Convert last stack element to string | | 0xB1 | ConvertToFloat | 1 | | -1 +1 | Convert last stack element to float | | 0xB2 | ConvertToInteger | 1 | | -1 +1 | Convert last stack element to integer | | 0xB8 | IsInteger | 1 | | -1 +1 | Check if last stack element is integer | | 0xB9 | IsFloat | 1 | | -1 +1 | Check if last stack element is float | | 0xBA | IsString | 1 | | -1 +1 | Check if last stack element is string | | 0xBB | IsAnObject | 1 | | -1 +1 | Check if last stack element is an object | | 0xBC | IsGameObject | 1 | | -1 +1 | Check if last stack element is a game object | | 0xBD | IsArray | 1 | | -1 +1 | Check if last stack element is array | | 0xBF | GetObjectClassID | 1 | | -1 +1 | Get object class ID | | 0xFF | Halt | 1 | | +1 | Halt execution |

* Unclear how many values are pushed and/or popped under what conditions.