Egy blokk beolvasása a 0130 címen kezdődik (minden szám hexa lesz).
A CALL 057D rutin A-ba beolvas egy bájtot a kazettáról.
Az adatok konkrét betöltés a 05B3 címen kezdődik, már a fejléc elolvasása és értelmezése után:
A következő rész beolvassa a betöltési címet a HL regiszterpárba
05B3 - CALL 057D
05B6 - LD L, A ; Alacsonyat először
05B7 - CALL 057D
05BA - LD H, A ; Magasat másodszor
Majd a betöltési méretet BC-be
05BB - CALL 057D
05BE - LD C, A ; Alacsonyat először
05BF - CALL 057D
05C2 - LD B, A ; Magasat másodszor
05C3 - LD D, 0 ; D nullázása. D-ben fogja a CRC-t tárolni.
Innentől kezdődik a BC bájt beolvasása a memóriába HL címtől, D-ben pedig a CRC- tartja nyilván.
05C5 - CALL 057D : Beolvas egy bájtot a kazettáról A-ba
05C8 - LD (HL), A
05C9 - ADD A, D : A-ba a megnövelt CRC érték
05CA - LD D, A : CRC visszaírása D-be
05CB - INC HL
05CC - DEC BC
05CD - SUB A : A nuzllázása BC==0 feltétel ellenőrzéséhez
05CE - OR B ; A = 0, Ha B==0
05CF - OR C ; A = 0, ha BC==0
05D0 - JR NZ, 05C5 : visszaugrás a loop elejére, amíg BC != 0
Be van olvasva a betöltendő adat. A kimentett CRC érték olvasása következik:
05D2 - CALL 057D : A CRC beolvasása A-ba
05D5 - CP D : Összehasonlítjuk a CRC értékével. Z flag = 1, ha rendben van
05D6 - LD A, D8
05D8 - RET ;Visszaugrás a 05DC címre. A-ban a D8, Z flag=1, ha CRC ok
CRC olvasása után ide ugrottunk
05DC : JR NZ, 05E6 : Ha hibás a CRC, akkor ugrás a 05E6 címre - gondolom, hibakezelés, de nem mentem már utána
05DE : CALL 057D : BLokkzáró bájt olvasása!
05E1 : LD C, 30
05E3 : JP NZ, 0130 : Ugrás a következő blokk beolvasására, ha a lezáró bájt nem volt 0
05E6 : JP 05FE : Ugrás a 05FE címre, ha befejeződött a betöltés. C=30