• Welcome to Schneider / Amstrad CPC Forum.
Welcome to Schneider / Amstrad CPC Forum. Please login.

18. April 2025, 13:00:35

Login with username, password and session length

Shoutbox

TFM

2024-04-08, 20:42:44
Happy Sonnenfinsternis!  :)

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

Recent

Members
  • Total Members: 222
  • Latest: giomba
Stats
  • Total Posts: 12,241
  • Total Topics: 1,415
  • Online today: 62
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 50
Total: 51

50 Guests, 1 User
xesrjb

Recent posts

#21
Hardware / Re: MIDI Tracker für den CPC u...
Last post by TFM - 30. March 2025, 17:21:47
Danke für den Link! Da schaue ich demnächst gerne mal rein :-) :-) :-)
#22
Spiele / Babaliba -Trainer
Last post by Mayer - 30. March 2025, 16:37:46
Hallo,

ich, Mayer Software, habe euch einen Babaliba - Trainer hochgeladen.

babaliba.zip
#23
Hardware / Re: MIDI Tracker für den CPC u...
Last post by LambdaMikel - 27. March 2025, 16:00:29
Quote from: TFM on 26. March 2025, 21:22:36Das ist doch Z80-Code, gibt's den Source dazu? Dann sollte man es 'einfach' auf den CPC umsetzen können.  ;)

Na ja, das ist eben die Frage ob "einfach" - der CPC leidet an der langsamen Bildschirmausgabe. Aber ein Programmier-Genie wie Du kriegt das bestimmt hin!  :00008351:

Der Code ist hier - nicht schön, aber selten ;D Ich bin halt kein so guter Z80-Coder wie Du oder Prodatron, bitte nachsichtig sein. Ich muss da noch mal richtig aufräumen demnächst.

https://github.com/lambdamikel/MIDI-80/blob/main/trs-80/zmac/tracker4.asm

#24
Hardware / Re: MIDI Tracker für den CPC u...
Last post by TFM - 26. March 2025, 21:22:36
Das ist doch Z80-Code, gibt's den Source dazu? Dann sollte man es 'einfach' auf den CPC umsetzen können.  ;)
#25
Anwendungen / Re: Schnittpunkt
Last post by BadCPC - 26. March 2025, 19:43:33
So musste feststellen das es mit &BC1D nicht funktionert,habe deswegen was neues gemacht;




org &8000
; diese routine gibt zu jedem plot x,y wert
; 1. die screenadresse &C000 - &FFFF zurück
; 2. das aktuelle byte an der dieser addresse
; 3. ein poke an die gewünschte addresse kann direkt über die variable erfolgen
;
scr_get_mode equ &BC11
scr_prev_line equ &BC29
start_scr_adr equ &FF80  ; start is bottom left for 0,0
              call scr_get_mode
              ld (mode),a
              ld a,(&B6A3)
;get y from ix
              ld h,(ix+1)
              ld l,(ix+0)
              ld de,2
              call div_2
              ld hl,start_scr_adr
;get screenaddres for y  0-399
repeat          push bc
                push de
                push af
                call scr_prev_line ;hl hold now the prev line in this case &FF80-
                pop af
                pop de
                pop bc
                ;ld (hl),a ; write pixel to screen
                ;ld (scr_adr),hl
                dec c
                jr nz, repeat
;djnz repeat
                ld (hight),hl
;add the x to these 0-639               
                ;ld hl,320
                ld h,(ix+3)
                ld l,(ix+2)
                ld e,8
                call div_2  
                ld hl,(hight)
                add hl,bc
                ld (scr_adr),hl
                ld a,(hl)
                ld (pixel),a
                ex de,hl
                ld l,(ix+6)
                ld h,(ix+7)
                ld (hl),e
                inc hl
                ld (hl),d
                ld l,(ix+4)
                ld h,(ix+5)
                ld (hl),a


ret
div_2
 ;ld de,2
Divide:                          ; this routine performs the operation BC=HL/E
  ld a,e                         ; checking the divisor; returning if it is zero
  or a                           ; from this time on the carry is cleared
  ret z
  ld bc,-1                       ; BC is used to accumulate the result
  ld d,0                         ; clearing D, so DE holds the divisor
DivLoop:                         ; subtracting DE from HL until the first overflow
  sbc hl,de                      ; since the carry is zero, SBC works as if it was a SUB
  inc bc                         ; note that this instruction does not alter the flags
  jr nc,DivLoop                  ; no carry means that there was no overflow
  ret


hight dw 0
with dw 0
scr_adr dw 0
mode db &0
pixel db 0



und der Basic-part

1 MEMORY &7FFF
2 LOAD"scradr.bin",&8000
4 scradr%=&FF80
5 pixel%=0
10 x%=320:y%=200
20 BORDER 0: GRAPHICS PEN 1
30 MODE 2: PLOT x%,y%
40 PRINT "Hex :"+HEX$(x%,4),+HEX$(y%,4)
50 IF INKEY(0)=0 THEN y%=y%+2:GOSUB 110
60 IF INKEY(1)=0 THEN x%=x%+2:GOSUB 110
70 IF INKEY(2)=0 THEN y%=y%-2:GOSUB 110
80 IF INKEY(8)=0 THEN x%=x%-2:GOSUB 110
90  IF INKEY(9)=0 THEN LOCATE 1,1:PRINT "Hex:"+HEX$(x%,4),+HEX$(y%,4)
100 GOTO 50
110 IF TEST(x%,y%)=1 THEN LOCATE 20,1:PRINT "Hex :"+HEX$(x%,4),+HEX$(y%,4)
111 CALL &8000,@scradr%,@pixel%,x%,y%
112 LOCATE 40,1:PRINT HEX$(scradr%,4);" ";BIN$(pixel%,8)
120 PLOT x%,y%   
130 RETURN

so kann gerene gegengeprüft werden , falls ich da noch einen fehler drin habe ;)
#26
Hardware / MIDI Tracker für den CPC und d...
Last post by LambdaMikel - 25. March 2025, 01:26:30
Momentan bin ich ich überwiegend mit dem TRS-80 unterwegs - die Ultimate MIDI Card für den CPC habe ich dorthin portiert, und inzwischen haben wir einen recht brauchbaren MIDI Sequencer / Tracker am Laufen:


Der kommt auch ganz gut an in der Community; so haben wir z.B. DOWNPOLY, der damit Musik macht:

https://www.matrixsynth.com/2025/03/thereitisagain-live.html

@TFM und ich hatten ja vor ein paar Jahren auch einmal die Idee eines MIDI Trackers für den CPC unter FutureOS / mit Ultimate MIDI Card / LambdaSpeak FS diskutiert, hatten dann aber "keine Luft mehr", um das in die Tat umzusetzen.

Was am TRS-80 sehr gut ist - die extrem schnelle Bildschirmausgabe. Das ist recht wichtig beim Abspielen; die unterschiedlichen Pages können einfach per ldir in den Bildschirmspeicher eingeblendet werde. So einfach wäre es beim CPC wohl nicht... würde mich interessieren, ob ein einfacher Port des Trackers auf den CPC / FutureOS / ... möglich wäre? Was meint Ihr?

https://github.com/lambdamikel/MIDI-80/blob/main/trs-80/zmac/tracker4.asm


#27
CPC Szene / Re: XzentriX 22. bis 24. Augus...
Last post by TFM - 20. March 2025, 00:42:43
Das liest man gerne - da komme ich gerne wieder vorbei!  :jubelaola:
#28
Anwendungen / Re: Schnittpunkt
Last post by BadCPC - 19. March 2025, 18:52:27
hab da mal ein kleines mc-zu geschrieben, aber irgenwie verkehrter wert, vieleicht hab ich da noch nen denkfehler

; playing with &BC1D SCR_DOT_POSITION
; emtry
; HL = holds Y -Cordinate of the dot
; DE = holds X -Coordinate of the dot
; exit
; HL hols the memoryaddresse of the dot
; should be between &C000 and &FFFF
; call &8000,x,y,@n%
; @n% holds now the memoryaddresse of the dot pixel
;
; entrys on ix n,y,x
; so this would be
scr_dot_pos equ &BC1D
gra_plot_absolute equ &BBEA
org &8000



ld h,(ix+3) ; highbyte of y
ld l,(ix+2) ; lowbyte of y
ld d,(ix+5) ; highbyte of x
ld e,(ix+4) ; lowbyte of x
call gra_plot_absolute

ld h,(ix+3) ; highbyte of y
ld l,(ix+2) ; lowbyte of y
ld d,(ix+5) ; highbyte of x
ld e,(ix+4) ; lowbyte of x
call scr_dot_pos  ; call the firmware scr_dot_position
ex de,hl ; store hl to de
ld h,(ix+1) ; memory location of n highbyte
ld l,(ix+0) ; memory location of n lowbyte
ld (hl),d
inc hl
ld (hl),e
ret
#29
Anwendungen / Re: Schnittpunkt
Last post by BadCPC - 19. March 2025, 14:21:02
Was er meint plot x,y: wie ist da die Screenadresse &C000-&FFFF
Hab da schon was mit &BC1D probiert, bekomme da aberirgendwie was falsch zurück geliefert ;)
#30
CPC Szene / XzentriX 22. bis 24. August
Last post by almasys - 16. March 2025, 10:45:55
Liebes Forum,

der Termin für die XzentriX steht fest: 22. bis 24. August wie gehabt im Gemeindesaal (Ecke Bahnhofstraße / Penzberger Straße, über der Feuerwehr) in Seeshaupt am Starnberger See.

Weitere Details demnächst auf http://www.xzentrix.de.

Auf bekannte und neue Gesichter freut sich schon Euer
AlMaSys