I remember that before my Multipak crashed eons ago I had an application that made Windows like GUI interface programing in BASIC for the CoCo possible, I do not recall the name of the apllication though so does anyone? Man what I learned in the CoCo has been invaluable as it was a machine that just so ahead of the curve. Many of the commands used in that program can be seen in Microsoft Visual Basic itself such as Event trapping and so on…
This post was submitted by PunkMaister.




Been a long time since I looked up the commands, but programs that come to mind are Graphics Express and Pixel Blaster. IIRC, the features of these programs could both be called up straight from DECB.
Hope that’s a help.
- “Retro Rick”.
Hi Fellow coconuts.
By some chance your not thinking of Window Master By Cer-Comp. I also have a Basic program that does windows also in Basic. Will have to look thru my archive again and find the name.
laters
Briza
Yes that’s the one Robert Gault was kind enough to even provide me a Zipped Disk image copy. And again the look, feel and structure of it is identical to that of Visual Basic! So much so that I wonder if some of the developers of VB worked before at Cercomp…
Maybe the programmer of Window Master Bill Vergonna went off and helped create Visual Basic. or the programmers of Visual Basic were old time coco users and pinched his style for it.
laters
Briza
I suspect they were simply users of Window Master. Later on, when these guys were asked to design their own interface, Window Master came to mind, and they thought that layout was a practical way to go. I actually remember writing some of my own programs this way.
Did I read that right? Is Window Master a GUI based IDE? Can a whole program be created with it? What kind of code or program does it create?
Here is a sample of sf Window Master Basic source code:
5 WINDOW CLOSE 65:CLS 0
EN OFF: RUN”FINDER.BAS”
6 IF PEEK(&HE6)=2 THEN HP=2 ELSE HP=1
10 FC=3:BC=0
11 NF$=”GFXTEST.PIC”
15 PW=1:PD=3: ‘ PEN WIDTH/DEPTH
20 HCOLOR FC,BC
25 PEN PW,PD
26 PEN ON
27 MENU NEW “OPTIONS”,”CLEAR SCREEN”,”DOTS”,”BOX”,”CIRCLE”,”LINE”,”QUIT”,”(-”,”LOAD”,”SAVE”
30 WINDOW OPEN 1,74,22,1,00,1,0,3,2,0,”WINDOW GRAPHICS DEMO”
32 HCOLOR FC,BC:PROTECT 0:PEN OFF:HLINE (110/HP,4)-(130/HP,12),PSET,BF:PROTECT3:PEN ON
35 PROTECT 0: HSET(HP,4,0):PEN PW,PD: HSET(340,4,FC): PROTECT 3
40 MW=1:’ MY WINDOW #=1
50 ON MENU GOSUB 540
70 MENU ON
80 PROTECT 3
90 ON DIALOG GOSUB 630: DIALOG ON
100 WINDOW BUTTON 1,12,1,0,0,17,”FOREGROUND”
110 WINDOW BUTTON 2,12,1,0,9,18,” COLOR”
120 WINDOW BUTTON 3,2,1,32,6,19,” ”
130 WINDOW BUTTON 4,2,1,34,11,18,” ”
140 WINDOW BUTTON 5,2,1,34,0,17,” ”
150 WINDOW BUTTON 6,2,1,36,6,20,” ”
160 WINDOW ICON 1,1,1,20,0,3
170 PRINTCHR$(16):ON MOUSE GOSUB 250:MOUSE ON
200 MS=1:’SET DOTS
210 MM=MENU(2):’ MY MENU NUMBER
220 ‘TIMER ON
230 ON BRK GOTO 620
240 GOTO 240
250 DIALOG OFF:MENU OFF:A=MOUSE(0):X=MOUSE(7):Y=MOUSE(8)-27: IF MOUSE(9)MW THEN 280 ELSE IF X<0 THEN X=0
260 IF Y<0 THEN 280
270 PEN OFF:WINDOW ATTR 3:ON MS GOSUB 290,320,380,440
280 DIALOG ON:MENU ON:RETURN
290 PEN ON:WINDOW ATTR 0:HSET(X,Y,FC):' DOT
300 GOSUB 500:IF A=0 THEN RETURN ELSE HLINE(X,Y)-(X2,Y2),PSET
310 X=X2:Y=Y2:GOTO 300
320 GOSUB 500:IF A=0 THEN 360:' KEEP CIRCLE
330 HLINE(X,Y)-(X2,Y2),PSET,B
340 HLINE(X,Y)-(X2,Y2),PSET,B
350 GOTO 320
360 PEN ON:WINDOW ATTR 0:HLINE(X,Y)-(X2,Y2),PSET,B
370 RETURN
380 GOSUB 500 :IF A=0 THEN 420 KEEP CIRCLE
390 HCIRCLE(X,Y),ABS(X2-X),FC
400 HCIRCLE(X,Y),ABS(X2-X),FC
410 GOTO 380
420 PEN ON:WINDOW ATTR 0:HCIRCLE(X,Y),ABS(X2-X),FC
430 RETURN
440 GOSUB 500:IF A=0 THEN 480
450 HLINE(X,Y)-(X2,Y2),PSET
460 HLINE(X,Y)-(X2,Y2),PSET
470 GOTO 440
480 PEN ON:WINDOW ATTR 0:HLINE(X,Y)-(X2,Y2),PSET
490 RETURN
500 A=MOUSE(0):IF MOUSE(9)MW THEN RETURN ELSE X2=MOUSE(7):Y2=MOUSE(8)-27
510 IF X2<0 THEN X2=0
520 IF Y2<0 THEN Y2=00
530 RETURN
540 IF MENU(0)MM THEN RETURN:ELSE:MOUSE OFF:DIALOG OFF:FOR I=1 TO 5:MENU RESETC MM,I:NEXT
550 ON MENU(1) GOSUB 570,580,590,600,610,620,620,621,625
560 MENU SETC MM,MS+1:MOUSE ON:DIALOG ON:RETURN
570 CLS:RETURN
580 MS=1:RETURN
590 MS=2:RETURN
600 MS=3:RETURN
610 MS=4:RETURN
620 WINDOW CLOSE:MENU CLEAR:PEN OFF:RUN”FINDER.BAS”
621 WINDOW OPEN 255,52,5,9,90,1,0,3,2,0,”LOAD FILE”
622 PRINT “ENTER FILE TO LOAD”:EDIT FIELD 1,16,1,25,27,0,NF$
623 DN=DIALOG(0): IF DN=0 THEN 623 ELSE IF DN6 THEN 623
624 NF$=FEDIT$(1):WINDOW CLOSE:PRINT CHR$(27);”FWL”;NF$: RETURN
625 WINDOW OPEN 255,52,5,9,90,1,0,3,2,0,”SAVE FILE”
626 PRINT “ENTER FILE TO SAVE”:EDIT FIELD 1,16,1,25,27,0,NF$
627 DN=DIALOG(0): IF DN=0 THEN 627 ELSE IF DN6 THEN 627
628 NF$=FEDIT$(1):WINDOW CLOSE:PRINT CHR$(27);”FWS”;NF$: RETURN
630 MENU OFF:MOUSE OFF:WHAT= DIALOG(0): IF WHAT=4 THEN WINDOW CLOSE DIALOG(4):MENU CLEAR
640 IF WHAT1 THEN 680 ELSE BN=DIALOG(1):IF BN<3 THEN 645
641 IF BN=3 THEN PW=PW-1 ELSE IF BN=4 THEN PD=PD+1 ELSE IF BN=5 THEN PD=PD-1 ELSE PW=PW+1
642 IF PW<1 THEN PW=1 ELSE IF PD1 THEN CLS
690 MOUSE ON:MENU ON:RETURN
And look at how similar it is to VB code.
Private Sub Form_Load()
Timer1.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Form_Click()
Beep
End Sub
Private Sub Timer1_Timer()
For I = 3 To 7
For J = 2 To 6
For S = 0 To 3
For R = 0 To 3
A = 0: B = 800: C = 0: D = 640
Line1.X1 = Int(A): Line1.X2 = Int(B): Line1.Y1 = Int(C): Line1.Y2 = Int(D)
Line1.BorderColor = Int(R)
Next R
Next S
Next J
Next I
End Sub
I think it was Coco Max, there was Deskmate as well. I used both but I think Coco Max was a graphic program that looked allot like a Apple Mac.