[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Decoding RamFactor's memory detection



Or rather I'm attempting to decode it anyway so I can get the bugs out of my RamFactor emulation code.  I've traced the screen write portion of the diagnostic routine and found where it starts writing "256" to the screen.  The question is, how is it getting the value for "2" to display?

A0 03 00 01F2 ..R...Z.  cbcc : DEX 
A0 02 00 01F2 ..R.....  cbcd : BPL $cb9f
A0 02 00 01F2 ..R.....  cb9f : LDA #$00
00 02 00 01F2 ..R...Z.  cba1 : PHA 
00 02 00 01F1 ..R...Z.  cba2 : SEC 
00 02 00 01F1 ..R...ZC  cba3 : LDA $3e
00 02 00 01F1 ..R...ZC  cba5 : SBC $cbde,X
70 02 00 01F1 ..R.....  cba8 : PHA 
70 02 00 01F0 ..R.....  cba9 : LDA $3f
04 02 00 01F0 ..R.....  cbab : SBC $cbe3,X
02 02 00 01F0 ..R....C  cbae : BCC $cbba
02 02 00 01F0 ..R....C  cbb0 : STA $3f
02 02 00 01F0 ..R....C  cbb2 : PLA 
70 02 00 01F1 ..R....C  cbb3 : STA $3e
70 02 00 01F1 ..R....C  cbb5 : PLA 
00 02 00 01F2 ..R...ZC  cbb6 : ADC #$00
01 02 00 01F2 ..R.....  cbb8 : BNE $cba1
01 02 00 01F2 ..R.....  cba1 : PHA 
01 02 00 01F1 ..R.....  cba2 : SEC 
01 02 00 01F1 ..R....C  cba3 : LDA $3e
70 02 00 01F1 ..R....C  cba5 : SBC $cbde,X
E0 02 00 01F1 NVR.....  cba8 : PHA 
E0 02 00 01F0 NVR.....  cba9 : LDA $3f
02 02 00 01F0 .VR.....  cbab : SBC $cbe3,X
00 02 00 01F0 ..R...ZC  cbae : BCC $cbba
00 02 00 01F0 ..R...ZC  cbb0 : STA $3f
00 02 00 01F0 ..R...ZC  cbb2 : PLA 
E0 02 00 01F1 N.R....C  cbb3 : STA $3e
E0 02 00 01F1 N.R....C  cbb5 : PLA 
01 02 00 01F2 ..R....C  cbb6 : ADC #$00
02 02 00 01F2 ..R.....  cbb8 : BNE $cba1
02 02 00 01F2 ..R.....  cba1 : PHA 
02 02 00 01F1 ..R.....  cba2 : SEC 
02 02 00 01F1 ..R....C  cba3 : LDA $3e
E0 02 00 01F1 N.R....C  cba5 : SBC $cbde,X
50 02 00 01F1 ..R....C  cba8 : PHA 
50 02 00 01F0 ..R....C  cba9 : LDA $3f
00 02 00 01F0 ..R...ZC  cbab : SBC $cbe3,X
FF 02 00 01F0 N.R.....  cbae : BCC $cbba
FF 02 00 01F0 N.R.....  cbba : PLA 
50 02 00 01F1 ..R.....  cbbb : PLA 
02 02 00 01F2 ..R.....  cbbc : BNE $cbc6
02 02 00 01F2 ..R.....  cbc6 : INY 
02 02 01 01F2 ..R.....  cbc7 : EOR #$b0
B2 02 01 01F2 N.R.....  cbc9 : JSR $fded
//------------------------------------------ WRITES 256k where A is '2'