mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-08-13 18:24:39 +02:00
[uxntal/he] Add a Hebrew translation of the Uxntal page (#5300)
This commit is contained in:
committed by
GitHub
parent
6cf70be6d0
commit
a3f67e2dc2
187
he/uxntal.md
Normal file
187
he/uxntal.md
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
---
|
||||||
|
name: Uxntal
|
||||||
|
contributors:
|
||||||
|
- ["Devine Lu Linvega", "https://wiki.xxiivv.com"]
|
||||||
|
translators:
|
||||||
|
- ["Maja Abramski-Kronenberg", "https://me.digitalwords.net"]
|
||||||
|
filename: learnuxn.tal
|
||||||
|
---
|
||||||
|
|
||||||
|
<p dir="rtl">
|
||||||
|
אוקסנטל (Uxntal) היא שפת סף מבוססת מחסנית שמִּתרגמת לשפת מכונה של מכונה ווירטואלית בשם אוקסן (Uxn).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p dir="rtl">
|
||||||
|
תכנות של מכונת מחסנית עלול להראות מוזר בגלל השימוש בכתיב סופי, כלומר כתיב שבו הסמנים של פעולות (אופרטורים) תמיד ממוקמים בסוף הפעולה.
|
||||||
|
לדוגמה, נכתוב <code>3 4 +</code> במקום הכתיב הרגיל <code>3 + 4</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p dir="rtl">
|
||||||
|
את הביטוי שנכתב בכתיב הרגיל <code>(5 + 10) * 3</code> נוכל לכתוב <code>5 10 + 3 *</code> בכתיב הסופי, שנקרא גם „כתיב פולני הפוך”.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
```tal
|
||||||
|
( זו הערה )
|
||||||
|
|
||||||
|
( התכנות באוקסנטל נעשה כולו בעזרת שינוי המחסנית )
|
||||||
|
|
||||||
|
#12 ( דחוף בית (8 סיביות) )
|
||||||
|
#3456 ( דחוף צמד בתים (16 סיביות) )
|
||||||
|
|
||||||
|
( באוקסן 32 הוראות, ולכל הוראה שלושה מצבים אפשריים )
|
||||||
|
|
||||||
|
POP ( שלוף בית )
|
||||||
|
POP2 ( שלוף צמד בתים )
|
||||||
|
|
||||||
|
( המצבים הם:
|
||||||
|
[2] (מצב צמד בתים)
|
||||||
|
עבוד עם צמד בתים במחסנית (מצב ברירת המחדל הוא עבודה עם בתים)
|
||||||
|
|
||||||
|
[k] (מצב הותרה)
|
||||||
|
הפריטים עליהם מבוצעת ההוראה נשארים במחסנית
|
||||||
|
|
||||||
|
[r] (מצב חזרה)
|
||||||
|
ההוראה מבוצעת על מחסנית החזרה )
|
||||||
|
|
||||||
|
#12 #34 ADD ( 46 )
|
||||||
|
#12 #34 ADDk ( 12 34 46 )
|
||||||
|
|
||||||
|
( ניתן לשלב בין המצבים השונים )
|
||||||
|
|
||||||
|
#1234 #5678 ADD2k ( 12 34 56 78 68 ac )
|
||||||
|
|
||||||
|
( ההוראות החשבוניות וההוראות על סיביות הן:
|
||||||
|
ADD SUB MUL DIV
|
||||||
|
AND ORA EOR SFT )
|
||||||
|
|
||||||
|
( ניתן ליצור הוראות חדשות בעזרת מקרואים )
|
||||||
|
|
||||||
|
%MOD2 { DIV2k MUL2 SUB2 }
|
||||||
|
|
||||||
|
#1234 #0421 MOD2 ( 01 b0 )
|
||||||
|
|
||||||
|
( ---------------------------------------------------------------------------- )
|
||||||
|
|
||||||
|
( צמד בתים הוא פשוט שני בתים צמודים; ניתן גם לפעול על כל בית בנפרד )
|
||||||
|
|
||||||
|
#1234 SWP ( 34 12 )
|
||||||
|
#1234 #5678 SWP2 ( 56 78 12 34 )
|
||||||
|
#1234 #5678 SWP ( 12 34 78 56 )
|
||||||
|
|
||||||
|
( ניתן להסיר מהמחסנית כל אחד מהבתים שמרכיבים צמד בתים )
|
||||||
|
|
||||||
|
#1234 POP ( 12 )
|
||||||
|
#1234 NIP ( 34 )
|
||||||
|
|
||||||
|
( ההוראות על המחסנית עצמה הן:
|
||||||
|
POP DUP NIP SWP OVR ROT )
|
||||||
|
|
||||||
|
( ---------------------------------------------------------------------------- )
|
||||||
|
|
||||||
|
( ניתן להשוות בין ערכים במחסנית )
|
||||||
|
|
||||||
|
#12 #34 EQU ( 00 )
|
||||||
|
#12 #12 EQU ( 01 )
|
||||||
|
|
||||||
|
( הוראות לוגיות דוחפות למחסנית דגל עם ערך 00 או 01 לפי התוצאה )
|
||||||
|
|
||||||
|
#12 #34 LTH
|
||||||
|
#78 #56 GTH
|
||||||
|
#0101 EQU2 ( 01 )
|
||||||
|
|
||||||
|
( ההוראות הלוגיות הן:
|
||||||
|
EQU NEQ GTH LTH )
|
||||||
|
|
||||||
|
( ---------------------------------------------------------------------------- )
|
||||||
|
|
||||||
|
( הזכרון הזמין לאוקסן:
|
||||||
|
256 בתים במחסנית העבודה
|
||||||
|
256 בתים במחסנית החזרה
|
||||||
|
65536 בתים בזכרון
|
||||||
|
256 בתים בזכרון הקלט והפלט )
|
||||||
|
|
||||||
|
( 0000-ffff כתובות הזכרון הזמינות הן בטווח )
|
||||||
|
|
||||||
|
#12 #0200 STA ( אחסן 12 בכתובת 0200 בזכרון )
|
||||||
|
#3456 #0201 STA2 ( אחסן 3456 בכתובת 0201 בזכרון )
|
||||||
|
#0200 LDA2 ( 12 34 )
|
||||||
|
|
||||||
|
( הכתובות בדף האפס הן בנות בית יחיד )
|
||||||
|
|
||||||
|
#1234 #80 STZ2 ( אחסן 12 ב־0080, ו־34 ב־0081 )
|
||||||
|
#80 LDZ2 ( 12 34 )
|
||||||
|
|
||||||
|
( התקנים חיצוניים הם הדרך של אוקסן לתקשר עם העולם החיצון.
|
||||||
|
ניתן לחבר עד 16 התקנים בעת ובעונה אחת.
|
||||||
|
.10-1f הבתים של ההתקנים נקראים „פורטים”. לדוגמה, התקן הקונסולה משתמש בפורטים
|
||||||
|
/write הפורט לכתיבה לקונסולה, שמספרו 18, נקרא בשם )
|
||||||
|
|
||||||
|
%EMIT { #18 DEO }
|
||||||
|
|
||||||
|
#31 EMIT ( הדפס "1" בקונסולה )
|
||||||
|
|
||||||
|
( תווית היא שוות ערך למיקום מסויים בתוכנית )
|
||||||
|
@parent ( parent הגדר תווית בשם )
|
||||||
|
&child ( parent/child הגדר תת־תווית )
|
||||||
|
|
||||||
|
( ניתן לדחוף מיקומים למחסנית )
|
||||||
|
;parent ( דחוף מיקום מוחלט, באורך 2 בתים )
|
||||||
|
,parent ( דחוף מיקום יחסי, באורך בית אחד )
|
||||||
|
.parent ( דחוף מיקום בדף האפס, באורך בית אחד )
|
||||||
|
|
||||||
|
( ההוראות על הזכרון הן:
|
||||||
|
LDZ STZ LDR STR
|
||||||
|
LDA STA DEI DEO )
|
||||||
|
|
||||||
|
( ---------------------------------------------------------------------------- )
|
||||||
|
|
||||||
|
( הוראות לוגיות מאפשרות ליצור תנאים )
|
||||||
|
|
||||||
|
#12 #34 NEQ ,skip JCN
|
||||||
|
#31 EMIT
|
||||||
|
@skip
|
||||||
|
|
||||||
|
( for ניתן גם ליצור בעזרתן לולאות )
|
||||||
|
|
||||||
|
#3a #30
|
||||||
|
@loop
|
||||||
|
DUP EMIT ( כשהתוכנית תסיים יודפס "0123456789" בקונסולה )
|
||||||
|
INC GTHk ,loop JCN
|
||||||
|
POP2
|
||||||
|
|
||||||
|
( while בדומה, ניתן ליצור גם לולאות )
|
||||||
|
|
||||||
|
;word
|
||||||
|
@while
|
||||||
|
LDAk EMIT
|
||||||
|
INC2 LDAk ,while JCN
|
||||||
|
POP2
|
||||||
|
BRK
|
||||||
|
|
||||||
|
@word "vermillion $1
|
||||||
|
|
||||||
|
( JMP2r ולחזור בעזרת ,JSR ניתן לקפוץ אל תת־שגרות בעזרת )
|
||||||
|
|
||||||
|
;word ,print-word JSR
|
||||||
|
BRK
|
||||||
|
|
||||||
|
@print-word ( word* -- )
|
||||||
|
@while
|
||||||
|
LDAk EMIT
|
||||||
|
INC2 LDAk ,while JCN
|
||||||
|
POP2
|
||||||
|
JMP2r
|
||||||
|
|
||||||
|
@word "cerulean
|
||||||
|
|
||||||
|
( ההוראות לקפיצה הן:
|
||||||
|
JMP JCN JSR )
|
||||||
|
```
|
||||||
|
|
||||||
|
<h2 dir="rtl">רוצה עוד?</h2>
|
||||||
|
|
||||||
|
<ul dir="rtl">
|
||||||
|
<li><a href="https://compudanzas.net/uxn_tutorial.html">מדריך אוקסנטל</a> (בספרדית ובאנגלית)</li>
|
||||||
|
<li><a href="https://wiki.xxiivv.com/site/uxntal.html">שפת הסף אוקסנטל</a> (באנגלית)</li>
|
||||||
|
<li><a href="https://github.com/hundredrabbits/awesome-uxn">ריכוז של פרוייקטים מעשה ידי הקהילה</a> (באנגלית)</li>
|
||||||
|
</ul>
|
Reference in New Issue
Block a user