0 Members and 2 Guests are viewing this topic.
rVersion: scf REP_NEXT call unlockflash REP_NEXT call rVersionEnd or aunlockFlash: di in a, (06) push af REP_NEXT ld (saveSP), sp ld sp, $82AB+$4000 ld a, 1 out (05), a rrca ld i, a ;$80 dec a out (06), a ;$7F in a, (02) bit 5, a ld a, $C3 ;jp REP_NEXT ld hl, returnPointz _84Plus: ld ($80C8), a ld ($80C9), hl jp nz, $4528_83PlusSE: ld ($80FE), a ld ($80FF), hl jp $4276returnPointz:saveSP equ $+1 ld sp, 0000 xor a out (05), a pop af out (06), a ld a, $10 jr nc, wasUndoing xor awasUndoing: out ($25), a bcall(_flashWriteDisable) retrVersionEnd:
allVersion: scf REP_NEXT call doIt REP_NEXT call allVersionEnd or adoIt: in a, (6) push af push af REP_NEXT call unlockFlashz in a, (02) rlca jr c, regularUnlock ex de, hl ;HL is too close to SP ld (hl), b ;b is zero pop af ld a, $1F jr c, notLocking ld (hl), a ;should be $0FnotLocking: dec hl out (06), a out (05), a ;should be 7 call $46D8 ;hack, works on 1.00 and 1.01 push afregularUnlock: pop af ld a, $10 jr nc, wasUndoingz xor awasUndoingz: out ($25), afinishUp: pop af out (06), a bcall(_flashWriteDisable) retUnlockFlashz:;Unlocks Flash protection.;Destroys: pagedCount ; pagedGetPtr; arcInfo; iMathPtr5; pagedBuf; ramCode di REP_NEXT ld hl, returnPoint+$8214-$81E3 ld de, $8214 ld a, e ld (arcInfo), a ;should be 08-15 ld (pagedCount), a ;just has to be over 2 ld bc, $8214-$8167 lddr ld (iMathPtr5), de ;must be 8167 ld iy, 0056h-25h ;permanent flags add a, e ld (pagedBuf), a ;needs to be large, but under 80 REP_NEXT call translatePage ld hl, ($5092) ld a, ($5094) REP_NEXT call translatePage ld a, $CC cpir dec hl jp (hl)returnPoint: ld hl, $0018 ld (hl), $C3 ;dummy writeflashWait: ld iy, flags djnz flashWait ;wait for write to finish add hl, sp ld sp, hltranslatePage: bcall(_NZIf83Plus) jr z, not83 and 1Fhnot83: out (06), a retallVersionEnd:
In other news, Frey continues kicking unprecedented levels of ass.
Why is it smaller on the 84+?
:AsmComp(FULLRENE) or:#Axiom(FULLRENE) (Axe hooks)
:Fcdf() (all calculators) or:Fcdf()r (non-83+BE calculators)
scf REP_NEXT call unlockflash REP_NEXT call rVersionEnd or aunlockFlash: in a, (06) push af REP_NEXT ld (saveSP), sp ld sp, $82A9+$4000 ld a, 1 out (05), a rrca ld i, a ;$80 dec a out (06), a ;$7F in a, (02) bit 5, a ld a, $C3 ;jp REP_NEXT ld hl, returnPointz jr z, _83PlusSE _84Plus: ld ($80C8), a ld ($80C9), hl jp $4529_83PlusSE: push af ;sp-2 ld ($80FE), a ld ($80FF), hl jp $4276returnPointz:saveSP equ $+1 ld sp, 0000 xor a out (05), a pop af out (06), a ld a, $10 jr nc, wasUndoing xor awasUndoing: out ($25), a bcall(_flashWriteDisable) retrVersionEnd:
scf REP_NEXT call doIt REP_NEXT call allVersionEnd or adoIt: in a,(6) push af push af;UnlockFlash:;Unlocks Flash protection.;Destroys: appBackUpScreen ; pagedCount ; pagedGetPtr; arcInfo; iMathPtr5; pagedBuf; ramCode ld a,7Bh call translatePage out (6),a ld hl, ($5092) ld a, ($5094) call translatePage out (6),a ld a,0CCh ld b, a cpir ld e,(hl) inc hl ld d,(hl) ld (iMathPtr5), sp push de; pop ix ld a, $C3 ld ($9898), a REP_NEXT ld hl, returnPoint ld ($9899), hl ld hl,pagedBuf ld (hl),98h ld de,pagedBuf+1 ld bc,49 ;so lucky VV push bc ldir ld hl,(iMathPtr5) push hl ld de,9A00h ld bc,50 ld a, c ldir pop de ld hl,-14 add hl,de ld (iMathPtr5),hl pop iy ;that was convenient; ld iy,0056h-25h; ld a,50 ;covered ld (pagedCount),a ld a,8 ld (arcInfo),a; jp (ix)translatePage: bcall(_NZIf83Plus) ret z and 1Fh retreturnPoint: ld iy,flags ld hl,(iMathPtr5) ld de,14 add hl,de ld sp,hl ex de,hl ld hl,9A00h ld bc,48 ldir in a, (02) rlca jr c, regularUnlock ld (hl), b ;b is zero pop af ld a, $1F jr c, notLocking ld (hl), a ;should be $0FnotLocking: dec hl out (06), a out (05), a ;should be 7 call $46D8 ;hack, works on 1.00 and 1.01 push afregularUnlock: pop af ld a, $10 jr nc, wasUndoingz xor awasUndoingz: out ($25), afinishUp: pop af out (06), a bcall(_flashWriteDisable) ret
if youre using chrome and know a little html, you can just right-click on the code box, click "Inspect element", double click where it says "height: 20px; " and change the 20 to something more like 260. I dont know why it is set to be only 20 pixels high; it just is.Edit: or, you could just remove the style="" attribute altogether. that's how normal code boxes are.