[comp.sys.zenith.z100] CED100 hacks

GUBBINS@RADC-TOPS20.ARPA (Gern) (03/16/89)

At the request of several persons, I finally got around to looking at
the CED100 code.  It is not too readable.   Aside from trying to pretty
up the code formatting, Capitializing responses, etc. I did a minor hack
to easily allow the changing of the CLEAR LINE key and FILENAME COMPLETION
KEY.   Note that the program as is and as it was uses ESC key as a CLEAR LINE
and LINE FEED key as a FILENAME COMPLETION.   Both key values must be
different.  So if you want to use the ESC key to do the FILENAME COMPLETION
like on a DEC TOPS20, set 'clear_line  equ  18h' for CTRL/X or what ever
you like and 'complete_key  equ  1bh'.  Note that CTRL/U (NAK) also
performs a CLEAR LINE already so if you don't want another key as the CTRL/X
example above, set 'clear_line  equ  15h'.

The top lines of the code now read as follows:
(I only put the 'Gern' line in so I know what copy version I am dealing
with in the future)

; CED100.ASM
; Zenith Z-100 Command Line Editor With History And Filename Completion
; Disassembled from PC version and major hacks by Rob Logan
; Minor hacks by Gern  15-MAR-89

Add these two lines to the EQUs at the top of the code:

clear_line	equ	1bh		; ASCII of key to clear line
complete_key	equ	0ah		; ASCII of key for filename complete


Change this segment of code to this:

handle_control_char:
	.switch al
	.case BS
	  call	handle_back_space
	.break
	.case clear_line
	  call	handle_escape
	.break
	.case NAK
	  call	handle_escape
	.break
	.case complete_key
	  call	key_kp0
	.break
	.other
	  call	handle_printable
	.endswitch
	ret


Cheers,
Gern
-------

nelson@sun.soe.clarkson.edu (Russ Nelson) (03/16/89)

Whadda you mean "It is not too readable."?  I spent quite a bit of
time after disassembling Rob's hack converting the code from
label-every-ten-lines to one-label-at-the-beginning.  With those
macros it's practically a high level language!  Sheesh!  Try to do a
guy a favor!
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
If you can, help others.
If you can't, at least don't hurt others--the Dalai Lama

GUBBINS@RADC-TOPS20.ARPA (Gern) (03/17/89)

Russ,

First, I was not informed that anyone other than Rob worked on the code,
since generally neither of you or the rest of the Great Clarkson Z-100
Hackers EVER puts your names on trivial hacks.

It is exactly those macros making-it-into-an-almost-high-level-language
that makes it unreadable  (-: .    What ever happened to straight MASM
code with a little macro here or there for convenience?

I mean:

	%out stack underflow
	.$top = .$top-1
	.$get	x,%.$top
	@j&type	lab
	jmp	d@&label
	.$br	z,%.lnum,p3
	.if dl a line_length
	.dowhl al ne ' '
	.while al ne HT
	.while al ne CR
	.enddo
	.do
	.or <al e ' '> <al e HT>
	inc	si
	mov	al,[si]
	.enddo


does not look like the 8086 assembly that I know a little about (except
for 2.5 lines of the above).

Since you also worked on it, any hints on how to add pathname completion
to the filename completion?   That is:  Give part of a path, hit the
completion key, it finshes what it can (BEEPs), and waits for further
input.

Or is the HISTORY program what should replace CED100?

Cheers,
Gern
-------

rob@sun.soe.clarkson.edu (Rob Logan) (03/17/89)

> does not look like the 8086 assembly that I know a little about (except
> for 2.5 lines of the above).

gee...  I thought Russ's labels were kind of fun.  Dj took this to the
extream with an asm preprocessor that he called tabuler. That was cool..

			Rob

GUBBINS@RADC-TOPS20.ARPA (Gern) (03/17/89)

Rob, Russ, DJ, etc.,

For history's and thankability's sake - who did what to CED100.ASM (as
it is called now)?   From what I have on it - CED was a PC Only PD program
distributed in COM form only.   I got the Z-100itized ASM from Rob
and Rob said he added enhacements, like the filename completetion, CTRL/U,
etc.  It is still obvious (although very slightly), that the ASM code
came from a disassembler.  The DOC file was the original PC version.

Who dissembled it?
Who High-level-constructed it?
Who Z-100itized it?
Who added filename completion?
Who added CTRL/U and Clear Line (ESC)?
What other enhancements are there that I don't know about that was never
  documented?

It is a burden trying to keep Z-100 software documented, but I bare with
it...  (-:

Gern
-------

koziarzw@RADC-LONEX.ARPA (Walter Koziarz) (03/27/89)

Date: Wed 15 Mar 89 15:19:02-EST
From: Gern <GUBBINS@RADC-TOPS20.ARPA>
Subject: CED100 hacks
To: INFO-HZ100@RADC-TOPS20.ARPA

At the request of several persons, I finally got around to looking at
the CED100 code.  It is not too readable.   Aside from trying to pretty
up the code formatting, Capitializing responses, etc. I did a minor hack
to easily allow the changing of the CLEAR LINE key and FILENAME COMPLETION
KEY.   Note that the program as is and as it was uses ESC key as a CLEAR LINE
and LINE FEED key as a FILENAME COMPLETION.   Both key values must be
different.  So if you want to use the ESC key to do the FILENAME COMPLETION
like on a DEC TOPS20, set 'clear_line  equ  18h' for CTRL/X or what ever
you like and 'complete_key  equ  1bh'.  Note that CTRL/U (NAK) also
performs a CLEAR LINE already so if you don't want another key as the CTRL/X
example above, set 'clear_line  equ  15h'.

The top lines of the code now read as follows:
(I only put the 'Gern' line in so I know what copy version I am dealing
with in the future)

; CED100.ASM
; Zenith Z-100 Command Line Editor With History And Filename Completion
; Disassembled from PC version and major hacks by Rob Logan
; Minor hacks by Gern  15-MAR-89

Add these two lines to the EQUs at the top of the code:

clear_line	equ	1bh		; ASCII of key to clear line
complete_key	equ	0ah		; ASCII of key for filename complete


Change this segment of code to this:

handle_control_char:
	.switch al
	.case BS
	  call	handle_back_space
	.break
	.case clear_line
	  call	handle_escape
	.break
	.case NAK
	  call	handle_escape
	.break
	.case complete_key
	  call	key_kp0
	.break
	.other
	  call	handle_printable
	.endswitch
	ret


Cheers,
Gern
-------

Comment by: koziarzw                           Date: Mon, 27 Mar 89 08:53:46 EST

After making the change from 'LINEFEED' as the complete-the-filename key
to 'ESC' the linefeed key no longer causes the computer to perform a linefeed.
The key causes a '^J' to appear on the monitor rather than a linefeed to
occur.  Is there more to change?  Thanks.

Walt K.
-------