Aquaman Posted December 18, 2013 Share Posted December 18, 2013 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 Quote Link to comment Share on other sites More sharing options...
Aquaman Posted December 18, 2013 Share Posted December 18, 2013 By the way the version you posted works fine Quote Link to comment Share on other sites More sharing options...
Pset Posted December 19, 2013 Share Posted December 19, 2013 The Data gets scrambled by the forum formatting. Totally unrecognizable. 1 Quote Link to comment Share on other sites More sharing options...
mvdsteenoven Posted January 4, 2014 Share Posted January 4, 2014 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 2 Quote Link to comment Share on other sites More sharing options...
Pset Posted February 11, 2014 Share Posted February 11, 2014 (edited) 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 February 11, 2014 by Pset Quote Link to comment Share on other sites More sharing options...
Pset Posted September 6, 2014 Share Posted September 6, 2014 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? Quote Link to comment Share on other sites More sharing options...
Aquaman Posted September 6, 2014 Share Posted September 6, 2014 As far as I know the Aquarius can hold up to 50 characters in a String, the same as for example a TRS-80: PRINT FRE(“A") (50 means no programs in memory) Quote Link to comment Share on other sites More sharing options...
Pset Posted September 7, 2014 Share Posted September 7, 2014 (edited) 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 September 7, 2014 by Pset Quote Link to comment Share on other sites More sharing options...
jaybird3rd Posted September 7, 2014 Author Share Posted September 7, 2014 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. 1 Quote Link to comment Share on other sites More sharing options...
Aquaman Posted September 7, 2014 Share Posted September 7, 2014 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. 1 Quote Link to comment Share on other sites More sharing options...
jaybird3rd Posted September 7, 2014 Author Share Posted September 7, 2014 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. 1 Quote Link to comment Share on other sites More sharing options...
Pset Posted September 8, 2014 Share Posted September 8, 2014 (edited) 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 110 REM http://reddit.com/r/RetroBattlestations 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) = 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 September 8, 2014 by Pset Quote Link to comment Share on other sites More sharing options...
Aquaman Posted September 9, 2014 Share Posted September 9, 2014 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! 1 Quote Link to comment Share on other sites More sharing options...
SumerNivek Posted January 24, 2015 Share Posted January 24, 2015 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! 2 Quote Link to comment Share on other sites More sharing options...
Aquaman Posted January 24, 2015 Share Posted January 24, 2015 (edited) 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 January 24, 2015 by Aquaman 1 Quote Link to comment Share on other sites More sharing options...
Aquaman Posted January 24, 2015 Share Posted January 24, 2015 Here you find the general guide for the Aquarius to get you started! AquariusGuideToHomeComputing.zip 1 Quote Link to comment Share on other sites More sharing options...
SumerNivek Posted January 24, 2015 Share Posted January 24, 2015 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! 1 Quote Link to comment Share on other sites More sharing options...
barnieg Posted January 25, 2015 Share Posted January 25, 2015 (edited) 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 January 25, 2015 by barnieg 1 Quote Link to comment Share on other sites More sharing options...
Aquaman Posted January 25, 2015 Share Posted January 25, 2015 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. 2 Quote Link to comment Share on other sites More sharing options...
SumerNivek Posted January 25, 2015 Share Posted January 25, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
jaybird3rd Posted January 25, 2015 Author Share Posted January 25, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
Pset Posted January 26, 2015 Share Posted January 26, 2015 (edited) 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 January 26, 2015 by Pset Quote Link to comment Share on other sites More sharing options...
SumerNivek Posted January 28, 2015 Share Posted January 28, 2015 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! 2 Quote Link to comment Share on other sites More sharing options...
jaybird3rd Posted January 29, 2015 Author Share Posted January 29, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
SumerNivek Posted January 31, 2015 Share Posted January 31, 2015 (edited) 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 January 31, 2015 by SumerNivek Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.