/* Program analogiczny do WR-Z-12 (03-IV-113) 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 5-kanałowego tak, iż układ dziurek przypomina kształtem litery, cyfry i znaki przestankowe o zmiennej szerokości do 6 kwintetów, w układzie poziomym. Wzorce kształtów pasują również do programu 8H5z. Program pracuje na drugiej ścieżce ferrytowej 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 [temp3] = B3 gdyFS A = 32 ;znaki z pocztu cyfr [poczt] = A ..B6 ;Skocz do czTTY/czTXT; A = znak... jZnak A = A >>> 17 ;A = znak w skali 21 kodFS A = A & 31 SKND B6 ;gdy NU, pominąć A - 0b11011 SKZ gdyFS ;gdy FS, przełączyć na cyfry A - 0b11111 SKZ gdyLS ;gdy LS, przełączyć na litery A - 0b00010 SKZ gdyLF ;gdy LF, koniec tekstu B3 = A + [poczt] A = [wzory+B3] SKNZ nRząd ;gdy spacja, WY 5 ;to dodatkowy pusty rządek nRząd WY 5 A = A <<< 5 SKNZ nRząd WY 5 ..B6 ;Skocz do czTTY/czTXT; A = znak... ;------- gdyLF B3 = [temp3] ..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 temp3 DS 0 ;B3 - roboczy 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 ;------------------------------- wzory EQU * DS (0b_01110 )k04+( /* */ 0b_11111 )k09+( /* */ 0b_11111 )k14+( /* */ 0b_11111 )k19+( /* */ 0b_01110 )k24 ;wzór NU DS (0b_11111 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_10001 )k24 ;wzór E DS (0b_10101 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_10101 )k24 ;wzór LF DS (0b_11110 )k04+( /* */ 0b_00101 )k09+( /* */ 0b_00101 )k14+( /* */ 0b_00101 )k19+( /* */ 0b_11110 )k24 ;wzór A DS (0b_00000 )k04 ;wzór SP DS (0b_10010 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01001 )k24 ;wzór S DS (0b_10001 )k04+( /* */ 0b_11111 )k09+( /* */ 0b_10001 )k14 ;wzór I DS (0b_01111 )k04+( /* */ 0b_10000 )k09+( /* */ 0b_10000 )k14+( /* */ 0b_10000 )k19+( /* */ 0b_01111 )k24 ;wzór U DS (0b_11111 )k04+( /* */ 0b_11111 )k09+( /* */ 0b_11111 )k14+( /* */ 0b_11111 )k19+( /* */ 0b_11111 )k24+( /* */ 0b_11111 )k29+( /* */ 0b_11111 )k34 ;wzór CR DS (0b_11111 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10001 )k14+( /* */ 0b_10001 )k19+( /* */ 0b_01110 )k24 ;wzór D DS (0b_11111 )k04+( /* */ 0b_00101 )k09+( /* */ 0b_01101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_10010 )k24 ;wzór R DS (0b_01000 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10001 )k14+( /* */ 0b_10001 )k19+( /* */ 0b_01111 )k24 ;wzór J DS (0b_11111 )k04+( /* */ 0b_00010 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_01000 )k19+( /* */ 0b_11111 )k24 ;wzór N DS (0b_11111 )k04+( /* */ 0b_00101 )k09+( /* */ 0b_00101 )k14+( /* */ 0b_00101 )k19+( /* */ 0b_00001 )k24 ;wzór F DS (0b_01110 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10001 )k14+( /* */ 0b_10001 )k19+( /* */ 0b_01010 )k24 ;wzór C DS (0b_11111 )k04+( /* */ 0b_00100 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_01010 )k19+( /* */ 0b_10001 )k24 ;wzór K DS (0b_00001 )k04+( /* */ 0b_00001 )k09+( /* */ 0b_11111 )k14+( /* */ 0b_00001 )k19+( /* */ 0b_00001 )k24 ;wzór T DS (0b_10001 )k04+( /* */ 0b_11001 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10011 )k19+( /* */ 0b_10001 )k24 ;wzór Z DS (0b_11111 )k04+( /* */ 0b_10000 )k09+( /* */ 0b_10000 )k14+( /* */ 0b_10000 )k19+( /* */ 0b_10000 )k24 ;wzór L DS (0b_11111 )k04+( /* */ 0b_01000 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_01000 )k19+( /* */ 0b_11111 )k24 ;wzór W DS (0b_11111 )k04+( /* */ 0b_00100 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_00100 )k19+( /* */ 0b_11111 )k24 ;wzór H DS (0b_00001 )k04+( /* */ 0b_00010 )k09+( /* */ 0b_11100 )k14+( /* */ 0b_00010 )k19+( /* */ 0b_00001 )k24 ;wzór Y DS (0b_11111 )k04+( /* */ 0b_00101 )k09+( /* */ 0b_00101 )k14+( /* */ 0b_00101 )k19+( /* */ 0b_00010 )k24 ;wzór P DS (0b_01110 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10001 )k14+( /* */ 0b_11001 )k19+( /* */ 0b_11110 )k24 ;wzór Q DS (0b_01110 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10001 )k14+( /* */ 0b_10001 )k19+( /* */ 0b_01110 )k24 ;wzór O DS (0b_11111 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01010 )k24 ;wzór B DS (0b_01110 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_11101 )k24 ;wzór G DS (0b_01000 )k04+( /* */ 0b_01100 )k09+( /* */ 0b_01110 )k14+( /* */ 0b_01100 )k19+( /* */ 0b_01000 )k24 ;wzór FS DS (0b_11111 )k04+( /* */ 0b_00010 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_00010 )k19+( /* */ 0b_11111 )k24 ;wzór M DS (0b_10001 )k04+( /* */ 0b_01010 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_01010 )k19+( /* */ 0b_10001 )k24 ;wzór X DS (0b_00011 )k04+( /* */ 0b_01100 )k09+( /* */ 0b_10000 )k14+( /* */ 0b_01100 )k19+( /* */ 0b_00011 )k24 ;wzór V DS (0b_00010 )k04+( /* */ 0b_00110 )k09+( /* */ 0b_01110 )k14+( /* */ 0b_00110 )k19+( /* */ 0b_00010 )k24 ;wzór LS DS (0b_01110 )k04+( /* */ 0b_11111 )k09+( /* */ 0b_11111 )k14+( /* */ 0b_11111 )k19+( /* */ 0b_01110 )k24 ;wzór NU DS (0b_10001 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01010 )k24 ;wzór 3 DS (0b_10101 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_10101 )k24 ;wzór LF DS (0b_00100 )k04+( /* */ 0b_00100 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_00100 )k19+( /* */ 0b_00100 )k24 ;wzór - DS (0b_00000 )k04 ;wzór SP DS (0b_00010 )k04+( /* */ 0b_00001 )k09 ;wzór ' DS (0b_01010 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01010 )k24 ;wzór 8 DS (0b_00001 )k04+( /* */ 0b_11001 )k09+( /* */ 0b_00101 )k14+( /* */ 0b_00011 )k19+( /* */ 0b_00001 )k24 ;wzór 7 DS (0b_11111 )k04+( /* */ 0b_11111 )k09+( /* */ 0b_11111 )k14+( /* */ 0b_11111 )k19+( /* */ 0b_11111 )k24+( /* */ 0b_11111 )k29+( /* */ 0b_11111 )k34 ;wzór CR DS (0b_01010 )k04+( /* */ 0b_00100 )k09+( /* */ 0b_01110 )k14+( /* */ 0b_00100 )k19+( /* */ 0b_01010 )k24 ;wzór * DS (0b_00111 )k04+( /* */ 0b_00100 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_00100 )k19+( /* */ 0b_11111 )k24 ;wzór 4 DS (0b_10000 )k04+( /* */ 0b_01010 )k09 ;wzór ; DS (0b_10000 )k04+( /* */ 0b_01000 )k09 ;wzór , DS (0b_10111 )k04 ;wzór ! DS (0b_01010 )k04 ;wzór : DS (0b_01110 )k04+( /* */ 0b_10001 )k09 ;wzór ( DS (0b_10111 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01001 )k24 ;wzór 5 DS (0b_00100 )k04+( /* */ 0b_00100 )k09+( /* */ 0b_11111 )k14+( /* */ 0b_00100 )k19+( /* */ 0b_00100 )k24 ;wzór + DS (0b_10001 )k04+( /* */ 0b_01110 )k09 ;wzór ) DS (0b_10010 )k04+( /* */ 0b_11001 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_10010 )k24 ;wzór 2 DS (0b_11111 )k04+( /* */ 0b_10100 )k09+( /* */ 0b_10010 )k14+( /* */ 0b_10000 )k19+( /* */ 0b_10000 )k24 ;wzór Ł DS (0b_01110 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01000 )k24 ;wzór 6 DS (0b_01110 )k04+( /* */ 0b_10001 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10001 )k19+( /* */ 0b_01110 )k24 ;wzór 0 DS (0b_10010 )k04+( /* */ 0b_11111 )k09+( /* */ 0b_10000 )k14 ;wzór 1 DS (0b_00010 )k04+( /* */ 0b_10101 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_10101 )k19+( /* */ 0b_01110 )k24 ;wzór 9 DS (0b_00010 )k04+( /* */ 0b_00001 )k09+( /* */ 0b_10101 )k14+( /* */ 0b_00101 )k19+( /* */ 0b_00010 )k24 ;wzór ? DS (0b_01000 )k04+( /* */ 0b_10111 )k09+( /* */ 0b_10111 )k14+( /* */ 0b_01001 )k19+( /* */ 0b_10100 )k24 ;wzór & DS (0b_01000 )k04+( /* */ 0b_01100 )k09+( /* */ 0b_01110 )k14+( /* */ 0b_01100 )k19+( /* */ 0b_01000 )k24 ;wzór FS DS (0b_10000 )k04 ;wzór . DS (0b_10000 )k04+( /* */ 0b_01000 )k09+( /* */ 0b_00100 )k14+( /* */ 0b_00010 )k19+( /* */ 0b_00001 )k24 ;wzór / DS (0b_01010 )k04+( /* */ 0b_01010 )k09+( /* */ 0b_01010 )k14+( /* */ 0b_01010 )k19+( /* */ 0b_01010 )k24 ;wzór = DS (0b_00010 )k04+( /* */ 0b_00110 )k09+( /* */ 0b_01110 )k14+( /* */ 0b_00110 )k19+( /* */ 0b_00010 )k24 ;wzór LS KONIEC ---