كومودور مضاهاة 65

صورة

أنت لا تعرف أبدًا أين ومتى وفي أي وقت تتعلم فيه عن كمبيوتر غير معروف.

هذه المرة اتضح أنه أسهل.

لقد بدأت في البحث عن قائمة بأجهزة الكمبيوتر المستندة إلى 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 DMA
128K ROM
128K 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 واقترح عدة إجراءات. بالإضافة إلى ذلك ، فإن بعض المعلومات غير مفهومة بالنسبة لي. ومع ذلك ، آمل أن أتمكن يومًا ما من الوصول إلى الحياة الواقعية واكتشاف كل ما هو مثير للاهتمام ، ويمكنني كتابة البرامج. حسنًا ، أليس هذا فرحًا؟

دمية

All Articles