Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site ccivax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!rochester!ritcv!ccivax!rb From: rb@ccivax.UUCP (rex ballard) Newsgroups: net.lang.forth,net.micro Subject: Re: Does anyone have a simple screen editor written in forth? Message-ID: <276@ccivax.UUCP> Date: Fri, 20-Sep-85 21:16:08 EDT Article-I.D.: ccivax.276 Posted: Fri Sep 20 21:16:08 1985 Date-Received: Wed, 25-Sep-85 03:34:35 EDT References: <216@tekig5.UUCP> Distribution: net Organization: CCI Telephony Systems Group, Rochester NY Lines: 45 Xref: watmath net.lang.forth:297 net.micro:12079 > Brodie's ideas are for the birds. (from the book Thinking Forth) I for one > think writing my code in 1k blocks is stupid. >I really can't believe that variable length files promote bad code. Is it possible you have never seen some of the 'C' programming nightmeres or assembler atrocities that come with variable length files? Variable length files let programmers get into some really bad habits like 200 lines between an 'if' and an 'else'! Add to that some loops, some cases, and some 'do forever' loops, and you can have a masterpiece in GIGO. The first version I used had 512 byte block (32x16) screens. Most of my current work is in 'C', but I still have a very 'screen oriented' dialect. I have actually recommended a 'FORTH for C programmers' seminar, just in the hopes that some good habits would rub off. I can't say I'm fanatically fond of 'screens' either, but given that a series of very small definitions can be written in just a few lines each, it is not that hard to live with. It might be nice to have a choice of format's though. One trick that does work is to define newlines, linefeeds... as :;, but it adds to your dictionary space and execution time if you let them appear inside definitions (makes beautification difficult). One option I have worked with was a CP/M version that would let you 'Save' your last definition or the text of the commands entered since the last 'Save', whichever came last, similar to a 'history' command. This meant that you could try various definitions, and when you got a good one, 'Save' it. It involved redefining the line enter definition to CMOVE TIP into a block. You could go back later and add the documentation. I normally avoid getting involved in FORTH discussions, because FORTH people tend to get a little too religeous. Just mention words like subroutine threaded code (very fast on a 6809), or 'infix preprocessor' or even 'object oriented vocabularies', or even binary format files, and you can be called a heritic and a FIG meeting. Still, forth entails a lot of very powerful concepts - many, thanks to Brodie - that are the basic foundations of any fourth generation language (reading 'Forth meets Smalltalk' shows just how close they really are). One very powerful concept is that you can't mainain it if you can't see it. These statements of heresy and all other opinions expressed have nothing in any way to do with Computer Consoles Inc. or it's employees. Brought to you by Super Global Mega Corp .com