M4ZVM, a new modern Z-Machine for the TRS-80 model 4

Two new announcements for M4ZVM:
Firstly, I’ve released some pre-built bootable disks to make life easier for those who are less familiar with the TRS-80 and wanting to use the interpreter. These are available in a number of configurations along with instructions at the M4ZVM itch.io page.

Secondly, since there’s been 3 version updates since this thread was updated, so if you haven’t updated in a while it’s running faster and more stable than ever:

; 2023-07-16 - Shawn Sijnstra release 16
; [+] cache and core speed tweaks (stream 3, charout)
; [+] optimised 128k+ memory routines
; [+] major rewrite instruction dispatch
;
; 2022-08-07 - Shawn Sijnstra release 15
; [+] Core code rewrites for speed in : parsing var/1op/2op, encode,
;		dispatch, objects, attribute, properties, text buffer, stream3
; [+] Code rewrite for tracking exceptions/errors
; [+] Front end rewrite for speed in: cursor, text wrap, cache mem
; [+] Increased cache size by 3 sectors in 64K version
; [+] Bugfix: transcript now properly honours change to the transcript bit
; [+] Change: accented characters now filtered out in transcript
;
; 2022-05-15 - Shawn Sijnstra release 14
; [+] Rewritten ZPC tracking for speed improvement
;       Courtesy of Garry Lancaster (zxzvm for Spectrum Next)
; [+] Bugfix: now processes requests for "Stream 0"
; [+] Core code speed rewrites for text encode, call, return, branch,
;		timed input, instruction decode
; [+] Rewrote memory management to improve speed
; [+] Reduced code size to increase cache for 64K mode
; [+] Synchronised core code across model 1/3/4
4 Likes

Are there any images of V6 games that use the graphics in this model?

Fantasic! I must try this on some real kit.

1 Like

Sadly not yet - the images themselves are something I would like to achieve, particularly using a hires card. There are 2 main problems to overcome: decoding the graphics, and supporting the multi-screen environment efficiently. The screen support is probably the hardest part as it is surprisingly full featured. It can open up to 8 arbitrarily sized (i.e. different height/width) overlapping windows that have a range of features that can be individually set.

2 Likes

Awesome! Let me know how you go :slight_smile:

If somebody were really motivated, they might be able to adapt the code in this repository to parse and draw the graphics for all Infocom V6 games, all known formats. It’s mostly portable C code, but uses more memory than a TRS-80 has.

2 Likes