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. -------