จีดับบิวเบสิก (GW-BASIC)
Digital logic | OS | คำสั่งดอส | Batch | Debug | Assembly | GWBasic | Docker |
ขอบซ้ายขอบบน
จีดับบิวเบสิก (GW-BASIC)

   GW คำว่า GW ย่อมาจาก "Gee Whiz" เป็นภาษาในยุคแรก ๆ ที่ใช้ประกอบการสอนเขียนโปรแกรมในเครื่องคอมพิวเตอร์ และทำงานบนพีซี (PC = Personal Computer) ได้ดีในระดับหนึ่ง เป็นตัวแปลภาษาที่ทำงานแบบอินเทอร์เพตเตอร์ (Interpreter) ถูกนำไปใช้สอนในวิชา คอมพิวเตอร์เบื้องต้น และเทคนิคการเขียนโปรแกรม ที่เขียนโดย รศ.วัชราภรณ์ สุริยาภิวัฒน์ ในสถาบันการศึกษาหลายแห่ง เพราะมีการตีพิมพ์กว่า 20 ครั้ง ซึ่งสมัยผู้เขียนเป็นนักศึกษา (พ.ศ.2531) ก็เริ่มเรียนภาษานี้เป็นภาษาแรก
   การใช้ตัวแปลภาษานี้ ทำโดยเปิดโปรแกรม GWBASIC.EXE ซึ่งไม่จำเป็นต้องติดตั้ง เพราะใช้งานได้ทันที มีแฟ้มเดียว และรุ่น 3.23 มีขนาดเพียง 79 KB เมื่อประมวลผลจะพบหน้าจอดังภาพด้านล่างนี้ หากต้องการออกจากโปรแกรมก็เพียงแต่พิมพ์ system เพื่อปิดโปรแกรม และกลับสู่ระบบ
    การใช้ gwbasic บน Windows 7 สามารถใช้งานคำสั่งพื้นฐาน เช่น input หรือ print แต่ถ้าต้องการใช้ full screen mode หรือการกดปุ่ม alt-enter ก็จะถูกปฏิเสธ ปัญหาการเข้าโหมดเต็มจอ ไม่พบใน Windows xp เมื่อบางโปรแกรมที่พัฒนาด้วยภาษานี้ต้องใช้โหมดเต็มจอ ก็จะประมวลผลไม่ได้ เช่น roborat หากจะใช้ได้ก็ต้องใช้ dos emulator ของ DOSBOX แล้วสั่ง mount drive เข้ามาใช้ตามต้องการ เช่น
DOS>mount c c:\

e-book: http://www.antonis.de/qbebooks/gwbasman/index.html
    โปรแกรมเกม DONKEY.BAS ถูกเขียนในค.ศ 1981 (2524) และถูกรวมเข้าใน PC-DOS Operating system บน Original IBM PC โดยเกมขับรถนี้กำหนดให้ผู้เล่นหลบหลีกการชนลาบนถนน ร่วมพัฒนาเกมเขียนโดย Bill Gates ซึ่งสามารถใช้ source code นี้บน GWBasic แต่ต้องทำงานบน DOSBOX ทั้งบน WinXP และ Win7 [แบ่งปันโดย ninkungz]
Source Code : GW-Basic Game
- copy มาและแตกได้แฟ้ม .bas
- เปิดด้วย GWBASIC แล้ว save ใหม่แบบ ,a
- DOS>gwbasic roborat.bas
โปรแกรมจาก !http://scottserver.net

- 5starZ.bas
- ต่อดาว 5 ดวง

- flipper.bas
- สลับสีจนเป็นสีเดียว

- roborat.bas
- วางแผน แล้วกดลูกศร
- บังคับให้หนูไปกินเนย

- search.bas
- Click อักษรคำแรก
- Click อักษรสุดท้าย
Download ตัวแปลภาษา ที่นี่:
KindlyRat, Rhinorc, x10.mx, #
Page : kindlyrat.mht in archive site on ie
Borland : Turbo Basic 1.0

พัฒนาใหม่ ไม่ต้องใส่เลขบรรทัดก็ได้
input a$
print a$

กำหนดให้ผลการแปลได้แฟ้ม .exe
option: compile to - exe file
setup: directories: executable dir=c:\
บทเรียนที่ 1
- รับค่า แล้วพิมพ์ค่านั้นออกมา จากนั้นปิดโปรแกรมไปเลย
    รายละเอียดเพิ่มเติม
  1. อักษรสีขาว คือสิ่งที่ระบบแสดงออกมา
  2. อักษรสีเหลือง คือสิ่งที่เราพิมพ์ หรือป้อนเข้าไป
  3. Source code โปรแกรมนี้มี 2 บรรทัดคือ รอรับค่าเข้าตัวแปร A$ จากนั้นแสดงออกมา
  4. เมื่อพิมพ์ run แล้ว จะสั่งให้ประมวลผลตามคำสั่งที่พิมพ์เข้าไป
  5. เมื่อพิมพ์ system แล้ว จะสั่งปิดโปรแกรม GWBASIC แล้วกลับเข้าระบบปฏิบัติการ หรือ OS นั่นเอง
GW-BASIC 3.23
(C) Copyright Microsoft 1983,1984,1985,1986,1987,1988
(C) Copyright American Research Corporation. 1988,1989
60300 Bytes free
Ok
100 INPUT A$
200 PRINT "YOU TYPED "; A$
run
? abcdef
abcdef
OK
system
บทเรียนที่ 2
- พิมพ์ 1 ถึง 5 ด้วย go to
    รายละเอียดเพิ่มเติม
  1. ใช้ go to พิมพ์ 1 ถึง 10
  2. ถ้าใช้ if ร่วมกับ go to ในบรรทัดที่ 20 อาจต้องใช้ go to 2 คำสั่งในโปรแกรมนี้
GW-BASIC 3.23
(C) Copyright Microsoft 1983,1984,1985,1986,1987,1988
(C) Copyright American Research Corporation. 1988,1989
60300 Bytes free
Ok
list
10 dim a
20 a = a + 1
30 print a
40 if a < 5 then go to 20
Ok
run
1
2
3
4
5
Ok
บทเรียนที่ 3
- พีระมิดของตัวเลข
    รายละเอียดเพิ่มเติม
  1. สมมติให้มีการเขียนโปรแกรมแล้ว save เก็บในชื่อ p01.bas ไว้แล้ว โปรแกรมนี้จึง load โปรแกรมนี้มาใช้
  2. การใช้ for ซ้อน for
  3. การใช้ tab กำหนดตำแหน่งให้ง่ายขึ้น
  4. ฟังก์ชัน STR$ ใช้เปลี่ยนตัวเลขเป็นตัวอักษร
  5. ฟังก์ชัน RIGHT$ ใช้นำอักษรเฉพาะทางขวาเพียง 1 อักษรมาใช้
GW-BASIC 3.23
(C) Copyright Microsoft 1983,1984,1985,1986,1987,1988
(C) Copyright American Research Corporation. 1988,1989
60300 Bytes free
Ok
load "p01.bas"
OK
list
10 FOR I = 1 TO 5
15 PRINT TAB(40 - I);
20 FOR J = 1 TO I
30 PRINT RIGHT$(STR$(J),1);
40 NEXT J
50 PRINT
60 NEXT I
Ok
run
                                      1
                                     12
                                    123
                                   1234
                                  12345
Ok
บทเรียนที่ 4
- รับค่าลงอาเรย์ 5 จำนวนแล้วหาค่า max
    รายละเอียดเพิ่มเติม
  1. แสดงตัวอย่างอาเรย์
  2. การใช้ for ทำซ้ำ 2 ครั้ง
  3. การใช้ if เลือกตามค่า max
    แบบฝึกหัด
  1. เพิ่มการหาค่า min
  2. เพิ่มการหาค่าเฉลี่ย
  3. แต่งให้สวยงามขึ้น
GW-BASIC 3.23
60300 Bytes free
Ok
10 DIM AR(5)
20 MAX = 0
30 I = 0
40 FOR I = 1 TO 5
50 INPUT AR(I)
60 NEXT
70 FOR I = 1 TO 5
80 IF AR(I) > MAX THEN MAX = AR(I)
90 NEXT
100 PRINT MAX
บทเรียนที่ 5
- วัดเวลาการทำงาน (สามารถทดสอบ Code Optimization ได้)

5 START = TIMER
10 DIM X
20 FOR I = 1 TO 1000000!
30 X = X + I
40 NEXT
50 PRINT X
60 PRINT(TIMER - START)

run
 4.999414E+11 
 1.589844
Ok
บทเรียนที่ 6
- ประมวลผลใน Commmand Line
- จากตัวอย่างข้างล่าง สามารถนำไปใช้ใน Editplus ช่วยการเขียน และประมวลผลได้

DOS> copy con x.bas
10 PRINT 5
20 SYSTEM
DOS> gwbasic x.bas
DOS> gwbasic x.bas > y.txt
ข้อควรทราบ
1. copy con ไม่สามารถใช้ใน dosbox
2. แฟ้ม y.txt ที่ได้มีขนาด 5 bytes
3. เนื้อข้อมูลเมื่อดูด้วย debug คือ 20 35 20 0D 0A
4. ตัวอย่างนี้ประมวลผลได้ ทั้งบน WinXP และ Win7
บทเรียนที่ 7
- เพลงบรรเลงเหมือนเสียงโทรศัพท์ ฟังเพลิน

10 REM This is a well-known piece of music.
20 ' Note that 0 is used and so is O (for Octave).
30 ' Note that either suffix # or + can indicate a sharp.
40 ' http://glind.customer.netspace.net.au/gwbas-7.html
50 CLEAR
60 PARTTUNE$= "DF#A L2 O4 D L4 O5 DD P4"
70 PLAY "T180 DF#A L2 A L4 O4 AA P4 F#F# P4 O3 D"
80 PLAY "DF#A L2 A L4 O4 AA P4 GG P4 O3 C#"
90 PLAY "C#EB L2 B L4 O4 BB P4 GG P4 O3 C#"
100 PLAY "C#EB L2 B L4 O4 BB P4 F+F+ P4 O3 D"
110 PLAY PARTTUNE$
120 PLAY "O4 AA P4 O3 D"
130 PLAY PARTTUNE$
140 PLAY "O4 BB P4 EEG L8 B P8 ML B1 L4 MN G#A ML L3 O5 F#1"
150 PLAY "L4 MN D O4 F# ML L2 F# MN L4 E ML L2 B MN L4 A"
160 PLAY "D P8 D8 D4"
170 END
คำสั่งที่ควรรู้
1clsClear Screen
2i=0กำหนดค่าให้กับตัวแปร
3print 5,5;5;5,5, จะห่าง 1 tab ส่วน ; จะติดกัน
4goto 10ไปทำงานบรรทัดที่ 10
5input iรับตัวเลขจากแป้นพิมพ์ (a$ = String)
6locate 5,40:print "x"ย้าย Cursor ไปตำแหน่งที่ต้องการ
7if i = 1 then cls else print "a"เลือก หรือตัดสินใจ
8for j = 1 to 5
..
next
ทำซ้ำด้วย for
9save "a.bas",aเก็บแบบ Ascii เปิดด้วย Notepad ได้
10screen 2เข้าสู่ full screen mode
    ตัวอย่างการ print แบบต่าง ๆ
  1. write 5
  2. write (5 + 5)
  3. print 5,5;5
  4. print 5;5,5
  5. print a,a,a
  6. print a;a;"ok",a;a;
  7. print tab(10) 10
  8. print tab(a) a
  9. print tab(a) a,b
  10. print tab(20) using "##,###"; a
  11. print string$(50,"-")
  12. print asc("A")
  13. print chr$(65)
  14. print abs( 5 )
  15. print exp( 5 )
  16. print int( 5 )
  17. print sqr( 5 )
  18. print sin( 5 )
  19. print cos( 5 )
  20. print tan( 5 )
  21. randomize timer
  22. print int(10 * rnd + 1)
  23. print left$("abcde",2)
  24. print right$("abcde",2)
  25. print mid$("abcde",2,3)
  26. print len$("abcde")
  27. print val("123")
  28. print str$(5)
    ตัวอย่าง คำสั่งที่น่าสนใจ
  1. cls
  2. rem This is my first program
  3. new
  4. run
  5. run 50
  6. end
  7. list 100 - 200
  8. save "a.bas" , a
  9. load "a.bas"
  10. delete 100 -
  11. edit 200
  12. auto
  13. dim x(5)
  14. dim ename$(5), esalary(5)
  15. dim aa$(10)
  16. dim a(5,10)
  17. i=0:j=10:a=5:bb$="burin"
  18. input a
  19. input bb$
  20. input "Wait your key? " ; bb$
  21. for .. next
  22. if .. then .. else ..
  23. locate 5,40:print "x"
  24. goto 20
  25. on n goto 1000, 2000, 3000
  26. gosub
  27. return
  28. read a
  29. read bb$,a
  30. data 1000,5000,2000,4500,"abc","def"
  31. swap a,b
  32. screen 0
  33. screen 2
  34. line (10,10) - (20,20)
  35. draw "BM 50,50 R 100 D 50 L 100 U 50"
  36. circle (10,20),30
  37. color 3,4
  38. play "c8de8fg9ab"
  39. rem character for play command C = DO, D = RE, E = M?, F = FA, G = SOL, A = LA, B = S?
GW-Basic Manual
Microsoft User's Reference by Thomas Shaffner
from http://www.antonis.de/qbebooks/gwbasman/index.html
   ABS ASC ATN AUTO BEEP BLOAD BSAVE CALL CDBL CHAIN CHDIR CHR$ CINT CIRCLE CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ DEFINT DEFDBL DEFSNG DEFSTR DELETE DIM DRAW EDIT END ENVIRON EOF ERASE ERROR EXP EXTERR FIELD FILES FIX FOR FRE GET GOSUB-RETURN GOTO HEX$ IF INKEY$ INP INPUT INPUT# INPUT$ INSTR INT IOCTL IOCTL$ KEY KILL LEFT$ LEN LET LINE LIST LLIST LOAD LOC LOCATE LOCK LOF LOG LPOS LPRINT LSET MERGE MID$ MID$ MKDIR MKD$ MKI$ MKS$ NAME NEW NEXT OCT$ ON-GOSUB ON-GOTO OPEN OPTION OUT PAINT PALETTE PCOPY PEEK PLAY PMAP POINT POKE POS PRESET PSET PRINT RANDOMIZE READ REM RENUM RESET RESTORE RESUME RETURN RIGHT$ RMDIR RND RSET RUN SAVE SCREEN SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STICK STOP STR$ STRIG STRING$ SWAP SYSTEM TAB TAN TIME$ TIMER TROFF TRON UNLOCK USR VAL VARPTR VARPTR$ VIEW WAIT WHILE-WEND WIDTH WINDOW WRITE WRITE#

gw-man.zip # 637 KB
ข้อความจากเว็บไซต์ oocities.com
   In October 2009 we archived our olden cities of the web: The unique pages on "GeoCities.com" just before they were taken down. Geocities started in 1994 and was the first giant "social network" and one of the most important websites in the world until it was closed on 27.10.2009. Our aim is to save those pages which are worthy and unique scientific sources or are of great public interest as well as those, which are historically interesting or just representing the 90's website culture and style. If you are interested in these old pages feel free to browse around. Please note: it will be a while until all pages are sorted, complete and free of any spam contents! In case you are searching for your own personal site, there is a small chance that we have it but have not put it online yet. In case you want your own page, email or picture to be removed, contact us as well. For any questions, read our FAQ or contact us at oocities@gmail.com

สถิตินี้สะท้อนว่า wordpress ล้ม geocities
ผมว่าเป็นไปได้ เพราะผมก็ใช้ไป 4 ระบบแล้ว

9 มิ.ย.56 อินเทอร์เน็ตและการพัฒนาเว็บไซต์ในยุคแรก ไม่มีนักพัฒนาคนใดไม่รู้จัก geocities.com เพราะเป็นผู้ให้บริการพื้นที่โฮมเพจฟรีอันดับหนึ่ง ในยุคที่ server-sided script ยังไม่แพร่หลาย ถูกก่อตั้งปี 1994 แล้วปี 1999 ก็ถูกซื้อโดย yahoo.com และปิดบริการ 27 ตุลาคม 2009 สืบเนื่องจากก็มีเว็บไซต์มากมายเปิดให้บริการหลากหลายรูปแบบ และสมบูรณ์ทั้งบน windows และ linux แล้วการทำธุรกิจด้านนี้ก็ไม่เป็นไปตามที่คาดหมายไว้ ทำให้ทะยอยปิดกันไปเกือบหมด
เนื้อหามากมายใน geocities.com มีคุณค่า และมีผู้เห็นคุณค่า จึงเปิด domain ใหม่ ชื่อ oocities.com และนำข้อมูลไปเก็บ แล้วเผยแพร่ในรูปของ mirror site ซึ่งตัวแปลภาษา gw-basic ก็ได้เนื้อหา และตัวแปลภาษามาจากเว็บไซต์นี้ ในบัญชีของ kindlyrat
    แนะนำเว็บ (Web Guides)
  1. http://en.wikipedia.org/wiki/GW-BASIC (รายละเอียดครบถ้วน)
  2. http://www.oocities.org/KindlyRat/GWBASIC.html (Number one & Many Games)
  3. http://peyre.x10.mx/GWBASIC/ (Compiler & Games)
  4. http://www.antonis.de/qbebooks/gwbasman/index.html (qbebooks)
  5. http://uolang.org/sourcecode/basic/basic.html (Source Code)
  6. http://www.freebasic.net/ ( Open Source Compiler: download 500 KB )
  7. http://www.thefreecountry.com/compilers/basic.shtml
  8. http://hwiegman.home.xs4all.nl/gwbasic.html : document and utilities
  9. Basic programming article : Ken Holmes
  10. http://scottserver.net/basically/geewhiz.html and Games : by Gee whiz (expired)
  11. http://aragez.sitemynet.com/gwba.html (expired)