My son turned me on to the online book The Art of Unix Programming. It is really good. I’m having a great time using IMUbane to program and run my EARL program. Easy Assemble Robot Language. It edits and runs a small program to move a < and > character along a line. I’ve been fixing little things in IMUrbane to make it match my latest urbane. I noticed that quote comments crashed the system. I found a place where I had tried to fix it. I tested for $83. I called it the remark keyword. When I assembled and tried to run it, everything worked except the where I messed with the quote keyword. I went back to the first part where I worked with files and the screen. It worked. It was very fancy. I went back to where I tried to put in the multiple significant character feature, quote remarks crashed. Remark keywords worked and I did nothing about them, so I quit checking for the quote keyword. Everything seemed to be working. I have this debug feature where I can see crunched lines above the cursor and uncrunched lines below. and the first few multiple character names at the bottom. Multiple character names were being crunched to two letters before and after the remark keywords. I couldn’t make heads or tails of how I had made the fancy fix. The online book my son turned me on to talked about it. It said that if it was too complicated it would be hard to add features. That is exactly what I have done. But it looks and works fine. I think that I will leave it. I am so overconfident that I want to move on to a coco3 version. I think that I will talk to my son about it.
I was updating my menus and realized that I had never published my working EDTASM6309 version. I got back to where I was before I abandoned my urbane file in lo-mem version. In fact I even fixed the quote comment I mentioned earlier. Now when I uncrunch a line only the single quote appears with no colon before it. Hooray. So it’s back to my working version. Of course when I put them on a virtual disk they didn’t work. The last basic file kept giving me an undefined line error. There was an exec command in the line. That’s where I usually find that error. Many hours later I realized it really was an undefined line error. I had renumbered the file without updating the targets. Then I kept fixing files on the coco instead of fixing them in notepad++. As soon as I reloaded my files, the changes disappeared. Oh well. I’m going great guns now. I had forgotten how the programs worked. I decided to update the readme file as I relearned how the programs worked. Lo and behold I had already done that when I was working on them before. I’ve got the working version working again. Now I’ve just got to figure out how to put it here in my blog.
I’m almost back to where I was when decided to go back to urbane file in hi-mem. All I have to do is connect edline with edfile and handle when the new line is the same length as the old line and when it is longer. I go plunging ahead and then I go back and rewrite something I thought I was done with. Right now I’m fighting the urge to rewrite kbd and edline. Kbd has this nasty habit of pausing every once in a while. And I want to make edline go up a screen line like notepad++ that I’m using to work on my .asm and .bas files instead of a file line like my urbane editor does now. I think it would be quite easy. One thing I have to fix is my fancy uncrunch routine which leaves the colon before the comment starting single quote. Right now it will add another colon every time I crunch then uncrunch. But first I’ve got to get back to where I was. And I am so thankful that my blog is working again. I was so despondent when it broke.
I’ve decided to go back to my urbane file in hi-mem. Nothing needs to be changed in edline. I’ve just started in edfile. Very little needs to be changed. If it’s worth doing it’s worth doing right. I have evening duo calls with my son. It went well for a while. He was busy and eventually I was just talking on and on. He still updated the certificate date on this blog. He is a real blessing. My wife is another blessing. I had this nasty sore patch on my foot. She carefully trimmed away the dead skin and applied this salve we got from the doctor. It’s nice to have doctors who help us out, too. Now that I’ve done my thanks I think that I’ll go back to working on my urbane for the coco.
I’ve reached a new decision on what kind of labels to use. I’ve decided to use the abilities of lwasm since lwasm is available to most everyone. You can have labels of any length and local labels can have any length, too. They are case-sensitive. It makes commenting my program a lot easier. I had noticed that a lot of my comments were just explaining what the cryptic labels meant. I’m copying and pasting code from my original system of programs which I wrote with an assembly language system that had labels with a maximum of six characters. The system I used when I did cross assembly years ago is case insensitive. It would be even harder to move what I had to there. I was going to go with the most restrictive. Six character labels, case insensitive. and no local labels. Supposedly people were going to rush to look it. I’m amazed how great it feels to use what lwasm has available. When I use my old cross assembler it says it is deprecated, use lwasm. I guess that’s the new standard. So far I’ve finished the line editing, edline and have made a good start on screen. I’m having a great time.
I recovered the old repeating kbd. I guess I now need to decide if I want urbane to be perfect or just for me. I’ve pretty much decided to live with a kbd routine that pauses a little now and then. I think that means that I’ll go ahead and go with the system which I may finish in this lifetime. I think that’s what I really want so why not. I’ll go for it.
After all the problems I had with Hexi I figured that I would be a while on Hexo. Not so. My output from Hexi is D so I used it for the input to Hexo. I used my coco answer for standard out chrout. I was almost done before I started. The time I spent on Hexi and Hexo wasn’t wasted however. I decided that I would cut back on my immediate goal and get something I can finish for a change. I’m going to leave the Urbane source in low memory. With that change load, save, restore, data, read, for, to, and step will work pretty much as is. About all that is left is go to and go sub. I think that I will also let the buggy repeat kbd routine stay as is with its occasional pauses. When I was using the working version I rarely noticed. Fortunately my son Ira got me using git-hub so it shouldn’t be to hard to retrieve the old kbd. Maybe I’ll wait a little bit before I plunge back in. Right now the urbane source code is in high ram behind the ram. That gives the user almost 30K for his urbane source.
Hex to binary. It seemed like I had been working on it forever. Finally I got it working. I had a zillion debug statements where I stored a byte or word directly to the screen memory just to see what they were. It was early morning. I was taking the debug statements out one at a time. U was supposed to have zero in it. I tried to store it on the screen. Inverse @@. Just like a charm. Another place D was supposed to have a zero in it. Plain @@. Boo. I just figured it out. I paused after the U. The D was from the previous run. I can hardly wait to try it out. Wish me luck.
Done with edline. When I added better comments I noticed that the exits of ldel and lbksp were identical. Then I noticed that by adding one instruction I could go to the main loop in lbksp instead of just the lbksp exit routine. Meant to be.
I had trouble staying asleep this morning. I’m rewriting my project for LWTools. My mind was sharp. Everything I rewrote seemed to work. I’m getting rid of the local labels. I’m using labels starting with K for kbd. L for edLine. S for screen. F for edFile. C for crunch. And U for Uncrunch. I’m keeping the label length down to six. Quite a challenge. When I get done it should work with almost any assembly language system. From Tandy’s original EDTASM (well maybe not) to LWTools I finally realized that I had forgotten to take my evening pills. Oh well.