diff --git a/js/util.js b/js/util.js deleted file mode 100644 index 99fa91a..0000000 --- a/js/util.js +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright 2010-2019 Will Scullin - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -var hex_digits = '0123456789ABCDEF'; -var bin_digits = '01'; - -export function allocMem(size) { - var result; - if (window.Uint8Array) { - result = new Uint8Array(size); - } else { - result = new Array(size); - } - return result; -} - -export function allocMemPages(pages) { - return allocMem(pages * 0x100); -} - -export function debug(msg) { - /*eslint no-console: 0 */ - if (typeof(console) != 'undefined' && 'log' in console) { - console.log(msg); - } else if (typeof(environment) == 'object') { // rhino shell - print(msg); - } -} - -export function toHex(v, n) { - if (!n) { - n = v < 256 ? 2 : 4; - } - var result = ''; - for (var idx = 0; idx < n; idx++) { - result = hex_digits[v & 0x0f] + result; - v >>= 4; - } - return result; -} - -export function toBinary(v) { - var result = ''; - for (var idx = 0; idx < 8; idx++) { - result = bin_digits[v & 0x01] + result; - v >>= 1; - } - return result; -} - -// From http://www.netlobo.com/url_query_string_javascript.html -export function gup( name ) -{ - name = name.replace(/[[]/,'\\[').replace(/[\]]/,'\\]'); - var regexS = '[\\?&]'+name+'=([^&#]*)'; - var regex = new RegExp( regexS ); - var results = regex.exec( window.location.href ); - if( !results ) - return ''; - else - return results[1]; -} - -export function hup() { - var regex = new RegExp('#(.*)'); - var results = regex.exec(window.location.hash); - if ( !results ) - return ''; - else - return decodeURIComponent(results[1]); -} diff --git a/js/util.ts b/js/util.ts new file mode 100644 index 0000000..01b7dbc --- /dev/null +++ b/js/util.ts @@ -0,0 +1,67 @@ +/* Copyright 2010-2023 Will Scullin + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +import { byte, word } from "./types"; + +var hex_digits = "0123456789ABCDEF"; +var bin_digits = "01"; + +export function allocMem(size: word) { + var result; + if (window.Uint8Array) { + result = new Uint8Array(size); + } else { + result = new Array(size); + } + return result; +} + +export function allocMemPages(pages: byte) { + return allocMem(pages * 0x100); +} + +export function debug(...msg: unknown[]) { + /*eslint no-console: 0 */ + console.log(...msg); +} + +export function toHex(v: byte, n?: 2 | 4) { + if (!n) { + n = v < 256 ? 2 : 4; + } + var result = ""; + for (var idx = 0; idx < n; idx++) { + result = hex_digits[v & 0x0f] + result; + v >>= 4; + } + return result; +} + +export function toBinary(v: byte) { + var result = ""; + for (var idx = 0; idx < 8; idx++) { + result = bin_digits[v & 0x01] + result; + v >>= 1; + } + return result; +} + +export function gup(name: string) { + const params = new URLSearchParams(window.location.search); + return params.get(name); +} + +export function hup() { + var regex = new RegExp("#(.*)"); + var results = regex.exec(window.location.hash); + if (!results) return ""; + else return decodeURIComponent(results[1]); +}