Hi, nette board hier.
Bin selbst ein alter CPC-Suchti. Hatte damals auch einen 6128 mit GT65 und Scartkabel + Dobbertin-X-Floppy, leider beim Umbau in PC-Gehäuse geschrottet.
Hab zu Zeit WINCPC recht guter CPC-Emu.
Nun hats mich wieder erwicht, damals hatte ich selbst ein paar Routinen in ASM geschrieben. Leider hab ich ich die Listen davon nicht mehr aber vieleicht kann mir ja einer von euch helfen. MIt dem Basic-Code kann ich für die das Vertikale und Horizontale einblenden des Screen schon dienen, leider bekomme ich das nicht so ganz in asm hin.
1 rem Bild aufbau von oben nach unten
10 Mode 0
20 CLS
30 gq=16384:Rem hier vorher ein bild hinladen memory &3fff vorher nicht vergessen
40 gz=49152: Rem screenspeicher hier wird das bild hingepoked
50 for tn=0 to 1999 step 80
60 for n=0 to 7
70 tr=n*2048
80 for tp=0 to 79
90 poke gz+tn+tr+tp,peek(gq+tn+tr+tp)
100 next:next:next
Alles anzeigen
Aufbau von links nach rechts folgt noch.
So wie versproch der nächste Basic-Code von links nach rechts
1 rem bildaufbau von links nach rechts
10 MODE 1:REM MODE anpassen wenn nötig
20 gq=16384:REM MEMORY &3FFF und bild nach &4000 (16384) nicht vergessen
30 gz=49152
40 for cols=0 to 79
50 for t=0 to 24
60 for p=0 to 7
70 poke gz+p*2048,peek(gq+p*2048)
80 next p
90 gz=gz+80:gq=gq+80
100 next
110 gz=49153:gq=16385:rem adressen zurücksetzen und um eins erhöhen
120 gq=gq+cols:gz=gz+cols:rem nächstes pixel in der zeile bestimmen
130 next
Alles anzeigen
habs eben mal neu gecodet *ggg*
So nun beides in einem achtet auf st
Auch hier gilt erst eine Memory &3fff und laden eines bildes nach &4000
10 REM Bildaufbau hori und vert kann gesteuert durch st
20 REM Ihr koennt ja mal mit st bis 79 probieren
30 st=20: REM 1=vert 79=hori
40 FOR b=0 TO 79 STEP st+1
50 gq=16384:REM hier vorher ein bild hinladen memory &3fff vorher nicht vergessen
60 gz=49152: REM screenspeicher hier wird das bild hingepoked
70 FOR tn=0 TO 1999 STEP 80
80 FOR n=0 TO 7
90 tr=n*2048
100 FOR tp=b+0 TO b+st
110 POKE gz+tn+tr+tp,PEEK(gq+tn+tr+tp)
120 NEXT:NEXT:NEXT
130 NEXT b
140 PRINT:PRINT:PRINT:PRINT
Alles anzeigen
So nu werd ich gemein der erste RSXler für euch
Der macht das gleiche wie das erste script nur in ASM/Maschinensprache als RSX
|SCRDOWN,mode
.kl_log_ext equ &bcd1
ORG &8000
ld hl,work_space ;;address of a 4 byte workspace useable by Kernel
ld bc,jump_table ;;address of command name table and routine handlers
jp kl_log_ext ;;Install RSX's
.work_space ;Space for kernel to use
defs 4
.jump_table
defw name_table
jp scrdown
name_table
defb "SCRDOW","N"+&80
defb 0
scrdown
di
ld a,(ix+0) ; get screen mode from |SCRDOWN,x
call &bc0e
.start
LD HL,&C000 ;HL is 'adr' variable
LD DE,&4000
LD C,200 ;Rows
.clear_area
PUSH HL
PUSH DE
LD B,80
.clear_line
LD A,(DE)
LD (HL),A
INC HL
INC DE
DJNZ clear_line
POP DE
CALL scr_sou_next_line
POP HL
CALL scr_next_line ;SCR_NEXT_LINE
DEC C
JR NZ,clear_area
ei
RET
scr_next_line:
ld a,h
add a,8
ld h,a
ret nc
ld a,l
add a,&50
ld l,a
ld a,h
adc a,&c0
ld h,a
ret
scr_sou_next_line:
ld a,d
add a,8
ld d,a
cp &80
ret c
ld a,e
add a,&50
ld e,a
ld a,d
adc a,&C0
ld d,a
ret
Alles anzeigen
Danke noch an Devil und seinem Dritten unbekannten , für den letzten tip, manchmal hat man halt ein Brett vorm Kopf.
naja wie gesagt, hab da lange nicht mehr drauf gecoded
oops da war ein fehler-teufel jetzt stimmts aber.
MfG BAD_CPC