Öncelikle şunu belirtmek isterim ki c128'e özel bir kategori olmadığı için bu topici c64 coding altında açtım. Ama zaten c64 ile de yakından ilişkili bir konu.
Hydrophilic/Hydradix Commodore 128 üzerinde Atari 2600'ün interlace modlarından yola çıkarak 320x400 grafik modu göstermeyi başardı. Aslında Commodore 64'de 640x400'e varıncaya kadar yüksek çözünürlükler gördük ancak bunlar "mecburen" scroll eden grafiklerdi. Ayrıca burada kullanılan trick de oldukça farklı. VIC II'nin özelliklerinden yararlandığı için Commodore 64 üzerinde çalışmayabilir ancak Commodore 128 üzerinde Commodore 64 modunda da bu trick işe yarayacaktır. Detaylar aşağıdaki linkte yer almaktadır:
http://www.geocities.com/hydradix/C128/Interlace.htm Bu $d030 adresi oldukça ilginç bir adres. Ben daha önceleri bu adresi ve $d02f adresini Commodore 64/128 detection için kullanmıştım. Ama anlaşılan bu adreslerde daha çoook iş var
Commoodore 128'im olmadığı için test edemiyorum ama biliyorum, bazılarınızda var. Sizler test edip sonucu buraya gönderirseniz sevinirim.
Bunlar da benim 64/128 detection rutinlerim. Gerçek C64 üzerinde "THIS IS A COMMODORE 64", C128'i C64 modunda açtığınızda ise "THIS IS A COMMODORE 128" diyor bu rutinler. Aynı işi iki farklı yöntemle yapmıştım. ıkisi de aşağıda.
detect.a
; Output
!to "detect.prg", cbm
; Basic Start Address
* = $0801
!byte $0b, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00
; Program Start Address
* = $080d
lda #$00
sta $d020
sta $d021
lda #$01
jsr $e536
lda #$fc
sta $d030
eor $d030
beq .c128
lda #<.c64text
ldy #>.c64text
jmp .out
.c128
lda #<.c128text
ldy #>.c128text
.out
jsr $ab1e
rts
.c64text
!text "THIS IS A COMMODORE 64",0
.c128text
!text "THIS IS A COMMODORE 128",0
detect2.a
; Output
!to "detect2.prg", cbm
; Basic Start Address
* = $0801
!byte $0b, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00
; Program Start Address
* = $080d
lda #$00
sta $d020
sta $d021
lda #$01
jsr $e536
lda #$00
sta $d02f
lda #$ff
cmp $d02f
bne .c128
lda #<.c64text
ldy #>.c64text
jmp .out
.c128
lda #<.c128text
ldy #>.c128text
.out
jsr $ab1e
rts
.c64text
!text "THIS IS A COMMODORE 64",0
.c128text
!text "THIS IS A COMMODORE 128",0