![]() |
Forum Index : Microcontroller and PC projects : dim var as byte
![]() ![]() ![]() ![]() |
|||||
Author | Message | ||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 4032 |
Rather than stupid, more like lazy - e.g. expects others to do work but doesn't bother to put in much effort like failing to read the manual / other working examples / not properly saying what the problem is alleged to be. John |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
@lizby - I'll send the file. Thanks for helping me. It's lonely being a new user and getting told off cos I don't always understand a new system. If it's not the manual can not be clear then it must be me. Latest is I'm lazy. You... and others have been very helpful and it is appreciated. Manual satys blit read #b,x,y,h,w. why not blit read 1. Like read data but you don't use data it's just read var, which when pointed out works. My thought is I shouldn't need to ask the forum but it seems everyone else... who've used mmbasic for years can't see it from a new users view.. or maybe I'm too old for this. Anyway blit is a brill feature. I can't send the .bas file so I'll try code button. The code is simple, first try. 'a simple way of moving 8 user defined graphics as fast as possible using blit OPTION BASE 0 ' 0 based arrays option DEFAULT INTEGER OPTION EXPLICIT dim dx(15),dy(15),spx(15),spy(15) dim cannon(119),missile(15),oldspx(15),oldspy(15) dim ptr,hiscore,spw,spht,temp,frame,frame_count,spdata,sp1 hiscore=0 CONST bk = RGB(BLack) const wh = rgb(white) const bl = rgb(blue) const gr = rgb(green) const cy = rgb(cyan) const re = rgb(red) const ma = rgb(magenta) const ye = rgb(yellow) const br = rgb(brown) ' restore cls udg1 'draws sprite1 on screen at 10,10 BLIT READ 1,10,10,16,16 'reads sprite1 from screen to blit buffer1 udg1 'draws sprite2 on screen at 10,10 blit read 2,10,10,16,16 'reads sprite2 from screen to blit buffer2 cls blit read 3,10,10,16,16 'reads 16x16 background to blit buffer3 ' for temp=0 to 15 'set up start sprite positions and directions do dx(temp)=(int(rnd*4)+1)-(int(rnd*8)+1) loop until dx(temp)<>0 do dy(temp)=(int(rnd*4)+1)-(int(rnd*8)+1) loop until dy(temp)<>0 spx(temp)=104+((rnd*32)+1) spy(temp)=144+((rnd*32)+1) next temp ' do 'demo moving sprite for temp=0 to 15 if spx(temp)> 300 then 'check right edge dx(temp)= 0-dx(temp) end if if spx(temp)<8 then 'check left edge dx(temp)= 0-dx(temp) end if if spy(temp)>220 then 'check bottom edge dy(temp)= 0-dy(temp) end if if spy(temp)<32 then 'check top edge dy(temp)= 0-dy(temp) end if ' oldspx(temp)=spx(temp):oldspy(temp)=spy(temp) 'get last position for erase spx(temp)=spx(temp)+dx(temp):spy(temp)=spy(temp)+dy(temp) 'get new position for draw ' if frame=0 then'which sprite to draw BLIT WRITE 3,oldspx(temp),oldspy(temp), 16, 16 'erase sprite at last position BLIT WRITE 1,spx(temp),spy(temp), 16, 16 'draw sprite1 at new position else BLIT WRITE 3,oldspx(temp),oldspy(temp), 16, 16 'erase sprite at last position BLIT WRITE 2,spx(temp),spy(temp), 16, 16 'draw sprite2 at new position end if next temp ' frame_count=frame_count+1 'when to change sprite if frame_count=10 then frame=not frame frame_count=0 end if loop ' sub udg1 'draws 16x16 data for blit to copy for spht=0 to 15 for spw=0 to 15 read sp1 pixel spw+10,spht+10,sp1 next spw next spht end sub ' 'sprite1 data wh,bl,bl,bl,bl,bk,bk,bk,bk,bk,bk,bl,bl,bl,bl,wh data bk,bl,re,re,re,bl,bl,bk,bk,bl,bl,re,re,re,bl,bk data bk,bk,bk,bl,re,wh,bl,bk,bk,bl,wh,re,bl,bk,bk,bk data bk,bk,bk,bl,re,wh,bl,bk,bk,bl,wh,re,bl,bk,bk,bk data bk,bk,bk,bk,bl,wh,bl,bk,bk,bl,wh,bl,bk,bk,bk,bk data bk,bk,bk,bk,bk,bl,bl,bk,bk,bl,bl,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk data bk,bk,bk,bk,ye,ye,ye,bk,bk,ye,ye,ye,bk,bk,bk,bk data bk,bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk,bk data bk,ye,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,ye,bk data bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk data ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bl,ye data ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye data ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye data bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk data bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk 'sprite2 data bl,bl,bl,bl,bl,bk,bk,bk,bk,bk,bk,bl,bl,bl,bl,bl data bk,bl,re,re,re,bl,bl,bk,bk,bl,bl,re,re,re,bl,bk data bk,bk,bl,wh,wh,re,bl,bk,bk,bl,re,wh,wh,bl,bk,bk data bk,bk,bk,bl,re,wh,bl,bk,bk,bl,wh,re,bl,bk,bk,bk data bk,bk,bk,bk,bl,wh,bl,bk,bk,bl,wh,bl,bk,bk,bk,bk data bk,bk,bk,bk,bk,bl,bl,bk,bk,bl,bl,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,bk,bk,ye,ye,bk,bk,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,ye,ye,bk,bk,ye,ye,bk,bk,bk,bk,bk data bk,bk,bk,bk,ye,ye,bk,bk,bk,bk,ye,ye,bk,bk,bk,bk data bk,bk,bk,bk,ye,bk,bk,bk,bk,bk,bk,ye,bk,bk,bk,bk data bk,bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk,bk data bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk data bk,bk,bk,ye,ye,bk,bk,bk,bk,bk,bk,ye,ye,bk,bk,bk data bk,bk,bk,bk,ye,ye,bk,bk,bk,bk,ye,ye,bk,bk,bk,bk data bk,bk,bk,bk,bk,ye,bk,bk,bk,bk,ye,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,bk,ye,bk,bk,ye,bk,bk,bk,bk,bk,bk |
||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3348 |
Thanks for that. I ran it in MMBasic for Windows. I put "MODE 7 ' 320x240" in as the first line, and had to remove the size from the BLIT WRITEs (since CMM2 & MMB4W know what the size is), so, for example: BLIT WRITE 3,oldspx(temp),oldspy(temp) ', 16, 16 'erase sprite at last position It ran. Very fast. I put "PAUSE 2" in before "next temp", and that seemed about the right speed. Glad you were able to persist to get it working, and thanks for posting the code. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
@lizby - my pleasure. You seem interested in mmbasic graphics. They seem well sorted with ili9341. will try with ssd1306 to test i2c. the graphic functions work fast so compiled and just send parameters so filled circle is fast... like blit is fast. I think I'll search for mmbasic for win. Someone on the forum suggested that. having going over hurdles I like mmbasic, like gcbasic or picaxe basic, it makes it easier to implement ideas into working. so I'm not moaning.. the opposite. @lizby - fancy collaborating on a game. those 80's games where not as simple as they looked when you try coding them from scratch ie pacman.harder to code than it looks. take care. |
||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3348 |
You've said a number of times maybe you're too old--well, I'm definitely too old to have played video games in my youth, as many here did. I was already a working stiff--a programmer--when the first home computers came out and I said "I have to have one of those", and started building it (with limited funds and zero knowledge of electronics, 2 years to get an S-100 bus CP/M machine working). Aside from having played a little Packman and Space Invaders, I've played very few games, and I don't have the muscle memory or the properly exercised gray cells to have any skill at a game which requires dexterity. I'd be pathetic even at Tetris. So you'd probably be better off finding someone who could actually play the game you're wanting to make. I do like to see what other people have created. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
@lizby- safe sir, I worked in the arcade industry in the 70's and earned a penny in the 80's coding. mmbasic has some cool graphic functions and my sprite code was part of a larger game that I maybe want to convert to mmbasic as an exercise, if it would be of any interest. it would to me.. learn mmbasic would there be any interest in games I've done in gcb for ssd1306 and convert to mmb?maybe convert to ili9341. check read pixel in mmb |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5023 |
Adapted for picomite VGA. Some small changes. - sprites are always 16x16 - erase sprite (sprite #3) is replaced by a BOX painting 16x16 black (in VGA picomite black is also tranparent, so erase using sprite #3 does not work). 'simplegraphics mode 2 OPTION EXPLICIT OPTION DEFAULT NONE 'a simple way of moving 8 user defined graphics as fast as possible using blit OPTION BASE 0 ' 0 based arrays option DEFAULT INTEGER OPTION EXPLICIT dim dx(15),dy(15),spx(15),spy(15) dim cannon(119),missile(15),oldspx(15),oldspy(15) dim ptr,hiscore,spw,spht,temp,frame,frame_count,spdata,sp1 hiscore=0 CONST bk = RGB(BLack) const wh = rgb(white) const bl = rgb(blue) const gr = rgb(green) const cy = rgb(cyan) const re = rgb(red) const ma = rgb(magenta) const ye = rgb(yellow) const br = rgb(brown) ' restore cls udg1 'draws sprite1 on screen at 10,10 BLIT READ 1,10,10,16,16 'reads sprite1 from screen to blit buffer1 udg1 'draws sprite2 on screen at 10,10 blit read 2,10,10,16,16 'reads sprite2 from screen to blit buffer2 cls 'blit read 3,10,10,16,16 'reads 16x16 background to blit buffer3 ' for temp=0 to 15 'set up start sprite positions and directions do dx(temp)=(int(rnd*4)+1)-(int(rnd*8)+1) loop until dx(temp)<>0 do dy(temp)=(int(rnd*4)+1)-(int(rnd*8)+1) loop until dy(temp)<>0 spx(temp)=104+((rnd*32)+1) spy(temp)=144+((rnd*32)+1) next temp ' do 'demo moving sprite for temp=0 to 15 if spx(temp)> 300 then 'check right edge dx(temp)= 0-dx(temp) end if if spx(temp)<8 then 'check left edge dx(temp)= 0-dx(temp) end if if spy(temp)>220 then 'check bottom edge dy(temp)= 0-dy(temp) end if if spy(temp)<32 then 'check top edge dy(temp)= 0-dy(temp) end if ' oldspx(temp)=spx(temp):oldspy(temp)=spy(temp) 'get last position for erase spx(temp)=spx(temp)+dx(temp):spy(temp)=spy(temp)+dy(temp) 'get new position for draw ' if frame=0 then'which sprite to draw box oldspx(temp),oldspy(temp),16,16,,0,0 'BLIT WRITE 3,oldspx(temp),oldspy(temp) 'erase sprite at last position BLIT WRITE 1,spx(temp),spy(temp) 'draw sprite1 at new position else box oldspx(temp),oldspy(temp),16,16,,0,0 'BLIT WRITE 3,oldspx(temp),oldspy(temp) 'erase sprite at last position BLIT WRITE 2,spx(temp),spy(temp) 'draw sprite2 at new position end if next temp ' frame_count=frame_count+1 'when to change sprite if frame_count=10 then frame=not frame frame_count=0 end if loop ' sub udg1 'draws 16x16 data for blit to copy for spht=0 to 15 for spw=0 to 15 read sp1 pixel spw+10,spht+10,sp1 next spw next spht end sub ' 'sprite1 data wh,bl,bl,bl,bl,bk,bk,bk,bk,bk,bk,bl,bl,bl,bl,wh data bk,bl,re,re,re,bl,bl,bk,bk,bl,bl,re,re,re,bl,bk data bk,bk,bk,bl,re,wh,bl,bk,bk,bl,wh,re,bl,bk,bk,bk data bk,bk,bk,bl,re,wh,bl,bk,bk,bl,wh,re,bl,bk,bk,bk data bk,bk,bk,bk,bl,wh,bl,bk,bk,bl,wh,bl,bk,bk,bk,bk data bk,bk,bk,bk,bk,bl,bl,bk,bk,bl,bl,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk data bk,bk,bk,bk,ye,ye,ye,bk,bk,ye,ye,ye,bk,bk,bk,bk data bk,bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk,bk data bk,ye,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,ye,bk data bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk data ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bl,ye data ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye data ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye data bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk data bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk 'sprite2 data bl,bl,bl,bl,bl,bk,bk,bk,bk,bk,bk,bl,bl,bl,bl,bl data bk,bl,re,re,re,bl,bl,bk,bk,bl,bl,re,re,re,bl,bk data bk,bk,bl,wh,wh,re,bl,bk,bk,bl,re,wh,wh,bl,bk,bk data bk,bk,bk,bl,re,wh,bl,bk,bk,bl,wh,re,bl,bk,bk,bk data bk,bk,bk,bk,bl,wh,bl,bk,bk,bl,wh,bl,bk,bk,bk,bk data bk,bk,bk,bk,bk,bl,bl,bk,bk,bl,bl,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,bk,bk,ye,ye,bk,bk,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,ye,ye,bk,bk,ye,ye,bk,bk,bk,bk,bk data bk,bk,bk,bk,ye,ye,bk,bk,bk,bk,ye,ye,bk,bk,bk,bk data bk,bk,bk,bk,ye,bk,bk,bk,bk,bk,bk,ye,bk,bk,bk,bk data bk,bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk,bk data bk,bk,ye,bk,bk,bk,bk,bk,bk,bk,bk,bk,bk,ye,bk,bk data bk,bk,bk,ye,ye,bk,bk,bk,bk,bk,bk,ye,ye,bk,bk,bk data bk,bk,bk,bk,ye,ye,bk,bk,bk,bk,ye,ye,bk,bk,bk,bk data bk,bk,bk,bk,bk,ye,bk,bk,bk,bk,ye,bk,bk,bk,bk,bk data bk,bk,bk,bk,bk,bk,ye,bk,bk,ye,bk,bk,bk,bk,bk,bk PicomiteVGA PETSCII ROBOTS |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
@Volhut- tidy. it was pointed out black was transparent in lizby's conversion to win mmbasic. It took a new users ignorance to get this to work but now I sorted my problems it was very fast to code and get working.. it's my first mmbasic program. got to start somewhere. I downloaded mmbasic dos which looks as much fun as teraterm. mmbasic vga for rpipico 2040 looks interesting for recreating retro gaming. I ordered 2 more rpipicos and I may try the mmbasic vga. mmbasic can be very complex as well as easy it seems from looking at the vga forum posts. sprite replacing blit and not all blit working with vga... but another story until I try vga In my previous code I had sprite width,sprite height, a pointer to tables like data and the sprites where plotted and a universal sprite sub. all different with mmbasic. lots to learn cos mmbasic has so many extra features. |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
The rpipico... do I call it picomite? to vga looks doable on vero. glad I kept those ps2 keyboards. from a hobbyists view it looks interesting to play with. would mmbasic vga work ok with rpipico 2040 or is it under spec with all the other "mites"? ie should I bother or limited colours and stuff don't work on rpi? or is it fun? |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7820 |
The PicoMite VGA is the same RPi Pico, but with different firmware. Instead of drivers for LCD panels it has a simple VGA output. You get either 640x480 1-colour or 320c240 16-colours. In the 1-colour mode you can use a special font that aligns with "tiles" that can have foreground & background colours. There is also a VGA option for the RPi Pico, which isn't compatible with MMBasic. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
Why no composite video? When new rpis arrive I got to try vga. sourcing bits, will mmbasic vga work with mmedit?! we'll see.. it's all interesting new stuff to learn... but don't know why, when I got retropi. guess it's nostalgia... which isn't what it used to be. when rpis arrive I'll try mmb vga with one and the other a spare when I forget it's 3.3v logic. checking prices vero vs made |
||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3348 |
MMBasic DOS is good for writing little utility programs, but MMBasic for Windows is much more powerful, with the latest language features and near-compatibility with the CMM2. There's no manual for it yet, but the CMM2 manual is fairly close. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
The main difference between the DOS version of MMBasic and the version running on the Micromite family is that the DOS version does not support any hardware related features of the Micromite. I searched for mmbasic for windows but only found dos. dunno where a rpipico / picomite fits in with all the different mites. I don't think the vga idea is for me. I like mmbasic lcd support. it's practical as well as a fun hobby. now if Geoff did mmbasic for rpi 400 and use the hdmi... he'd be popular to say the least |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
I searched what cmm2 was. colour mite? nowt like a pico mite if that's what I got. so as I mentioned is advice relevant? this is a weird forum for a new user, don't even know what my hardware is. is forum help about maximite relevant to rp2040? what's mm4w ? is there a link to loading mmbasic for windows please? |
||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3348 |
MMBasic for Windows Thread Maxi/MicroMite variations: MaxiMite, Colour MaxiMite (CMM/CMM1), MX150 MicroMite (MM1), MX170 MicroMite (MM2), MX470 MicroMite Plus (MM+), PIC32MZ MicroMite eXtreme (MMX), MMBasic for DOS, Pi-cromite (pi-based, no longer supported, may work for non-gpio uses), Armmite H7, Armmite L4, Armmite F4, Colour Maximite 2 (CMM2), Picomite, MMB4L (Linux--currently in Alpha), PicoMiteVGA/VGAMite, MMBasic for Windows (MMB4W)--currently in Beta. CMM2: Colour Maximite 2 ~ Edited 2022-08-15 08:32 by lizby PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
wow! I'll stick with mmbasic on rp2040 and mmedit and a lcd and try stuff for now. |
||||
phil99![]() Guru ![]() Joined: 11/02/2018 Location: AustraliaPosts: 2579 |
Since you already have more Picos on the way it is easy enough to try the VGA version on a breadboard. MMBasic is almost the same. For the VGA socket just 4 resistors are needed to get adequate colour. GP16 to H. Sync GP17 to V. Sync Gnd. to Gnd GP18 270R to Blue pin GP19 750R to Green pin GP20 390R to Green pin GP21 270R to Red pin Many PS/2 keyboards will run from 3.3V allowing direct connection to the Pico without level shifters. Many don't even need pullup resistors. To test your PS/2 keyboards for 3.3V operation you can use your current PicoMite see page 76 of the PicoMite MMBasic Ver 5.07.04 manual. 3.3V to PS2 socket Power pin. GP8 to PS2 socket CLOCK pin. GP9 to PS2 socket DATA pin. Gnd. to PS2 socket Gnd. OPTION KEYBOARD UK ' Assuming a UK layout. When finished testing use:- OPTION KEYBOARD DISABLE Edited 2022-08-15 10:58 by phil99 |
||||
stanleyella![]() Guru ![]() Joined: 25/06/2022 Location: United KingdomPosts: 2522 |
GP16 to H. Sync GP17 to V. Sync Gnd. to Gnd GP18 270R to Blue pin GP19 750R to Green pin GP20 390R to Green pin GP21 270R to Red pin Many PS/2 keyboards will run from 3.3V allowing direct connection to the Pico without level shifters. Many don't even need pullup resistors. To test your PS/2 keyboards for 3.3V operation you can use your current PicoMite see page 76 of the PicoMite MMBasic Ver 5.07.04 manual. 3.3V to PS2 socket Power pin. GP8 to PS2 socket CLOCK pin. GP9 to PS2 socket DATA pin. Gnd. to PS2 socket Gnd. OPTION KEYBOARD UK ' Assuming a UK layout. When finished testing use:- OPTION KEYBOARD DISABLE Thanks Phil. 2 picos arrived today, got to solder headers. Thinking the pin labels seem on the wrong side of the board, if you want the firmware switch on top but it's only used for flashing firmware with a usb lead so could I mount it upside down on bread board the switch not then being easily acessable but you can read the pin labels? There is a bread board for the pico with pin labels printed on it. I got the picomitevga manual. But not sure. One part says what a great toy to play with, other part says not enough time for retro stuff. The vga seems more complicated than a glcd. |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7820 |
If you put male header pins onto the same side as the button then your PicoMite can't be plugged into standard sockets on anything. It's just unfortunate that the pin labels are on the bottom. In many ways I prefer the VGA version, personally. The main problem is that you lose the Touch capability of the display. Edited 2022-08-16 03:15 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
pwillard Guru ![]() Joined: 07/06/2022 Location: United StatesPosts: 313 |
It's about the only thing that has me a bit cheesed off with the PICO. |
||||
![]() ![]() ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |