BASIC 256 (and Portable Basic 256)

Bug List & Suggestions List

Some changes needed are merely philsopical, but most are practical.

User Interface

  1. Set Default Language

It would be nice to set the "Default Language", but at the moment this is

not possible.

The main use and utility for doing so is so that when one asks for help, it

should be immediately available in the chosen default language.

This may be considered "Private Data", so it should be resettable.

  1. Make the "Help Window" permanently available in the file menu "View"

section.

It would be nice if one could choose to have the help window up permanently up or not. Having the help window as a separate data structure "window" raises the complexity of the program and due to some latent help system bugs -- makes it break more easily.

When the "Help" function is not avalanche, the best fix seems to be to restart the program. Yet, this advice is not given.

File Handling

  1. Currently the program handles badly having more than one open file at a time. The limit for open files should be 8, and you should be allowed to more
    easily copy and paste between them.

  2. The ability to turn off the "File Overwrite Dialogue" would be nice.For the more expert users, the current "File Overwrite Dialogue" is a bit of a pain. It would be nice if it could be turned off. This way or may not be considered private data.

File Version Handling

As a matter of practicality, each open file should have a "Diff" file that contains all the changes made over say the last 50 edits. However, the exact best way to do this should probably evolve and change over time.

Privacy & Security

  1. There is no "Delete Private Data" capability.

There is not much private data in the program, but it lacks the ability to delete files in use. There may be other private data that the program stores on a per Windows account basis, but it is not clear to me what it is.

User Interface Change

New Dialogue Box

"Delete Private Data"

[] Default Language currently [English]
[] List of Last Used Files
[] Miscellaneous

Features, mainly reserved words (statements)

CRC-16 / CRC-32 / CRC-64 Support
1. There is no support at all for CRCs.

This is sad, as they are a handy programming feature.

The syntax should be like this

CRC(mode, string or float or integer)

mode, Reserved Words

0 = CRC16 (IBM)
1 = CRC16 CCITT, but note that there are about 8 different CRC16s!
2 = CRC24 (CRC-24-Radix-64)
3 = CRC32 MPEG
4 = CRC32C (Castagnoli)
5 = CRC40 (CRC-40-GSM)
6 = CRC64 (CRC-64-ECMA-182)
7 = CRC13 (CRC-13-BBC, time signal & teleswitch)
8 = For future use

SEE:
http://en.wikipedia.org/wiki/Cyclic_redundancy_check

Hash functions needs to be kept, but made more flexible

The suggested syntax should be

hashsum (mode, string or float or integer )

Hashsum should return "string" as usual does with MD5.

These modes should be available as reserved internal constants, so that it

is not necessary to setup tables assigning them readable numbers.

0 = MD5; Default
1 = SHA0
2 = SHA1
3 = SHA2
4 = SHA3
5 = HAS-160
6 = Whirlpool (but chopped to 256 bits)
7 = Skein (256 bits mode)
8 = Reserved for future use

SHA-0: A retronym applied to the original version of the 160-bit hash function published in 1993 under the name "SHA". It was withdrawn shortly after publication due to an undisclosed "significant flaw" and replaced by the slightly revised version SHA-1.

SHA-1: A 160-bit hash function which resembles the earlier MD5 algorithm. This was designed by the National Security Agency (NSA) to be part of the Digital Signature Algorithm. Cryptographic weaknesses were discovered in SHA-1, and the standard was no longer approved for most cryptographic uses
after 2010.

SHA-2: A family of two similar hash functions, with different block sizes, known as SHA-256 and SHA-512. They differ in the word size; SHA-256 uses 32-bit words where SHA-512 uses 64-bit words. There are also truncated versions of each standardized, known as SHA-224 and SHA-384. These were also designed by the NSA.

SHA-3: A hash function formerly called Keccak, chosen in 2012 after a public competition among non-NSA designers. It supports the same hash lengths as SHA-2, and its internal structure differs significantly from the rest of the SHA family.

HAS-160 is a cryptographic hash function designed for use with the Korean KCDSA digital signature algorithm. It is derived from SHA-1, with assorted changes intended to increase its security. It produces a 160-bit output.

HAS-160 is used in the same way as SHA-1. First it divides input in blocks of 512 bits each and pads the final block. A digest function updates the intermediate hash value by processing the input blocks in turn. The message digest algorithm consists of 80 rounds.

Whirlpool is a hash designed after the Square block cipher. Whirlpool is a Miyaguchi-Preneel construction based on a substantially modified Advanced Encryption Standard (AES). It takes a message of any length less than 2256 bits and returns a 512-bit message digest.

The authors have declared that "WHIRLPOOL is not (and will never be) patented. It may be used free of
charge for any purpose."

Skein is a cryptographic hash function and one out of five finalists in the NIST hash function competition. Entered as a candidate to become the SHA-3 standard, the successor of SHA-1 and SHA-2, it ultimately lost to NIST hash candidate Keccak.

SEE : https://en.wikipedia.org/wiki/Secure_Hash_Algorithm
SEE : https://en.wikipedia.org/wiki/HAS-160
SEE : https://en.wikipedia.org/wiki/Whirlpool_(cryptography)
SEE : https://en.wikipedia.org/wiki/Skein_(hash_function)

CRC and HASHSUM Global changes

You should be able to use Reserved Words instead of Numbers, as it makes the programming easier. The scope of the reserved words should be within the CRC or Hash call function, not the global scope of the program.