Tlac alebo konverzia zdrojaku z MRS

Zdrojový kód


3      5b00            *s
4      5b00            ;==============================================================;
5      5b00            ;== Verzia 01 == "qnc" SekvencnyText == 21.12.1993 Busy soft ==;
6      5b00            ;==============================================================;
7      5b00            *s
8      5b00                   org  #5b00          Pouzitie: LPRINT USR 23296,aaa,bbb
9      5b00 df         p      rst  #18            Vypise bbb riadkov od riadku aaa
10     5b01 fe2c              cp   ','
11     5b03 2007              jr   nz,nons        Po cisle 23296 musi nasledovat ciarka
12     5b05 e7                rst  #20            a po nej ciselny vyraz urcujuci prvy
13     5b06 cdfb24            call #24fb          riadok vypisu
14     5b09 df                rst  #18
15     5b0a fe2c              cp   ','            po nom musi byt dalsia ciarka
16     5b0c c28a1c     nons   jp   nz,#1c8a
17     5b0f e7                rst  #20
18     5b10 cdfb24            call #24fb          a po nej dalsi vyraz urcujucu
19     5b13 cd991e            call #1e99          zase pocet vypisovanych riadkov
20     5b16 c5                push bc
21     5b17 cd991e            call #1e99
22     5b1a 59                ld   e,c
23     5b1b 50                ld   d,b
24     5b1c 1b                dec  de
25     5b1d cd6ada            call #da6a          Nastavenie ukazovatela riadkov
26     5b20 af                xor  a              na prvy riadok vypisu
27     5b21 32355b            ld   (poloha+1),a
28     5b24 c1                pop  bc
29     5b25 78         rmloop ld   a,b            Hlavna vypisova slucka, ak sa uz
30     5b26 b1                or   c              vypisali vsetky riadky, koniec
31     5b27 2844              jr   z,end
32     5b29 3e7f              ld   a,#7f          Kontrola medzery, jej stlacenim
33     5b2b dbfe              in   a,(#fe)        mozno vypis predcasne ukoncit
34     5b2d 0f                rrca
35     5b2e 303d              jr   nc,end
36     5b30 c5                push bc
37     5b31 cd67e8            call #e867          Vyzdvihnutie jedneho riadku
38     5b34 3e55       poloha ld   a,#55          zo zdrojoveho textu
39     5b36 3c                inc  a
40     5b37 e60f              and  #0f
41     5b39 32355b            ld   (poloha+1),a
42     5b3c 67                ld   h,a
43     5b3d cde4d7            call #d7e4          Vypis tohto riadku na obrazovku
44     5b40 af                xor  a              internou rutinkou MRS
45     5b41 32fffd            ld   (#fdff),a
46     5b44 2140fe            ld   hl,#fe40
47     5b47 2b         skon   dec  hl             Najdenie konca uzitocneho textu
48     5b48 7e                ld   a,(hl)         na riadku aby sa nemuseli zbytocne
49     5b49 fe20              cp   ' '            vypisovat medzery na konci riadku
50     5b4b 28fa              jr   z,skon
51     5b4d 23                inc  hl
52     5b4e 360d              ld   (hl),#0d
53     5b50 2100fe            ld   hl,#fe00
54     5b53 e5         loolin push hl             Vypis riadku, ale tentokrat
55     5b54 7e                ld   a,(hl)         standartnou rutinkou RST #10
56     5b55 d7                rst  #10            ktoru je mozne presmerovat
57     5b56 e1                pop  hl             (napriklad do suboru na disku)
58     5b57 23                inc  hl             (alebo na tlaciaren)
59     5b58 7e                ld   a,(hl)
60     5b59 fe0d              cp   #0d
61     5b5b 20f6              jr   nz,loolin
62     5b5d d7                rst  #10            Po znaku CR este vypiseme aj LF
63     5b5e 3e0a              ld   a,#0a          (vhodne pre ms-dos textove subory)
64     5b60 d7                rst  #10            (a vecsinu tlaciarni)
65     5b61 2af1d4            ld   hl,(#d4f1)
66     5b64 cdcbda            call #dacb          Posun ukazovatela na dalsi riadok
67     5b67 c1                pop  bc
68     5b68 0b                dec  bc
69     5b69 af                xor  a
70     5b6a ae                xor  (hl)           A ak sme nenarazili na koniec zdrojaku
71     5b6b 20b8              jr   nz,rmloop      tak pokracujeme vo vykonavani slucky
72     5b6d 3e02       end    ld   a,#02
73     5b6f c30116            jp   #1601
74     5b72            k
75     5b72            l      =    k-p
76     5b72             
77     5b72                   org  #b000
78     b000 cda23c     ss     call 15522          Sejvnutie prelozeneho kodu
79     b003 cd31b0            call poke
80     b006 dd2120b0          ld   ix,head
81     b00a 111100            ld   de,17
82     b00d af                xor  a
83     b00e cdc604            call #04c6
84     b011 dd21005b          ld   ix,p
85     b015 117200            ld   de,l
86     b018 3eff              ld   a,#ff
87     b01a cdc604            call #04c6
88     b01d c3a43c            jp   15524
89     b020             
90     b020 03         head   db   #03
91     b021 716e6320          db   'qnc       '
            20202020    
            2020        
92     b02b 7200005b          dw   l,#5b00,#bc00
            00bc        
93     b031             
94     b031 cd9c3c     poke   call #3c9c           Nejake specialitky pre MB-02
95     b034 3e1f              ld   a,#1f           ale inak nepodstatne
96     b036 32dd04            ld   (#04dd),a
97     b039 3e1d              ld   a,#1d
98     b03b 32ef04            ld   (#04ef),a
99     b03e 3e1e              ld   a,#1e
100    b040 32f704            ld   (#04f7),a
101    b043 c3983c            jp   #3c98
102    b046             

 end    5b6d  *  head   b020  *  k      5b72  *  l      0072  *
 loolin 5b53  *  nons   5b0c  *  p      5b00  *  poke   b031  *
 poloha 5b34  *  rmloop 5b25  *  skon   5b47  *  ss     b000  *

Bytes:184  labels:12  errors:0   


Popis
Tento program sluzi pre tlac alebo konverziu zdrojoveho textu z MRS do cistej textovej formy. Vyuziva moznost presmerovat basicovu print rutinku RST #10 na tlaciaren, alebo aj do sekvencneho suboru (na niektorych disketovych jednotkach).

Poznámky
Program vyzaduje mat v pameti nahrany program MRS a v nom zdrojovy text, ktory sa ma vytlacit alebo konvertovat. Pred spustenim je treba kanal #3 nasmerovat na pozadovane zariadenie prikazom typu OPEN #3.

Poslal
Busy