mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-08-10 16:54:33 +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