MODULE DD1541 // EPROM-Inhalt: // 0 CBM Low-Dos // 1 CBM High-Dos // 2 Jiffy-Dos // 3 Dolphin 0xc000 // 4 Dolphin Low-Dos // 5 Dolphin High-Dos // 6 64'er-Dos // 7 Speed-Dos // Schalter: // 0 0000 CBM-Dos // 1 0001 Jiffy // 2 0010 Dolphin // 3 0011 64'er-Dos // 4 0100 Speed-Dos // 5 0101 S-JiffyDOS // 6 0110 CBM-Dos ohne RAM // 7 0111 Jiffy-DOS ohne RAM // 8 1000 RAM // TODO: Ram-Disable-Schalter? CA13, CA14, CA15, !CRW, SEL0, SEL1, SEL2, SEL3, PHI2 PIN 7, 8, 9, 6, 1, 2, 3, 4, 5; EA16, EA15, EA14, EA13, !EOE, RA14, !realROE, !realWE PIN 19, 18, 15, 16, 17, 22, 21, 20 istype 'com'; WE NODE istype 'com'; ROE NODE istype 'com'; //EOE NODE istype 'com'; Bank = [EA16, EA15, EA14, EA13]; Block = [CA14, CA13]; Select = [SEL3,SEL2,SEL1,SEL0]; X = .X.; EQUATIONS realROE = ROE & !WE; realWE = !PHI2 & WE; //WHEN (RAMDIS == 0) THEN { // realEOE = EOE; // realROE = ROE & !WE; // realWE = !PHI2 & WE; //} ELSE { // realEOE = EOE # ROE; // realROE = 0; // realWE = 0; //} truth_table ([CA15, Select, Block, CRW] -> [Bank, RA14, EOE, ROE, WE]) [ 0, X, X, X] -> [ X, X, 0, 0, 0]; // CBM-Dos [ 1, 0, 0, 0] -> [ X, 1, 0, 1, 0]; [ 1, 0, 0, 1] -> [ X, 1, 0, 1, 1]; [ 1, 0, 1, 0] -> [ X, 1, 0, 1, 0]; [ 1, 0, 1, 1] -> [ X, 1, 0, 1, 1]; [ 1, 0, 2, 0] -> [ 0, X, 1, 0, 0]; [ 1, 0, 2, 1] -> [ 0, X, 0, 0, 0]; [ 1, 0, 3, 0] -> [ 1, X, 1, 0, 0]; [ 1, 0, 3, 1] -> [ 1, X, 0, 0, 0]; // Jiffy-Dos [ 1, 1, 0, 0] -> [ X, 1, 0, 1, 0]; [ 1, 1, 0, 1] -> [ X, 1, 0, 1, 1]; [ 1, 1, 1, 0] -> [ X, 1, 0, 1, 0]; [ 1, 1, 1, 1] -> [ X, 1, 0, 1, 1]; [ 1, 1, 2, 0] -> [ 0, X, 1, 0, 0]; [ 1, 1, 2, 1] -> [ 0, X, 0, 0, 0]; [ 1, 1, 3, 0] -> [ 2, X, 1, 0, 0]; [ 1, 1, 3, 1] -> [ 2, X, 0, 0, 0]; // Speed-Dos [ 1, 4, 0, 0] -> [ X, 1, 0, 1, 0]; [ 1, 4, 0, 1] -> [ X, 1, 0, 1, 1]; [ 1, 4, 1, 0] -> [ X, 1, 0, 1, 0]; [ 1, 4, 1, 1] -> [ X, 1, 0, 1, 1]; [ 1, 4, 2, 0] -> [ 0, X, 1, 0, 0]; [ 1, 4, 2, 1] -> [ 0, X, 0, 0, 0]; [ 1, 4, 3, 0] -> [ 7, X, 1, 0, 0]; [ 1, 4, 3, 1] -> [ 7, X, 0, 0, 0]; // 64'er-Dos [ 1, 3, 0, 0] -> [ X, 1, 0, 1, 0]; [ 1, 3, 0, 1] -> [ X, 1, 0, 1, 1]; [ 1, 3, 1, 0] -> [ X, 1, 0, 1, 0]; [ 1, 3, 1, 1] -> [ X, 1, 0, 1, 1]; [ 1, 3, 2, 0] -> [ 0, X, 1, 0, 0]; [ 1, 3, 2, 1] -> [ 0, X, 0, 0, 0]; [ 1, 3, 3, 0] -> [ 6, X, 1, 0, 0]; [ 1, 3, 3, 1] -> [ 6, X, 0, 0, 0]; // Dolphin-Dos [ 1, 2, 0, 0] -> [ X, 1, 0, 1, 0]; [ 1, 2, 0, 1] -> [ X, 1, 0, 1, 1]; [ 1, 2, 1, 0] -> [ 3, X, 1, 0, 0]; [ 1, 2, 1, 1] -> [ 3, X, 0, 0, 0]; [ 1, 2, 2, 0] -> [ 4, X, 1, 0, 0]; [ 1, 2, 2, 1] -> [ 4, X, 0, 0, 0]; [ 1, 2, 3, 0] -> [ 5, X, 1, 0, 0]; [ 1, 2, 3, 1] -> [ 5, X, 0, 0, 0]; // S-JiffyDOS [ 1, 5, 0, 0] -> [ 8, X, 1, 0, 0]; [ 1, 5, 0, 1] -> [ 8, X, 0, 0, 0]; [ 1, 5, 1, 0] -> [ 9, X, 1, 0, 0]; [ 1, 5, 1, 1] -> [ 9, X, 0, 0, 0]; [ 1, 5, 2, 0] -> [ 10, X, 1, 0, 0]; [ 1, 5, 2, 1] -> [ 10, X, 0, 0, 0]; [ 1, 5, 3, 0] -> [ 11, X, 1, 0, 0]; [ 1, 5, 3, 1] -> [ 11, X, 0, 0, 0]; // CBM-Dos ohne RAM [ 1, 6, 0, 0] -> [ 0, X, 1, 0, 0]; [ 1, 6, 0, 1] -> [ 0, X, 0, 0, 0]; [ 1, 6, 1, 0] -> [ 1, X, 1, 0, 0]; [ 1, 6, 1, 1] -> [ 1, X, 0, 0, 0]; [ 1, 6, 2, 0] -> [ 0, X, 1, 0, 0]; [ 1, 6, 2, 1] -> [ 0, X, 0, 0, 0]; [ 1, 6, 3, 0] -> [ 1, X, 1, 0, 0]; [ 1, 6, 3, 1] -> [ 1, X, 0, 0, 0]; // Jiffy-Dos ohne RAM [ 1, 7, 0, 0] -> [ 0, X, 1, 0, 0]; [ 1, 7, 0, 1] -> [ 0, X, 0, 0, 0]; [ 1, 7, 1, 0] -> [ 2, X, 1, 0, 0]; [ 1, 7, 1, 1] -> [ 2, X, 0, 0, 0]; [ 1, 7, 2, 0] -> [ 0, X, 1, 0, 0]; [ 1, 7, 2, 1] -> [ 0, X, 0, 0, 0]; [ 1, 7, 3, 0] -> [ 2, X, 1, 0, 0]; [ 1, 7, 3, 1] -> [ 2, X, 0, 0, 0]; // RAM-Dos [ 1, 8, 0, 0] -> [ X, 0, 0, 1, 0]; [ 1, 8, 0, 1] -> [ X, 0, 0, 1, 1]; [ 1, 8, 1, 0] -> [ X, 0, 0, 1, 0]; [ 1, 8, 1, 1] -> [ X, 0, 0, 1, 1]; [ 1, 8, 2, 0] -> [ X, 1, 0, 1, 0]; [ 1, 8, 2, 1] -> [ X, 1, 0, 0, 0]; [ 1, 8, 3, 0] -> [ X, 1, 0, 1, 0]; [ 1, 8, 3, 1] -> [ X, 1, 0, 0, 0]; TEST_VECTORS ([CA15,Select,Block,CRW] -> [RA14, Bank, ROE, EOE, WE]) [1,0,0,0] -> [1,.x.,1,0,0]; [1,0,1,0] -> [1,.x.,1,0,0]; [1,0,2,0] -> [.x.,0,0,1,0]; [1,0,3,0] -> [.x.,1,0,1,0]; [1,2,0,0] -> [.x.,.x.,1,0,0]; [1,2,1,0] -> [.x.,3,0,1,0]; [1,2,2,0] -> [.x.,4,0,1,0]; [1,2,3,0] -> [.x.,5,0,1,0]; [1,8,0,0] -> [0,.x.,1,0,0]; [1,8,1,0] -> [0,.x.,1,0,0]; [1,8,2,0] -> [1,.x.,1,0,0]; [1,8,3,0] -> [1,.x.,1,0,0]; [1,8,0,1] -> [0,.x.,1,0,1]; [1,8,1,1] -> [0,.x.,1,0,1]; [1,8,2,1] -> [1,.x.,0,0,0]; [1,8,3,1] -> [1,.x.,0,0,0]; TEST_VECTORS ([CA15,Select,Block,CRW] -> [RA14, Bank, ROE, EOE, WE]) [1,0,0,1] -> [1,X,1,0,1]; [1,0,1,1] -> [1,X,1,0,1]; [1,0,2,1] -> [X,0,0,0,0]; [1,0,3,1] -> [X,1,0,0,0]; [1,2,0,1] -> [1,X,1,0,1]; [1,2,1,1] -> [X,X,0,0,0]; [1,2,2,1] -> [X,X,0,0,0]; [1,2,3,1] -> [X,X,0,0,0]; END