أنت لا تعرف أبدًا أين ومتى وفي أي وقت تتعلم فيه عن كمبيوتر غير معروف.هذه المرة اتضح أنه أسهل.لقد بدأت في البحث عن قائمة بأجهزة الكمبيوتر المستندة إلى MOS 6502 وصدرت ذكر C64Dx (أو C65) استنادًا إلى 65CE02 - وهو نموذج أولي لجهاز كمبيوتر تم إنشاؤه في Commodore Business Machines في 1990-1991. هذه نسخة محسنة من Commodore 64 ، وكان من المفترض أن تكون متوافقة مع الإصدارات السابقة مع جهاز كمبيوتر قديم ، مع الاستمرار في تقديم عدد من الميزات المتقدمة بالقرب من Amiga. عدد النماذج التي تم إصدارها ليس كثيرًا ، ولكن قائمة الأسعار التي تم الإعلان عنها عند شراء C65 مثيرة للإعجاب.قرأت أيضًا عن MEGA65 - جهاز كمبيوتر متوافق مع C64 / C65. هذا كل شيء ، أنا جاهز للتعرف.وضعية الفيديو
توفر شريحة VIC III
الجديدة الميزات التالية:- وضع النص 40/80 × 25
- 320 × 200 × 256
- 640 × 200 × 16
- 1280 × 200 × 4
- 320 × 400 × 256
- 640 × 400 × 16
- 1280 × 400 × 4
أوضاع الفيديو المتاحة متوافقة معوحدة التحكم VIC II DMA128K ROM128K RAM ، قابلة للتوسيع حتى 1M شريحتينصوتيتين SIDإصدار جديد من BASIC 10.0الآن محاكي. لم يعملHi65 ، وترك فقط أمثلة BASIC للتعرف على الرسومات.أخذت واحدة أخرى . تحتاج أيضًا إلى تنزيل الملف وإعادة تسميته إلى c65-system.romتشغيل المحاكي:xc65.exe -8 diskimage.d81
للراحة ، بدأت في البحث عن أدوات متقاطعة:- Assembler 64tass منذ ذلك الحين يدعم 65CE02- cc1541 V3.1 - تقوم الأداة بإنشاء صور d81 وإضافة ملفات. لذا من الملائم
وصف DirMaster v3.1.5 / Style عند البناء . يجب ان يملك.كان الهدف الأول هو كتابة برنامج يعرض "Hello، world!" اقترحت مواضيع القراءة على المنتديات حلاً:*=$0FFE
.byte $00, $10
ldx #$0
cycle lda hworld,x
cmp #0
beq exit
sta $0800,x
; sta $D800,x
inx
jmp cycle
exit rts
hworld .text 'hello world!',0
هناك خطأ ما؟ يختلف الترميز فقط:
لذلك ، تم تغيير النص إلى:hworld .byte 8,5,$0C,$0C,$0F,$20,$17,$0F,$12,$0C,4,$21,0
بعد ذلك ، وجدت وثائق دليل مرجعي Commodore 64 Programmers وأرشيف آخر وجد الكثير من الأشياء الجيدة. اقترحتقراءة رصيف c64-programmers_reference_guide-03-programming_graphics.pdf فكرة التأثير الفردي. على سبيل المثال lda #$62
sta $D018
ضع ذاكرة الفيديو عند 1800 دولار ، وبيانات الشخصية عند 800 دولار. قراءة c65manual.txt ، وجدت معلومات حول الألوان:$ D100 ، $ D200 ، D300 $ - R ، G ، Bed و color قيم (0-15)$ D800- $ DBFFF - سمات نص اللون (أو بالأحرى ، يتم تخزين جميع الألوان في العناوين $ 1F800 - $ 1FFFF).بعض العينات من الرمز ، حصلت على مجموعة أحرف جاهزة وألوان بسيطة. أردت فقط استخدام شريحة DMAgic لنقل قسمين من الذاكرة.بدأت بقراءة الاحواض .تعمل وحدة التحكم في 4 أوضاع:COPY - نسخ جزء من ذاكرةSWAP - تبادل البيانات لأقسامFILL - ملء قسم الذاكرة بالبياناتMIX - ينفذ مزيج Minterm المنطقي على المصدر وجهاز الاستقبال (اقتلني ، لا أعرف كيف أكتب)ثم ارتبكت تمامًا ، فهمت فقط مبدأ العمل. لتوفير الراحة ، يتم استخدام جداول DMAT ، سيؤدي كتابة البيانات إلى السجلات إلى إجراء العملية: lda #0 ;the bank (0-15) where the list is
sta $d702
lda #>address ;the high byte of the list address
sta $d701
lda #<address
sta $d700 ;the low byte of the list address
;this also triggers the dma operation,
;and the cpu is suspended
loop: bit $d703 ;check status (in case irq/nmi enabled)
bmi loop ; busy
jmp doplas
; DMA 3, 2000, ASC("+"), 0, DEC("800"), 0 Fill screen with '+'
; DMA 0, 2000, DEC("800"), 0, DEC("8000"), 1 Copy screen to $18000
address:
.byte 0 ;command
.word 80*25; copy size
.word $C000 ; 800+80 ; src adr
.byte 1 ; bank
.word $1800 ; dst adr
.byte 0 ; bank
.word 0 ; modulo n/u
في الوقت نفسه ، في قفص الاتهام ، قرأت أنه يمكنك استخدام DMA. لقد كتبت برنامجًا دون معرفة اللغة:
الآن أصبح العمود الفقري جاهزًا ، وأنا أعرف البيانات اللازمة ، وحان الوقت لكتابة الرمز بشكل أكبر. ولكن ، في اليوم التالي كنت أنتظر المشكل الكامل - لم أجد ذاكرة حرة ولم أفهم كيف تعمل عمليات الذاكرة. اقترح المنتدى أن السبب كان في محاكي kemu واقترح عدة إجراءات. بالإضافة إلى ذلك ، فإن بعض المعلومات غير مفهومة بالنسبة لي. ومع ذلك ، آمل أن أتمكن يومًا ما من الوصول إلى الحياة الواقعية واكتشاف كل ما هو مثير للاهتمام ، ويمكنني كتابة البرامج. حسنًا ، أليس هذا فرحًا؟دمية