LOAD "$",8
SEARCHING FOR $
LOADING
READY.
LIST
0 "DR.J/DELYSID    " DJ 2A
0 "================" DEL
0 "   DR.J/DELYSID " DEL
0 "================" DEL
3 "CRACKTRO        " PRG
6 "HRTRAINER       " PRG
1 "NOTE            " PRG
664 BLOCKS FREE.
╔════════════╗
║ ♠♣♥♦▲▼◄► ║
║ █▄▀▌▐░▒▓  ║
╚════════════╝
$ txt2dirart game.d64 \
    --from-text art.txt \
    -o release.d64

הכלים שלי

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

txt2dirart

קובץ טקסט נכנס, דיסקט עם ציור בדירקטורי יוצא

גרסה 1.0.2 Windows / Linux / Python MIT
דירקטורי של דיסקט עם ציור, כפי שהוא מוצג על קומודור 64 אמיתי

מה שהכונן מדפיס אחרי LOAD"$",8:

    0 "DR.J/DELYSID    " DJ 2A
    0 "================" del
    0 "   DR.J/DELYSID " del
    0 "================" del
    3 "CRACKTRO        " prg
    6 "HRTRAINER       " prg
    1 "NOTE            " prg

הרשימה מציירת תמונה. הקבצים ממשיכים להיטען.

מה זה ציור בדירקטורי

דירקטורי של 1541 הוא שרשרת של רשומות בנות 32 בתים שיושבות בטראק 18. לכל רשומה יש סוג קובץ, סקטור התחלה, שם באורך 16 תווים ומספר בלוקים.

אם כותבים רשומה מסוג DEL סגור עם אפס בלוקים, הכונן מציג אותה ברשימה כמו כל שם קובץ אחר, אבל היא לא מחזיקה סקטורים, לא מצביעה על שום מידע, וטעינה שלה לא עושה כלום. זאת שורה פנויה של 16 תווים בתוך הדירקטורי. שישה עשר תווים לרוחב, וכמה שורות שנשאר להן מקום בטראק 18. זה הבד.

הסצנה עושה את זה מאז שנות השמונים. הכלי הזה רק הופך את זה למשהו שאפשר להריץ מתוך סקריפט.

למה כתבתי את זה

רציתי דירארט על דיסקט של דמו, ולא מצאתי דרך נוחה לעשות את זה משורת פקודה. הכלים שקיימים או מבקשים ממך לצייר ידנית בתוך עורך דיסקטים גרפי, או נוגעים בקבצים שכבר יושבים על הדיסק. אז כתבתי את שלי. קובץ טקסט אחד נכנס, D64 אחד יוצא, והקבצים שהיו על הדיסקט נטענים אחר כך בדיוק כמו קודם.

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

tap2pdf

קלטת נכנסת, דוסייה כן על מה שיש עליה יוצא

גרסה 1.0 Windows / Linux / Python MIT
דוסייה של קלטת: דוח אימות, פסק דין ומפת קלטת

ומה שמודפס לטרמינל עם ‎--nfo:

VERIFICATION
------------
TAP signature                  PASS
Pulse stream integrity         PASS
CBM block checksums            PASS
First copy vs repeat           PASS
Turbo region integrity         NOT CHECKED
    the format is unidentified, so
    there is no checksum model to
    verify it against

בדיקה שלא רצה לא נספרת כהצלחה.

מה הוא עושה

קובץ tap הוא זרם פולסים. אי אפשר להסתכל עליו ולדעת מה שמור שם, אם הוא שלם, ואם הוא בכלל ייטען. tap2pdf קורא את הקלטת ומוציא דוסייה: דוח אימות, מפת קלטת, מפת זיכרון, ורשימת הקבצים עם כתובות הטעינה שלהם. ב־HTML, ועם ‎--pdf גם כ־PDF בגודל A4.

כלל הכנות

הדוסייה לא נותן שם לשום דבר שהוא לא ביסס. אזור טורבו שהוא לא מזהה נכתב כטורבו לא מזוהה, עם מספר הפולסים והאורך בשניות, ולא כ"כנראה Novaload". בדיקה שלא רצה אף פעם לא מוצגת כאילו עברה: NOT CHECKED היא תוצאה בפני עצמה, והיא מגיעה עם הסיבה שלה. גם קלטת בלי שריטה אחת לא מקבלת אישור בריאות כל עוד משהו נשאר לא בדוק.

דוסייה שנותן בביטחון את השם הלא נכון שולח אותך לחפש שעתיים במקום הלא נכון. עדיף שיגיד לך שהוא לא יודע.