;********************************************************************* ;* Title: code-mpi-v00.asm ;********************************************************************* ;* Author: R. Allen Murphey ;* ;* License: Copyright (c) 2020-2022 R. Allen Murphey. All Rights Reserved. ;* ;* Description: TANDY MULTI-PAK INTERFACE (MPI) ;* ;* Documentation: Tandy Multi-Pack Interface Owners Manual 26-3024 ;* Tandy Multi-Pak Interface for Color Computer 2 26-3124 ;* Tandy Multi-Pak Interface Service Manual 26-3024 ;* Mini-MPI Manual Rev02B ;* MEGAmini Manual ;* ;* Include Files: none ;* ;* Assembler: lwasm 1.4.2 ;* ;* Revision History: ;* Rev # Date Who Comments ;* ----- ----------- ------ --------------------------------------- ;* 00 2020-2021 RAM Created initial file ;********************************************************************* MPISELECT: equ $FF7F ; $FF7F CTS3|CTS2|CTS1|CTS0|SCS3|SCS2|SCS1|SCS0 ; SLOT 1: %00000000 00 ; SLOT 2: %00010001 17 ; SLOT 3: %00100010 34 ; SLOT 4: %00110011 51 ; SLOT 5: %xxxx0100 MMMPI OPL3 ; SLOT 6: %xxxx0101 MMMPI UARTS ; SLOT 16: %xxxx1111 MMMPI ADDITIONAL MPISLOT1: ; Setup MPI SCS slot 1 (physically numbered 1-4) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits for slot 1 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return MPISLOT2: ; Setup MPI SCS slot 2 (physically numbered 1-4) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits ora #%00000001 ; Set lower 4 SCS bits for slot 2 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return MPISLOT3: ; Setup MPI SCS slot 3 (physically numbered 1-4) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits ora #%00000010 ; Set lower 4 SCS bits for slot 3 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return MPISLOT4: ; Setup MPI SCS slot 4 (physically numbered 1-4) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits ora #%00000011 ; Set lower 4 SCS bits for slot 4 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return MPISLOT5: ; Setup MPI SCS slot 1 (physically numbered 1-4) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits for slot 1 ora #%00000100 ; Set lower 4 SCS bits for slot 5 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return MPISLOT6: ; Setup MPI SCS slot 6 (MMMPI UARTS) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits for slot 1 ora #%00000101 ; Set lower 4 SCS bits for slot 6 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return MPISLOT16: ; Setup MPI SCS slot 16 (MMMPI Control) lda MPISELECT ; Get current MPI slot setup anda #%11110000 ; Clear lower 4 SCS bits ora #%00001111 ; Set lower 4 SCS bits for slot 16 sta MPISELECT ; And switch the SCS slot number ; FIXME does MPI need a delay after slot change? rts ; then return ;********************************************************************* ;* Title: code-mpi-v00.asm ;*********************************************************************