Jump to content

1

My old spinning cursor and mousetext demo (apple //e)


No replies to this topic

#1 Keatah OFFLINE  

Keatah

    Quadrunner

  • 5,274 posts

Posted Fri Nov 18, 2011 3:01 AM

Yeh folks, I dug up my old prototype beta practice code for my BBS' spinning cursor mod and mousetext test. This is a special program for me, because, it was written in the entire time I was taking a shit. As in sitting on the toilet. I got out my 3-ring binder notepad and began writing it down. I finished in about 1/2 hour more or less. One of my buddies was doing something else to the BBS and I had a dump to take. So that is that!

This was back in the days of when BBS's and file transfers were two separate programs. You'd first mozy around and read messages and the weekly news from from the sysop and perhaps post something yourself if you were brave enough. That usually took about 10 or 15 minutes as content was not in great quantity. Then, you'd drop to the AE line via a special command. You could not go back to the BBS & message section once you entered the file transfer section. This was more a limitation of the early software that we used. Though soon enough we worked around it.

There are three main sections to it.

1 - a basic Mousetext display. It draws the symbols and characters associated with the keyboard equivalents. It also draws 4 symbols, each made from two other individual characters. This is a simple test. Finally it "rotates" a box by flashing 4 sides in sequence. Also very simple.

2 - a spinning cursor at around 300-baud. This is what a caller would see instead of the boring _. This was hot shit back in the day.

3 - a spinning cursor at 1200-baud, and it accepts real input. This is not a fucking word processor, it doesn't support backspace or arrow keys or any kind of editing and correction. You type to the end of the line and then it clears itself and you type some more. If you don't like it, tough shit. You can hit  to clear the line. You can exit gracefully with  key. Don't type too fast, this in Applesoft basic and it will drop characters!

Speaking of tough shit. I bet this is the only Applesoft Basic program written while making logs, and then flooding the river on which they and their unholy stink drifted away.

The program is full of gosub's and goto's. Lots of text formatting and positioning commands too. It is a quick and dirty proof-of-concept. We later wrote up a pure assembly version that filled a string and presented input to you nicely - for ease of use and simplicity in a BBS environment. It also managed the cursor in a smart fashion; providing full editing capabilities.

Spinning cursors were a simple and effective way to say your BBS had arrived and was technically sophisticated. Some of the best wares came from boards set-up this way.

Well, we did versions where the spinning cursor could indicate disk access, or free space, or error rate during transfer, or the presence or absence of the SYSOP. Things like that. Some versions derived their RPM or spin-rate based on the timing of the UART in the modem and/or clock card. That was done for stability and "solidness". We kept that mofo cursor spinning regardless of what the user and the system were doing!

I have posted two versions:
1- The AppleSoft Basic version that you can read.
2- The same program, but compiled with Einstein Compiler.

Both versions are on the DOS.dsk in the ZIP file I posted. You can load it up in AppleWin or do whatever the fuck you want with it. I also posted the Einstein Compiler and Beagle Bros. COMPACT (from D-Code disk) for your experimentation.

I ran the Basic listing through COMPACT from Beagle Bros. And it got shrunked down a few hundred bytes. Then I ran it through The Einstein Compiler, this produced a huge speed increase. But still not as good as the 50-byte routines we did by hand as the final product.

Well, I present to you what is probably the only program in the entire world that was written in its entirety while the author was taking a shit!

  1  PR# 3
7  PRINT "@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _"
10  PRINT : INVERSE : PRINT  CHR$ (27);
20  FOR A = 64 TO 95
30  PRINT  CHR$ (A);: NORMAL : PRINT " ";: INVERSE
40  NEXT
43  NORMAL : PRINT : PRINT : INVERSE
45  PRINT "FG";: NORMAL : PRINT " ";: INVERSE : PRINT "XY";: NORMAL : PRINT " ";: INVERSE : PRINT "Z^";
47  NORMAL : PRINT " ";: INVERSE : PRINT "Z\_";
50  PRINT : FOR A = 1 TO 300
55  VTAB 7: PRINT "_": VTAB 7: NORMAL : PRINT "_": INVERSE : VTAB 7: PRINT "Z": VTAB 7: PRINT "L"
65  NEXT
66  VTAB 7: HTAB 1: PRINT " "
70  PRINT  CHR$ (24): NORMAL
76  VTAB 7: HTAB 1: PRINT " "
80  FOR B = 1 TO 10
85  VTAB 7: GOSUB 186: PRINT ">|": VTAB 7: GOSUB 186: PRINT ">\": VTAB 7 : GOSUB 186: PRINT ">-": VTAB 7: GOSUB 186: PRINT ">/"
100  NEXT
150  VTAB 7: PRINT "  "
160  GOTO 320
186  FOR X = 1 TO 70: NEXT
190  RETURN
320  NORMAL : PRINT  CHR$ (24):H = 1:V = 7
330  VTAB 7: HTAB 1: PRINT ">"
350  GOSUB 900
355  GOSUB 700
360  IF K < 128 THEN 350
365  IF K = 155 THEN 840
370  IF K = 141 THEN  GOTO 950
380 H = H + 1
385  IF H = 80 THEN  GOTO 950
400  VTAB V: HTAB H: PRINT A$;
409  POKE  - 16368,0
499  GOTO 350
700  VTAB V: HTAB H + 1: PRINT "|": GOSUB 910: VTAB V: HTAB H + 1: PRINT "\": GOSUB 910: VTAB V: HTAB H + 1: PRINT "-": GOSUB 910: VTAB V: HTAB H + 1: PRINT "/"
720  RETURN
840  HTAB 1: VTAB 7: FOR F = 1 TO 80: PRINT " ";: NEXT
843  POKE  - 16368,0
850  GOTO 999
900 K =  PEEK ( - 16384):A$ =  CHR$ (K): RETURN
910  FOR X = 1 TO 15: NEXT : RETURN
950  VTAB V: FOR C = 1 TO 80: HTAB C: PRINT " ";: NEXT
952 H = 1
954  POKE  - 16368,0
955  GOTO 330
999  END

If you don't want to download the files because you're scared of infecting yo'emulator, then just copy and paste the sucker into AppleWin and run it thataway.

Have fun!

Attached Files


Edited by Keatah, Fri Nov 18, 2011 3:08 AM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users