Na sok dolog lett.
Eloszor is az emu mintha lassabb lenne a vas EP- nel. Ezt a mert ciklusszamok a beolvaso programban is igy mutatjak, meg szemmel, mikor asmonban a szovegben shift+le gombbal kozlekedek, akkor az EP sokkal gyorsabban felulirja a kepet (mozog le egy oldalt), mint a szimulator. Ez miert lehet ? Nem allitottam sebesseget az alap 4 millio van beallitva. Nem turbos a gepem. ( Turbos, de alapon van, kiprobaltam, mikor nem alapon van, akkor a billentyuhangok hulye magasak lesznek )
Masodszor eszembejutott hogy azert ilyen pontossagu mereseket mar nemszabad az emuval csinalni, az ennyire azert mar valoszinuleg nem pontos. A WinUAE most azon kuzd hogy kijojjon az orajelpontos emulaciojuk, de azert az ep128emu gondolom meg nem tart itt. Igaz ? Szal elkezdtemvas EP- val futtatni merni a jeleket.
Harmadszor, maskepp reagal a vas EP akkor, ha Play -jel kezdem a lejatszast a szimuban, es mashogy ha a szimu mar lejatszik, csak a vegere ert, es rewind -del visszatekertetem az elejere. Kovetkezetesen osszevissza ertekeket ir ki a vas ep, a rewind altal kezdodo lejatszaskor, es a play- esnel pedig kovetkezetesen hasonlokat, nagyobbakat. Ezt nem tom miert van, de akkor majd ezentil mindig stop/rewind/play -jel inditok ujra, nem sima rewind- del.
Harmadik dolog, hogy a vas EP sebessege miatt mar joval nagyobb ciklusszamok jonnek ki akkor, ha lemerem hany ciklust tudok leszamolni mondjuk ket hang input valtozas kozott, ha azok pld 20 ezred masodpercenkent jonnek. De meg mindig azt varnam hogy max 1 elteressel kene tudjam leszamolni. Tehat barakarhanyszor is futtatom, mindig ugyanaz az ertek kene kijojjon egy frekinel, maximum 1 elteressel, attol fuggoen hogy mennyire van szinkronban a ciklusban a belovasas az inputjel valtozasanak pillanataval.
De nem ezt tapasztalom, hanem mondjuk vas EP- nel, 10KHz- s inputjelnel ( a valtozasok 1/20000 msodpercenkent jonnek ugye mert mindegy hogy felfuto vagy lefuto el csak a valtozast nezi a program) a kulonbozo mereseknel hol 6, 9, 12 ciklust is mer ... pedig hat a vas EP orajele azert ennyire nem lehetne pontatlan.
Ez a program a teljes beolvaso program resze, amit arra hasznalok hogy lemerjem hany ciklust tudok futtatni ( ez lenne a tulajdonkeppeni idomeres a beolvasoban, ami megallapitja majd hogy 1 vagy nulla bit jott ) ket input hang valtozas kozott:
Ciklus alatt az en programom mero/szamolo ciklusat ertem, nem az orajelciklust vagy ilyesmit.
org 2000h
di
ld a,128 ; meginditom a magnot
out (0b5h),a
ld hl,4000h ;ide toltenem, ha tolteni akarnam, de most ugye csak merni akarnek
ld bc,4000h ;ennyi bajtot, ha toltenem
call EPCT_Load
ei
ret
EPCT_Load:
push hl
push bc
exx
pop hl ;beolvasando bajtok szama
pop de ;betoltesi cim
ld bc,1 ;ezzel csokkentjuk hl- t
exx
ld h,2 ;cycle counter limit
ld l,1 ;cycle counter reset
ld b,80h ;input mask
ld c,0 ;current input state
ld d,l ;cycle counter
ld e,0 ;current byte
WaitForChange0: ;NA EZ MAR LENYEGES EZ KET OLYAN LOOP
in a,(0b6h) ;AMI CSAK AKKOR LEP KI, HA MEGJON AZ ELSO
and b ;KET VALTOZAS A HANG IMPUT BITEN
cp c ;EZ CSAK EGY MEGAKASZTAS AZ ELEJEN
jr nz,FoundChange0 ;HOGY VARJON A HANGRA
jr WaitForChange0 ;TEHAT EZ KET CIKLUS
FoundChange0: ;AMI AKKOR JUT CSAK NewByte: -RA
ld c,a ;HA ELKEZDODOTT A HANG
WaitForChange1:
in a,(0b6h)
and b
cp c
jr nz,FoundChange1
jr WaitForChange1
FoundChange1:
ld c,a
NewByte: ;HA ELKEZDODOTT A HANG AKOR JUTUNK CSAK IDE
;ES AZ IGAZI BETOLTESNEL MAJD MINDEN UJ BAJTNAL
;DE EGYENLORE MOST CSAK LE AKAROM MERNI HANYAT TUDOK
;SZAMOLNI KET VALTOZAS KOZOTT STABILAN
;UGYHOGY TOBBET NEMJON IDE
Bit0: ;EZ BEOLVASSA AZ ELSO BITET
in a,(0b6h)
and b
cp c
jr nz,B0Change
inc d
jr nz,Bit0
ret
B0Change:
ld c,a
ld a,h
cp d
ld d,l
rl e
Bit1: ;EZ BEOLVASSA A MASODIK BITET
in a,(0b6h)
and b
cp c
jr nz,B1Change
inc d
jr nz,Bit1
ret
B1Change:
ld c,a
ld a,h
cp d
ld d,l
rl e
Bit2: ;EZ BEOLVASSA A HARMADIK BITET,
in a,(0b6h) ;ES MIKOR BEOLVASTA AKKOR VISSZATER
and b ;NINCS SZEREPE ANNAK HOGY EZ A HARMADIK
cp c ;ELMELETILEG LEHETNE AZ ELSO VAGY A MASODIK MEREST
jr nz,B2Change ;IS VISSZAADNI, EN AZTAKARTAM HOGY A HARMADIKAT KAPJAM MEG
inc d
jr nz,Bit2
ret
B2Change:
RET ;NAMOST MIKOR ITT VISSZATERUNK AZ ASMONBA
;AKKOR D REGISZTER FOGJA TARTALMAZNI AZT A SZAMOT
;AHANYSZOR A jr nz,Bit2 SOR VISSZAUGRIK Bit2: -re.
;VAGYIS AZ A SZAM AZ AHANYAT TUDOTT FORDULNI A
;Bit2 LOOP AMIG VALTOZAST DETEKTALT A HANG INPUT
;BITEN
;NA ERROL A SZAMROL GONDOLNAM EN UGY, HOGY HA EGY KONSTANS NEGYSZOGJEL VAN A HANG INPUTON
;(ES ITT UGYE MINDIG UGYANAZT A MINTAT AZ ELEJEROL KEZDEM LEJATSZANI AZ EMUVAL)
;AKKOR A SZAM MINDIG ALLANDO KENE LEGYEN, MAX 1-GYEL KULONBOZO LEHETNE,
;TEHAT HA MONDJUK 6 CIKLUS IDEJE FER BELE A 1/20000- ED MASODPERCBE,
;AKKOR MINDIG HAT KENE LEGYEN, VAGY ESETLEG 5, HA UGY JOTT KI A LEPES,
;DE SOHA NEM LEHETNE 4 VAGY 7, VAGY BARMI MAS.
;NAMOST A VAS EP 6-12 KOZOTT ADITT VISSZA EDDIG D REGISZTERBEN NEKEM ERTEKET ERRE.
Vajon miert ?