QB64.org Forum

Active Forums => QB64 Discussion => Topic started by: Jan-80 on July 07, 2020, 05:01:13 am

Title: Hello
Post by: Jan-80 on July 07, 2020, 05:01:13 am
Hello,

As usual on most forums, I'm introducing myself.
BTW, Sometimes there's a section for introductions, I haven't seen it here. Sorry if I post this in the wrong section.

My name is Jan, I live in the city of Leuven, in the flemish part of Belgium. As a kid, I got into contact with microcomputers with the TRS-80 Model I of my brother. I still have that computer, and it still runs. (now you can guesstimate my age) Later on, I started collecting TRS-80 and Tandy computers, and at one time, I almost had them all. All the models ever sold in Belgium, that is. But over the last couple of years, I got rid of some, and donated most of them to the homecomputermuseum.nl in Helmond. They now have the biggest collection of TRS-80/Tandy computers in Europe, maybe even the world. But you can see, from my avatar to my sig, that I still hold on to that TRS-80 heritage, just as to the core of my collection.

I also rolled into an IT profession - originally a lab-tech - and had to focus mainly on Windows. (2nd line support) That changed a few years ago, when I decided to broaden my horizon and learn new programming languages and environments. Java, Python, Linux, Raspberry Pi, ESP8266, have passed my focus. At home, because at work they don't deviate from the industry standards.

A search for a BASIC language on the Raspberry Pi - and a row on facebook - brought me here, again. Again, because a few months ago, I put QB64 on my shortlist for another problem I had, at work.

Now, I am happy I found this site and this forum, and I hope you can help me to fill in the gaps of my knowledge.
Where do I post my questions ?

Regards,
Title: Re: Hello
Post by: Qwerkey on July 07, 2020, 05:08:03 am
Jan, you are very welcome to the forum.  This is the very section to post questions about QB64, and you will find that our experts will most certainly endeavour to help.  Qwerkey
Title: Re: Hello
Post by: Dimster on July 07, 2020, 08:14:06 am
My Basic greeting   "Hi Jan - nice to meet ya."
Title: Re: Hello
Post by: SMcNeill on July 07, 2020, 09:01:31 am
My Basic greeting

HELLO WORL....    ERR...    HELLO JAN!
Title: Re: Hello
Post by: johnno56 on July 07, 2020, 10:08:59 am
Jan,

First: Welcome to The Forum. Hopefully we can all learn from eachother.
Second: Never used a TRS80. Although I have a couple of TRS emulators. When my mood is nostalgic I will fire them up. When I finished High School, home computers, were still a twinkle in the eyes of their creators. Now you can guestimate 'my' age... lol

Again... Welcome.
Title: Re: Hello
Post by: FellippeHeitor on July 07, 2020, 10:23:54 am
Hey there @Jan-80, welcome aboard!
Title: Re: Hello
Post by: bplus on July 07, 2020, 11:06:04 am
Code: QB64: [Select]
  1. _TITLE "Hello Jan" 'b+ 2020-07-07
  2. SCREEN _NEWIMAGE(710, 710, 32)
  3. _DELAY .25
  4. 'jan& = _LOADIMAGE("Jan avatar.png")
  5. '_PUTIMAGE (0, 0), jan&, 0
  6. 'DIM j(70, 70) AS INTEGER
  7. 'white~& = POINT(35, 35)
  8. 'FOR y = 0 TO 70
  9. '    FOR x = 0 TO 70
  10. '        IF _RED32(POINT(x + 2, y)) > 128 THEN j(x, y) = 1
  11. '    NEXT
  12. 'NEXT
  13. '_CLIPBOARD$ = ""
  14. 'FOR y = 0 TO 70
  15. '    d$ = "DATA " + CHR$(34)
  16. '    FOR x = 0 TO 70
  17. '        IF j(x, y) THEN LINE (x * 10, y * 10)-STEP(10, 10), &HFFFFFFFF, BF
  18. '        IF j(x, y) THEN d$ = d$ + "1" ELSE d$ = d$ + "0"
  19. '    NEXT
  20. '    _CLIPBOARD$ = _CLIPBOARD$ + d$ + CHR$(34) + CHR$(10)
  21. 'NEXT
  22.  
  23. DIM j(70, 70) AS INTEGER
  24. FOR y = 0 TO 70
  25.     READ dline$
  26.     FOR x = 1 TO 71
  27.         IF MID$(dline$, x, 1) = "1" THEN LINE (x * 10, y * 10)-STEP(10, 10), &HFF00FF00, BF
  28.     NEXT
  29. _PUTIMAGE , 0, hi&
  30. x1 = 470: y1 = 590: a = _PI(.5 * .8): r = 20: r1 = 10: r2 = 15: l = 100: l1 = 150: l2 = 100: d = -1
  31.     _PUTIMAGE , hi&, 0
  32.     x2 = x1 + l * COS(a): y2 = y1 + l * SIN(a) 'upper
  33.     drawLink x1, y1, r, x2, y2, r1 + 5, &HFF00EE00
  34.  
  35.     IF a < _PI / 4 THEN a1 = -2.5 * (pi / 4 - a) ELSE a1 = a 'lower
  36.     x3 = x2 + l1 * COS(a1): y3 = y2 + l1 * SIN(a1)
  37.     drawLink x2, y2, r1, x3, y3, r2, &HFF00DD00
  38.  
  39.     x4 = x3 + l2 * COS(a1): y4 = y3 + l2 * SIN(a1) 'index
  40.     drawLink x3, y3, r2, x4, y4, 4, &HFF00BB00
  41.  
  42.     x5 = x3 + .7 * l2 * COS(a1 - _PI / 6 - RND * _PI * .2): y5 = y3 + .7 * l2 * SIN(a1 - _PI / 6 - RND * _PI * .2) '+-
  43.     drawLink x3, y3, r2, x5, y5, 4, &HFF00BB00
  44.  
  45.     x6 = x3 + .8 * l2 * COS(a1 + _PI / 6 + RND * _PI * .2): y6 = y3 + .8 * l2 * SIN(a1 + _PI / 6 + RND * _PI * .2) '+-
  46.     drawLink x3, y3, r2, x6, y6, 4, &HFF00BB00
  47.  
  48.     a = a - _PI(.05) * d
  49.     IF a < -_PI / 3 THEN d = -d: a = -_PI / 3
  50.     IF a > .8 * _PI / 2 THEN d = -d: a = .8 * _PI / 2
  51.     _LIMIT 5
  52.  
  53. SUB drawLink (x1, y1, r1, x2, y2, r2, c AS _UNSIGNED LONG)
  54.     DIM a, a1, a2, x3, x4, x5, x6, y3, y4, y5, y6
  55.     a = _ATAN2(y2 - y1, x2 - x1)
  56.     a1 = a + _PI(1 / 2)
  57.     a2 = a - _PI(1 / 2)
  58.     x3 = x1 + r1 * COS(a1): y3 = y1 + r1 * SIN(a1)
  59.     x4 = x1 + r1 * COS(a2): y4 = y1 + r1 * SIN(a2)
  60.     x5 = x2 + r2 * COS(a1): y5 = y2 + r2 * SIN(a1)
  61.     x6 = x2 + r2 * COS(a2): y6 = y2 + r2 * SIN(a2)
  62.     fquad x3, y3, x4, y4, x5, y5, x6, y6, c
  63.     fcirc x1, y1, r1, c
  64.     fcirc x2, y2, r2, c
  65.  
  66. 'need 4 non linear points (not all on 1 line) list them clockwise so x2, y2 is opposite of x4, y4
  67. SUB fquad (x1 AS INTEGER, y1 AS INTEGER, x2 AS INTEGER, y2 AS INTEGER, x3 AS INTEGER, y3 AS INTEGER, x4 AS INTEGER, y4 AS INTEGER, c AS _UNSIGNED LONG)
  68.     ftri x1, y1, x2, y2, x4, y4, c
  69.     ftri x3, y3, x4, y4, x1, y1, c
  70.  
  71. SUB ftri (x1, y1, x2, y2, x3, y3, K AS _UNSIGNED LONG)
  72.     DIM a&
  73.     a& = _NEWIMAGE(1, 1, 32)
  74.     _DEST a&
  75.     PSET (0, 0), K
  76.     _DEST 0
  77.     _MAPTRIANGLE _SEAMLESS(0, 0)-(0, 0)-(0, 0), a& TO(x1, y1)-(x2, y2)-(x3, y3)
  78.     _FREEIMAGE a& '<<< this is important!
  79.  
  80. SUB fcirc (CX AS INTEGER, CY AS INTEGER, R AS INTEGER, C AS _UNSIGNED LONG)
  81.     DIM Radius AS INTEGER, RadiusError AS INTEGER
  82.     DIM X AS INTEGER, Y AS INTEGER
  83.     Radius = ABS(R): RadiusError = -Radius: X = Radius: Y = 0
  84.     IF Radius = 0 THEN PSET (CX, CY), C: EXIT SUB
  85.     LINE (CX - X, CY)-(CX + X, CY), C, BF
  86.     WHILE X > Y
  87.         RadiusError = RadiusError + Y * 2 + 1
  88.         IF RadiusError >= 0 THEN
  89.             IF X <> Y + 1 THEN
  90.                 LINE (CX - Y, CY - X)-(CX + Y, CY - X), C, BF
  91.                 LINE (CX - Y, CY + X)-(CX + Y, CY + X), C, BF
  92.             END IF
  93.             X = X - 1
  94.             RadiusError = RadiusError - X * 2
  95.         END IF
  96.         Y = Y + 1
  97.         LINE (CX - X, CY - Y)-(CX + X, CY - Y), C, BF
  98.         LINE (CX - X, CY + Y)-(CX + X, CY + Y), C, BF
  99.     WEND
  100.  
  101. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  102. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  103. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  104. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  105. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  106. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  107. DATA "00000000000000000000000000000000000000000000000000000000000000000000000"
  108. DATA "00000000000000001111100000000000000000000000000011111000000000000000000"
  109. DATA "00000000000000001111100000000000000000000000000011111000000000000000000"
  110. DATA "00000000000000001111100000000000000000000000000011111000000000000000000"
  111. DATA "00000000000000001111100000000000000000000000000011111000000000000000000"
  112. DATA "00000000000000000001111110000000000000000000111111000000000000000000000"
  113. DATA "00000000000000000001111110000000000000000000111111000000000000000000000"
  114. DATA "00000000000000000001111110000000000000000000111111000000000000000000000"
  115. DATA "00000000000000000001111110000000000000000000111111000000000000000000000"
  116. DATA "00000000000000000011111111111111111111111111111111100000000000000000000"
  117. DATA "00000000000000000011111111111111111111111111111111100000000000000000000"
  118. DATA "00000000000000000111111111111111111111111111111111110000000000000000000"
  119. DATA "00000000000000000111111111111111111111111111111111110000000000000000000"
  120. DATA "00000000000000001111111111111111111111111111111111111000000000000000000"
  121. DATA "00000000000000001111111111111111111111111111111111111000000000000000000"
  122. DATA "00000000000000001111111111111111111111111111111111111000000000000000000"
  123. DATA "00000000000000011111111111111111111111111111111111111100000000000000000"
  124. DATA "00000000000000111111111111111111111111111111111111111110000000000000000"
  125. DATA "00000000000000111111111111111111111111111111111111111110000000000000000"
  126. DATA "00000000000000111111111111111111111111111111111111111110000000000000000"
  127. DATA "00000000000001111111000111110011111111100111110001111111000000000000000"
  128. DATA "00000000000011111110000111100001111111000011110000111111100000000000000"
  129. DATA "00000000000011111110000111100001111111000011110000111111100000000000000"
  130. DATA "00000000000011111110000111100001111111000011110000111111100000000000000"
  131. DATA "00000000000011111110000000000001111111000000000000111111100000000000000"
  132. DATA "00000000000011111110000000000001111111000000000000111111100000000000000"
  133. DATA "00000000000011111110000000000001111111000000000000111111100000000000000"
  134. DATA "00000000000011111111000000000001111111000000000001111111100000000000000"
  135. DATA "00000000000001111111111111111111111111111111111111111111000000000000000"
  136. DATA "00000000000000111111111111111111111111111111111111111110000000000000000"
  137. DATA "00000000000000111111111111111111111111111111111111111110000000000000000"
  138. DATA "00000000000000111111111111111111111111111111111111111110000000000000000"
  139. DATA "00000000000000000111111111111111111111111111111111110000000000000000000"
  140. DATA "00000000000000000011111111111111111111111111111111100000000000000000000"
  141. DATA "00000000000000000011111111111111111111111111111111100000000000000000000"
  142. DATA "00000000000000000011111111111111111111111111111111100000000000000000000"
  143. DATA "00000000000000000000011111111111111111111111111100000000000000000000000"
  144. DATA "00000000000000000000011111111111111111111111111100000000000000000000000"
  145. DATA "00000000000000000000011111111111111111111111111100000000000000000000000"
  146. DATA "00000000000000000000001111111111111111111111111000000000000000000000000"
  147. DATA "00000000000000000000000001111111111111111111000000000000000000000000000"
  148. DATA "00000000000000000000000001111111111111111111000000000000000000000000000"
  149. DATA "00000000000000000000000001111111111111111111000000000000000000000000000"
  150. DATA "00000000000000000000000000111111111111111110000000000000000000000000000"
  151. DATA "00000000000000000000000000000111111111110000000000000000000000000000000"
  152. DATA "00000000000000000000000000000111111111110000000000000000000000000000000"
  153. DATA "00000000000000000000000000000111111111110000000000000000000000000000000"
  154. DATA "00000000000000000000000000011111111111111100000000000000000000000000000"
  155. DATA "00000000000000000000000000011111111111111100000000000000000000000000000"
  156. DATA "00000000000000000000000000011111111111111100000000000000000000000000000"
  157. DATA "00000000000000000000000000011111111111111100000000000000000000000000000"
  158. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  159. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  160. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  161. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  162. DATA "00000000000000000000011110000111111111110000000000000000000000000000000"
  163. DATA "00000000000000000000011110000111111111110000000000000000000000000000000"
  164. DATA "00000000000000000000011110000111111111110000000000000000000000000000000"
  165. DATA "00000000000000000000011110001111111111111000000000000000000000000000000"
  166. DATA "00000000000000000000111000011111111111111100000000000000000000000000000"
  167. DATA "00000000000000000001111000011111111111111100000000000000000000000000000"
  168. DATA "00000000000000000001111000011111111111111100000000000000000000000000000"
  169. DATA "00000000000000000001111000111111111111111110000000000000000000000000000"
  170. DATA "00000000000000000011100001111111111111111111000000000000000000000000000"
  171. DATA "00000000000000000011100001111111111111111111000000000000000000000000000"
  172.  
  173.  
  174.  
Title: Re: Hello
Post by: Cobalt on July 07, 2020, 12:10:31 pm
And there goes B+ showin' off to the new peep! XD


Welcome to our humble abode @Jan-80

Don't mind the mess, we are in a constant state of  Syntax Error + Overflow  around here!
Title: Re: Hello
Post by: Pete on July 07, 2020, 12:45:04 pm
A TANDY computer? My guess is you're 18, as Belgium probably got TANDY computers a couple of years ago. Wow, you're going to be so excited when the Commodore 64 comes to your country, in the next decade or so. J/K.

I got started on a TI4A, while in college, in 1981. TI BASIC, Atari BASIC, QBASIC, QuickBASIC, and QB64. You might not be in your 60's yet, but trust me, don't be in a hurry to get there, it's over-rated.

There are quite a few old-timers here. Welcome to the forum, and please excuse the third world country joke. I may be in my 60's, in real life, but I play a 13 year old on the forum. It makes me happy.

Pete
Title: Re: Hello
Post by: Qwerkey on July 07, 2020, 12:52:10 pm
The trouble is that Pete only thinks that his behaviour is old enough for a 13-year-old!  (Jan, you will just have to get used to the silly humour here).
Title: Re: Hello
Post by: Jan-80 on July 07, 2020, 02:52:11 pm
Code: QB64: [Select]
  1. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  2. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  3. DATA "00000000000000000000000111111111111111111111110000000000000000000000000"
  4. DATA "00000000000000000000011110000111111111110000000000000000000000000000000"
  5. DATA "00000000000000000000011110000111111111110000000000000000000000000000000"
  6. DATA "00000000000000000000011110000111111111110000000000000000000000000000000"
  7. DATA "00000000000000000000011110001111111111111000000000000000000000000000000"
  8. DATA "00000000000000000000111000011111111111111100000000000000000000000000000"
  9. DATA "00000000000000000001111000011111111111111100000000000000000000000000000"
  10. DATA "00000000000000000001111000011111111111111100000000000000000000000000000"
  11. DATA "00000000000000000001111000111111111111111110000000000000000000000000000"
  12. DATA "00000000000000000011100001111111111111111111000000000000000000000000000"
  13. DATA "00000000000000000011100001111111111111111111000000000000000000000000000"
  14.  
There's a problem with the code: my avatar has 2 arms...
Title: Re: Hello
Post by: bplus on July 07, 2020, 02:57:24 pm
Quote
There's a problem with the code: my avatar has 2 arms...

LOL did you run the code?

  [ This attachment cannot be displayed inline in 'Print Page' view ]  

Looks like 2 arms to me ;-))
Title: Re: Hello
Post by: Jan-80 on July 07, 2020, 02:57:46 pm
Second: Never used a TRS80. Although I have a couple of TRS emulators. When my mood is nostalgic I will fire them up.

There is no thing like the real hardware, to get the feeling of bygone days. Though some emulators are pretty good.
That's why I'm looking for a BASIC to run on modern systems.
And that's what my first question is (will be) about.
Title: Re: Hello
Post by: Jan-80 on July 07, 2020, 03:01:14 pm
LOL did you run the code?
No, because I don't have a functional QB64 yet. I just looked at the data-statements. I might have gotten it wrong.
Title: Re: Hello
Post by: Jan-80 on July 07, 2020, 03:03:33 pm
Looks like 2 arms to me ;-))
You got me! :-D
Title: Re: Hello
Post by: bplus on July 07, 2020, 03:10:31 pm
You got me! :-D


It actually waves. Kind of amazed myself how fast I put that together. I like your avatar it reminds me of home :-))

I hope you get up and running, QB64 is fun! Do you have Windows?

Title: Re: Hello
Post by: Pete on July 07, 2020, 04:00:01 pm
There is no thing like the real hardware, to get the feeling of bygone days. Though some emulators are pretty good.
That's why I'm looking for a BASIC to run on modern systems.
And that's what my first question is (will be) about.

You don't plan on using anything other than text... SCREEN ZERO, right? :D

Anyway, QB64 does both graphics and text, and runs on Windows, Linux, and Mac systems. It is NOT an emulator. QB64 is a translator. It translates BASIC code into C/C++ code, and compiles it into stand alone exe files, which you can run on any of the systems I mentioned above.

Pete
Title: Re: Hello
Post by: Jan-80 on July 07, 2020, 04:11:27 pm
I like your avatar it reminds me of home :-))
Someone you knew ?

I hope you get up and running, QB64 is fun! Do you have Windows?
I have Windows, Linux and Raspbian.
Title: Re: Hello
Post by: Jan-80 on July 07, 2020, 04:14:24 pm
QB64 is a translator. It translates BASIC code into C/C++ code, and compiles it into stand alone exe files, which you can run on any of the systems I mentioned above.
I don't care how it works. It's good to know, but unimportant. My goal is to write code and have a fast return.
Title: Re: Hello
Post by: OldMoses on July 07, 2020, 07:41:49 pm
Welcome Jan.

I never used Tandy back in the day, I came from the Apple ][ camp. Learned Applesoft in high school, then went to QBasic after going to the PC platform. I tried to tinker with Assembler, but never got far with that. QB64 provides the impetus to advance my neanderthal skills. A lot of powerful tools compared to what it used to be.