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

17. March 2025, 03:39:59

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,210
  • Total Topics: 1,405
  • Online today: 192
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 0
Guests: 112
Total: 112

112 Guests, 0 Users

CPC Modell erkennen, aber wie?

Started by Devilmarkus, 23. May 2012, 00:18:01

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Devilmarkus

Man möchte ja manchmal ein Programm bauen, was erkennt, ob man einen 464, einen 664 oder einen 6128 verwendet.
Nun müsste man noch wissen, wie man auf die Schnelle zwischen den 3 Modellen unterscheiden kann.
Zwischen 2 ist ja noch relativ einfach, in dem man die Firmware-Version liest.
Diese ist allerdings zwischen dem 664 und dem 6128 identisch...

Um nun aber doch erkennen zu können, welcher der 3 CPCs man hat, kann man folgendes BASIC Programm ausprobieren:

10 MODE 1
20 a=PEEK(&BD3D)
30 IF a=&EF THEN PRINT"You are using a CPC 464":END
40 a=PEEK(&BD5E)
50 IF a=&EF THEN PRINT"You are using a CPC 664":END
60 PRINT "You are using a CPC 6128 (or a fake CPC)"

https://cpcwiki.de
Dein Deutsches CPCWiki!

FirstDefender

oder so

20 file$="wm3-"
30 wert=PEEK(&BB4F)
40 IF wert=&78 THEN file$=file$+"464.bin":cpc$=" Schneider CPC 464"
50 IF wert=&70 THEN file$=file$+"664.bin":cpc$=" Schneider CPC 664"
60 IF wert=&74 THEN file$=file$+"6128.bin":cpc$=" Schneider CPC 6128"
70 print cpc$

BadCPC

oder so
                ;; JavaCPC disassembled binary
                ;; disassembled from #A6C5 to #A6FA
                ;; Mon Oct 21 20:58:56 CEST 2024
KL_PROBE_ROM equ &B915


org &8000
                LD      C,&FF
                CALL   KL_PROBE_ROM
                ld a,h
                cp 2
                jr z,cpc_6128
                cp 1
                jr z,cpc_664
                cp 0
                jr z,cpc_464
          ret
cpc_6128 ;do 6128 relevant patches
      ld a,&38
      call &bb5a
      ret
cpc_664 ;do 664 relevant patches
      ld a,&36
      call &bb5a
      ret
cpc_464 ;do 464 relevant patches
      ld a,&34
      call &bb5a
      ret


TFM

Was ihr alle gemeinsam habt: Ihr prüft welches ROM vorhanden ist.

Aber welcher CPC es ist, das ist eine andere Sache. Oft nutzen ja Leute die CPC6128 ROMs am CPC464. Die Hardware bleibt aber ein CPC464 (der z.B. keine RAM Konfiguration kann wie der CPC6128).
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 27.10.2024)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

Devilmarkus

Quote from: TFM on 22. October 2024, 00:18:04Was ihr alle gemeinsam habt: Ihr prüft welches ROM vorhanden ist.

Aber welcher CPC es ist, das ist eine andere Sache. Oft nutzen ja Leute die CPC6128 ROMs am CPC464. Die Hardware bleibt aber ein CPC464 (der z.B. keine RAM Konfiguration kann wie der CPC6128).

Die RAM Konfiguration ist ja auch eine ROM-Sache.
Wenn man an einem 464 die 6128 ROMs verwendet und 128k drin hat, sollte das auch gehen.
https://cpcwiki.de
Dein Deutsches CPCWiki!

TFM

Quote from: Devilmarkus on 22. October 2024, 10:46:02
Quote from: TFM on 22. October 2024, 00:18:04Was ihr alle gemeinsam habt: Ihr prüft welches ROM vorhanden ist.

Aber welcher CPC es ist, das ist eine andere Sache. Oft nutzen ja Leute die CPC6128 ROMs am CPC464. Die Hardware bleibt aber ein CPC464 (der z.B. keine RAM Konfiguration kann wie der CPC6128).

Die RAM Konfiguration ist ja auch eine ROM-Sache.
Wenn man an einem 464 die 6128 ROMs verwendet und 128k drin hat, sollte das auch gehen.

Leider nicht, wenn man beim CPC6128 die RAM-Konfiguration &C3 wählt, dann wird das Bildschirm-RAM von &C000 auf &4000 verlegt. Beim CPC464 ist das nicht so, also können ROMs nicht direkt aufs V-RAM zugreifen. Leider, deshalb gibt's z.B. den Schmier vom Mauspfeil unter FutureOS.
Die ROMs auszutauschen hat damit nichts zu tun. RAM und ROM werden unabhängig verwaltet.  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 27.10.2024)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

BadCPC

ich glaub ihr schiesst wieder über das ziehl hinaus, es ging um eine simple abfrage was für ein cpc vorhaden ist, da gehe ich mal von orig, nicht modded nicht erweiter mit blabla aus.

TFM

Quote from: BadCPC on 23. October 2024, 12:04:02ich glaub ihr schiesst wieder über das ziehl hinaus, es ging um eine simple abfrage was für ein cpc vorhaden ist, da gehe ich mal von orig, nicht modded nicht erweiter mit blabla aus.


CPC ohne Erweiterungen?!?  :gruebel:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 27.10.2024)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

BadCPC

mein 6128 hat nur eine rombox +gotec bzw 3 1/2 720k LW

TFM

Quote from: BadCPC on 23. October 2024, 15:08:59mein 6128 hat nur eine rombox +gotec bzw 3 1/2 720k LW


Und schwupps könnte er schon ein anderes ROM haben, z.B. das vom CPC464 um z.B. Kaiser spielen zu können.  ;)  :)

Ansonsten: Solide Grundausstattung!  :smiley027:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 27.10.2024)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

BadCPC

kann ich auch so.. ätsch, habe ja meine 6128 version . . . baue aber grad an der 464/664/6128 version mit autodetect. . .

SerErris

Also die Frage ob welchen CPC man so vor sich hat ist für die allermeisten Fälle sicher einfach die Frage welches ROM man hat, bzw. wie man das ansprechen muß.

Mit absoluter Ausnahme der Speicherverwaltung im 6128 sind ansonsten ja alle drei Hardwaremäßig genau gleich. Da macht eher die Frage welcher CRTC ist verbaut sinn - denn das ist wirklich ein Unterschied für bestimmte Programmiertricks.

Da hier allerdings eine BASIC Version geschrieben wurde kann man davon ausgehen, daß auch das keine Rolle spielt. BASIC ist halt viel zu langsam um sinnvoll irgendwelche CRTC Tricks (Rasters etc) zu bauen.

Also geht es wohl wie immer bei BASIC um patchen von bestimmten Vectoren, die halt bei den verschiedenen Modellen an verschiedenen Addressen liegen.

In sofern reicht also die ROM erkennung dafür komplett aus.