Czy mógłbym otrzymać w pigułce informacje dotyczące programowania w ASM na GX4000?
Chciałbym spróbować coś napisać na ten system, ale w necie spory śmietnik informacyjny i ciężko doszukać się do czegoś konkretnego.
Czy GX4000 i Amstrad Plus to dokładnie to samo, ale GX to tylko wersja "konsolowa" bez klawiatury? Czy są jakieś inne różnice?
Znalazłem taki kod, jest to init Cartridga dla Amstrad Plus/GX4000.
Nie wiem tylko czym to kompilować, doczytałem, że używany jest często PASM - skompilowałem nim i wyszedł 102 Bajtowy plik, wiec pewnie coś trzeba jeszcze dodać jako opcja podczas kompilacji, ale nie wiem co i jak aby wyszedl 16KB plik ROM:)
;; This example shows a suggested startup for a cartridge
;; cartridge page 0 exists at &0000-&3fff
;; execution starts at &0000
;;
org &0000
start:
di ;; disable interrupts
im 1 ;; set interrupt mode 1
ld bc,&f782 ;; setup initial PPI port directions
out (c),c
ld bc,&f400 ;; set initial PPI port A (AY)
out (c),c
ld bc,&f600 ;; set initial PPI port C (AY direction)
out (c),c
ld bc,&7fc0 ;; set initial RAM configuration
out (c),c
;; unlock ASIC so we can access ASIC registers
ld b,&bc
ld hl,sequence
ld e,17
seq:
ld a,(hl)
out (c),a
inc hl
dec e
jr nz,seq
;; set initial CRTC settings (screen dimensions etc)
ld hl,end_crtc_data
ld bc,&bc0f
crtc_loop:
out (c),c
dec hl
ld a,(hl)
inc b
out (c),a
dec b
dec c
jp p,crtc_loop
ld hl,&c9fb
ld (&0038),hl
ei
;; enable asic ram (will be visible in range &4000-&7fff)
ld bc,&7fb8
out (c),c
;; your code here
loop:
jr loop
;; your crtc setup values here; these are examples
crtc_data:
defb &3f, &28, &2e, &8e, &26, &00, &19, &1e, &00, &07, &00,&00,&30,&00,&c0,&00
end_crtc_data:
;; sequence to unlock asic
sequence:
defb &ff,&00,&ff,&77,&b3,&51,&a8,&d4,&62,&39,&9c,&46,&2b,&15,&8a,&cd,&ee
end start