Na hat a kovetkezot szedtem ossze.
Tehat a magno jele es a 0b6h port b7- je kozott van egy elektronika. Ezt megnezhetnem a kapcsolasi rajzon, de egy kapcsolasi rajz megertesehez vegkepp keves vagyok. Ugy kepzelem, hogy egy valami elerzekeny elektronika lehet, ami mondjuk egy lefuto el utan zerora allitja a 0b6h port b7- et, ha meg felfuto elet detektal a hangbemeneten, akkor egyesbe allitja. Valami ilyesmit kepzeltem.
Gondoltam kiprobalom. Csinaltam audacity- vel egy egy masodperces 1000 hz- es negyszogjelet.
Ezt a hangot eloszor folyamatosan lejetszva es egy vas EP bemenetere kapcsolva, ciklusban elkezdtem olvasni a bitunket es muveletet vegeztem a bejovo erteken 80h- val, es felfilleztem a tartalmaval 32 kb- ot. Az eredmeny pozitiv volt, a 32 kb. teletoltodott kb. ( nem neztem meg reszletesen ) 30 bajtos szakaszokkal, ahol vagy zero volt vagy 080h.
Na gondoltam akkor nezzuk meg mekkora a legnagyobb freki amit igy stabilan meg lehet merni.
Csinaltam egy kodot, ami ciklusban olvassa az input bitunket, es ha a bit valtozik, akkor novel egy szamlalot. Ha nagyon sokaig nem jon valtozas, akkor kilep.
Igy gondoltam lejatszom neki az egy masodperces 1 khz negyszoget es akkor 1000- et kell kapjak a szamlaloban vagy 2000- et, nem tom mi szamit egy ciklusnak.
Eloszor lefuttattam jel nelkul, tesztkent, es mar ez meglepo volt, mert ugy ter viszsa a kod jel nelkul, hogy par (5 vagy 20, vagy 76, vagy ilyesmi szamot, valtozot) valtozast detektal, mire lejar a hosszu ido, hogy ha addig nincs valtozas, akkor kilepjen.
Magyarul a bit nem stabil. Hanem jel nelkul is billeg.
Ha kihuzom a PC- t az EP-bol, es nem dugok ra semmit ( hangbemenetre ) akkor nem billeg.
Amikor az egy kilohercet szamoltattam megvele, akkor 1700 koruli szamot adott. Hat ez eleg sz**...
Itt a kod, valakinek valami tippje, hogy miert billeg jel nelkul, es hogy miert nem kapok 1000- et vagy 2000- et az 1KHz -s negyszogjel eseten ? :
JAVITOTTAM A HSZ- T. EZ MAR A JO KOD:
org 2000h
di
in a,(0b5h)
and 0bfh
out (0b5h),a
call Count
ei
ret
MemFill:
ld hl,4000h
L0:
in a,(0b6h)
and 80h
ld (hl),a
inc hl
ld a,0b0h
cp h
jr nz,L0
ret
Count:
ld hl,0
ld bc,8000h
ld de,100h
;exx
;ld hl,0
;ld de,0
;exx
L1:
in a,(0b6h)
and b
cp c
jr z,NoChange
ld c,a
inc hl
;exx
;ex de,hl
;ld bc,1
;add hl,bc
;ex de,hl
;ld bc,0
;adc hl,bc
;exx
ld de,100h
jr SkipNoChange
NoChange:
inc de
SkipNoChange:
xor a
or d
jr nz,L1
ret
A Count szubrutin visszatertekor a HL- ben adja meg hogy hanyszor valtozott meg az input bit.
Ha betesszuk a kommentes reszeket akkor meg a shadow regiszterek kozul HL,DE -ben.