Menu

#286 DISCiPLE does not work under 128K emulation

future
open
nobody
None
5
2016-08-25
2013-02-10
No

The DISCiPLE does not work under 128K emulation. For now, it has simply been disabled under anything other than 48K emulation (and 16K too, actually, but that's unlikely to work well).

Related

Bugs: #311
Wiki: Fuse 1.2 Release Plan
Wiki: Fuse 1.2.2 Release Plan
Wiki: Fuse 1.3.0 Release Plan
Wiki: Fuse 1.3.1 Release Plan
Wiki: Fuse 1.3.2 Release Plan
Wiki: Fuse 1.3.3 Plan
Wiki: Fuse 1.3.4 Release Plan
Wiki: Fuse 1.3.5 Release Plan
Wiki: Fuse 1.3.6 Release Plan
Wiki: Fuse 1.3.7 Release Plan
Wiki: Fuse 1.3.8 Release Plan
Wiki: Fuse 1.4.0 Release Plan
Wiki: Fuse 1.4.1 Release Plan
Wiki: Fuse 1.5.0 Release Plan
Wiki: Fuse 1.5.1 Release Plan
Wiki: Fuse 1.5.2 Release Plan
Wiki: Fuse 1.5.3 Release Plan
Wiki: Fuse 1.5.4 Release Plan
Wiki: Fuse 1.5.5 Release Plan
Wiki: Fuse 1.5.6 Release Plan
Wiki: Fuse 1.5.7 Release Plan
Wiki: Fuse 1.6.0 Release Plan
Wiki: Fuse Next Release Plan

Discussion

  • Fredrick Meunier

    Hi Stuart,
    Around the Fuse 1.1 release time you said you had some patches to enable use of DISCiPLE under 128k emulation. I saw a request for this feature in Fuse on WoS Forums and thought it may be a good time to be revisited if you still have the patches to hand?

     

    Last edit: Fredrick Meunier 2015-05-19
  • Fredrick Meunier

    Crisis on WoS excerpts some suggestive code from the DISCiPLE disassembly that may offer some hints:

    The page in/out routines

    THE 'PAGE 128K RAM' ROUTINE
    The 128K RAM-bank contained in the A register is paged-in.
    
    003D RAMPAGE_A  LD   BC,#7FFD            128K bank-switch port address.
    0040            OUT  (C),A               Select RAM bank.
    0042            RET
    
    THE 'SECRET VERSION NUMBER'
    
    0043            DEFM "6.8"
    
    THE 'UNPAGE 128 ROM' SUBROUTINE
    This routine pages out the DISCiPLE system and returns to the 128K ROM at address #0049. That address contains a RET instruction so the effect is a jump to BC with the 128K ROM paged in.
    
    0046 UNPAGE_BC  PUSH BC                  Stack return address.
    0047 UNPAGE_0   OUT  (187),A             Page out DISCiPLE system.
    0049            RET                      ? This statement is not reached  
                                             from above.
    004A            DEFB #00,#00,#00,#00,#00 Unused locations.
    
    THE 'UNPAGE' SUBROUTINE
    This routine pages out the DISCiPLE system and returns to the 'main' ROM at address #0052. That address contains a RET instruction so the effect is a jump to HL with the 'main' ROM paged in.
    
    004F UNPAGE_HL  PUSH HL                  Stack return address.
    0050 UNPAGE_1   OUT  (187),A             Page out DISCiPLE system.
    
     
  • Fredrick Meunier

    Stuart has discussed some of the issues at length on this WoS thread.

     

Log in to post a comment.