המחשב המלא

Dragon 32, המחשב המלא

Dragon 32 יצא בוויילס ב-1982: 32 קילובייט זיכרון, מקלדת שמתחברת לטלוויזיה, וקלטת קסטה במקום כונן. כאן הוא רץ בדפדפן: מכניסים מחסנית ומשחקים, טוענים משחקים מהקלטת, או כותבים BASIC בעצמכם.

המחשב

ככה נראה המסך כשהדלקנו את המחשב. געו במסך הירוק, איפה שהריבוע מהבהב, הקלידו פקודה באנגלית ולחצו Enter. עברית הוא לא הכיר, נסו ותראו.


      
    

טיפ: אפשר גם להקליד CLOAD "LANDER", ואחרי משחק LIST מראה את הקוד שלו. CLS עם מספר מ-0 עד 8 צובע את המסך. AUTO ממספר בשבילכם את שורות התוכנית, ושורה ריקה מסיימת. כשהתוכנית מוכנה, מקלידים RUN, ו-CSAVE "NAME" שומר אותה על המדף.

חריץ המחסניות: משחקי פעולה עם גרפיקה. בחרו מחסנית, והיא תיכנס למחשב

מדף הקלטות: בחרו קלטת, והיא תיטען ותתחיל

אז והיום: מה הייתי כותב היום ל-Claude

אז היה צריך לדעת בדיוק איך לכתוב כל שורה. היום מספיק להסביר מה רוצים.

10 PRINT "GONEN ";
20 GOTO 10

"תמלא לי את המסך בשם שלי, שוב ושוב, עד שאגיד די."

10 FOR I=1 TO 12
20 SOUND I*20,2
30 NEXT I

"תשמיע לי סולם של צלילים, מהנמוך לגבוה."

30 N=RND(100):T=0
40 INPUT "YOUR GUESS";G
50 T=T+1
60 IF G<N THEN PRINT "HIGHER!":GOTO 40
70 IF G>N THEN PRINT "LOWER!":GOTO 40
80 PRINT "YES! IT WAS";N

"תבנה לי משחק קטן: המחשב בוחר מספר בין 1 ל-100, אני מנחש, והוא אומר לי אם לעלות או לרדת. בסוף תגיד לי בכמה ניסיונות הצלחתי."

TYPE-IN PROGRAM · 1983

DRAGON DERBY

תוכנית מעיתון. בשנות ה-80 עיתוני מחשבים הדפיסו תוכניות שלמות, וילדים ישבו שעות והקלידו אותן אות אחרי אות. מספיקה טעות אחת קטנה, והמחשב עונה ?SN ERROR. זו תוכנית מקורית שלנו, בסגנון של אז: מרוץ סוסים קטן. מהמרים על סוס, ורואים מי מגיע ראשון.

איך: הקלידו AUTO במחשב שלמעלה, ואחריו את השורות (בלי המספרים, AUTO מוסיף אותם). בסוף RUN. או שתנו למחשב להקליד בשבילכם.

10 CLS 6
20 PRINT "DRAGON DERBY"
30 INPUT "BET ON HORSE (1-3)";B
40 X=0:Y=0:Z=0
50 X=X+RND(3):Y=Y+RND(3):Z=Z+RND(3)
60 CLS 6
70 FOR I=1 TO X:PRINT "-";:NEXT I:PRINT "1"
80 FOR I=1 TO Y:PRINT "-";:NEXT I:PRINT "2"
90 FOR I=1 TO Z:PRINT "-";:NEXT I:PRINT "3"
100 SOUND 60+X+Y+Z,1
110 FOR T=1 TO 150:NEXT T
120 IF X<25 AND Y<25 AND Z<25 THEN 50
130 W=1:M=X
140 IF Y>M THEN W=2:M=Y
150 IF Z>M THEN W=3
160 PRINT "HORSE";W;"WINS!"
170 IF W=B THEN PRINT "YOU WIN!":FOR I=1 TO 5:SOUND 150+I*20,1:NEXT I:END
180 PRINT "BETTER LUCK NEXT TIME"

שימו לב לשורה 110: FOR T=1 TO 150:NEXT T היא לולאה שלא עושה כלום, רק סופרת. ככה עשו "המתנה" אז, כדי שהסוסים לא ירוצו מהר מדי.

היכל התהילה

חמשת השיאים בכל מחסנית, עם שלוש אותיות של שם, כמו במכונות הארקייד. הם נשמרים רק בדפדפן הזה, אז זה היכל התהילה של הבית.

המדריך הקצר

קלטות ומחסניות. ב-Dragon היו שתי דרכים לטעון משחק. קלטת הייתה איטית: תוכנית BASIC שנטענה לאט, לפעמים כמה דקות, ואפשר היה לראות את הקוד שלה. מחסנית נכנסה לחריץ בצד המחשב, ועבדה מיד. המשחקים בה נכתבו בשפת מכונה, ולכן רצו חלק, עם גרפיקה ותנועה. המחסניות כאן הן משחקים מקוריים ברוח המשחקים של אז.

במחסנית משחקים עם החצים ועם רווח, ובטלפון עם הכפתורים שמתחת למסך. Esc או "הוצאת המחסנית" מחזירים ל-BASIC.

ב-BASIC מקלידים באנגלית, ושולחים כל שורה עם Enter. זה התקציר של ספר ההוראות:

הבסיס

PRINT "HELLO"
מדפיס על המסך. גם חשבון: PRINT 7*6.
10 PRINT "HI"
שורה עם מספר לא רצה מיד. היא נשמרת בתוכנית, לפי סדר המספרים.
RUN
מריץ את התוכנית.
LIST
מציג את התוכנית. אחרי שטוענים משחק, אפשר לראות את הקוד שלו.
AUTO
ממספר בשבילכם את השורות: 10, 20, 30. שורה ריקה מסיימת.
NEW
מוחק את התוכנית ומתחיל מחדש.
BREAK / Esc
עוצר תוכנית שרצה.
CLS 3
מנקה את המסך וצובע אותו. מספר מ-0 עד 8.
SOUND 100,4
צפצוף: גובה הצליל, ואז האורך.
INKEY$
המקש שנלחץ עכשיו, בלי לחכות ל-Enter. ככה כתבו משחקים: IF INKEY$="" THEN 100 מחכה למקש.

קלטות

CLOAD "LANDER"
טוען משחק מהקלטת. בלי שם נטען "נחש את המספר".
CSAVE "SHIR"
שומר את התוכנית שכתבתם על "קלטת" בדפדפן הזה. היא מופיעה על מדף הקלטות, ו-CLOAD "SHIR" מחזיר אותה גם מחר. עד 8 אותיות או ספרות באנגלית, ועד 6 קלטות.
✕
הכפתור הקטן על "הקלטת שלי" מוחק קלטת ששמרתם. לחיצה ראשונה שואלת "למחוק?", ורק השנייה מוחקת.

תוכניות

IF A>5 THEN 100 ELSE 200
אם התנאי נכון, עושים את מה שאחרי THEN. אחרת את מה שאחרי ELSE.
GOSUB 100 … RETURN
קופץ לשורה 100, ו-RETURN חוזר לפקודה שאחרי ה-GOSUB. ככה כותבים חלק שמשתמשים בו כמה פעמים.
ON X GOTO 100,200
אם X הוא 1 קופץ ל-100, אם 2 ל-200. עובד גם עם GOSUB.
DIM A(20)
רשימה (מערך) של 21 מספרים: A(0) עד A(20). עם $ זו רשימה של מילים, ואפשר גם טבלה: DIM B(5,5).
READ A$ : DATA DOG,CAT
READ לוקח את הערך הבא משורות ה-DATA בתוכנית, לפי הסדר. RESTORE חוזר להתחלה.
INPUT "AGE";A
שואל ומחכה לתשובה. INPUT A,B מבקש שני ערכים עם פסיק ביניהם, ואם חסר אחד המחשב שואל שוב עם ??.
LINE INPUT N$
מקבל שורה שלמה, גם עם פסיקים.
DEF FNA(X)=X*X
נוסחה משלכם. אחר כך PRINT FNA(3) מדפיס 9.
STOP … CONT
STOP עוצר את התוכנית באמצע, ואפשר לבדוק משתנים עם PRINT. CONT ממשיך מאותו מקום (גם אחרי BREAK).
TRON / TROFF
TRON מראה בסוגריים כל שורה שרצה, כדי למצוא איפה התוכנית טועה. TROFF מכבה.
CLEAR
מאפס את כל המשתנים והרשימות.

לתקן ולסדר

EDIT 20
מעלה את שורה 20 לשורת ההקלדה. מתקנים ולוחצים Enter.
DEL 20-50
מוחק את השורות 20 עד 50. גם DEL 20 לשורה אחת.
RENUM
ממספר מחדש: 10, 20, 30, ומתקן את כל ה-GOTO וה-GOSUB שמצביעים על השורות.

מילים ומספרים

LEFT$ MID$ RIGHT$
חלקים ממילה. מההתחלה: LEFT$("DRAGON",3) = DRA. מהאמצע: MID$("DRAGON",2,3) = RAG. מהסוף: RIGHT$("DRAGON",2) = ON.
LEN INSTR ASC CHR$
אורך המילה: LEN("DOG") = 3. איפה מופיעה אות: INSTR("HELLO","L") = 3. קוד של אות: ASC("A") = 65, ובחזרה: CHR$(65) = A.
STR$ VAL HEX$ STRING$
מספר למילה: STR$(5). מילה למספר: VAL("12") = 12. בבסיס 16: HEX$(255) = FF. אות שחוזרת: STRING$(5,"*") = *****.
INT RND ABS SGN FIX
מספר אקראי מ-1 עד 6: RND(6). בלי מה שאחרי הנקודה: INT ו-FIX. בלי מינוס: ABS. הסימן של מספר: SGN (1, 0 או מינוס 1).
SQR SIN COS TAN ATN LOG EXP
שורש, טריגונומטריה (ברדיאנים), לוגריתם וחזקה.
TIMER
שעון שסופר 50 פעמים בשנייה. TIMER=0 מאפס אותו, טוב למדידת זמן במשחק.
PRINT TAB(10);"X"
מתחיל לכתוב בעמודה 10.
PRINT USING "##.##";A
מספרים מיושרים: # ספרה, $ סימן דולר, , פסיקים של אלפים. ! האות הראשונה של מילה.
PRINT @ 240,"HI"
כותב במקום מסוים במסך. כל שורה היא 32 מקומות: 0 בפינה למעלה, 32 בתחילת השורה השנייה.

גרפיקה וצליל

PMODE 3,1 : SCREEN 1,0
עובר למסך הגרפי (4 צבעים). PCLS 3 צובע את כולו בכחול.
PMODE 0 … PMODE 4
רמות פירוט: 4 הכי חד עם 2 צבעים, 3 עם 4 צבעים, ו-0 עד 2 גסים יותר.
COLOR 4
בוחר צבע לציור: 1 ירוק, 2 צהוב, 3 כחול, 4 אדום. עם SCREEN 1,1: בז', תכלת, סגול, כתום.
PSET(128,96)
נקודה. המסך הוא 256 על 192, ו-(0,0) בפינה השמאלית העליונה.
LINE(0,0)-(255,191),PSET
קו. עם ,B בסוף: מלבן, ועם ,BF: מלבן מלא.
CIRCLE(128,96),40
עיגול: מרכז ורדיוס.
PAINT(128,96),3,4
צובע צורה סגורה: מהנקודה החוצה, בכחול (3), עד שנתקלים בקו אדום (4). ככה ממלאים עיגול.
DRAW "U20R20D20L20"
מצייר בתנועות: U למעלה, D למטה, L שמאלה, R ימינה, ו-E F G H באלכסון. BM10,20 קופץ למקום בלי לצייר, C2 מחליף צבע, S8 מגדיל פי 2.
PPOINT(10,10)
איזה צבע יש בנקודה. כך משחק יודע שנגעתם בקיר.
GET(0,0)-(15,15),S
שומר ריבוע מהציור ברשימה S (קודם DIM S(10)). PUT(100,50)-(115,65),S מדביק אותו במקום אחר. ככה מזיזים דמות.
PCOPY 1 TO 2
מעתיק עמוד גרפי שלם. PMODE 3,2 מציג את עמוד 2.
SET(10,5,3)
ריבוע צבעוני גס על מסך הטקסט (64 על 30). RESET מכבה אותו, ו-POINT(10,5) בודק איזה צבע יש שם.
JOYSTK(0) JOYSTK(1)
הג'ויסטיק: מ-0 עד 63, למעלה-למטה וימינה-שמאלה. במחשב עם החצים, ובטלפון בנגיעה במסך.
PLAY "CDEFGAB"
מנגן תווים. # אחרי תו מעלה חצי טון, O3 אוקטבה גבוהה יותר, L8 תווים קצרים, T6 קצב מהיר יותר, P4 הפסקה.

מותר גם: INPUT, IF … THEN, GOTO, FOR … NEXT, משתנים כמו A או N$, וכמה פקודות בשורה אחת עם נקודתיים. ואם תקלידו את השם שלי, הוא יענה.

← לחדר ה-Dragon באתר