/* Program analogiczny do WR-Z-12 (03-IV-113) Program wymaga maszyny ODRA UMCS Program perforuje napisy w tzw. kodzie wizualnym: znaki kodu dalekopisowego nr 2 wprowadzane z dalekopisu tłumaczy na układy rządków na taśmie wychodzącej z perforatora 8-kanałowego tak, iż układ dziurek przypomina kształtem litery, cyfry i znaki przestankowe o zmiennej szerokości do 11 kwintetów, pogrubione, w układzie poziomym. Program pracuje na obu ścieżkach ferrytowych i należy go startować od adresu 17400. Po zatrzymaniu się wystarczy wcisnąć [StartCPU] dla ponownego uruchomienia. Może być wywołany jako podprogram od adresu 17401 z adresem napisu w A w skali 21, kończącego się znakiem LF. Znak CR daje całkowicie zadziurkowane pole. Jeśli nie przełączono, to pierwszy znak jest z pocztu cyfr. Program jest zgodny z alfabetem dalekopisu TTY MKD-2 PL2. */ BLOK 0c17400 ;Adres początku programu ;------------------------------- PROGR B6 = czTTY ..prog1 ;funkcja czytania z dalekopisu ;------- PODPR STOP 0 ..podp2 ;Ślad - powrót do progr. głównego poczt DS 0k21 ;Poczet: 0=cyfry, 32=litery podp2 [temp6] = B6 ;arch B6 [temp5] = B5 ;arch B5 [temp4] = B4 ;arch B4 B6 = czTXT ;funkcja czytania z napisu w pamięci B5 = A ;adres napisu B4 = 0 ;liczba znaków w A SKS funkc B4 = [temp4] ;odtw B4 B5 = [temp5] ;odtw B5 B6 = [temp6] ..PODPR ;odtw B6 i Return ;------- prog1 A = [kodFS] ;kod FS WY 6 ;wyprowadzenie kodu FS SKS funkc STOP 0 ..PROGR ;stop i nawrót ;------------------------------- funkc STOP 0 ..funk2 ;Ślad - powrót do PROGR/PODPR gdyLS [poczt] = 0 ..B6 ;Skocz do czTTY/czTXT; A = znak... funk2 [temp7] = B7 gdyFS A = (32*2) ;znaki z pocztu cyfr [poczt] = A ..B6 ;Skocz do czTTY/czTXT; A = znak... jZnak A = A >>> 16 ;A = znak w skali 20 kodFS A = A & (31*2) SKND B6 ;gdy NU, pominąć A - (0b11011*2) SKZ gdyFS ;gdy FS, przełączyć na cyfry A - (0b11111*2) SKZ gdyLS ;gdy LS, przełączyć na litery A - (0b00010*2) SKZ gdyLF ;gdy LF, koniec tekstu B7 = A + [poczt] A = [wzory+B7] SKNZ mRząd ;gdy spacja, WY 5+8 ;to dodatkowy pusty rządek mRząd B7 = [wzory+B7+1] nRząd WY 5+8 AM = AM << 8 SKNZ nRząd WY 5+8 WY 5+8 ..B6 ;Skocz do czTTY/czTXT; A = znak... ;------- gdyLF B7 = [temp7] ..funkc ;i Powrót po śladzie ;------- czTTY WE 1 ;A = znak z dalekopisu A = A <<< 34 ..jZnak ;i do jZnak ;------- czTXT SKNLC B4--,slowo ;czy są jeszcze znaki w słowie A = [znaki] ;są A = A <<< 5 ..schow ;i do schowka slowo A = [B5] ;słowo ze znakami tekstu SKLC B5++,++ ;wskaźnik na nast. słowo B4 = 6 ;licznik znaków w słowie schow [znaki] = A ..jZnak ;i do jZnak ;------- znaki DS 0 ;znaki słowa, drukowany i pozostałe temp4 DS 0 ;B4 - licznik znaków w słowie temp5 DS 0 ;B5 = adres kolejnego słowa tekstu temp6 DS 0 ;B6 = funkcja pobierania znaku temp7 DS 0 ;B7 - przedłużenie A ;------------------------------- wzory BLOK 0c17200 ;wzory znaków DS (0b_00111000 )k07+( /* */ 0b_01111100 )k15+( /* */ 0b_01111100 )k23+( /* */ 0b_01111100 )k31+( /* */ 0b_0111110_ )k38 DS (0b________0 )k01+( /* */ 0b_01111100 )k09+( /* */ 0b_00111000 )k17 ;wzór NU DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11011011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11000011 )k09+( /* */ 0b_11000011 )k17 ;wzór E DS (0b_01010100 )k07+( /* */ 0b_01010100 )k15+( /* */ 0b_01010100 )k23+( /* */ 0b_01010100 )k31+( /* */ 0b_0101010_ )k38 DS (0b________0 )k01+( /* */ 0b_01010100 )k09+( /* */ 0b_01010100 )k17 ;wzór LF DS (0b_11111100 )k07+( /* */ 0b_11111110 )k15+( /* */ 0b_00011011 )k23+( /* */ 0b_00011011 )k31+( /* */ 0b_0001101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111110 )k09+( /* */ 0b_11111100 )k17 ;wzór A DS (0b_00000000 )k07 DS (0b________0 )k01 ;wzór SP DS (0b_11001110 )k07+( /* */ 0b_11011111 )k15+( /* */ 0b_11011011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111011 )k09+( /* */ 0b_01110010 )k17 ;wzór S DS (0b_11000011 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11111111 )k23+( /* */ 0b_11000011 )k31 DS (0b________0 )k01 ;wzór I DS (0b_01111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000000 )k23+( /* */ 0b_11000000 )k31+( /* */ 0b_1100000_ )k38 DS (0b________0 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01111111 )k17 ;wzór U DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11111111 )k23+( /* */ 0b_11111111 )k31+( /* */ 0b_1111111_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_11111111 )k17+( /* */ 0b_11111111 )k25+( /* */ 0b_11111111 )k33 ;wzór CR DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11000011 )k31+( /* */ 0b_1100001_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01111110 )k17 ;wzór D DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00011011 )k23+( /* */ 0b_00111011 )k31+( /* */ 0b_0111101_ )k38 DS (0b________1 )k01+( /* */ 0b_11001111 )k09+( /* */ 0b_11001110 )k17 ;wzór R DS (0b_00100000 )k07+( /* */ 0b_01100011 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11000011 )k31+( /* */ 0b_1100001_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01111111 )k17 ;wzór J DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00001100 )k23+( /* */ 0b_00011000 )k31+( /* */ 0b_0011000_ )k38 DS (0b________0 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_11111111 )k17 ;wzór N DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00011011 )k23+( /* */ 0b_00011011 )k31+( /* */ 0b_0001101_ )k38 DS (0b________1 )k01+( /* */ 0b_00000011 )k09+( /* */ 0b_00000011 )k17 ;wzór F DS (0b_01111110 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11000011 )k31+( /* */ 0b_1100001_ )k38 DS (0b________1 )k01+( /* */ 0b_11100111 )k09+( /* */ 0b_01100110 )k17 ;wzór C DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00011000 )k23+( /* */ 0b_00111100 )k31+( /* */ 0b_0110011_ )k38 DS (0b________0 )k01+( /* */ 0b_11000011 )k09+( /* */ 0b_10000001 )k17 ;wzór K DS (0b_00000011 )k07+( /* */ 0b_00000011 )k15+( /* */ 0b_00000011 )k23+( /* */ 0b_11111111 )k31+( /* */ 0b_1111111_ )k38 DS (0b________1 )k01+( /* */ 0b_00000011 )k09+( /* */ 0b_00000011 )k17+( /* */ 0b_00000011 )k25 ;wzór T DS (0b_11000011 )k07+( /* */ 0b_11100011 )k15+( /* */ 0b_11110011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1100111_ )k38 DS (0b________1 )k01+( /* */ 0b_11000111 )k09+( /* */ 0b_11000011 )k17 ;wzór Z DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000000 )k23+( /* */ 0b_11000000 )k31+( /* */ 0b_1100000_ )k38 DS (0b________0 )k01+( /* */ 0b_11000000 )k09+( /* */ 0b_11000000 )k17 ;wzór L DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_01100000 )k23+( /* */ 0b_00110000 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_00110000 )k09+( /* */ 0b_01100000 )k17+( /* */ 0b_11111111 )k25+( /* */ 0b_11111111 )k33 ;wzór W DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00011000 )k23+( /* */ 0b_00011000 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_11111111 )k17 ;wzór H DS (0b_00000011 )k07+( /* */ 0b_00000111 )k15+( /* */ 0b_00001100 )k23+( /* */ 0b_11111000 )k31+( /* */ 0b_1111100_ )k38 DS (0b________0 )k01+( /* */ 0b_00001100 )k09+( /* */ 0b_00000111 )k17+( /* */ 0b_00000011 )k25 ;wzór Y DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00011011 )k23+( /* */ 0b_00011011 )k31+( /* */ 0b_0001101_ )k38 DS (0b________1 )k01+( /* */ 0b_00011111 )k09+( /* */ 0b_00001110 )k17 ;wzór P DS (0b_01111110 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11110011 )k31+( /* */ 0b_0110001_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_11111110 )k17 ;wzór Q DS (0b_01111110 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11000011 )k31+( /* */ 0b_1100001_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01111110 )k17 ;wzór O DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11011011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01100110 )k17 ;wzór B DS (0b_01111110 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11000011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111011 )k09+( /* */ 0b_01111010 )k17 ;wzór G DS (0b_00100000 )k07+( /* */ 0b_00110000 )k15+( /* */ 0b_00111000 )k23+( /* */ 0b_00111100 )k31+( /* */ 0b_0011100_ )k38 DS (0b________0 )k01+( /* */ 0b_00110000 )k09+( /* */ 0b_00100000 )k17 ;wzór FS DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_00000110 )k23+( /* */ 0b_00001100 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_00001100 )k09+( /* */ 0b_00000110 )k17+( /* */ 0b_11111111 )k25+( /* */ 0b_11111111 )k33 ;wzór M DS (0b_11000011 )k07+( /* */ 0b_11100111 )k15+( /* */ 0b_00111100 )k23+( /* */ 0b_00011000 )k31+( /* */ 0b_0011110_ )k38 DS (0b________0 )k01+( /* */ 0b_11100111 )k09+( /* */ 0b_11000011 )k17 ;wzór X DS (0b_00011111 )k07+( /* */ 0b_00111111 )k15+( /* */ 0b_01100000 )k23+( /* */ 0b_11000000 )k31+( /* */ 0b_0110000_ )k38 DS (0b________0 )k01+( /* */ 0b_00111111 )k09+( /* */ 0b_00011111 )k17 ;wzór V DS (0b_00000100 )k07+( /* */ 0b_00001100 )k15+( /* */ 0b_00011100 )k23+( /* */ 0b_00111100 )k31+( /* */ 0b_0001110_ )k38 DS (0b________0 )k01+( /* */ 0b_00001100 )k09+( /* */ 0b_00000100 )k17 ;wzór LS DS (0b_00111000 )k07+( /* */ 0b_01111100 )k15+( /* */ 0b_01111100 )k23+( /* */ 0b_01111100 )k31+( /* */ 0b_0111110_ )k38 DS (0b________0 )k01+( /* */ 0b_01111100 )k09+( /* */ 0b_00111000 )k17 ;wzór NU DS (0b_01000010 )k07+( /* */ 0b_11000011 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01100110 )k17 ;wzór 3 DS (0b_01010100 )k07+( /* */ 0b_01010100 )k15+( /* */ 0b_01010100 )k23+( /* */ 0b_01010100 )k31+( /* */ 0b_0101010_ )k38 DS (0b________0 )k01+( /* */ 0b_01010100 )k09+( /* */ 0b_01010100 )k17 ;wzór LF DS (0b_00011000 )k07+( /* */ 0b_00011000 )k15+( /* */ 0b_00011000 )k23+( /* */ 0b_00011000 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_00011000 )k09 ;wzór - DS (0b_00000000 )k07 DS (0b________0 )k01 ;wzór SP DS (0b_00000111 )k07+( /* */ 0b_00000011 )k15 DS (0b________0 )k01 ;wzór ' DS (0b_01100110 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11011011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_01100110 )k17 ;wzór 8 DS (0b_10000011 )k07+( /* */ 0b_11000011 )k15+( /* */ 0b_01100011 )k23+( /* */ 0b_00110011 )k31+( /* */ 0b_0001101_ )k38 DS (0b________1 )k01+( /* */ 0b_00001111 )k09+( /* */ 0b_00000111 )k17 ;wzór 7 DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11111111 )k23+( /* */ 0b_11111111 )k31+( /* */ 0b_1111111_ )k38 DS (0b________1 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_11111111 )k17+( /* */ 0b_11111111 )k25+( /* */ 0b_11111111 )k33 ;wzór CR DS (0b_00101000 )k07+( /* */ 0b_00101000 )k15+( /* */ 0b_00011100 )k23+( /* */ 0b_00011110 )k31+( /* */ 0b_0001110_ )k38 DS (0b________0 )k01+( /* */ 0b_00101000 )k09+( /* */ 0b_00101000 )k17 ;wzór * DS (0b_00011111 )k07+( /* */ 0b_00011111 )k15+( /* */ 0b_00011000 )k23+( /* */ 0b_00011000 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_11111111 )k09+( /* */ 0b_11111111 )k17 ;wzór 4 DS (0b_11101100 )k07+( /* */ 0b_01101100 )k15 DS (0b________0 )k01 ;wzór ; DS (0b_11100000 )k07+( /* */ 0b_01100000 )k15 DS (0b________0 )k01 ;wzór , DS (0b_11011111 )k07+( /* */ 0b_11011111 )k15 DS (0b________0 )k01 ;wzór ! DS (0b_01101100 )k07+( /* */ 0b_01101100 )k15 DS (0b________0 )k01 ;wzór : DS (0b_00111100 )k07+( /* */ 0b_01111110 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_10000001 )k31 DS (0b________0 )k01 ;wzór ( DS (0b_01011111 )k07+( /* */ 0b_11011111 )k15+( /* */ 0b_11011011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_11111011 )k09+( /* */ 0b_01110011 )k17 ;wzór 5 DS (0b_00011000 )k07+( /* */ 0b_00011000 )k15+( /* */ 0b_01111110 )k23+( /* */ 0b_01111110 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_00011000 )k09 ;wzór + DS (0b_10000001 )k07+( /* */ 0b_11000011 )k15+( /* */ 0b_01111110 )k23+( /* */ 0b_00111100 )k31 DS (0b________0 )k01 ;wzór ) DS (0b_11000110 )k07+( /* */ 0b_11100111 )k15+( /* */ 0b_11110011 )k23+( /* */ 0b_11010011 )k31+( /* */ 0b_1100101_ )k38 DS (0b________1 )k01+( /* */ 0b_11001111 )k09+( /* */ 0b_11000110 )k17 ;wzór 2 DS (0b_11111111 )k07+( /* */ 0b_11111111 )k15+( /* */ 0b_11011000 )k23+( /* */ 0b_11001100 )k31+( /* */ 0b_1100010_ )k38 DS (0b________0 )k01+( /* */ 0b_11000000 )k09+( /* */ 0b_11000000 )k17 ;wzór Ł DS (0b_01111000 )k07+( /* */ 0b_11111100 )k15+( /* */ 0b_11011110 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_1101100_ )k38 DS (0b________1 )k01+( /* */ 0b_11111000 )k09+( /* */ 0b_01110000 )k17 ;wzór 6 DS (0b_00111100 )k07+( /* */ 0b_01111110 )k15+( /* */ 0b_11000011 )k23+( /* */ 0b_11000011 )k31+( /* */ 0b_1100001_ )k38 DS (0b________1 )k01+( /* */ 0b_01111110 )k09+( /* */ 0b_00111100 )k17 ;wzór 0 DS (0b_00000100 )k07+( /* */ 0b_00000110 )k15+( /* */ 0b_11111111 )k23+( /* */ 0b_11111111 )k31 DS (0b________0 )k01 ;wzór 1 DS (0b_00001110 )k07+( /* */ 0b_00011111 )k15+( /* */ 0b_10011011 )k23+( /* */ 0b_11011011 )k31+( /* */ 0b_0111101_ )k38 DS (0b________1 )k01+( /* */ 0b_00111111 )k09+( /* */ 0b_00011110 )k17 ;wzór 9 DS (0b_00000110 )k07+( /* */ 0b_00000111 )k15+( /* */ 0b_00000011 )k23+( /* */ 0b_11010011 )k31+( /* */ 0b_1101101_ )k38 DS (0b________1 )k01+( /* */ 0b_00001111 )k09+( /* */ 0b_00000110 )k17 ;wzór ? DS (0b_01100010 )k07+( /* */ 0b_11110111 )k15+( /* */ 0b_10011101 )k23+( /* */ 0b_10001111 )k31+( /* */ 0b_1001101_ )k38 DS (0b________0 )k01+( /* */ 0b_01110000 )k09+( /* */ 0b_01100000 )k17+( /* */ 0b_11010000 )k25+( /* */ 0b_10010000 )k33 ;wzór & DS (0b_00100000 )k07+( /* */ 0b_00110000 )k15+( /* */ 0b_00111000 )k23+( /* */ 0b_00111100 )k31+( /* */ 0b_0011100_ )k38 DS (0b________0 )k01+( /* */ 0b_00110000 )k09+( /* */ 0b_00100000 )k17 ;wzór FS DS (0b_11000000 )k07+( /* */ 0b_11000000 )k15 DS (0b________0 )k01 ;wzór . DS (0b_10000000 )k07+( /* */ 0b_11000000 )k15+( /* */ 0b_01100000 )k23+( /* */ 0b_00110000 )k31+( /* */ 0b_0001100_ )k38 DS (0b________0 )k01+( /* */ 0b_00001100 )k09+( /* */ 0b_00000110 )k17+( /* */ 0b_00000011 )k25+( /* */ 0b_00000001 )k33 ;wzór / DS (0b_01101100 )k07+( /* */ 0b_01101100 )k15+( /* */ 0b_01101100 )k23+( /* */ 0b_01101100 )k31+( /* */ 0b_0110110_ )k38 DS (0b________0 )k01+( /* */ 0b_01101100 )k09 ;wzór = DS (0b_00000100 )k07+( /* */ 0b_00001100 )k15+( /* */ 0b_00011100 )k23+( /* */ 0b_00111100 )k31+( /* */ 0b_0001110_ )k38 DS (0b________0 )k01+( /* */ 0b_00001100 )k09+( /* */ 0b_00000100 )k17 ;wzór LS KONIEC ---