home *** CD-ROM | disk | FTP | other *** search
/ Mega Magazine 4 / Mega_Magazine_04_1991___nl_Side_B.atr / rambanks.lzh / RAMBANKS.SRC < prev    next >
Text File  |  1988-09-01  |  2KB  |  152 lines

  1. * ROUTINE TO CHECK RAM BANKS!
  2. * (C)1991 DONE BY FRANKENSTEIN
  3.  
  4. * BITS WHICH COULD BE USER FOR
  5. * EXTRA RAM BANK CONTROL:
  6.  
  7. * PORTA    BIT0 - BIT7 (STICK0/1)
  8.  
  9. * PORTB    BIT2
  10. *    BIT3
  11. *    BIT4 \ USED FOR 130XE AS
  12. *    BIT5 / CPU/ANTIC SELECT
  13. *    BIT6
  14. *    BIT7 (SELF TEST)
  15.  
  16. * MAX. OF 14 BITS
  17.  
  18. * THE PROGRAM USES TWO COUNTERS TO
  19. * TEST ALL 14 BIT COMBINATIONS.
  20.  
  21. COUNTA    EQU $F0        ; 0-255
  22. COUNTB    EQU $F1        ; 0-63
  23.  
  24.     ORG $0601
  25.  
  26. * EXTRA BANK COUNTER
  27. EXTRA    EQU $0600
  28.  
  29. * TABLE CONTAINING THE EXISTING BANK
  30. * CONTROL BITS (PORTA/B)
  31.  
  32. TA    EQU $B000
  33. TB    EQU $B100
  34.  
  35. PORTA    EQU $D300
  36. PORTB    EQU $D301
  37.  
  38. BRAM    EQU $6000    ; BANK RAM
  39.  
  40. * SAVE NORMAL SETTINGS OF PORTA/B
  41.  
  42.     LDA PORTA
  43.     STA NORA
  44.     LDA PORTB
  45.     STA NORB
  46.  
  47. * NORMAL SETTINGS = MAIN BANK
  48.  
  49.     LDA #$AA        ; MARK!
  50.     STA BRAM
  51.  
  52. * MARK EXTENDED BANKS!
  53.  
  54.     LDA #0
  55.     STA COUNTA
  56.     STA COUNTB
  57.  
  58. MARKALL    JSR DOMSK
  59.  
  60.     LDA #$AA
  61.     STA BRAM
  62.  
  63.     INC COUNTA
  64.     BNE MARKALL
  65.     INC COUNTB
  66.     LDA COUNTB
  67.     CMP #64
  68.     BNE MARKALL
  69.  
  70. * SELECT MAIN BANK
  71.  
  72.     JSR MAINBNK
  73.  
  74.     LDA #0
  75.     STA BRAM        ; CLR MARK
  76.  
  77. * CHECK EXTRA RAM!
  78.  
  79.     LDA #0
  80.     STA COUNTA
  81.     STA COUNTB
  82.     TAX
  83.  
  84. CHKALL    JSR DOMSK
  85.  
  86.     LDA BRAM
  87.     CMP #$AA
  88.     BNE SAME
  89.  
  90. * MARK FOUND => EXTRA BANK!
  91. * SAVE THESE BITS!
  92.  
  93.     LDA PORTA
  94.     STA TA,X
  95.     LDA PORTB
  96.     STA TB,X
  97.  
  98.     LDA #0
  99.     STA BRAM        ; CLR MARK
  100.     INX
  101.     BNE SAME
  102.  
  103. * MAX. 256 ENTRIES
  104. * TABLE FULL! 256 EXTRA BANKS FOUND!
  105.  
  106.     LDA #0
  107.     STA 710
  108.     JMP END
  109.  
  110. SAME    INC COUNTA
  111.     BNE CHKALL
  112.     INC COUNTB
  113.     LDA COUNTB
  114.     CMP #64
  115.     BNE CHKALL
  116.  
  117. * !!IMPORTANT!! MAIN BANK SELECT!!
  118.  
  119. END    STX EXTRA
  120.     JSR MAINBNK
  121.  
  122.     RTS
  123.  
  124. * SUBROUTINES
  125.  
  126. * SET/RESET BITS
  127.  
  128. DOMSK    LDA COUNTA
  129.     STA PORTA
  130.  
  131.     LDA COUNTB
  132.     ASL
  133.     ASL
  134.     STA MASKB
  135.  
  136.     LDA PORTB
  137.     AND #%00000011
  138.     ORA MASKB
  139.     STA PORTB
  140.     RTS
  141.  
  142. * MAIN BANK ON!
  143.  
  144. MAINBNK    LDA NORA
  145.     STA PORTA
  146.     LDA NORB
  147.     STA PORTB
  148.     RTS
  149.  
  150. NORA    DFB 0
  151. NORB    DFB 0
  152. MASKB    DFB 0¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯