A PRIMROM*.BIN file-ok a PRIMO EPROM-jainak adatait tartalmazzk: PRIMROM1.BIN 1.EPROM cmtartomny : 0 - 4095 (4kbyte) ellenrz sszeg: 442610 PRIMROM2.BIN 2.EPROM cmtartomny : 4096 - 8191 (4kbyte) ellenrz sszeg: 447430 PRIMROM3.BIN 3.EPROM cmtartomny : 8192 - 12287 (4kbyte) ellenrz sszeg: 492276 PRIMR0M3.BIN 3.EPROM cmtartomny : 8192 - 12287 (4kbyte) a mdostott EPROM tartalma, lsd albb PRIMROM4.BIN 4.EPROM cmtartomny : 12288 - 16383 (4kbyte) ellenrz sszeg: 393998 Az albbiak ismertetik a PRIMO A-32 gpen vgzett mdostst. A mdosts a 3-as szm 4kbyte-os EPROM mdostsval trtnt. A 2F4E s 2FEA cmek kztt alapesetben FF tallhat. Ide lett berva kt program, az els ( 2F50-tl ) a PIO porton kiadja a RAM-tartalmat, a msodik ( 2F94-tl ) beolvas 16 kbyte-ot a RAM terletre (ld. albb rszletesen). A szban forg ROM rszlet mdosts utn gy nz ki: | Ŀ 2F40(12096)................C8F6301213C9|FFFF Ĵ 2F50(12112)|3E89D3830E00210040DB82FE0020FA7E Ĵ 2F60(12128)D380814F3E01D381DB82FE0120FAAFD3 Ĵ 2F70(12144)81DB82FE0020FA2C20E5247CFE8020DF Ĵ 2F80(12160)79D3803E01D381DB82FE0120FAAFD381 Ĵ 2F90(12176)C31E40|FF|3E92D3830E00210040DB81FE Ĵ 2FA0(12192)0120FADB8077814F3E01D382DB81FE00 Ĵ 2FB0(12208)20FAAFD3822C20E5247CFE8020DF79D3 Ĵ 2FC0(12224)82C31E40| Ĵ 2FD0(12240) Ĵ 2FE0(12256) |2AA7402337 | PATCH-1 : 2F50h (12112d) cmtl 67 byte PATCH-2 : 2F94h (12180d) cmtl 48 byte ------------------------------------------------------------------------------- PATCH-1 : 3E89 LD A,89 ; A-ki, B-ki, C-be D383 OUT (83),A ; PIO inicializls 0E00 LD C,0 ; C-ben szmoljuk az ellenrz sszeget 210040 LD HL,4000 ; A 16384-es cmrl indulunk DB82 VISSZ0:IN A,(82) ; Addig semmit nem csinlunk, amg a C-porton FE00 CP 0 ; 0-t nem kapunk, mert az egybl lenyugtzn 20FA JR NZ,VISSZ0 ; az els kldtt adatunkat. 7E CIKLUS:LD A,(HL) ; Beolvasunk egy byte-ot a memribl D380 OUT (80),A ; Kitesszk az A portra 81 ADD A,C ; Szmoljuk az ellenrz sszeget 4F LD C,A ; Elmentjk C-be 3E01 LD A,1 ; D381 OUT (81),A ; A B-porton jelznk a PC-nek, hogy viheti DB82 VISSZ1:IN A,(82) ; Megnzzk, hogy a PC beolvasta-e, FE01 CP 1 ; mert azt 1-gyel jelzi a C-porton. 20FA JR NZ,VISSZ1 ; Ha mg nem, tovbb vrunk. AF XOR A ; A B-porton 0-val jelezzk a PC-nek, D381 OUT (81),A ; hogy megkaptuk a C-n az 1-et. DB82 VISSZ2:IN A,(82) ; Megnzzk, hogy a PC megkapta-e jelzsnket, FE00 CP 0 ; mert azt 0-val jelzi a C-porton. 20FA JR NZ,VISSZ2 ; Ha mg nem, tovbb vrunk. 2C INC L ; 20E5 JR NZ,CIKLUS ; Elszmolt FF-ig (s elhagyta) ? 24 INC H ; Magasabb helyirtk byte 7C LD A,H ; A CP utasts az A-val fog hasonltani FE80 CP 80 ; 32767-ig szmolunk 20DF JR NZ,CIKLUS ; Ha nem, vissza 79 LD A,C ; Innen mr vge, de mg ki kell adni az D380 OUT (80),A ; ellenrz sszeget az A-portra 3E01 LD A,1 ; D381 OUT (81),A ; A B-porton jelznk a PC-nek, hogy viheti DB82 VISSZ3:IN A,(82) ; Megnzzk, hogy a PC beolvasta-e, FE01 CP 1 ; mert azt 1-gyel jelzi a C-porton. 20FA JR NZ,VISSZ3 ; Ha mg nem, tovbb vrunk. AF XOR A ; A B-porton 0-val jelezzk a PC-nek, D381 OUT (81),A ; hogy megkaptuk a C-n az 1-et. C31E40 JP 401E ; Ugrs a RESET gombra END Ellenprogramja a PATCH1.C ------------------------------------------------------------------------------- PATCH-2 : 3E92 LD A,92 ; A-be, B-be, C-ki D383 OUT (83),A ; PIO inicializls 0E00 LD C,0 ; C-ben szmoljuk az ellenrz sszeget 210040 LD HL,4000 ; Az 4000-rl indulunk DB81 CIKLUS:IN A,(81) ; A PC a B-porton 1-gyel jelzi, FE01 CP 1 ; ha van adat szmunkra. 20FA JR NZ,CIKLUS ; DB80 IN A,(80) ; Beolvassuk az A-porton az adatot 77 LD (HL),A ; Elhelyezzk a memriban 81 ADD A,C ; Ellenrz sszeget szmolunk. 4F LD C,A ; 3E01 LD A,1 ; Jelezzk a PC-nek C=1-gyel, D382 OUT (82),A ; hogy beolvastuk az adatot. DB81 BOCS1: IN A,(81) ; A PC 0-ba viszi a B-portot, FE00 CP 0 ; ha vette a jelzst. 20FA JR NZ,BOCS1 ; AF XOR A ; Ha vettk a B-porton a 0-t, 0-ba D382 OUT (82),A ; tesszk a C-portot. 2C INC L ; 20E5 JR NZ,CIKLUS ; Elszmolt FF-ig (s elhagyta) ? 24 INC H ; Magasabb helyirtk byte 7C LD A,H ; A CP utasts az A-val fog hasonltani FE80 CP 80 ; Jelenleg 8000-ig szmolunk 20DF JR NZ,CIKLUS ; Ha nem, vissza 79 LD A,C ; Kitesszk a C-portra az D382 OUT (82),A ; ellenrz sszeget. C31E40 JP 401E ; END Ellenprogramja a PATCH2.C