Jump to content
IGNORED

[AQUARIUS] BASIC Programming on the Aquarius


jaybird3rd

Recommended Posts

I was flicking reddit's random button when I dropped in on r/retrobattlestations.

Curious what I would I find I searched Aquarius. Just two months ago they were all over the Aquarius.

Apparently they had a BASIC programming challenge and this was the result.

REM BASIC Week 2: Halloween Boogaloo
110 REM http://reddit.com/r/RetroBattlestations
120 REM written by FozzTexx
130 REM Aquarius port started by FozzTexx
140 REM ----
150 REM You probably don't want to type any REM statements or spaces
160 REM in order to conserve as much of the RAM as possible
170 REM ----
200 REM Clear screen and setup variables
210 CL =40 : RW=24 : WL=0
220 PRINT CHR$(11);

300 REM Skip background but setup variables it would have used
310 GOSUB 1510 : WH=NR
320 FOR I = 1 TO WH
330 GOSUB 1510
340 IF WL < LEN(SP$) THEN WL = LEN(SP$)
350 NEXT

360 NR = RW : KW = CL : KF = 0 : WD = -2
370 X = 2:KF = X + WD : IF RND(1) > .5 THEN X = CL - WD - 2 : KF = 0
380 GOSUB 1510 : Y = RW - NR : KW = CL - WD - 4
390 GOSUB 1510
400 GOSUB 2010
410 Y = Y + 1 : IF T$ = "SP" GOTO 390

500 REM Load sprites into variables and get witch length
560 GOSUB 1510:BT$(0) = SP$:BE$ = SE$:BC = SC
570 GOSUB 1510:BT$(1) = SP$
580 GOSUB 1510:BT$(2) = SP$

610 NB = 3 :WX = -WL
620 FOR I = 1 TO NB
630 BX(I) = INT(RND(1) * (KW - BC))
635 BY(I) = INT(RND(1) * ((RW - 4 - NR / 2) / NB)) * NB + I + 1
640 BW(I) = INT(RND(1) * 2):BF(I) = INT(RND(1) * 9)
650 NEXT I
660 FOR I = 1 TO NB
670 X= BX(I) : Y = BY(I) : rem SP$=BT$(2) : GOSUB 2010
680 Y = INT(BF(I) / 3) = INT((BF(I) / 3 - Y) * 3 + .05)
690 X = X + BX(I) + KF :Y = Y + BY(I):SP$ = BT$(2) :GOSUB 2010
700 BW(I) = BW(I) + 1:IF BW(I) > 1 THEN BW(I) = 0
710 BF(I) = INT(RND(1) * 9)
720 Y = INT(BF(I) / 3) = INT((BF(I) / 3 - Y) * 3 + .05)
730 X = X + BX(I) + KF :Y = Y + BY(I):SP$ = BT$(BW(I)):GOSUB 2010

740 IF WX = -WL AND WH + NR < RW AND RND(1) * 50 < 2 THEN WX = CL - 1
750 IF WX > -WL THEN GOSUB 1005

780 NEXT I
790 GOTO 660

900 END

1000 REM Draw witchy - restorin data
1005 RESTORE : READ SP$ : READ SP$
1010 WX = WX - 1
1020 Y=1
1050 GOSUB 1510
1060 TL = LEN(SP$)
1070 IF WX < 1 AND (WX+TL) > 0 THEN SP$ = MID$( SP$, WX*-1+1, WX+TL)
1080 IF WX < 1 AND (WX+TL) < 1 THEN SP$ = " "
1090 IF (WX + WL) > CL THEN SP$ = MID$( SP$, 1, CL-WX)+" "
1100 IF LEN(SP$) = 0 THEN GOTO 1050
1110 X = WX : IF X < 1 THEN X = 1
1120 GOSUB 2010
1130 Y = Y + 1
1140 IF Y > WH THEN RETURN
1150 GOTO 1050


1500 REM Load a sprite from DATA into a string
1510 SP$ = "":SE$ = "":SR = 0:SC = 0
1520 READ T$,S$
1525 IF T$="SD" THEN NR = VAL(S$) : RETURN
1530 SP$ = SP$ + S$:SR = SR + 1:IF LEN(S$) > SC THEN SC = LEN(S$)
1580 RETURN

2000 REM Draw sprite in SP$ at X,Y
2010 IF T$="SD" THEN RETURN
2020 M = Y * CL + X:M = M + 12287
2030 FOR J=1 TO LEN(SP$)
2040 TMP$ = MID$ (SP$, J, 1)
2050 CH = ASC( TMP$ )
2060 IF CH = 13 THEN M= M + CL : NEXT
2070 POKE M+J, CH
2080 NEXT
2090 RETURN

4170 DATA SD,7
4180 DATA SP," , "
4190 DATA SP," _/(_ "
4200 DATA SP," {\\ "
4210 DATA SP," /;_) "
4220 DATA SP,"='/ <==<< "
4230 DATA SP," \__\ "
4240 DATA SE," `` "
5000 DATA SD,15
5010 DATA SP," /\"
5020 DATA SP," //\\"
5030 DATA SP," / -- \"
5040 DATA SP," / \/ \"
5050 DATA SP," /________\"
5060 DATA SP," l ___ l"
5070 DATA SP," ll l ll:::"
5080 DATA SP," /\ll-+-llIII"
5090 DATA SP," / \l_l_ll \"
5100 DATA SP," / () \ l____"
5110 DATA SP,"/_____ l ++l"
5120 DATA SP," l +--+ l ++l"
5130 DATA SP," l l l l ++l"
5140 DATA SP," l lo l l___l"
5150 DATA SE," l___l__l_l"

5250 DATA SL,"^v^"
5260 DATA SL,"-v-"
5270 DATA SL," "

Tis the season!

 

Here's the GITHub where those guys post their code.

 

Have fun.

Did you make any changes to this, because especially the data looks different and it doesn't work? https://github.com/FozzTexx/HalloweenBoogaloo/blob/master/Aquarius.txt

Link to comment
Share on other sites

  • 3 weeks later...

I don't want the bootloader to be a maintenance headache either, so after the 1541 features (which should have been possible in the first place) the rest should indeed being done by small bits of inline assembly. A kind of assembly database(in basic data) were everyone can put in his programmed features, would be nice though!

I have created a new version of the bootloader; BootLoader BASIC.

Now you can create a ROM from the Virtual Aquarius, without external scripts.

I have opened a new post here.

 

Regs,

Martin

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Here's a little Circle drawing program I picked up off the MC10 Yahoo group mailing list and modified for Aquarius.

Put on your favorite music, throttle up your emulator speed and enjoy.

 

This GitHUB of BASIC code was also pointed to: https://github.com/FozzTexx/vectro

new

REM Circle PSET Visualizer
5  R=20 : gosub 2000 : goto 1000 
10 'XC = CENTER X COORDINATE
20 'YC = CENTER Y COORDINATE
30 'R=RADIUS
 
 
50 X=0:Y=R:D=1-R:DE=3:DSE=5-2*R:DDD=DSE-DE:IF R=0 THEN RETURN
60 PSET(XC-R,YC):PSET(XC+R,YC):PSET(XC,YC-R):PSET(XC,YC+R)
70 IF Y<=X THEN RETURN
75 if Y<=X THEN 1000
80 X=X+1:IF D<0 THEN D=D+DE:DE=DE+2:GOTO100
90 D=D+DE+DDD:DE=DE+2:DDD=DDD+2:Y=Y-1
 
100 PSET(XC-X,YC-Y):PSET(XC-Y,YC-X)
110 PSET(XC+Y,YC-X):PSET(XC+X,YC-Y)
120 PSET(XC-X,YC+Y):PSET(XC-Y,YC+X)
130 PSET(XC-Y,YC+X): PSET(XC+Y,YC+X):
140 PSET(XC+X,YC+Y):goto 75
 
1000 XC=80/2:YC=72/2
1010 R=R+int(10*RND(1)-5)
1020 if R <1 then R =30
1030 if R >25 then R=1
1040 C=int(5*rnd(1)+1)
1050 if C=5 then gosub 2000
1060 GOSUB 50:GOTO 100
 
2000 print chr$(11): return

run
Edited by Pset
Link to comment
Share on other sites

  • 6 months later...

BASIC Week 3: Under the Sea kicks off tomorrow over at r/retrobattlestations.

 

I was trying to fix the program up (using the IBM PC source) on the Virtual Aquarius but I'm getting Out of String space error in line 2030 and 2050, just for starters.

Seems the Aquarius can't hold a string greater than 25 characters and this code is calling for something with 28 when the error hits.

Any ideas on this or anyone feel up to the challenge of converting this old code?

Link to comment
Share on other sites

Nope,

 

A$="1234578901234567890123456" works with 25 characters

followed by

 

A$=A$+"7" or

 

A$="12345789012345678901234567" are both OS error at 26 characters

 

a$="abcdefghijklnopqrstuvwxyz" is also an OS error with 26 characters.

 

Does it work different on the hardware?

Edited by Pset
Link to comment
Share on other sites

I just tried it on my Aquarius (an "S2" version). Aquaman is correct: Aquarius BASIC allows strings of up to 50 characters in length. Using the built-in BASIC, and without any expanded memory installed, I can go up to 49 characters in a single string ...

 

A$="1234567890123456789012345678901234567890123456789"

... but I get an "?OS Error" when I take it up to 50. I seem to recall that Aquarius BASIC uses null-terminated strings; if so, the $00 at the end of the string would have to be included in the length.

 

Just out of curiosity, what are these large strings intended to do in your program? If you simply need to store data in memory, you should consider using a DATA array instead of strings.

 

I just tried the above line of code in Virtual Aquarius, and it works there, too. I did get an "?OS Error" when I tried to create a second 49-character string, and in fact, once I define a 49-character string, I can only create one other string of one character before I get an "?OS Error":

 

A$="1234567890123456789012345678901234567890123456789"
B$="1"
C$="1"
?OS Error

If I try shortening the strings to 10 characters each, I still get an "?OS Error" when I go over 50 total characters:

 

A$="1234567890"
B$="1234567890"
C$="1234567890"
D$="1234567890"
E$="1234567890"
F$="1"
?OS Error

So perhaps 50 characters is as much string space as we get in Aquarius BASIC, no matter how you slice it up. Adding more memory (a 32K module, in my case) doesn't seem to make a difference. But again, if you're looking to put more data in RAM than can be stored in strings, a DATA array is the way to go.

 

EDIT: You can manually allocate more space for strings with the CLEAR command; see below.

  • Like 1
Link to comment
Share on other sites

I just remembered that within Aquarius Basic 50 is just the default amount, but with using the CLEAR Command you can free up to a maximum of I think 255. So for example CLEAR 70 should makes Strings possible of 70 Characters long.

That's right! I'd forgotten about that, too. I just tried it in Virtual Aquarius:

 

print fre(x)
 1724
clear 255
print fre(x)
 1519
a$="12345678901234567890123456789012"
b$="12345678901234567890123456789012"
c$="12345678901234567890123456789012"
d$="12345678901234567890123456789012"
e$="12345678901234567890123456789012"
f$="12345678901234567890123456789012"
g$="12345678901234567890123456789012"
h$="1234567890123456789012345678901"
i$="1"
?OS Error
print fre(x)
 1465

That's eight strings, 255 characters total, though of course you can divide them up any way you like. Presumably, Mattel limited the default string space to 50 characters to better economize the ~1.7K of free RAM in an unexpanded Aquarius; as you can see, it starts filling up pretty quickly if you load it up with strings. That's when a 32K RAM module comes in handy. ;)

  • Like 1
Link to comment
Share on other sites

Ah, I was trying clear but in the wrong part of the program.

 

I don't know what this program does, I think its supposed to be some kind of undersea escape to the surface before you drown game.

It seems to use concatenation of spaces before the string to simulate movement, the spaces act as a string eraser.

 

I've modified the code, allowing for longer strings, and flipping the coordinates on the LOCATE statements, shortened some lines that Aquarius can't handle, but the result is kind of cryptic.

 

 

Can't seem to find any other system emulator with paste functionality, that works on windows 7 or doesn't have include virus to see what this thing is supposed to do.

 

Maybe I should analyze the code and start from scratch-ish.

 

Here's the current code mess if you want to give it the old Aquarius try. I'll enclose it in spoiler tags to keep things neat.

 

 

100 REM BASIC Week 3: Under the Sea

120 REM written by FozzTexx
130 REM Broken Aquarius version by PSET
140 REM Has been spaghettitized to make it run faster
200 REM Clear screen and setup variables
210 CLS : Clear 255
220 COLS = 24:ROWS = 22:REM Columns and Rows of screen
230 GOSUB 2010:TURTLE$ = SP$:TURTLEWIDTH = SC:TURTLEHEIGHT = SR
240 TURTLEERASE$ = SE$:GOSUB 2010:TURTLEDEAD$ = SP$
250 FOR EE = 1 TO 3:GOSUB 2010:ENEMY$(EE) = SP$
260 ENEMYERASE$(EE) = SE$:ENEMYW(EE) = SC:NEXT
270 GOSUB 2010:GAMEOVER$ = SP$:GOWIDTH = SC:GOHEIGHT = SR
280 AIRMAX = 10:SEA$ = "-_."
290 TURTLEY = 18:SURFACE = 4 : GOSUB 4100
295 SCRE = -10:GOSUB 4510
300 REM Play game
310 LOCATE 1,SURFACE
320 FOR I = 1 TO COLS:PRINT MID$(SEA$, INT(RND(1) * 3) + 1, 1);
325 NEXT
330 GOSUB 5140:GOSUB 6660:GOSUB 6140
340 LASTY = TURTLEY
350 FOR TURTLEX = 1 TO COLS-TURTLEWIDTH
360 IF LASTY <> TURTLEY THEN LOCATE TURTLEX+1,LASTY-1
365 PRINT TURTLEERASE$;
370 FOR BB = 1 TO NUMBUBBLES
380 X = BUBBLEX(BB):Y = INT(BUBBLEY(BB))
390 IF Y <= SURFACE OR Y > ROWS THEN GOTO 450
400 NWY = BUBBLEY(BB) - (ROWS / COLS)
401 TW=TURTLEWIDTH
405 IF X < (TURTLEX + TW - 2) OR X > (TURTLEX + TW + 1) THEN GOTO 430
406 IF Y < TURTLEY - 1 OR Y > TURTLEY + 1 THEN GOTO 430
410 AIR = AIR + 2:IF BUBBLE$(BB) = "O" THEN AIR = AIR + 1
420 GOSUB 4010:NWY = ROWS + COLS
430 IF INT(NWY) <> Y THEN LOCATE X,Y:PRINT " ";:Y = INT(NWY)
435 IF Y > SURFACE AND Y <= ROWS THEN LOCATE X,Y:PRINT BUBBLE$(BB);
440 BUBBLEY(BB) = NWY
450 NEXT
460 FOR FF = 1 TO NUMFOOD
470 X = FOODX(FF):Y = FOODY(FF)
475 TW= TURTLEWIDTH: TX=Turtlex : TY = TurtleY
480 IF X<TX+TW-2 OR X>TX+TW+1 OR Y<TY-1 OR Y>TY+1 THEN GOTO 500
490 LOCATE X+1,Y+1:PRINT " ";:FOODY(FF) = ROWS + COLS/2
500 NEXT
510 FOR EE = 1 TO NUMENEMIES
520 X = INT(ENEMYX(EE)):Y = INT(ENEMYY(EE))
525 IF Y <= SURFACE OR Y > ROWS OR X < 1 OR X > COLS THEN GOTO 620
530 NEWX = ENEMYX(EE) + ENEMYXV(EE):NWY = ENEMYY(EE) + ENEMYYV(EE)
550 IF ENEMYHIT(EE) = 1 THEN GOTO 580
560 IF X < TURTLEX + TURTLEWIDTH - 2 OR X > TURTLEX + TURTLEWIDTH + 1 OR Y < TURTLEY - 1 OR Y > TURTLEY + 1 THEN GOTO 570
570 GOSUB 4010:ENEMYHIT(EE) = 1
580 IF INT(NEWX) = X AND INT(NWY) = Y THEN GOTO 610
590 LOCATE X,Y:PRINT ENEMYERASE$(ENEMYC(EE));
600 Y = INT(NWY) :x = INT(NEWX):IF Y > SURFACE AND Y <= ROWS AND X > 0 AND X <= COLS THEN LOCATE X,Y:PRINT ENEMY$(ENEMYC(EE));
610 ENEMYX(EE) = NEWX:ENEMYY(EE) = NWY
620 NEXT
630 LOCATE TURTLEX,TURTLEY:PRINT TURTLE$;
640 LASTY = TURTLEY:KE$ = INKEY$
650 IF KE$ = "A" OR KE$ = "a" THEN D = -1:GOSUB 3010
660 IF KE$ = "Z" OR KE$ = "z" THEN D = 1: GOSUB 3010
670 IF KE$ = "Q" OR KE$ = "q" THEN END
675 TY=TurtleY: TX=TurtleX :SU=Surface
680 IF TY>SU + 1 AND TX =(COLS / 4)OR TX =(COLS / 4)* 3 THEN GOSUB 4010
690 IF TURTLEY = SURFACE + 1 AND AIR < AIRMAX THEN GOSUB 4100
700 NEXT TURTLEX
710 LOCATE TURTLEX-1,TURTLEY-1:PRINT TURTLEERASE$;
720 GOTO 310
2000 REM Load a sprite from DATA into SP$
2010 SP$ = "":SE$ = "":SR = 0:SC = 0:LAST = 0
2020 READ T$,S$:IF LAST = 0 THEN GOTO 2040
2030 LAST = 5 : SP$ = SP$ + CHR$(31):SE$ = SE$ + CHR$(31)
2035 FOR I = 1 TO LAST:SP$ = SP$ + CHR$(29):SE$ = SE$ + CHR$(29):NEXT I
2040 SP$ = SP$ + S$:SR = SR + 1:LAST = LEN(S$):IF LAST > SC THEN SC = LAST
2050 LAST = 7 : BL$ = ""
2055 FOR I = 1 TO LAST:BL$ = BL$ + " ":NEXT:SE$ = SE$ + BL$
2060 IF T$ <> "SE" THEN GOTO 2020
2070 RETURN
3000 REM Player wants to move turtle up or down
3010 TURTLEY = TURTLEY + D
3020 IF TURTLEY <= SURFACE THEN TURTLEY = SURFACE + 1
3030 IF TURTLEY > ROWS - TURTLEHEIGHT + 1 THEN TURTLEY = ROWS - TURTLEHEIGHT + 1
3040 RETURN
4000 REM Show remaining air
4010 AIR = AIR - 1:IF AIR < 0 THEN AIR = 0
4020 IF AIR > AIRMAX THEN AIR = AIRMAX
4030 LOCATE COLS - 7 - AIRMAX, 2
4040 PRINT "Air: |";
4050 FOR I = 1 TO AIR:PRINT "#";:NEXT
4060 IF AIR < AIRMAX THEN FOR I = AIR + 1 TO AIRMAX:PRINT " ";:NEXT
4070 PRINT "|";
4080 IF AIR = 0 THEN GOTO 4110
4090 RETURN
4100 AIR = AIRMAX:GOTO 4030
4110 FOR I = TURTLEY TO SURFACE + 1 STEP -1
4120 LOCATE TURTLEX,I:PRINT TURTLEDEAD$;
4130 LOCATE TURTLEX,I+1:PRINT USING "&";TURTLEERASE$;
4140 NEXT
4150 LOCATE (COLS - GOWIDTH) / 2,(ROWS - GOHEIGHT) / 2:PRINT GAMEOVER$;
4170 LOCATE 1,ROWS - 2
4180 END
4500 REM Display score
4510 SCRE = SCRE + 10
4520 LOCATE 2,2:PRINT "Score: ";SCRE;
4540 RETURN
5000 REM Setup bubbles
5140 NUMBUBBLES = INT(RND(1) * 3) + 1:FOR BB = 1 TO NUMBUBBLES
5150 BUBBLEX(BB) = INT(RND(1) * COLS) + 1
5155 BUBBLEY(BB) = ROWS - INT(RND(1) * 3)
5160 BUBBLE$(BB) = CHR$(79 + INT(RND(1) * 2) * 32)
5170 NEXT:RETURN
6000 REM Setup enemies
6140 FOR EE = 1 TO NUMENEMIES
6150 X=INT(ENEMYX(EE)):Y = INT(ENEMYY(EE))
6155 IF X > 0 AND X <= COLS AND Y > SURFACE AND Y <= ROWS THEN LOCATE Y,X
6156 PRINT ENEMYERASE$(ENEMYC(EE));
6157 NEXT
6160 NUMENEMIES = INT(RND(1) * 3) + 1:FOR EE = 1 TO NUMENEMIES
6170 ENEMYX(EE)=INT(RND(1)*COLS)+1
6175 ENEMYY(EE)=ROWS-INT(RND(1)*(ROWS - SURFACE))
6180 ENEMYXV(EE) = RND(1)
6185 ENEMYYV(EE) = RND(1) * ((ROWS - SURFACE) / COLS)
6190 ENEMYC(EE) = INT(RND(1) * 3) + 1:ENEMYHIT(EE) = 0
6200 IF ENEMYX(EE) > COLS / 2 THEN ENEMYXV(EE) = - ENEMYXV(EE)
6210 IF ENEMYY(EE) > ROWS / 2 THEN ENEMYYV(EE) = - ENEMYYV(EE)
6220 NEXT:RETURN
6500 REM Setup food
6660 FOR FF=1 TO NUMFOOD
6665 LOCATE FOODX(FF)+1,FOODY(FF)+1:PRINT " ";:NEXT
6670 NUMFOOD = INT(RND(1) * 3) + 1:FOR FF = 1 TO NUMFOOD
6680 FOODX(FF)=INT(RND(1) * COLS) + 1:
6685 FOODY(FF)=ROWS - INT(RND(1) * (ROWS - SURFACE))
6690 FOOD$(FF) = CHR$(120 + INT(RND(1) * 2))
6700 LOCATE FOODX(FF)+1,FOODY(FF)+1:PRINT FOOD$(FF);
6710 NEXT:RETURN
9000 DATA SP," _-%#%#}o"
9010 DATA SE," )"
9020 DATA SE," -OOOO}x"
9030 DATA SE,"^;;^"
9040 DATA SE,"<><"
9050 DATA SE,"$"
9060 DATA SE,"GAME * OVER"

 

 

Edited by Pset
Link to comment
Share on other sites

Ah, I was trying clear but in the wrong part of the program.

 

I don't know what this program does, I think its supposed to be some kind of undersea escape to the surface before you drown game.

It seems to use concatenation of spaces before the string to simulate movement, the spaces act as a string eraser.

 

I've modified the code, allowing for longer strings, and flipping the coordinates on the LOCATE statements, shortened some lines that Aquarius can't handle, but the result is kind of cryptic.

 

 

Can't seem to find any other system emulator with paste functionality, that works on windows 7 or doesn't have include virus to see what this thing is supposed to do.

 

 

For the C64 Version you can try WinVice, this has an Cut and Paste option!

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Thanks to Jay for pointing me to this thread via PM! I guess my first Q is:

 

Is there an Aquarius emulator for Mac? I do not have access to a Windows machine, unfortunately, but I am interested in learning how to program (no knowledge at all) and wanted to start in BASIC for the fun of it. I also do not have a classic computer yet, as I wanted to weigh my options before purchasing an Aquarius, Atari 8-bit, or C64. The Aquarius attracted me because of its seemingly simplicity and, well, Jay's Aquaricart looks awesome! :)

  • Like 2
Link to comment
Share on other sites

Thanks to Jay for pointing me to this thread via PM! I guess my first Q is:

 

Is there an Aquarius emulator for Mac? I do not have access to a Windows machine, unfortunately, but I am interested in learning how to program (no knowledge at all) and wanted to start in BASIC for the fun of it. I also do not have a classic computer yet, as I wanted to weigh my options before purchasing an Aquarius, Atari 8-bit, or C64. The Aquarius attracted me because of its seemingly simplicity and, well, Jay's Aquaricart looks awesome! :)

The best Aquarius emulator is Virtual Aquarius, but unfortunately this is only for Windows. Therefore you have to emulate Windows on your Mac to get this up and running. Otherwise you are stuck with MESS, but then you are stuck with much less options, which you really should have when programming in (BL)Basic. Furthermore you should always download Virtual Aquarius to get the incorporated program files.

Edited by Aquaman
  • Like 1
Link to comment
Share on other sites

Thanks for the info, Aquaman. I may just buy an actual Aquarius instead of trying to have a Mac emulate Windows emulating the Aquarius. I can give MESS a look, but if I am seriously handicapiping myself with MESS, I think it would make sense to just get the original machine (and possibly the Expander). BUT, thanks for the "Aquarius Guide to Home Computing." Looking forward to browsing through it!

  • Like 1
Link to comment
Share on other sites

The best Aquarius emulator is Virtual Aquarius, but unfortunately this is only for Windows. Therefore you have to emulate Windows on your Mac to get this up and running. Otherwise you are stuck with MESS, but then you are stuck with much less options, which you really should have when programming in (BL)Basic. Furthermore you should always download Virtual Aquarius to get the incorporated program files.

 

I've run quite a few Windows only emulators with wine on Linux without issues including Virtual Aquarius. Wine is available for Mac, I'm not sure how well it runs but codeweavers do a paid for version. I'm sure there must be someone on the AtariAge forums with a Mac that can give some assistance if required

 

Barnie

Edited by barnieg
  • Like 1
Link to comment
Share on other sites

Thanks for the info, Aquaman. I may just buy an actual Aquarius instead of trying to have a Mac emulate Windows emulating the Aquarius. I can give MESS a look, but if I am seriously handicapiping myself with MESS, I think it would make sense to just get the original machine (and possibly the Expander). BUT, thanks for the "Aquarius Guide to Home Computing." Looking forward to browsing through it!

Of course you should always buy an actual Aquarius for the best experience and as for the Mini-Expander, only buy one if it is cheap enough, otherwise I recommend you wait for the Mini-Expander II from Jay to be released.This is something you want anyway, because it will offer everything the original ME has, but a lot more, like programmable graphics and better sound! I suggest you read about it in some other threads here.

As for the programming, you should really use Virtual Aquarius with BLbasic. The original Aquarius makes programming much more a hassle with the chiclet keyboard and less editing possibilities. In Virtual Aquarius, you are able to program in a text editor and import this file into the Emulator. This makes programming, testing and correcting much easier. If Barnieg is right, the emulation should work fine on your Mac.

  • Like 2
Link to comment
Share on other sites

I had no clue about Jay's ME 2, so thanks for that heads up! I will have to go browsing for Jay's thread reegarding this.

 

Thanks for the tip about Wine. I have never used it, but will check it out for Mac. Hopefully it runs well, as that text editor you mention does sound more appealing then the chicklet keyboard.

  • Like 1
Link to comment
Share on other sites

The "Mini Expander II" is a project that's still in the works, so I haven't started a dedicated thread about it yet. The programmable graphics upgrade will be a separate piece of hardware, since that has to be installed internally instead of through the cartridge port, but the "Mini Expander II" will add new commands to BASIC for using reprogrammable graphics in your programs.

 

I would second the recommendation to look into getting Wine running on your Mac. Another alternative would be to install VirtualBox and install Windows in a virtual machine (I run Windows XP inside a VirtualBox VM, and Virtual Aquarius works just fine in that environment). You'll find either option useful, for working with the Aquarius or other vintage computers: for a variety of reasons, several emulators and other related tools have been released only for Windows, although some (like MESS) are multi-platform and are available in native Mac versions as well.

  • Like 1
Link to comment
Share on other sites

Crossover for Mac works great for Virtual Aquarius and a number of other Windows programs. Well it did five years ago when I used a Mac.

I'm sure it works even better now they've been improving on it for 14.3 versions.

 

You can do lots of thrilling things once you have it, like download all kinds of free Windows things and try them out and say "oh neat it works!" Windows turns 30 this year so technically it's a "Classic OS."

Edited by Pset
Link to comment
Share on other sites

Thanks for the info, Pset. I wound up making the jump and picked up an Aquarius and Mini Expander on eBay at a price I thought was good compared to some of the other prices for the ME alone on eBay. I should have it at my door step by this weekend. In the meantime, I may take you up on that suggestion to get myself started. Again, thanks to everyone for their input. Really looking forward to getting into the Aquarius world/community!

  • Like 2
Link to comment
Share on other sites

Thanks for the info, Pset. I wound up making the jump and picked up an Aquarius and Mini Expander on eBay at a price I thought was good compared to some of the other prices for the ME alone on eBay. I should have it at my door step by this weekend. In the meantime, I may take you up on that suggestion to get myself started. Again, thanks to everyone for their input. Really looking forward to getting into the Aquarius world/community!

Hey, great! Always glad to see a new Aquarius owner!

 

If you're going to be working on real hardware, you'll find it useful to be able to transfer data to and from your Mac, such as saving your own programs or trying other peoples' programs. The cassette tape is the main storage medium for the Aquarius, so that's what we have to work with until we have better options (I'm working on that!). Fortunately, it's possible to forgo the tape drive and record and play back programs directly to your computer. I worked out a method in Windows (see here for my instructions), but I'm sure it would work with the Mac as well.

 

I still recommend finding a way to get Windows running on your Mac, if it's at all possible.

  • Like 1
Link to comment
Share on other sites

Well, the Aquarius and Mini Expander came in the mail today, and everything looks very clean. The only thing it is missing is the TV input cable/RF cable. I knew this ordering it, as it wasn't in the pictures the guy showed, but I was hoping it was tucked away somewhere. Anyway, any good suggestion for a replacement TV input cable? I was planning on just hooking it straight into one of my TV's cable coaxials. I just wanted to make sure that it didn't require any "special" type of TV input. Suggestions welcome!

 

I plugged in the Aquarius into a socket and it powers on with the green light, so that it is good thus far!

 

EDIT: Sorry, I know this thread is for programming. Let me know if I should move my inquiries to another thread. Thanks!

Edited by SumerNivek
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...