Ideas for tasks / subprojects to do next ---------------------------------------- Create PETSCII <-> ZSCII conversion routines. Make them fast. - support custom alphabets in Z5 onwards System to enable support for Swedish, German, French games etc. Maybe with option to include custom character set? Optimise find_word_in_dictionary by stopping when searching > word. Possibly also use binary search to search dictionary faster. Timed input Old todo: - allow delay/routine in read_text Color support Basic sound effect support (low-pitched beep and high-pitched beep) save/restore Copy SP and PC to below stack. Save this, stack and dynmem as one file. Buffering/word wrap [MORE] prompts Create our own screen handling routines to give us full control, including not scrolling status line off screen. Extend virtual memory RAM up to $ffff (And disable trace automatically if RAM at page $cf00 is used for Vmem) Old todo: - use more memory, $E000-$FFFF, perhaps also $D000-$E000? Make memory reading more efficient. While reading continuous memory, we only need to check RAM address at first byte and when entering a new page. Old todo: - reuse index and skip tests if same block as previous call to read_z_* Put first four entries of z_operand_value_(low/high)_arr on zeropage. Saves 200+ bytes and makes all instructions faster. Figure out how to best place loader, interpreter and different parts of story file on 1, 2 or 3 disk sides. Old todo: - rewrite floppy access code to use all available sectors Old todo: - support splitting of large files onto two floppies Add fast-loader code? Create easy-to-use tool (Wizard style?) to pick a story file and build disk image(s) with the right interpreter etc. Shouldn't require building anything from source code, installing third-party software etc. ; Instructions which have not yet been fully implemented ; ------------------------------------------------------ ; 0OP ; --- ; save ; restore ; restart ; show_status ; ; 1OP ; --- ; ; 2OP ; --- ; set_colour ; ; VAR ; --- ; print_char (handle ZSCII / PETSCII conversion, inlcluding special cases for accented characters) ; split_window ; set_window ; erase_window ; erase_line ; set_cursor ; get_cursor ; set_text ; buffer_mode ; input_stream ; sound_effect ; read_char ; tokenise ; encode_text ; copy_table ; print_table ; ; EXT ; --- ; save ; restore ; print_unicode ; check_unicode DONE: - the .block range in readblocks need to be increased Fix random opcode (see notes under Instructions... below) - Czech tests: https://github.com/DustinCampbell/ZGo/tree/master/zcode/czech https://www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXtools.html - space, comma, newline, printx, printy, printa, etc. only in DEBUG catch/throw Possible alternative versions / extensions ------------------------------------------ * Support for C1581 disks (can hold 3160 blocks of user data) * Support for SD2IEC, which can use fileseek operators to load any part of a file in the file system. * Support for REU * C128 version which can use a C1571, additional RAM and 80-column mode.