The Quill (ZX81 Version) - Work in Progress

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
User avatar
XavSnap
Posts: 1941
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: The Quill (ZX81 Version) - Work in Progress

Post by XavSnap »

HI,

My "The Quill" Editor is in progress.
I had to code the object table and the script table.

The Vb resources are availaible here:
http://zx81.ordi5.free.fr/thequill/VB_RES.ZIP
File updated: Up, Down, Ne ,Se,sw,nw are ok.
Have fun.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
User avatar
gus
Posts: 177
Joined: Fri May 16, 2008 10:18 pm
Location: Buenos Aires. Argentina
Contact:

Re: The Quill (ZX81 Version) - Work in Progress

Post by gus »

Hi !!!

Here is a new release of The Quill Interpreter for the ZX81...

Some changes / improvements:

1) I do not use anymore the Floating Point ROM subroutines. In the first version I think that using that routines will give us more space for the adventure, but this routines are too slow. So I take a good book on 8080 programming and write a couple of subroutines to display 1 or 2 bytes binary numbers in decimal form...

2) I improve the SAVE / LOAD routines, now the Game Status data stream has a name on tape (very convenient when using an emulator)
BTW: do some of you try this functions ? I mean do you discover that this little interpreter lets you SAVE and LOAD a game in progress ?
I'm asking because programming this functionality give me a lot of work (and enjoyment too)

3) The interpreter is complete !!! All the Commands and Conditions are working now !!!

4) Database format is defined. I will explain it later but the point here is this: The Interpreter and the Adventure Database are merged on a unique P file, but now there is a magic word (LOLO) that let you know where the Database start inside the P file and another magic word (LULU) marks the end of the database. I do include an series of Vectors (pointers) that let you figure out where start each table on the database: Locations, Connections, Messages, etc... I will make a document with this info very soon so XavSnap can update his promising window$ editor :)

5) I write an small CLS routine, the ROM routines looks slow

6) Input routines more sensitive and with a cursor :)

7) A lot of small changes that I can't remember right now...

Now I will back to the 'The Crystal Frog' conversion :)

Gus

Attachments
TheQuillZX81v2.rar
The Quill, ZX81 version v2
(3.42 KiB) Downloaded 279 times
User avatar
gus
Posts: 177
Joined: Fri May 16, 2008 10:18 pm
Location: Buenos Aires. Argentina
Contact:

Re: The Quill (ZX81 Version) - Work in Progress

Post by gus »

Hi to all :)

I release an updated version.

I do change the 0x80 end of Messages Mark by a more convenient 0xFF.
In the Spectrum, 0x80 is a good option but in our little machines (with a not ascii character set) it is no so good... In the first place I do use the 0x80 in order to maintain the Spectrum format, but know I think it's better to have a full zx81 char set to describe the game elements.

So now the user messages, system messages, locations, and objects are 0xFF terminated

Gus
Attachments
tutorial.rar
The Quill (ZX81 version) updated release
(3.43 KiB) Downloaded 240 times
User avatar
XavSnap
Posts: 1941
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: The Quill (ZX81 Version) - Work in Progress

Post by XavSnap »

Hi Gus,


I have a look to Room's messages.
They are a lot of rundondants words who take 'room' in memory.

You can use a "word" server inside the room's messages.
Insted of (for exemple!) :
I am in a Hall. $80 ; ( or $FF !!!)
You can use a tag after $80 like $81 to point to a groupe of words.
$81="I AM IN "
$82="A "
ROOM01:
db $81,$82 , H , A , L , L , $80 ; ( or $FF !!!)
ROOM01:
db $81, $82 , K , I , T , C , H , E , N, $80 ; ( or $FF !!!)

It Preserve many bytes.
The Code is short, but you had to finish the message table, to change all words groups.

Code: Select all

;--------------------------------------------------------------------
;                   C O M M O N    M E S S A G E S 
;--------------------------------------------------------------------
COMMON_MSG:
db	$80
db	I, _, A, M, _, I, N, $80	;ID $81
db	T, H, E, $80			;ID $82
db	N, O, R, T , (H+$80)		;ID $83
db	E, A, S,(T+$80)			;ID $84
db	S, O, U, T, (H+$80)		;ID $85
db	W, E, S,(T+$80)			;ID $86
db	S, T, E, P, S, _, L, E, A, D, $80	;ID $87
db	D,O,W,N, $80	;ID $88
db	U,P, $80	;ID $89
db	T, O, $80	;ID $8A
db	I, S, $80	;ID $8B
db	A, N, D, $80	;ID $8C

Code: Select all

;--------------------------------------------------------------------
;                   M E S S A G E S    T A B L E
;--------------------------------------------------------------------

MSGROOM_01:
; "I AM IN A HALL. THE KITCHEN IS TO THE EAST, THE BEDROOM TO THE WEST AND THE LOUGE TO THE SOUTH. STEPS LEAD DOWN TO THE CELLAR."
db	$81, A, _, H, A, L, L, $1B, _
db	$82, K, I, T, C, H, E, N, _, $8B, $76 
db	$8A, $82, $84, $1A, _, $82
db	 B, E, D, R, O, O, M, _, $8A, $82
db	$86, _, $8C, $82, L, O, U
db	G, E, _,$8A, $82, $85, $1B
db	$87 , $88
db	$8A, $82, C, E, L, L, A, R, $1B 
db	$80

MSGROOM_02:
; "I AM IN THE KITCHEN. THE HALL IS TO THE WEST AND THE DINNING ROOM IS TO THE SOUTH."
db	$03, $82, K, I, T, C
db	H, E, N, $1B, _, $82, H, A, L, L, _, $8B 
db	$8A, $82, $86, _, $8C
db	$82, D, I, N, N, I, N, G, _, R, O, O, M
db	$8B, $8A, $82, $85, $1B
db	$80

MSGROOM_03:
; "I AM IN THE DINNING ROOM. THE KITCHEN IS TO THE NORTH AND THE LOUGE TO THE WEST."
db	$81, , $82, D, I, N, N
db	I, N, G, _, R, O, O, M, _ , $1B,$76,$82, _
db      K, I, T, C, H, E, N, _,  $8B, $8A, $82
db	$83, _,  $8C, $82
db	L, O, U, G, E, _,$8A , $82,$86, $1B
db	$80

MSGROOM_04:
; "I AM IN THE LOUGE. TO THE NORTH IS THE HALL WHILE THE DINNING ROOM IS TO THE EAST."
db	$81, $82, L, O, U, G
db	E ,$1B, _, $8A, $82, $83, _
db	$8B, $82, H, A, L, L, _, W, H, I, L
db	E, _, $82, _, D, I, N, N, I, N, G, _, _ 
db	R, O, O, M, _, $8B,$8A, $82, $84, $1B
db	$80

MSGROOM_05:
; "I AM IN THE BEDROOM. THE HALL IS TO THE EAST AND A BED IS AGAINST THE NORTH WALL."
db	$81, $82, B, E, D, R
db	O, O, M, $1B, _, $82, H, A, L, L, _, I, S
db	$8A,  $82, $84, _,$8C
db	A, _, B,  E , D, _, $8B, A, G, A, I, N, S, T
db	$82,$83, _, W, A, L, L, $1B
db	$80

MSGROOM_06:
; "I AM IN THE CELLAR. STEPS LEAD UP TO THE HALL."
db	$81, $82, C, E, L, L
db	A, R, $1B, _, $87, _
db	$8A, $8A, $82, H, A, L, L, $1B
db	$80

Code: Select all

;--------------------------------------------------------------------
;                   To add to you primary message reader.
;--------------------------------------------------------------------
Lb42FD:
	LD A,(HL) 
	CP $80 		; End of the message? ($FF for the new format !)
	JR Z, Lb4309 	; Exit.
	CP $76		; N/L?
	JR NZ, Lb42FE	; no.. resume next.
	CALL DISP_NL	; Display a N/L
	INC HL
	JP Lb42FD
Lb42FE:
	BIT 7,(HL)	
	JR Z,Lb42FF	; IF B7=0 vvv
	AND $7F		; IF B7=1 get A and 7Fh (B0=0)
	CALL DISP_COMMON ; Call the routine
	JR Lb4300	; Next char in the message.
Lb42FF:
	CALL DISP_CHAR	;Display the char., it's <80h (not a common word)
Lb4300:
	INC HL 
	JP Lb42FD
Lb4309:
	CALL DISP_NL
	LD A,(STBUFFER1) 
	CALL Lb4371
	RET ; ==========================

Code: Select all

;--------------------------------------------------------------------
;                   S E R V E R   R O U T I N E
;--------------------------------------------------------------------

DISP_COMMON:
	PUSH HL
	LD B,A
	LD HL,COMMON_MSG
DISP_COMMON1:
	BIT 7,(HL)
	INC HL
	JR Z,DISP_COMMON1
	DJNZ DISP_COMMON1
DISP_COMMON2:

	LD A,(HL)
	AND $7F
	CALL DISP_CHAR
	LD A,(HL)
	BIT 7,A
	INC HL
	JR Z,DISP_COMMON2

DISP_COMMON3:
	POP HL
	RET ; ==========================
Have Fun.
Xav.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
User avatar
gus
Posts: 177
Joined: Fri May 16, 2008 10:18 pm
Location: Buenos Aires. Argentina
Contact:

Re: The Quill (ZX81 Version) - Work in Progress

Post by gus »

Hi Xav :)

Well that is a good form to save space, in fact the newest versions of The Quill comes with some text compression too.

Right now Im focused on improve the Interpreter and for that I plan to convert some Spectrum Adventures... I want to test the Interpreter and in the middle time I will collect some ideas to include on future versions.

Thanks Gus

P.D. How is going the Vb Editor ?
User avatar
XavSnap
Posts: 1941
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: The Quill (ZX81 Version) - Work in Progress

Post by XavSnap »

Hi Gus,
P.D. How is going the Vb Editor ?
The last release is here :http://zx81.ordi5.free.fr/thequill/VB_RES.ZIP, and it's in stand-by.
I'm working on the XuR diassembleur... (RSTxx, and "call"s labels)
Also working on "Zx desassembleur" from http://zx81.ordi5.free.fr/k7/

I had to rebuild the actions script (???).
In this editor, i will inclued some text compression, but not 6bits/7bits text compression...
Only the redoundant word compression.
The world generation is ok...

I will have a look to the "Beep" function, on the Quill !
Have Fun.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Post Reply