*** Tabela izjem ob RESET-u (00000000H) *** 00034000000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 00000100000001000000010000000100 *** Startni program (00000100H) *** 2E7C MOVEA.L 00034000H,A7 0003 4000 4E70 RESET 13FC MOVE.B B8H,(00010007H) ! Komandna beseda za 71055 00B8 0001 0007 13FC MOVE.B 00H,(00010003H) 0000 0001 0003 0839 BTST 06H,(00010005H) ! Resetiranje CMOS RAM-a? 0006 0001 0005 6716 BEQ 16H 207C MOVEA.L 00000200H,A0 0000 0200 227C MOVEA.L 00035800H,A1 0003 5800 303C MOVE.W 0F7FH,D0 ! Dolzina 3E00H bajtov 0F7F 22D8 MOVE.L (A0)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 207C MOVEA.L 00000B00H,A0 ! Prepisovanje tabele izjem 0000 0B00 227C MOVEA.L 00036100H,A1 0003 6100 703F MOVEQ 3FH,D0 22D8 MOVE.L (A0)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 203C MOVE.L 00036100H,D0 ! Tabela izjem 0003 6100 4E7B MOVEC D0,VBR 0801 0839 BTST 06H,(00010005H) ! Resetiranje displeja? 0006 0001 0005 670C BEQ 0CH 701B MOVEQ 1BH,D0 ! Barvanje znakov 4E40 TRAP0 7000 MOVEQ 00H,D0 ! Papir 4E40 TRAP0 701F MOVEQ 1FH,D0 ! Crnilo 4E40 TRAP0 207C MOVEA.L 000001C0H,A0 ! Zacetni ekran 0000 01C0 723F MOVEQ 3FH,D1 1018 MOVE.B (A0)+,D0 4E40 TRAP0 51C9 DBF D1,FFFAH FFFA 13FC MOVE.B 09H,(00010007H) ! INTE-A 0009 0001 0007 4E56 LINK A6,FFC0H ! Autostart FFC0 4E47 TRAP7 5088 ADDQ.L 08H,A0 224E MOVEA.L A6,A1 703D MOVEQ 3DH,D0 1018 MOVE.B (A0)+,D0 1300 MOVE.B D0,-(A1) 4E40 TRAP0 0C00 CMPI.B 0DH,D0 000D 57C9 DBEQ D1,FFF4H FFF4 700D MOVEQ 0DH,D0 1300 MOVE.B D0,-(A1) 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E48 TRAP8 ! Izvrsevanje ukaza 4E5E UNLK A6 4E44 TRAP4 ! Monitorski program 6000 BRA FF50H FF50 * Praznina - rezerva (000001B2H) * FFFFFFFFFFFFFFFFFFFFFFFFFFFF * Zacetni ekran (000001C0H) * 0C2A2A2A205954334D56202D20445350 ! *** YT3MV - DSP 204F7065726174696E67205379737465 ! Operating Syste 6D202D2056372E33202020202D203033 ! m - V7.3 - 03 204D41522031393839202A2A2A0D0A0A ! MAR 1989 *** *** Tabela ASCII znakov 8*8 (00000200H>00035800H) *** 00000000000000000010101010100010 ! ,! 0028282800000000002828FE28FE2828 ! ",# 0010FC127C907E1000844A241048A442 ! $,% 001C22221CA242BC0030300800000000 ! &,' 00201008080810200008102020201008 ! (,) 001092543854921000101010FE101010 ! *,+ 000000000030300800000000FE000000 ! ,,- 00000000000018180080402010080402 ! .,/ 003844A2928A44380010181010101038 ! 0,1 007C8280700804FE007C82806080827C ! 2,3 002030282422FE2000FE02027E80807E ! 4,5 007804027E82827C00FE804020100804 ! 6,7 007C82827C82827C007C8282FC80403C ! 8,9 00001818001818000000303000303008 ! :,; 00201008040810200000007C007C0000 ! <,= 0008102040201008007C824020100010 ! >,? 007C82BAAAFA027C001028444482FE82 ! @,A 007E84847C84847E007C82020202827C ! B,C 007E84848484847E00FE02023E0202FE ! D,E 00FE02023E020202007C820202F2827C ! F,G 00828282FE8282820038101010101038 ! H,I 00E040404042423C008E4424142C448E ! J,K 00020202020202FE0082C6AA92828282 ! L,M 0082868A92A2C282007C82828282827C ! N,O 007E84847C04040E007C828282A242BC ! P,Q 007E84847C24448E007C82027C80827C ! R,S 00FE101010101010008282828282827C ! T,U 0082824444282810008282829292926C ! V,W 00824428102844820082442810101010 ! X,Y 00FE4020100804FE0078080808080878 ! Z,[ 0002040810204080003C20202020203C ! \,] 001028448200000000000000000000FE ! ^,_ 00201818000000000000007C807C827C ! `,a 0002027A8682827E0000007C820202FC ! b,c 008080BCC28282FC0000007C82FE02FC ! d,e 00708808083E08080000807C827C807E ! f,g 0002027A868282820010001810101038 ! h,i 008000808080827C000202C2320E32C2 ! j,k 00181010101010380000006E92929292 ! l,m 0000007A868282820000007C8282827C ! n,o 0000007E827E02020000007C82A242BC ! p,q 0000007A86020202000000FC027C807E ! r,s 0008083E08088870000000828282C2BC ! t,u 0000008282442810000000828292926C ! v,w 000000C6281028C6000000824428120C ! x,y 000000FE403804FE0060101018101060 ! z,{ 0010101000101010000C10103010100C ! |,} 000000008854220000AA54AA54AA54AA ! ~, *** Tabela ASCII znakov 6*8 (00000500H>00035B00H) *** 00000000000000000020202020200020 ! ,! 0050505000000000005050F850F85050 ! ",# 0020F02870A07820009898402010C8C8 ! $,% 0010282810A848B00060601000000000 ! &,' 00402010101020400010204040402010 ! (,) 0020A8702070A82000002020F8202000 ! *,+ 000000000060601000000000F8000000 ! ,,- 00000000000030300080804020100808 ! .,/ 007088C8A89888700020302020202070 ! 0,1 00708880601008F80070888070808870 ! 2,3 0040605048F8404000F8080878808078 ! 4,5 00E010087888887000F8804020100808 ! 6,7 007088887088887000708888F0804038 ! 8,9 00003030003030000000606000606010 ! :,; 0040201008102040000000F800F80000 ! <,= 00102040804020100070888040200020 ! >,? 007088A8E86808F00020508888F88888 ! @,A 00788888788888780070880808088870 ! B,C 007888888888887800F80808780808F8 ! D,E 00F80808780808080070880808C88870 ! F,G 00888888F88888880070202020202070 ! H,I 00808080808088700088482818284888 ! J,K 00080808080808F80088D8A8A8888888 ! L,M 008898A8A8C888880070888888888870 ! N,O 00788888780808080070888888A848B8 ! P,Q 00788888782848880070880870808870 ! R,S 00F82020202020200088888888888870 ! T,U 008888888850502000888888A8A8A850 ! V,W 00888850205088880088885020202020 ! X,Y 00F88040201008F80070101010101070 ! z,[ 00080810204080800070404040404070 ! \,] 002050508800000000000000000000F8 ! ^,_ 00403030000000000000007080708870 ! `,a 000808689888887800000070880808F0 ! b,c 008080B0C88888F00000007088F808F0 ! d,e 00609010103810100000807088708078 ! f,g 00080868988888880020003020202070 ! h,i 0080008080808870000808C8281828C8 ! j,k 003020202020207000000058A8A8A8A8 ! l,m 00000068988888880000007088888870 ! n,o 00000078887808080000007088A84850 ! p,q 0000006898080808000000F008708078 ! r,s 0010103810109060000000888888C8B0 ! t,u 00000088885050200000008888A8A850 ! v,w 00000088502050880000008850202810 ! x,y 000000F8402010F80040202030202040 ! z,{ 00202020002020200010202060202010 ! |,} 0000000090A8480000A850A850A850A8 ! ~, *** Izpis ASCII znaka v D0 = TRAP0 (00000800H>00035E00H) *** 48E7 MOVEM.L A2,A1,A0,D0,-(A7) 80E0 6110 BSR 10H 4CDF MOVEM.L (A7)+,D0,A0,A1,A2 0701 4E73 RTE 0004 (Kurzor na ekranu 00040000H) 0000 0000 (ESC kontrolna sekvenca 0000H) 0000 (Status 64 / 85 znakov 0000H) 00F0 (Odtenki papirja in crnila 00F0H) 41FA LEA FFF4H(PC),A0 ! Kurzor na naslovu (A0) FFF4 4A68 TST.W 0004H(A0) ! kontrolna sekvenca? 0004 6600 BNE 0158H ! kontrolna sekvenca >>---> 0158 0C00 CMPI.B 20H,D0 ! Tiskani znak v D0? 0020 6500 BCS 0092H ! Kontrolni znak >>---> 0092 0C00 CMPI.B 80H,D0 0080 6502 BCS 02H 707F MOVEQ 7FH,D0 ! <---<< Nepoznani znak 43FA LEA D9CCH(PC),A1 D9CC 0240 ANDI.W 007FH,D0 007F ED40 ASL.W 06H,D0 D2C0 ADDA.W D0,A1 ! A1=zacetni_naslov_znaka 2450 MOVEA.L (A0),A2 7007 MOVEQ 07H,D0 ! Prerisovanje znaka 8 vrstic 4A68 TST.W 0006H(A0) ! 8*8 ali 6*8? 0006 6610 BNE 10H ! 6*8 znak >>> 24D9 MOVE.L (A1)+,(A2)+ ! Prerisovanje znaka 8*8 24D9 MOVE.L (A1)+,(A2)+ D4FC ADDA.W 01F8H,A2 01F8 51C8 DBF D0,FFF6H FFF6 5090 ADDQ.L 08H,(A0) ! Premik kurzorja 8 tock naprej 6010 BRA 10H 5489 ADDQ.L 02H,A1 ! Prerisovanje znaka 6*8 34D9 MOVE.W (A1)+,(A2)+ 24D9 MOVE.L (A1)+,(A2)+ D4FC ADDA.W 01FAH,A2 01FA 51C8 DBF D0,FFF4H FFF4 5C90 ADDQ.L 06H,(A0) ! Premik kurzorja 6 tock naprej 2010 MOVE.L (A0),D0 ! Nova vrstica? <---<< 5340 SUBQ.W 01H,D0 0240 ANDI.W 01FFH,D0 01FF 0C40 CMPI.W 01F8H,D0 01F8 6402 BCC 02H 4E75 RTS 0690 ADDI.L 00000FFFH,(A0) 0000 0FFF 0290 ANDI.L FFFFFE00H,(A0) FFFF FE00 0C90 CMPI.L 0005F200H,(A0) ! Konec strani Scroll? <--<< 0005 F200 6402 BCC 02H 4E75 RTS 0490 SUBI.L 00001000H,(A0) ! Scroll 0000 1000 227C MOVEA.L 00040000H,A1 ! Prerisovanje ekrana 0004 0000 247C MOVEA.L 00041000H,A2 0004 1000 303C MOVE.W 7BFFH,D0 7BFF 22DA MOVE.L (A2)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 2468 MOVEA.L E1F4H(A0),A2 ! Brisanje spodnjega dela E1F4 303C MOVE.L 03FFH,D0 03FF 22CA MOVE.L A2,(A1)+ 51C8 DBF D0,FFFCH FFFC 4E75 RTS 0C00 CMPI.B 08H,D0 ! ? Kontrolni znaki <---<< 0008 6632 BNE 32H 4A68 TST.W 0006H(A0) ! 6 ali 8 0006 6604 BNE 04H 5190 SUBQ 08H,(A0) 6002 BRA 02H 5D90 SUBQ 06H,(A0) 2010 MOVE.L (A0),D0 ! Preko zacetka vrstice? 0240 ANDI.W 01FFH,D0 01FF 0C40 CMPI.W 01F8H,D0 01F8 6402 BCC 02H 4E75 RTS 0290 ANDI.L FFFFF1F8H,(A0) FFFF F1F8 0C90 CMPI.L 00040000H,(A0) ! Zacetek ekrana? 0004 0000 6502 BCS 02H 4E75 RTS 20FC MOVE.L 00040000H,(A0) 0004 0000 4E75 RTS 0C00 CMPI.B 09H,D0 ! ? 0009 6610 BNE 10H 4A68 TST.W 0006H,(A0) ! 6 ali 8 0006 6604 BNE 04H 5090 ADDQ.L 08H,(A0) 6002 BRA 02H 5C90 ADDQ.L 06H,(A0) 6000 BRA FF62H ! >>---> Nova vrsta, scroll? FF62 0C00 CMPI.B 0AH,D0 ! 000A 660A BNE 0AH 0690 ADDI.L 00001000H,(A0) 0000 1000 6000 BRA FF6EH ! >>---> Scroll? FF6E 0C00 CMPI.B 0BH,D0 ! 000B 6618 BNE 18H 0490 SUBI.L 00001000H,(A0) 0000 1000 0C90 CMPI.L 00040000H,(A0) ! Izven ekrana? 0004 0000 6502 BCS 02H 4E75 RTS 0690 ADDI.L 00001000H,(A0) 0000 1000 4E75 RTS 0C00 CMPI.B 0CH,D0 ! 000C 661C BNE 1CH 20BC MOVE.L 00040000H,(A0) 0004 0000 2468 MOVEA.L E1F4H(A0),A2 E1F4 227C MOVEA.L 00040000H,A1 0004 0000 303C MOVE.W 7FFFH,D0 7FFF 22CA MOVE.L A2,(A1)+ 51C8 DBF D0,FFFCH FFFC 4E75 RTS 0C00 CMPI.B 0DH,D0 ! 000D 6608 BNE 08H 0290 ANDI.L FFFFFE00H,(A0) FFFF FE00 4E75 RTS 0C00 CMPI.B 1BH,D0 ! 001B 6608 BNE 08H 317C MOVE.W FF00H,0004H(A0) FF00 0004 4E75 RTS 6000 BRA FEBA ! Nepoznani znak! >>---> FEBA 4A28 TST.B 0005H(A0) ! kontrolna sekvenca <---<< 0005 6618 BNE 18H 4268 CLR.W 0006H(A0) 0006 E700 ASL.B 03H,D0 6404 BCC 04H 4668 NOT.W 0006H(A0) 0006 1140 MOVE.B D0,0008H(A0) ! (Papir) 0008 317C MOVE.W FFFFH,0004H(A0) FFFF 0004 4E75 RTS E700 ASL.B 03H,D0 1140 MOVE.B D0,0009H(A0) ! (Crnilo) 0009 4268 CLR.W 0004H(A0) 0004 43FA LEA E05EH(PC),A1 E05E 45FA LEA F85AH(PC),A2 F85A 4A68 TST.W 0006H(A0) ! Katera tabela? 0006 6704 BEQ 04H D4FC ADDA.W 0300H,A2 0300 48E7 MOVEM.L D4,D3,D2,D1,-(A7) ! Barvanje znakov 7800 303C MOVE.W 02FFH,D0 ! Barvanje znakov 02FF 1628 MOVE.B 0008H(A0),D3 0008 1828 MOVE.B 0009H(A0),D4 0009 141A MOVE.B (A2)+,D2 7207 MOVEQ 07H,D1 E202 ASR.B 01H,D2 6504 BCS 04H 12C3 MOVE.B D3,(A1)+ 6002 BRA 02H 12C4 MOVE.B D4,(A1)+ 51C9 DBF D1,FFF4H FFF4 51C8 DBF D0,FFECH FFEC 4CDF MOVEM.L (A7)+,D1,D2,D3,D4 001E 4E75 RTS *** Stanje zaslona = TRAP1 (000009DEH>00035FDEH) *** 41FA LEA FE2CH(PC),A0 ! Naslov parametrov v A0 FE2C 4E73 RTE *** Kurzor na ekranu = TRAP2 (000009E4H>00035FE4H) *** 48E7 MOVEM.L A2,A1,A0,D1,-(A7) 40E0 41FA LEA 007AH(PC),A0 ! Strobe na (A0) 007A 227A MOVEA.L FE1EH(PC),A1 ! Kurzor na ekranu FE1E 323A MOVE.W FE20H(PC),D1 ! Tip zaslona FE20 4250 CLR.W (A0) 45FA LEA F7C8H(PC),A2 ! Znak za kurzor <---<< F7C8 7007 MOVEQ 07H,D0 ! Prepisovanje znaka za kurzor 4A41 TST.W D1 ! Tip znakov na zaslonu? 6612 BNE 12H 2F11 MOVE.L (A1),-(A7) ! 8*8 22DA MOVE.L (A2)+,(A1)+ 2F11 MOVE.L (A1),-(A7) 22DA MOVE.L (A2)+,(A1)+ D2FC ADDA.W 01F8H,A1 01F8 51C8 DBF D0,FFF2H FFF2 6012 BRA 12H 548A ADDQ.L 02H,A2 ! 6*8 3F11 MOVE.W (A1),-(A7) 32DA MOVE.W (A2)+,(A1)+ 2F11 MOVE.L (A1),-(A7) 22DA MOVE.L (A2)+,(A1)+ D2FC ADDA.W 01FAH,A1 01FA 51C8 DBF D0,FFF0H FFF0 70FF MOVEQ FFH,D0 ! Kurzor caka na nov znak 613A BSR 3AH ! Zakasnitev 4A10 TST.B (A0) 56C8 DBNE D0,FFFAH FFFA 7007 MOVEQ 07H,D0 ! Prepisovanje znaka nazaj 4A41 TST.W D1 ! Tip znaka? 660E BNE 0EH 92FC SUBA.W 01F8H,A1 ! 8*8 01F8 231F MOVE.L (A7)+,-(A1) 231F MOVE.L (A7)+,-(A1) 51C8 DBF D0,FFF6H FFF6 600C BRA 0CH 92FC SUBA.W 01FAH,A1 ! 6*8 01FA 231F MOVE.L (A7)+,-(A1) 331F MOVE.W (A7)+,-(A1) 51C8 DBF D0,FFF6H FFF6 70FF MOVEQ FFH,D0 ! Star znak caka na nov znak 6110 BSR 10H ! Zakasnitev 4A10 TST.B (A0) 56C8 DBNE D0,FFFAH FFFA 679C BEQ 9CH ! Ponovi utrip >>---> 3010 MOVE.W (A0),D0 4CDF MOVEM.L (A7)+,D1,A0,A1,A2 0702 4E73 RTE 4E75 RTS 0000 (strobe, znak) *** Znak s tastature = AUTOVECTOR7 (00000A66H>00036066H) *** 2F00 MOVE.L D0,-(A7) 1039 MOVE.B (00010001H),D0 0001 0001 0C00 CMPI 03H,D0 ! CTRL-C >>---> MONITOR 0003 6602 BNE 02H 4E44 TRAP4 2F08 MOVE.L A0,-(A7) 41FA LEA FFEAH(PC),A0 FFEA 0C10 CMPI.B FFH,(A0) ! Stevec znakov 00FF 6602 BNE 02H 5310 SUBQ.B 01H,(A0) 5218 ADDQ.B 01H,(A0)+ 1080 MOVE.B D0,(A0) ! Znak 205F MOVEA.L (A7)+,A0 201F MOVE.L (A7)+,D0 4E73 RTE *** Testiranje tastature = TRAP5 (00000A8EH>0003608EH) *** 2F08 MOVE.L A0,-(A7) 41FA LEA FFD2H(PC),A0 FFD2 4280 CLR.L D0 3010 MOVE.W (A0),D0 4250 CLR.W (A0) 205F MOVE.L (A7)+,A0 4E73 RTE *** Naslov FP rutin v A5 = TRAP10 (00000A9EH>0003609EH> *** 2A7C MOVEA.L 00037F7EH,A5 0003 7F7E 4E73 RTE * Praznina - (00000AA6H>000360A6H) * FFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF *** Tabela izjem (00000B00H>00036100H) *** 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036066 00035E0000035FDE00035FE400036200 000363000003608E0003627A000362B2 0003643A0003636E0003609E00036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 00036200000362000003620000036200 *** Izpis neuporabljene izjeme (00000C00H>00036200H) *** 007C ORI 0700H,SR 0700 2F00 MOVE.L D0,-(A7) 701B MOVEQ 1BH,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 7050 MOVEQ 50H,D0 ! Izpis PC 4E40 TRAP0 7043 MOVEQ 43H,D0 4E40 TRAP0 703A MOVEQ 3AH,D0 4E40 TRAP0 202F MOVE.L 0006H(A7),D0 0006 4E46 TRAP6 7020 MOVEQ 20H,D0 ! Izpis formata 4E40 TRAP0 7046 MOVEQ 46H,D0 4E40 TRAP0 703A MOVEQ 3AH,D0 4E40 TRAP0 7400 MOVEQ 00H,D2 302F MOVE.W 000AH(A7),D0 000A 4E46 TRAP6 0240 ANDI.W 8000H,D0 8000 6726 BEQ 26H 7020 MOVEQ 20H,D0 ! Izpis SSW 4E40 TRAP0 7053 MOVEQ 53H,D0 4E40 TRAP0 703A MOVEQ 3AH,D0 4E40 TRAP0 7400 MOVEQ 00H,D2 302F MOVE.W 000CH(A7),D0 000C 4E46 TRAP6 7020 MOVEQ 20H,D0 ! Izpis naslova 4E40 TRAP0 7041 MOVEQ 41H,D0 4E40 TRAP0 703A MOVEQ 3AH,D0 4E40 202F MOVE.L 000EH(A7),D0 000E 4E46 TRAP6 7020 MOVEQ 20H,D0 4E40 TRAP0 7021 MOVEQ 21H,D0 4E40 TRAP0 4E44 TRAP4 ! Poklici monitorski program 201F MOVE.L (A7)+,D0 4E73 RTE *** Izpis D0.L v HEX = TRAP6 (00000C7AH>0003627AH) *** 48E7 MOVEM.L D2,D1,D0,-(A7) E000 2400 MOVE.L D0,D2 7207 MOVEQ 07H,D1 E99A ROL.L 04H,D2 1002 MOVE.B D2,D0 0200 ANDI.B 0FH,D0 000F 56C9 DBNE D1,FFF6H FFF6 6008 BRA 08H E99A ROL.L 04H,D2 1002 MOVE.B D2,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 0C00 CMPI.B 3AH,D0 003A 6504 BCS 04H 0600 ADDI.B 07H,D0 0007 4E40 TRAP0 5341 SUBQ.W 01H,D1 6AE4 BPL E4H 4CDF MOVEM.L (A7)+,D0,D1,D2 0007 4E73 RTE *** Naslov tabele parametrov = TRAP7 (00000CB2H>000362B2H> *** 41FA LEA 0004H(PC),A0 0004 4E73 RTE *** Naslovi RAMa (00000CB8H>000362B8H> *** 00039600 Zacetek RAMa 00H(A0) 00006A00 Dolzina RAMa 04H(A0) *** Autostart ukaz 08H(A0) (00000CC0H>000362C0H) *** 480D0D0D0D0D0D0D0D0D0D0D0D0D0D0D ! H 0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D 0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D 0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D *** Monitorski program = TRAP4 (00000D00>00036300) *** 48E7 MOVEM.L A5,A4,A3,A2,A1,A0,D7,D6,D5,D4,D3,D2,D1,D0,-(A7) FFFC 4E56 LINK A6,FFC0H FFC0 702E MOVEQ 2EH,D0 ! Nov ukaz s tastature <---<< 4E40 TRAP0 204E MOVEA.L A6,A0 220E MOVE.L A6,D1 0481 SUBI.L 0000003DH,D1 0000 003D 4E42 TRAP2 ! Vhod znakov s tastature <---<< 0200 ANDI.B 7FH,D0 007F 0C00 CMPI.B 7FH,D0 ! Delete? 007F 6614 BNE 14H B1CE CMPA.L A6,A0 64F0 BCC F0H 5288 ADDQ.L 01H,A0 7008 MOVEQ 08H,D0 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 7008 MOVEQ 08H,D0 4E40 TRAP0 60E0 0C00 CMPI.B 60H,D0 ! Male crke? 0060 6504 BCS 04H 0400 SUBI.B 20H,D0 0020 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 650A BCS 0AH B1C1 CMPA.L D1,A0 65CC BCS CCH 1100 MOVE.B D0,-(A0) 4E40 TRAP0 60C6 BRA C6H 700D MOVEQ 0DH,D0 1100 MOVE.B D0,-(A0) 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 204E MOVEA.L A6,A0 ! Ukaz Q: Quit 0C20 CMPI.B 51H,-(A0) 0051 6704 BEQ 04H 4E48 TRAP8 ! Izvrsevanje ukaza 60A2 BRA A2H 4E5E UNLK A6 4CDF MOVEM.L (A7)+,D0,D1,D2,D3,D4,D5,D6,D7,A0,A1,A2,A3,A4,A5 3FFF 4E73 RTE *** Iskanje zapisa (A0)>(A1,D0) TRAP9 (00000D6EH>0003636EH) *** 48E7 MOVEM.L A2,A0,D2,D1,-(A7) 60A0 2448 MOVEA.L A0,A2 4E47 TRAP0 2258 MOVEA.L (A0)+,A1 2218 MOVE.L (A0)+,D1 D289 ADD.L A1,D1 6106 BSR 06H ! >>---> 4CDF MOVEM.L (A7)+,D1,D2,A0,A2 0506 4E73 RTE B3C1 CMPA.L D1,A1 ! Izven spomina? <---<< 6508 BCS 08H 7000 MOVEQ 00H,D0 2240 MOVEA.L D0,A1 70FF MOVEQ FFH,D0 4E75 RTS 0C19 CMPI.B AAH,(A1)+ ! Zastavica? 00AA 6706 BEQ 06H 70FF MOVEQ FFH,D0 5389 SUBQ.L 01H,A1 4E75 RTS 204A MOVEA.L A2,A0 ! Kontrola imena in koncnice? 740E MOVEQ 0EH,D2 B109 CMPM.B (A1)+,(A0)+ 56CA DBNE D2,FFFCH FFFC 670E BEQ 0EH D2C2 ADDA.W D2,A1 2019 MOVE.L (A1)+,D0 0280 ANDI.L 0FFFFFFFH,D0 0FFF FFFF D3C0 ADDA.L D0,A1 60CE BRA CEH ! >>---> 2019 MOVE.L (A1)+,D0 4E75 RTS *** Tabela imen zapisov (00000DBAH>000363BAH) *** 20202020202020202020202020202020 20202020202020202020202020202020 20202020202020202020202020202020 20202020202020202020202020202020 20202020202020202020202020202020 20202020202020202020202020202020 20202020202020202020202020202020 20202020202020202020202020202020 *** Izvrsevanje ukaza = TRAP8 (00000E3AH>0003643AH) *** 48E7 MOVEM.L A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0,-(A7) FFFE 41FA LEA FF7AH(PC),A0 FF7A 6106 BSR 06H ! >>---> 4CDF MOVEM.L (A7)+,D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6 7FFF 4E73 RTE *** Urejanje ukaza: D0.B, D1.B in (A0) *** 1026 MOVE.B -(A6),D0 ! D0.B = ukaz 0C00 CMPI.B 40H,D0 ! Prazen ukaz? 0040 6402 BCC 02H 4E75 RTS 2448 MOVEA.L A0,A2 ! A2 = kazalec na zacetek imena 7200 MOVEQ 00H,D1 ! D1.B = stevec imen 1426 MOVE.B -(A6),D2 ! Iskanje zacetka imena <---<< 0C02 CMPI.B 20H,D2 0020 655E BCS 5EH ! Konec ukaza >>---> 0C02 CMPI.B 30H,D2 ! Praznina na zacetku? 0030 65F2 BCS F2H 5201 ADDQ.B 01H,D1 14C2 MOVE.B D2,(A2)+ ! Prvi znak novega imena 760A MOVEQ 0AH,D3 ! D3.B = stevec zankov imena 7802 MOVEQ 02H,D4 ! D4.B = stevec znakov koncnice 1426 MOVE.B -(A6),D2 ! Znaki imena 0C02 CMPI.B 30H,D2 0030 650A BCS 0AH ! Konec imena 4A03 TST.B D3 6BF4 BMI F4H 5303 SUBI.B 01H,D3 14C2 MOVE.B D2,(A2)+ 60EE BRA EEH 4A03 TST.B D3 ! Polnjenje imena s presledki 6B08 BMI 08H 5303 SUBI.B 01H,D3 14FC MOVE.B 20H,(A2)+ 0020 60F4 BRA F4H 0C02 CMPI.B 2EH,D2 ! Obstaja koncnica? 002E 6612 BNE 12H ! Konec imena, brez koncnice 1426 MOVE.B -(A6),D2 0C02 CMPI.B 30H,D2 0030 650A BCS 0AH ! Konec koncnice 4A04 TST.B D4 6BF4 BMI F4H 5304 SUBI.B 01H,D4 14C2 MOVE.B D2,(A2)+ 60EE BRA EEH 5204 ADDQ.B 01H,D4 ! Polnjenje koncnice s presledki 4A04 TST.B D4 6B08 BMI 08H 5304 SUBI.B 01H,D4 14FC MOVE.B 20H,(A2)+ 0020 60F4 BRA F4H 0C02 CMPI.B 20H,D2 ! Konec ukaza? 0020 6506 BCS 06H 0C01 CMPI.B 08H,D1 ! Max 8 imen? 0008 659A BCS 9AH ! Iskanje novega imena >>---> *** Ukazi *** 0C00 CMPI.B 41H,D0 ! Ukaz A: Abort - Software reset 0041 6606 BNE 06H 4EF9 JMP 00000100H 0000 0100 0C00 CMPI.B 57H,D0 ! Ukaz W: Write / Read Memory Location 0057 6626 BNE 26H 6154 BSR 54H ! Naslov 2240 MOVEA.L D0,A1 0C01 CMPI.B 02H,D1 ! Vpisovanje? 0002 6604 BNE 04H 614A BSR 4AH 3280 MOVE.W D0,(A1) 2009 MOVE.L A1,D0 4E46 TRAP6 703A MOVEQ 3AH,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 3011 MOVE.W (A1),D0 4E46 TRAP6 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E75 RTS 0C00 CMPI.B 4EH,D0 ! Ukaz N: New Memory Space 004E 664E BNE 4EH 0C01 CMPI.B 02H,D1 0002 660C BNE 0CH 6122 BSR 22H 2E00 MOVE.L D0,D7 611E BSR 1EH 4E47 TRAP7 20C7 MOVE.L D7,(A0)+ 20C0 MOVE.L D0,(A0)+ 4E47 TRAP7 2018 MOVE.L (A0)+,D0 4E46 TRAP6 702F MOVEQ 2FH,D0 4E40 TRAP0 2018 MOVE.L (A0)+,D0 4E46 TRAP6 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E75 RTS 7000 MOVEQ 00H,D0 ! Vhod HEX stevila 2448 MOVEA.L A0,A2 5088 ADDQ.L 08H,A0 5088 ADDQ.L 08H,A0 141A MOVE.B (A2)+,D2 0C02 CMPI.B 30H,D2 0030 6402 BCC 02H 4E75 RTS 0C02 CMPI.B 40H,D2 0040 6502 BCS 02H 5F02 SUBQ.B 07H,D2 0202 ANDI.B 0FH,D2 000F E988 LSL.L 04H,D0 D002 ADD.B D2,D0 60E4 BRA E4H 0C00 CMPI.B 55H,D0 ! Ukaz U: Set / Read Real Time Clock 0055 6600 BNE 0184H 0184 287C MOVEA.L 00010007H,A4 ! Naslov komandne besede 0001 0007 0C01 CMPI.B 01H,D1 ! Nastavitev ure? 0001 6600 BNE 00A4H 00A4 0C28 CMPI.B 30H,000BH(A0) 0030 000B 6500 BCS 009AH 009A 343C MOVE.W 000BH,D2 ! Vhod podatkov za uro 000B 1018 MOVE.B (A0)+,D0 E38B LSL.L 01H,D3 E394 ROXL.L 01H,D4 E38B LSL.L 01H,D3 E394 ROXL.L 01H,D4 E38B LSL.L 01H,D3 E394 ROXL.L 01H,D4 E38B LSL.L 01H,D3 E394 ROXL.L 01H,D4 0200 ANDI.B 0FH,D0 000F D600 ADD.B D0,D3 51CA DBF D2,FFE6H FFE6 1004 MOVE.B D4,D0 ! Pretvorba mesecev 0200 ANDI.B 10H,D0 0010 6704 BEQ 04H 0604 ADDI.B 0AH,D4 000A E90C LSL.B 04H,D4 7001 MOVEQ 01H,D0 ! "Register Shift Mode" 6132 BSR 32H 343C MOVE.W 002FH,D2 002F E294 ROXR.L 01H,D4 ! Podatki E293 ROXR.L 01H,D3 6506 BCS 06H 18BC MOVE.B 02H,(A4) 0002 6004 BRA 04H 18BC MOVE.B 03H,(A4) 0003 18BC MOVE.B 01H,(A4) ! "CLK" 0001 18BC MOVE.B 00H,(A4) 0000 51CA DBF D2,FFE6H FFE6 7002 MOVEQ 02H,D0 ! "Time Set and Counter Hold Mode" 610E BSR 0EH 7000 MOVEQ 00H,D0 ! "Register Hold Mode" 610A BSR 0AH 7001 MOVEQ 01H,D0 ! "Register Shift Mode" 6106 BSR 06H 7003 MOVEQ 03H,D0 ! "Time Read Mode" 6102 BSR 02H 6034 BRA 34H 343C MOVE.W 0003H,D2 ! Izdaja komande 0003 E208 LSR.B 01H,D0 ! Podatki 6506 BCS 06H 18BC MOVE.B 02H,(A4) 0002 6004 BRA 04H 18BC MOVE.B 03H,(A4) 0003 18BC MOVE.B 01H,(A4) ! "CLK" 0001 18BC MOVE.B 00H,(A4) 0000 51CA DBF D2,FFE8H FFE8 18BC MOVE.B 05H,(A4) ! "STB" 0005 18BC MOVE.B 04H,(A4) 0004 303C MOVE.W 0010H,D0 ! Zakasnitev 30 uS 0010 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFA FFFA 4E75 RTS 7003 MOVEQ 03H,D0 ! "Time Read Mode" * Izpis ure <--<< 61C8 BSR C8H 7001 MOVEQ 01H,D0 ! "Register Shift Mode" 61C4 BSR C4H 343C MOVE.W 002FH,D2 002F 1039 MOVE.B (00010005H),D0 ! Podatek = PC7 0001 0005 E310 ROXL.B 01H,D0 E294 ROXR.L 01H,D4 E293 ROXR.L 01H,D3 18BC MOVE.B 01H,(A4) ! "CLK" 0001 18BC MOVE.B 00H,(A4) 0000 51CA DBF D2,FFEAH FFEA 343C MOVE.W 0001H,D2 ! Leto 0001 E99C ROL.L 04H,D4 1004 MOVE.B D4,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 4E40 TRAP0 51CA DBF D2,FFF0H FFF0 702D MOVEQ 2DH,D0 4E40 TRAP0 E99C ROL.L 04H,D4 ! Mesec 1404 MOVE.B D4,D2 0202 ANDI.B 0FH,D2 000F 7030 MOVEQ 30H,D0 0C02 CMPI.B 0AH,D2 000A 6506 BCS 06H 7031 MOVEQ 31H,D0 943C SUB.B 0AH,D2 000A 4E40 TRAP0 1002 MOVE.B D2,D0 0000 ORI.B 30H,D0 0030 4E40 TRAP0 702D MOVEQ 2DH,D0 4E40 TRAP0 E99C ROL.L 04H,D4 343C MOVE 0001H,D2 ! Dan 0001 E99C ROL.L 04H,D4 1004 MOVE.B D4,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 4E40 TRAP0 51CA DBF D2,FFF0H FFF0 7020 MOVEQ 20H,D0 4E40 TRAP0 343C MOVE.W 0001H,D2 ! Ure 0001 E99C ROL.L 04H,D4 1004 MOVE.B D4,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 4E40 TRAP0 51CA DBF D2,FFF0H FFF0 703A MOVEQ 3AH,D0 4E40 TRAP0 343C MOVE.W 0001H,D2 ! Minute 0001 E99B ROL.L 04H,D3 1003 MOVE.B D3,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 4E40 TRAP0 51CA DBF D2,FFF0 FFF0 703A MOVEQ 3AH,D0 4E40 TRAP0 343C MOVE.W 0001H,D2 ! Sekunde 0001 E99B ROL.L 04H,D3 1003 MOVE.B D3,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 4E40 TRAP0 51CA DBF D2,FFF0H FFF0 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E75 RTS 0C00 CMPI.B 4DH,D0 ! Ukaz M: Memory File Directory 004D 666A BNE 6AH 4E47 TRAP7 2258 MOVEA.L (A0)+,A1 2458 MOVEA.L (A0)+,A2 D5C9 ADDA.L A1,A2 B3CA CMPA.L A2,A1 ! Izven mej? <--<< 6506 BCS 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 0C19 CMPI.B AAH,(A1)+ ! Zastavica na zacetku? 00AA 6640 BNE 40H 720B MOVEQ 0BH,D1 ! Izpis imena 1019 MOVE.B (A1)+,D0 4E40 TRAP0 51C9 DBF D1,FFFAH FFFA 702E MOVEQ 2EH,D0 4E40 TRAP0 7202 MOVEQ 02H,D1 ! Izpis koncnice 1019 MOVE.B (A1)+,D0 4E40 TRAP0 51C9 DBF D1,FFFAH FFFA 7020 MOVEQ 20H,D0 4E40 TRAP0 4E40 TRAP0 2E19 MOVE.L (A1)+,D7 2009 MOVE.L A1,D0 ! Zacetni naslov 4E46 TRAP6 7020 MOVEQ 4E40 TRAP0 4E40 TRAP0 2007 MOVE.L D7,D0 ! Dolzina 4E46 TRAP6 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 0287 ANDI.L 0FFFFFFFH,D7 0FFF FFFF D3C7 ADDA.L D7,A1 60B0 BRA B0H ! >>---> 200A MOVE.L A2,D0 ! Prosti spomin 5389 SUBQ.L 01H,A1 9089 SUB.L A1,D0 4E46 TRAP6 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E75 RTS 0C00 CMPI.B 54H,D0 ! Ukaz T: Type ASCII File 0054 6622 BNE 22H 4E49 TRAP9 ! Poisci file (A0)>(A1,D0) 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2200 MOVE.L D0,D1 6006 BRA 06H 4841 SWAP D1 1019 MOVE.B (A1)+,D0 4E40 TRAP0 51C9 DBF D1,FFFAH FFFA 4841 SWAP D1 51C9 DBF D1,FFF2H FFF2 4E75 RTS 0C00 CMPI.B 43H,D0 ! Ukaz C: Copy RAM Files 0043 665E BNE 5EH 0401 SUBI.B 01H,D1 0001 6406 BCC 06H 703F MOVEQ 3FH,D0 ! Napaka <---<< 4E40 TRAP0 4E75 RTS 7000 MOVEQ 00H,D0 ! Destination file 1001 MOVE.B D1,D0 E988 LSL.L 04H,D0 2448 MOVEA.L A0,A2 D1C0 ADDA.L D0,A0 4E49 TRAP9 4A80 TST.L D0 6AEA BPL EAH ! >>---> 2009 MOVE.L A1,D0 67E6 BEQ E6H ! >>---> 12FC MOVE.B AAH,(A1)+ ! Zastavica 00AA 700E MOVEQ 0EH,D0 ! Prepisovanje imena 12D8 MOVE.B (A0)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 2649 MOVEA.L A1,A3 ! Nastavitev zacetnih naslovov 204A MOVEA.L A2,A0 244B MOVEA.L A3,A2 429A CLR.L (A2)+ 4212 CLR.B (A2) 5301 SUBQ.B 01H,D1 ! Konec prepisovanja? <---<< 6A02 BPL 02H 4E75 RTS 4E49 TRAP9 ! Source 4A80 TST.L D0 6BC4 BMI C4H D193 ADD.L D0,(A3) E288 LSR.L 01H,D0 6004 BRA 04H 4840 SWAP D0 34D9 MOVE.W (A1)+,(A2)+ 51C8 DBF D0,FFFCH FFFC 4840 SWAP D0 51C8 DBF D0,FFF4H FFF4 4212 CLR.B (A2) 5088 ADDQ.L 08H,A0 5088 ADDQ.L 08H,A0 60D8 BRA D8H ! >>---> 0C00 CMPI.B 4BH,D0 ! Ukaz K: Kill RAM File 004B 6654 BNE 54H 0C01 CMPI.B 01H,D1 0001 6706 BEQ 06H 703F MOVEQ 3FH,D0 ! Napaka 4E40 TRAP0 4E75 RTS 4E49 TRAP9 4A80 TST.L D0 6BF4 BMI F4H 2449 MOVEA.L A1,A2 ! Naslovi prepisovanja 2021 MOVE.L -(A1),D0 D5C0 ADDA.L D0,A2 5189 SUBQ.L 08H,A1 5189 SUBQ.L 08H,A1 4211 CLR.B (A1) 4E47 TRAP7 ! Dolzina 2018 MOVE.L (A0)+,D0 D098 ADD.L (A0)+,D0 908A SUB.L A2,D0 6A02 BPL 02H 4E75 RTS E288 LSR.L 01H,D0 6004 BRA 04H 4840 SWAP D0 32DA MOVE.W (A2)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 4840 SWAP D0 51C8 DBF D0,FFF4H FFF4 200A MOVE.L A2,D0 ! Brisanje vrhnjega dela 9089 SUB.L A1,D0 E288 LSR.L 01H,D0 6004 BRA 04H 4840 SWAP D0 4259 CLR.W (A1)+ 51C8 DBF D0,FFFCH FFFC 4840 SWAP D0 51C8 DBF D0,FFF4H FFF4 4E75 RTS *** Ukazi za RS-232 *** 0C00 CMPI.B 50H,D0 ! Ukaz P: Parameters RS-232 0050 6600 BNE 00BCH 00BC 47FA LEA 00B4H(PC),A3 ! Naslov parametrov 00B4 224B MOVEA.L A3,A1 6156 BSR 56H ! >>---> 203C MOVE.L 00017700H,D0 ! Izracun hitrosti 0001 7700 80DB DIVU (A3)+,D0 4840 SWAP D0 4240 CLR.W D0 4840 SWAP D0 7200 MOVEQ 00H,D1 80FC DIVU 000AH,D0 ! Pretvorba v desetisko 000A 670C BEQ 0CH 4840 SWAP D0 3F00 MOVE.W D0,-(A7) 5201 ADDQ.B 01H,D1 4240 CLR.W D0 4840 SWAP D0 60EE BRA EEH 4840 SWAP D0 6002 BRA 02H 301F MOVE.W (A7)+,D0 ! Izpis hitrosti 0000 ORI.B 30H,D0 0030 4E40 TRAP0 51C9 DBF D1,FFF6H FFF6 702C MOVEQ 2CH,D0 4E40 TRAP0 101B MOVE.B (A3)+,D0 ! Stevilo bitov 0000 ORI.B 34H,D0 0034 5200 ADDQ.B 01H,D0 4E40 TRAP0 702C MOVEQ 2CH,D0 4E40 TRAP0 101B MOVE.B (A3)+,D0 ! Pariteta 0000 ORI.B 30H,D0 0030 4E40 TRAP0 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E75 RTS 5301 SUBQ.B 01H,D1 ! Hitrost? <---<< 6A02 BPL 02H 4E75 RTS 7000 MOVEQ 00H,D0 2448 MOVEA.L A0,A2 141A MOVE.B (A2)+,D2 ! Vhod desetiske stevilke 0C02 CMPI.B 30H,D2 0030 650C BCS 0CH C0FC MULU 000AH,D0 000A 0242 ANDI.W 000FH,D2 000F D042 ADD.W D2,D0 60EC BRA ECH 243C MOVE.L 00017700H,D2 ! Izracun koeficienta deljenja 0001 7700 0C40 CMPI.B 0002H,D0 0002 6402 BRA 02H 7002 MOVEQ 02H,D0 84C0 DIVU D0,D2 32C2 MOVE.W D2,(A1)+ 5301 SUBQ.B 01H,D1 ! Stevilo bitov? 6A02 BPL 02H 4E75 RTS 5088 ADDQ.L 08H,A0 5088 ADDQ.L 08H,A0 1010 MOVE.B (A0),D0 5300 SUBQ.B 01H,D0 0200 ANDI.B 03H 0003 12C0 MOVE.B D0,(A1)+ 5301 SUBQ.B 01H,D1 ! Pariteta? 6A02 BPL 02H 4E75 RTS 5088 ADDQ.L 08H,A0 5088 ADDQ.L 08H,A0 1010 MOVE.B (A0),D0 0200 ANDI.B 03H 0003 12C0 MOVE.B D0,(A1)+ 4E75 RTS 000A ! Hitrost 9600 bps 0300 ! 8 bits / no parity 0C00 CMPI.B 49H,D0 ! Ukaz I: Input File From RS-232 To RAM 0049 6600 BNE 00F4H 00F4 0C01 CMPI.B 01H,D1 0001 6606 BNE 06H 4E49 TRAP9 ! Poisci zacetek zapisa 4A80 TST.L D0 6B06 BMI 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2009 MOVE.L A1,D0 67F6 BEQ F6H 12FC MOVE.B AAH,(A1)+ ! Glava novega zapisa 00AA 700E MOVEQ 0EH,D0 12D8 MOVE.B (A0)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 2049 MOVEA.L A1,A0 ! (A1).L dolzina zapisa 4298 CLR.L (A0)+ 4210 CLR.B (A0) ! A0 kurzor v zapisu 45FA LEA FFCAH(PC),A2 ! (A2) parametri FFCA 13FC MOVE.B 76H,(00024007H) ! Mode stevca 0076 0002 4007 301A MOVE.W (A2)+,D0 13C0 MOVE.B D0,(00024003H) ! Nizji bajt 0002 4003 E048 LSR.W 08H,D0 13C0 MOVE.B D0,(00024003H) ! Visji bajt 0002 4003 47FA LEA 0074H(PC),(A3) 0074 26C8 MOVE.L A0,(A3)+ ! kurzor 26C9 MOVE.L A1,(A3)+ ! dolzina 4E7A MOVEC VBR,A0 8801 2E28 MOVE.L 006CH(A0),D7 ! Naslov INT3 AV 006C 214B MOVE.L A3,006CH(A0) 006C 40C6 MOVE.W SR,D6 ! SR INT3 3006 MOVE.W D6,D0 0240 ANDI.W F8FFH,D0 F8FF 0040 ORI.W 0200H,D0 0200 B046 CMP.W D6,D0 6402 BCC 02H 46C0 MOVE.W D0,SR 267C MOVE.L 00028003H,A3 ! Naslov CMD 71051 0002 8003 16BC MOVE.B 82H,(A3) 0082 16BC MOVE.B 40H,(A3) 0040 101A MOVE.B (A2)+,D0 ! stevilo bitov E508 LSL.B 02H,D0 121A MOVE.B (A2)+,D1 ! pariteta E909 LSL.B 04H,D1 D001 ADD.B D1,D0 0000 ORI.B 42H,D0 0042 1680 MOVE.B D0,(A3) ! Mode 71051 16BC MOVE.B 16H,(A3) ! CMD RX only, DTR 0016 4E45 TRAP5 ! Resetiraj tastaturo 2011 MOVE.L (A1),D0 ! Izpisi dolzino 4E46 TRAP6 700D MOVEQ 0DH,D0 4E40 TRAP0 4E45 TRAP5 ! Konec s tatstature? 0C40 CMPI.B 0100H,D0 0100 65F0 BCS F0H 700A MOVEQ 0AH,D0 4E40 TRAP0 16BC MOVE.B 00H,(A3) ! Blokiranje sprejema 0000 46C6 MOVE.W D6,SR ! Povratek SR 2147 MOVE.L D7,006CH(A0) ! Povratek INT3 AV 006C 2011 MOVE.L (A1),D0 ! Pretvorba v sodi naslov 5280 ADDQ.L 01H,D0 0280 ANDI.L 0FFFFFFEH,D0 0FFF FFFE 2280 MOVE.L D0,(A1) 4E75 RTS 0000 ! A0 kurzor v zapisu 0000 0000 ! (A1) dolzina zapisa 0000 48E7 MOVEM.L A2,A1,A0,D0,-(A7) ! Podprogram INT3 80E0 45FA LEA FFF2H(PC),A2 FFF2 205A MOVEA.L (A2)+,A0 ! kurzor 2252 MOVEA.L (A2),A1 ! dolzina 10F9 MOVE.B (00028001H),(A0)+ 0002 8001 1039 MOVE.B (00028003H),D0 ! DSR? 0002 8003 0200 ANDI.B 80H,D0 0080 6604 BNE 04H 5388 SUBQ.L 01H,A0 6002 BRA 02H 5291 ADDQ.L 01H,(A1) 2508 MOVE.L A0,-(A2) 4218 CLR.B (A0)+ 4218 CLR.B (A0)+ 4CDF MOVEM.L (A7)+,D0,A0,A1,A2 0701 4E73 RTE 0C00 CMPI.B 4FH,D0 ! Ukaz O: Output File From RAM To RS-232 004F 6600 BNE 00E4H 00E4 4E49 TRAP9 ! Poisci zacetek zapisa 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2040 MOVEA.L D0,A0 ! Dolzina v A0 45FA LEA FEEAH(PC),A2 ! (A2) parametri FEEA 13FC MOVE.B 76H,(00024007H) ! Mode stevca 0076 0002 4007 301A MOVE.W (A2)+,D0 13C0 MOVE.B D0,(00024003H) ! Nizji bajt 0002 4003 E048 LSR.W 08H,D0 13C0 MOVE.B D0,(00024003H) ! Visji bajt 0002 4003 47FA LEA 0072H(PC),(A3) 0072 26C8 MOVE.L A0,(A3)+ ! dolzina 26C9 MOVE.L A1,(A3)+ ! zacetek 4E7A MOVEC VBR,A0 8801 2E28 MOVE.L 0068H(A0),D7 ! Naslov INT2 AV 0068 214B MOVE.L A3,0068H(A0) 0068 40C6 MOVE.W SR,D6 ! SR INT2 3006 MOVE.W D6,D0 0240 ANDI.W F8FFH,D0 F8FF 0040 ORI.W 0100H,D0 0100 B046 CMP.W D6,D0 6402 BCC 02H 46C0 MOVE.W D0,SR 287C MOVE.L 00028003H,A4 ! Naslov CMD 71051 0002 8003 18BC MOVE.B 82H,(A4) 0082 18BC MOVE.B 40H,(A4) 0040 101A MOVE.B (A2)+,D0 ! stevilo bitov E508 LSL.B 02H,D0 121A MOVE.B (A2)+,D1 ! pariteta E909 LSL.B 04H,D1 D001 ADD.B D1,D0 0000 ORI.B C2H,D0 00C2 1880 MOVE.B D0,(A8) ! Mode 71051 18BC MOVE.B 31H,(A4) ! CMD TX only, RTS 0031 4E45 TRAP5 ! Resetiraj tastaturo 202B MOVE.L FFF8H(A3),D0 ! Izpisi dolzino FFF8 4A80 TST.L D0 ! Konec zapisa? 6B12 BMI 12H 4E46 TRAP6 7020 MOVEQ 20H,D0 4E40 TRAP0 700D MOVEQ 0DH,D0 4E40 TRAP0 4E45 TRAP5 ! Konec s tastature? 0C40 CMPI.B 0100H,D0 0100 65E6 BCS E6H 700A MOVEQ 0AH,D0 4E40 TRAP0 18BC MOVE.B 00H,(A4) ! Blokiranje oddaje 0000 46C6 MOVE.W D6,SR ! Povratek SR 2147 MOVE.L D7,0068H(A0) ! Povratek INT2 AV 0068 4E75 RTS 0000 ! dolzina zapisa 0000 0000 ! kazalec v zapisu 0000 48E7 MOVEM.L A2,A1,D0,-(A7) ! Podprogram INT2 8060 45FA LEA FFF2H(PC),A2 FFF2 201A MOVE.L (A2)+,D0 ! stevec dolzine 5380 SUBQ 01H,D0 6B12 BMI 12H 2252 MOVEA.L (A2),A1 ! kazalec 13D9 MOVE.B (A1)+,(00028001H) 0002 8001 2489 MOVE.L A1,(A2) 2500 MOVE.L D0,-(A2) 4CDF MOVEM.L (A7)+,D0,A1,A2 0601 4E73 RTE 2500 MOVE.L D0,-(A2) 1039 MOVE.B (00028003H),D0 ! TXEMPTY? 0002 8003 0200 ANDI.B 04H,D0 0004 67F4 BEQ F4H 13FC MOVE.B 30H,(00028003H) ! Blokiranje oddajnika 0030 0002 8003 4CDF MOVEM.L (A7)+,D0,A1,A2 0601 4E73 RTE *** Ukazi za floppy *** 0C00 CMPI.B 46H,D0 ! Ukaz F: Format / Verify Format 0046 6600 BNE 028AH 028A 0C01 CMPI.B 02H,D1 ! Kontrola 0002 6706 BEQ 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 7E00 MOVEQ 00H,D7 ! D7 = Zacetna steza 1E18 MOVE.B (A0)+,D7 0207 ANDI.B 0FH,D7 000F 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 30H,D0 0030 650A BCS 0AH CEFC MULU 000AH,D7 000A 0200 ANDI.B 0FH,D0 000F DE00 ADD.B D0,D7 5C88 ADDQ.L 06H,A0 5088 ADDQ.L 08H,A0 7600 MOVEQ 00H,D3 ! D3 = Koncna steza 1618 MOVE.B (A0)+,D3 0203 ANDI.B 0FH,D3 000F 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 30H,D0 0030 650A BCS 0AH C6FC MULU 000AH,D3 000A 0200 ANDI.B 0FH,D0 000F D600 ADD.B D0,D3 7A01 MOVEQ 01H,D5 ! D5 = Zacetni sektor 4E56 LINK A6,E000H ! Prostor za tabelo formatiranje steze E000 4E7A MOVEC VBR,A5 D801 2F2D MOVE.L 0070H(A5),-(A7) ! INT4 AV 0070 40C0 MOVE SR,D0 ! SR INT4 3F00 MOVE.W D0,-(A7) 0240 ANDI.W F8FFH,D0 F8FF 0040 ORI.W 0300H,D0 0300 B057 CMP.W (A7),D0 6402 BCC 02H 46C0 MOVE D0,SR 287C MOVEA.L 00088001H,A4 ! (A4) = Cmd, status 0008 8001 13FC MOVE.B 20H,(00084001H) ! Vklop pogona 0020 0008 4001 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt 00D0 7240 MOVEQ 40H,D1 ! Zakasnitev 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 18BC MOVE.B E4H,(A4) ! Read track - motor, zakasnitev 00E4 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 18BC MOVE.B 08H,(A4) ! Restore 0008 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 7020 MOVEQ 20H,D0 ! Izpis stevila steze <---<< 4E40 TRAP0 2007 MOVE.L D7,D0 80FC DIVU 000AH,D0 000A 0000 ORI.B 30H,D0 0030 4E40 TRAP0 4840 SWAP D0 0000 ORI.B 30H,D0 0030 4E40 TRAP0 13C7 MOVE.B D7,(00088007H) ! Nova steza 0008 8007 18BC MOVE.B 18H,(A4) ! Seek 0018 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 5605 ADDQ.B 03H,D5 ! Zamik sektorjev 7C00 MOVEQ 00H,D6 ! Zanka po straneh 303C MOVE.W 0FFFH,D0 ! Polnjenje - koncni Gap <---<< 0FFF 204E MOVEA.L A6,A0 323C MOVE.W 4E4EH,D1 4E4E 3101 MOVE.W D1,-(A0) 51C8 DBF D0,FFFCH FFFC 204E MOVEA.L A6,A0 ! Polnjenje tabele s sektorji 724F MOVEQ 4FH,D1 ! Zacetek steze Gap 80 704E MOVEQ 4EH,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 7804 MOVEQ 04H,D4 ! Zanka po sektorjih 720B MOVEQ 0BH,D1 ! Nicle 12 <---<< 7000 MOVEQ 00H,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 7202 MOVEQ 02H,D1 ! Writes A1 70F5 MOVEQ F5H,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 113C MOVE.B FEH,-(A0) ! ID Address Mark 00FE 1107 MOVE D7,-(A0) ! Track Number 1106 MOVE.B D6,-(A0) ! Side Number 5205 ADDQ.B 01H,D5 ! Sector Number 0C05 CMPI.B 06H,D5 0006 6502 BCS 02H 5B05 SUBQ.B 05H,D5 1105 MOVE.B D5,-(A0) 113C MOVE.B 03H,-(A0) ! Sector Length 0003 113C MOVE.B F7H,-(A0) ! 2 CRCs written 00F7 7215 MOVEQ 15H,D1 ! Gap 22 704E MOVEQ 4EH,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 720B MOVEQ 0BH,D1 ! Nicle 12 7000 MOVEQ 00H,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 7202 MOVEQ 02H,D1 ! Writes A1 70F5 MOVEQ F5H,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 113C MOVE.B FBH,-(A0) ! Data Address Mark 00FB 323C MOVE.W 03FFH,D1 ! DATA 1024 03FF 703D MOVEQ 3DH,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 113C MOVE.B F7H,-(A0) ! 2 CRCs written 00F7 7270 MOVEQ 70H,D1 ! Gap 112 704E MOVEQ 4EH,D0 1100 MOVE.B D0,-(A0) 51C9 DBF D1,FFFCH FFFC 51CC DBF D4,FF92H ! Zanka po sektorjih >>---> FF92 41FA LEA 0006H(PC),A0 ! INT4 Address 0006 20CE MOVE.L A6,(A0)+ 601C BRA 1CH 0000 ! Stevec v spominu 0000 2F08 MOVE.L A0,-(A7) ! INT4 Write Track DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6(PC),A0 FFF6 2250 MOVEA.L (A0),A1 13E1 MOVE.B -(A1),(00088007H) 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) 0070 13FC MOVE.B 24H,(00084001H) ! Enable DRQ 0024 0008 4001 1006 MOVE D6,D0 ! Side Select E308 LSL.B 01H,D0 0000 ORI.B F0H,D0 00F0 1880 MOVE.B D0,(A4) ! Write Track Command 7040 MOVEQ 40H,D0 4E71 TRAP0 4E71 TRAP0 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 41FA LEA 0006H(PC),A0 ! INT4 address 0006 4258 CLR.W (A0)+ 6014 BRA 14H 0000 ! Stevec bajtov 2F08 MOVE.L A0,-(A7) ! INT4 Read Sector Multiple Routine 41FA LEA FFFAH(PC),A0 FFFA 5250 ADDQ.W 01H,(A0) 4A39 TST.B (00088007H) 0008 8007 205F MOVE.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) 0070 5588 SUBQ.L 02H,A0 13FC MOVE.B 01H,(00088005H) ! Start Sector 01 0001 0008 8005 1006 MOVE.B D6,D0 ! Read Sector Multiple Command E308 LSL.B 01H,D0 0000 ORI.B 98H,D0 0098 1880 MOVE.B D0,(A4) 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 0C50 CMPI.W 1400H,(A0) ! Precitano 5 sektorjev? 1400 6408 BCC 08H 1014 MOVE.B (A4),D0 ! Konec Read Track? 0200 ANDI.B 01H,D0 0001 66F2 BNE F2H 303C MOVE.W 0100H,D0 0100 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 ! Napaka? 0200 ANDI.B 9CH,D0 009C 6704 BEQ 04H 702A MOVEQ 2AH,D0 4E40 TRAP0 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt Cmd 00D0 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 5206 ADDQ.B 01H,D6 0C06 CMPI.B 02H,D6 0002 6500 BCS FEACH ! Zanka po straneh >>---> FEAC 5207 ADDQ.B 01H,D7 B607 CMP.B D7,D3 6400 BCC FE6CH ! Zanka po sledeh >>---> FE6C 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 18BC MOVE.B 08H,(A4) ! Restore 0008 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 18BC MOVE.B 00H,(A4) ! Restore in izklop pogona 0000 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 21H,D0 0021 66F8 BNE F8H 13FC MOVE.B 00H,(00084001H) ! Izklop 0000 0008 4001 46DF MOVE (A7)+,SR ! Povratek SR 2B5F MOVE.L (A7)+,0070H(A5) ! Povratek AV4 0070 4E5E UNLK A6 4E75 RTS 0C00 CMPI.B 44H,D0 ! Ukaz D: Disk File Directory 0044 6600 BNE 01CEH 01CE 4E56 LINK A6,FC00H ! Prostor za sektor FC00 4E7A MOVEC VBR,A5 D801 2F2D MOVE.L 0070H(A5),-(A7) ! INT4 AV 0070 40C0 MOVE SR,D0 ! SR INT4 3F00 MOVE.W D0,-(A7) 0240 ANDI.W F8FFH,D0 F8FF 0040 ORI.W 0300H,D0 0300 B057 CMP.W (A7),D0 6402 BCC 02H 46C0 MOVE D0,SR 287C MOVEA.L 00088001H,A4 ! (A4) = Cmd, status 0008 8001 13FC MOVE.B 20H,(00084001H) ! Vklop pogona 0020 0008 4001 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt 00D0 7240 MOVEQ 40H,D1 ! Zakasnitev 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 18BC MOVE.B E4H,(A4) ! Read track - motor, zakasnitev 00E4 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 18BC MOVE.B 08H,(A4) ! Restore 0008 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 7E00 MOVEQ 00H,D7 ! Zacetna steza 7C00 MOVEQ 00H,D6 ! Zacetna stran 7A01 MOVEQ 01H,D5 ! Zacetni sektor 13C7 MOVE.B D7,(00088007H) ! Nova steza <---<< 0008 8007 18BC MOVE.B 18H,(A4) ! Seek 0018 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 7404 MOVEQ 04H,D2 ! Stevilo ponovitev 41FA LEA 0006H(PC),A0 ! INT4 Address <---<< Ponovi citanje 0006 20CE MOVE.L A6,(A0)+ 601C BRA 1CH 0000 ! Stevec v spominu 0000 2F08 MOVE.L A0,-(A7) ! INT4 Read Sector DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6(PC),A0 FFF6 2250 MOVEA.L (A0),A1 1339 MOVE.B (00088007H),-(A1) 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) ! Naslov v AV4 0070 13FC MOVE.B 24H,(00084001H) ! Enable DRQ 0024 0008 4001 13C5 MOVE.B D5,(00088005H) ! Sector 0008 8005 1006 MOVE D6,D0 ! Side Select E308 LSL.B 01H,D0 0000 ORI.B 88H,D0 0088 1880 MOVE.B D0,(A4) ! Read Sector Command 7040 MOVEQ 40H,D0 4E71 TRAP0 4E71 TRAP0 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 1014 MOVE.B (A4),D0 ! Napaka? 0200 ANDI.B 9CH,D0 009C 670C BEQ 0CH 51CA DBF D2,FFA4H ! Ponovi citanje >>---> FFA4 702A MOVEQ 2AH,D0 4E40 TRAP0 6000 BRA 00A0H ! Napaka >--->> 00A0 204E MOVEA.L A6,A0 0C20 CMPI.B AAH,-(A0) 00AA 6600 BNE 0096H ! Konec zapisov >--->> 0096 720B MOVEQ 0BH,D0 ! Izpis imena 1020 MOVE.B -(A0),D0 4E40 TRAP0 51C9 DBF D1,FFFAH FFFA 702E MOVEQ 2EH,D0 4E40 TRAP0 7202 MOVEQ 02H,D1 ! Izpis koncnice 1020 MOVE.B -(A0),D0 4E40 TRAP0 51C9 DBF D1,FFFAH FFFA 7020 MOVEQ 20H,D0 4E40 TRAP0 4E40 TRAP0 2007 MOVE.L D7,D0 ! Izpis steze 80FC DIVU 000AH,D0 000A 0000 ORI.B 30H,D0 0030 4E40 TRAP0 4840 SWAP D0 0000 ORI.B 30H,D0 0030 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 1006 MOVE.B D6,D0 ! Izpis strani 0000 ORI.B 30H,D0 0030 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 1005 MOVE.B D5,D0 ! Izpis sektorja 0000 ORI.B 30H,D0 0030 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 4E40 TRAP0 1020 MOVE.B -(A0),D0 ! Izpis dolzine E188 LSL.L 08H,D0 1020 MOVE.B -(A0),D0 E188 LSL.L 08H.D0 1020 MOVE.B -(A0),D0 E188 LSL.L 08H,D0 1020 MOVE.B -(A0),D0 4E46 TRAP6 0280 ANDI.L 000FFFFFH,D0 ! Izracun novega sektorja 000F FFFF 0680 ADDI.L 00000013H,D0 0000 0013 E088 LSR.L 08H,D0 E488 LSR.L 02H,D0 D085 ADD.L D5,D0 80FC DIVU 0005H,D0 0005 D046 ADD.W D6,D0 1C00 MOVE.B D0,D6 0206 ANDI.B 01H,D6 ! Nova stran 0001 E248 LSR.W 01H,D0 DE00 ADD.B D0,D7 ! Nova steza 4840 SWAP D0 5200 ADDQ.B 01H,D0 1A00 MOVE.B D0,D5 ! Novi sektor 700D MOVEQ 0DH,D0 ! Nova vrstica 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 6000 BRA FEE0H ! Citanje novega sektorja >>---> FEE0 18BC MOVE.B 08H,(A4) ! Restore - Konec <---<< 0008 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 18BC MOVE.B 00H,(A4) ! Restore in izklop pogona 0000 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 21H,D0 0021 66F8 BNE F8H 13FC MOVE.B 00H,(00084001H) ! Izklop 0000 0008 4001 46DF MOVE (A7)+,SR ! Povratek SR 2B5F MOVE.L (A7)+,0070H(A5) ! Povratek AV4 0070 4E5E UNLK A6 4E75 RTS 0C00 CMPI.B 4CH,D0 ! Ukaz L: Load From Floppy Disk To RAM 004C 6600 BNE 0296H 0296 0C01 CMPI.B 01H,D1 0001 6606 BNE 06H 4E49 TRAP9 ! Poisci zacetek novega zapisa 4A80 TST.L D0 6B06 BMI 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2009 MOVE.L A1,D0 67F6 BEQ F6H 2648 MOVEA.L A0,A3 ! A3 = Zacetek imena zapisa 4E56 LINK A6,FC00H ! Prostor za sektor FC00 4E7A MOVEC VBR,A5 D801 2F2D MOVE.L 0070H(A5),-(A7) ! INT4 AV 0070 40C0 MOVE SR,D0 ! SR INT4 3F00 MOVE.W D0,-(A7) 0240 ANDI.W F8FFH,D0 F8FF 0040 ORI.W 0300H,D0 0300 B057 CMP.W (A7),D0 6402 BCC 02H 46C0 MOVE D0,SR 287C MOVEA.L 00088001H,A4 ! (A4) = Cmd, status 0008 8001 13FC MOVE.B 20H,(00084001H) ! Vklop pogona 0020 0008 4001 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt 00D0 7240 MOVEQ 40H,D1 ! Zakasnitev 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 18BC MOVE.B E4H,(A4) ! Read track - motor, zakasnitev 00E4 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 18BC MOVE.B 08H,(A4) ! Restore 0008 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 7E00 MOVEQ 00H,D7 ! Zacetna steza 7C00 MOVEQ 00H,D6 ! Zacetna stran 7A01 MOVEQ 01H,D5 ! Zacetni sektor 13C7 MOVE.B D7,(00088007H) ! Nova steza <---<< 0008 8007 18BC MOVE.B 18H,(A4) ! Seek 0018 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 7404 MOVEQ 04H,D2 ! Stevilo ponovitev 41FA LEA 0006H(PC),A0 ! INT4 Address <---<< Ponovi citanje 0006 20CE MOVE.L A6,(A0)+ 601C BRA 1CH 0000 ! Stevec v spominu 0000 2F08 MOVE.L A0,-(A7) ! INT4 Read Sector DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6(PC),A0 FFF6 2250 MOVEA.L (A0),A1 1339 MOVE.B (00088007H),-(A1) 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) ! Naslov v AV4 0070 13FC MOVE.B 24H,(00084001H) ! Enable DRQ 0024 0008 4001 13C5 MOVE.B D5,(00088005H) ! Sector 0008 8005 1006 MOVE D6,D0 ! Side Select E308 LSL.B 01H,D0 0000 ORI.B 88H,D0 0088 1880 MOVE.B D0,(A4) ! Read Sector Command 7040 MOVEQ 40H,D0 4E71 TRAP0 4E71 TRAP0 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 1014 MOVE.B (A4),D0 ! Napaka? 0200 ANDI.B 9CH,D0 009C 670C BEQ 0CH 51CA DBF D2,FFA4H ! Ponovi citanje >>---> FFA4 702A MOVEQ 2AH,D0 4E40 TRAP0 6000 BRA 014AH ! Napaka >--->> 014A 204E MOVEA.L A6,A0 0C20 CMPI.B AAH,-(A0) 00AA 6600 BNE 0140H ! Konec zapisov >--->> 0140 720E MOVEQ 0EH,D1 ! Primerjava imena in koncnice 244B MOVEA.L A3,A2 1020 MOVE.B -(A0),D0 B01A CMP.B (A2)+,D0 56C9 DBNE D1,FFFAH FFFA 673C BEQ 3CH ! Enaka imena >>---> 91C1 SUBA.L D1,A0 1020 MOVE.B -(A0),D0 ! Dolocanje dolzine E188 LSL.L 08H,D0 1020 MOVE.B -(A0),D0 E188 LSL.L 08H.D0 1020 MOVE.B -(A0),D0 E188 LSL.L 08H,D0 1020 MOVE.B -(A0),D0 0280 ANDI.L 000FFFFFH,D0 ! Izracun novega sektorja 000F FFFF 0680 ADDI.L 00000013H,D0 0000 0013 E088 LSR.L 08H,D0 E488 LSR.L 02H,D0 D085 ADD.L D5,D0 80FC DIVU 0005H,D0 0005 D046 ADD.W D6,D0 1C00 MOVE.B D0,D6 0206 ANDI.B 01H,D6 ! Nova stran 0001 E248 LSR.W 01H,D0 DE00 ADD.B D0,D7 ! Nova steza 4840 SWAP D0 5200 ADDQ.B 01H,D0 1A00 MOVE.B D0,D5 ! Novi sektor 6000 BRA FF2AH ! Citanje novega sektorja >>---> FF2A 1620 MOVE.B -(A0),D3 ! Dolzina zapisa v D3 <---<< E18B LSL.L 08H,D3 1620 MOVE.B -(A0),D3 E18B LSL.L 08H,D3 1620 MOVE.B -(A0),D3 E18B LSL.L 08H,D3 1620 MOVE.B -(A0),D3 D689 ADD.L A1,D3 ! Izracun koncnega naslova v D3 0683 ADDI.L 00000013H,D3 0000 0013 41FA LEA 0006H(PC),A0 ! INT4 Address 0006 20C9 MOVE.L A1,(A0)+ 601C BRA 1CH 0000 ! Naslov v RAMu 0000 2F08 MOVE.L A0,-(A7) ! Read Sector Multiple DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6H(PC),A0 FFF6 2250 MOVEA.L (A0),A1 12F9 MOVE.B (00088007H),(A1)+ 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) ! INT4 AV 0070 5988 SUBQ.L 04H,A0 ! (A0) = Kazalec v spominu 7204 MOVEQ 04H,D1 ! Nova stran & steza <---<< 7406 MOVEQ 06H,D2 ! Izracun meje v D2 9405 SUB.B D5,D2 E18A LSL.L 08H,D2 E58A LSL.L 02H,D2 D490 ADD.L (A0),D2 5382 SUBQ.L 01H,D2 2003 MOVE.L D3,D0 ! Kontrola D2 0680 ADDI.L 000003FFH,D0 0000 03FF B082 CMP.L D2,D0 6408 BCC 08H 0482 SUBI.L 00000400H,D2 0000 0400 60F4 BRA F4H 2650 MOVEA.L (A0),A3 ! A3 = Naslov ponavljanja 13C5 MOVE.B D5,(00088005H) ! Sektor - Ponovi citanje <---<< 0008 8005 1006 MOVE.B D6,D0 ! Side Select E308 LSL.B D0 0000 ORI.B 98H,D0 0098 1880 MOVE.B D0,(A4) ! Read Sector Multiple CMD 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA B490 CMP.L (A0),D2 ! Konec strani? 6508 BCS 08H 1014 MOVE.B (A4),D0 ! Konec zaradi napake? 0200 ANDI.B 01H,D0 0001 66F4 BNE F4H 303C MOVE.W 0100H,D0 0100 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 ! Napaka? 0200 ANDI.B 9CH,D0 009C 670C BEQ 0CH ! >>---> 208B MOVE.L A3,(A0) 51C9 DBF D1,FFC2H ! Ponovitev citanja >>---> FFC2 702A MOVEQ 2AH,D0 4E40 TRAP0 604A BRA 4AH ! Napaka >>---> 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt <---<< 00D0 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA B690 CMP.L (A0),D3 ! Konec zapisa? 6530 BCS 30H ! Pravilni konec >>--->> 7A01 MOVEQ 01H,D5 ! Novi sektor 5206 ADDQ.B 01H,D6 0C06 CMPI.B 02H,D6 0002 6500 BCS FF7AH ! Nova stran >>---> FF7A 7C00 MOVEQ 00H,D6 5207 ADDQ.B 01H,D7 13C7 MOVE.B D7,(00088007H) ! Nova steza 0008 8007 18BC MOVE.B 18H,(A4) ! Seek Cmd 0018 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 6000 BRA FF56H ! Nova steza >>---> FF56 5283 ADDQ.L 01H,D3 ! Pravilni konec <---<< 2243 MOVEA.L D3,A1 4291 CLR.L (A1) 6006 BRA 06H 4291 CLR.L (A1) ! Napaka <---<< 703F MOVEQ 3FH,D0 4E40 TRAP0 18BC MOVE.B 08H,(A4) ! Restore - Konec <---<< 0008 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 18BC MOVE.B 00H,(A4) ! Restore in izklop pogona 0000 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 21H,D0 0021 66F8 BNE F8H 13FC MOVE.B 00H,(00084001H) ! Izklop 0000 0008 4001 46DF MOVE (A7)+,SR ! Povratek SR 2B5F MOVE.L (A7)+,0070H(A5) ! Povratek AV4 0070 4E5E UNLK A6 4E75 RTS 0C00 CMPI.B 53H,D0 ! Ukaz S: Save From RAM To Floppy Disk 0053 6600 BNE 0328H 0328 0C01 CMPI.B 01H,D1 0001 6606 BNE 06H 4E49 TRAP9 ! Poisci zacetek zapisa 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2600 MOVE.L D0,D3 ! D3 = Koncni naslov D689 ADD.L A1,D3 5383 SUBQ.L 01H,D3 7014 MOVEQ 14H,D0 2649 MOVEA.L A1,A3 ! A3 = Zacetek imena zapisa 97C0 SUBA.L D0,A3 4E56 LINK A6,E800H ! Prostor za sektor in verify E800 4E7A MOVEC VBR,A5 D801 2F2D MOVE.L 0070H(A5),-(A7) ! INT4 AV 0070 40C0 MOVE SR,D0 ! SR INT4 3F00 MOVE.W D0,-(A7) 0240 ANDI.W F8FFH,D0 F8FF 0040 ORI.W 0300H,D0 0300 B057 CMP.W (A7),D0 6402 BCC 02H 46C0 MOVE D0,SR 287C MOVEA.L 00088001H,A4 ! (A4) = Cmd, status 0008 8001 13FC MOVE.B 20H,(00084001H) ! Vklop pogona 0020 0008 4001 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt 00D0 7240 MOVEQ 40H,D1 ! Zakasnitev 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 18BC MOVE.B E4H,(A4) ! Read track - motor, zakasnitev 00E4 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 18BC MOVE.B 08H,(A4) ! Restore 0008 7240 MOVEQ 40H,D1 4E71 NOP 4E71 NOP 51C9 DBF D1,FFFAH FFFA 1214 MOVE.B (A4),D1 0201 ANDI.B 01H,D1 0001 66F8 BNE F8H 7E00 MOVEQ 00H,D7 ! Zacetna steza 7C00 MOVEQ 00H,D6 ! Zacetna stran 7A01 MOVEQ 01H,D5 ! Zacetni sektor 13C7 MOVE.B D7,(00088007H) ! Nova steza <---<< 0008 8007 18BC MOVE.B 18H,(A4) ! Seek 0018 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 7404 MOVEQ 04H,D2 ! Stevilo ponovitev 41FA LEA 0006H(PC),A0 ! INT4 Address <---<< Ponovi citanje 0006 20CE MOVE.L A6,(A0)+ 601C BRA 1CH 0000 ! Stevec v spominu 0000 2F08 MOVE.L A0,-(A7) ! INT4 Read Sector DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6(PC),A0 FFF6 2250 MOVEA.L (A0),A1 1339 MOVE.B (00088007H),-(A1) 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) ! Naslov v AV4 0070 13FC MOVE.B 24H,(00084001H) ! Enable DRQ 0024 0008 4001 13C5 MOVE.B D5,(00088005H) ! Sector 0008 8005 1006 MOVE D6,D0 ! Side Select E308 LSL.B 01H,D0 0000 ORI.B 88H,D0 0088 1880 MOVE.B D0,(A4) ! Read Sector Command 7040 MOVEQ 40H,D0 4E71 TRAP0 4E71 TRAP0 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 1014 MOVE.B (A4),D0 ! Napaka? 0200 ANDI.B 9CH,D0 009C 670C BEQ 0CH 51CA DBF D2,FFA4H ! Ponovi citanje >>---> FFA4 702A MOVEQ 2AH,D0 4E40 TRAP0 6000 BRA 01D8H ! Napaka pri iskanju >--->> 01D8 204E MOVEA.L A6,A0 0C20 CMPI.B AAH,-(A0) 00AA 664E BNE 4EH ! Konec zapisov - vpisovanje >--->> 720E MOVEQ 0EH,D1 ! Primerjava imena in koncnice 244B MOVEA.L A3,A2 528A ADDQ.L 01H,A2 1020 MOVE.B -(A0),D0 B01A CMP.B (A2)+,D0 56C9 DBNE D1,FFFAH FFFA 6700 BEQ 01BEH ! Ze obstaja enako ime >>---> 01BE 91C1 SUBA.L D1,A0 1020 MOVE.B -(A0),D0 ! Dolocanje dolzine E188 LSL.L 08H,D0 1020 MOVE.B -(A0),D0 E188 LSL.L 08H.D0 1020 MOVE.B -(A0),D0 E188 LSL.L 08H,D0 1020 MOVE.B -(A0),D0 0280 ANDI.L 000FFFFFH,D0 ! Izracun novega sektorja 000F FFFF 0680 ADDI.L 00000013H,D0 0000 0013 E088 LSR.L 08H,D0 E488 LSR.L 02H,D0 D085 ADD.L D5,D0 80FC DIVU 0005H,D0 0005 D046 ADD.W D6,D0 1C00 MOVE.B D0,D6 0206 ANDI.B 01H,D6 ! Nova stran 0001 E248 LSR.W 01H,D0 DE00 ADD.B D0,D7 ! Nova steza 4840 SWAP D0 5200 ADDQ.B 01H,D0 1A00 MOVE.B D0,D5 ! Novi sektor 6000 BRA FF28H ! Citanje novega sektorja >>---> FF28 7804 MOVEQ 04H,D4 ! Pisanje nove strani <---<< 41FA LEA 0006H(PC),A0 ! Ponavljanje pisanja strani <---<< 0006 20CB MOVE.L A3,(A0)+ 6030 BRA 30H 0000 ! Naslov v RAMu 0000 2F08 MOVE.L A0,-(A7) ! Write Sector Multiple DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6H(PC),A0 FFF6 2250 MOVEA.L (A0),A1 13D9 MOVE.B (A1)+,(00088007H) ! Podatki 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2F08 MOVE.L A0,-(A7) ! Polnjenje ostanka DRQ routine 41FA LEA FFE0H(PC),A0 FFE0 5290 ADDQ.L 01H,(A0) 13FC MOVE.B 2AH,(00088007H) ! Polnjenje ostanka 002A 0008 8007 205F MOVE.L A0,-(A7) 4E73 RTE 2B48 MOVE.L A0,0070H(A5) ! INT4 AV 0070 2448 MOVE.L A0,A2 ! A2 = Naslov za polnjenje D5FC ADDA.L 00000018H,A2 0000 0018 5988 SUBQ.L 04H,A0 ! (A0) = Kazalec v spominu 13C5 MOVE.B D5,(00088005H) ! Sektor 0008 8005 7406 MOVEQ 06H,D2 ! Izracun meje v D2 9405 SUB.B D5,D2 E18A LSL.L 08H,D2 E58A LSL.L 02H,D2 D48B ADD.L A3,D2 5382 SUBQ.L 01H,D2 2003 MOVE.L D3,D0 ! Kontrola meje v D2 0680 ADDI.L 000003FFH,D0 0000 03FF B082 CMP.L D2,D0 6408 BCC 08H 0482 SUBI.L 00000400H,D2 0000 0400 60F4 BRA F4H 1006 MOVE.B D6,D0 ! Side Select E308 LSL.B D0 0000 ORI.B B8H,D0 00B8 1880 MOVE.B D0,(A4) ! Write Sector Multiple CMD 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA B690 CMP.L (A0),D3 ! Konec zapisa? 6404 BCC 04H 2B4A MOVE.L A2,0070H(A5) ! Novi INT4 AV 0070 B490 CMP.L (A0),D2 ! Konec strani? 6508 BCS 08H 1014 MOVE.B (A4),D0 ! Konec zaradi napake? 0200 ANDI.B 01H,D0 0001 66EC BNE ECH 303C MOVE.W 0100H,D0 0100 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt 00D0 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 244E MOVE.L A6,A2 ! Verify memory space 95FC SUBA.L 00001800H,A2 0000 1800 41FA LEA 0006H(PC),A0 ! INT4 Address 0006 20CA MOVE.L A2,(A0)+ 601C BRA 1CH 0000 ! Naslov v RAMu 0000 2F08 MOVE.L A0,-(A7) ! Read Sector Multiple DRQ Routine 2F09 MOVE.L A1,-(A7) 41FA LEA FFF6H(PC),A0 FFF6 2250 MOVEA.L (A0),A1 12F9 MOVE.B (00088007H),(A1)+ 0008 8007 2089 MOVE.L A1,(A0) 225F MOVEA.L (A7)+,A1 205F MOVEA.L (A7)+,A0 4E73 RTE 2B48 MOVE.L A0,0070H(A5) ! INT4 AV 0070 5988 SUBQ.L 04H,A0 ! (A0) = Kazalec v spominu 13C5 MOVE.B D5,(00088005H) ! Sektor 0008 8005 7406 MOVEQ 06H,D2 ! Izracun meje v D2 9405 SUB.B D5,D2 E18A LSL.L 08H,D2 E58A LSL.L 02H,D2 D490 ADD.L (A0),D2 5382 SUBQ.L 01H,D2 1006 MOVE.B D6,D0 ! Side Select E308 LSL.B D0 0000 ORI.B 98H,D0 0098 1880 MOVE.B D0,(A4) ! Read Sector Multiple CMD 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA B490 CMP.L (A0),D2 ! Konec strani? 6508 BCS 08H 1014 MOVE.B (A4),D0 ! Konec zaradi napake? 0200 ANDI.B 01H,D0 0001 66F4 BNE F4H 303C MOVE.W 0100H,D0 0100 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1214 MOVE.B (A4),D1 ! Napaka? 18BC MOVE.B D0H,(A4) ! Terminate With No Interrupt 00D0 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 0201 ANDI.B 9CH,D1 009C 670A BEQ 0AH ! Zaenkrat se ni napake 51CC DBF D4,FECAH ! Retry - Ponovno pisanje >>---> FECA 702A MOVEQ 2AH,D0 4E40 TRAP0 6040 BRA 40H ! Napaka >>---> 224B MOVEA.L A3,A1 B30A CMPM.B (A2)+,(A1)+ 66F0 BNE F0H ! Napaka B689 CMP.L A1,D3 ! Konec zapisa v RAMu? 653A BCS 3AH ! Pravilni izhod >>--->> B48A CMP.L A2,D2 ! Konec strani? 64F4 BCC F4H 2649 MOVEA.L A1,A3 ! Zacetek nove strani 7A01 MOVEQ 01H,D5 ! Novi sektor 5206 ADDQ.B 01H,D6 0C06 CMPI.B 02H,D6 0002 6500 BCS FEA6H ! Nova stran >>---> FEA6 7C00 MOVEQ 00H,D6 5207 ADDQ.B 01H,D7 13C7 MOVE.B D7,(00088007H) ! Nova steza 0008 8007 18BC MOVE.B 18H,(A4) ! Seek Cmd 0018 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 6000 BRA FE82H ! Nova steza >>---> FE82 703F MOVEQ 3FH,D0 ! Napaka <---<< 4E40 TRAP0 18BC MOVE.B 08H,(A4) ! Restore - Konec <---<< 0008 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 01H,D0 0001 66F8 BNE F8H 18BC MOVE.B 00H,(A4) ! Restore in izklop pogona 0000 7040 MOVEQ 40H,D0 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFAH FFFA 1014 MOVE.B (A4),D0 0200 ANDI.B 21H,D0 0021 66F8 BNE F8H 13FC MOVE.B 00H,(00084001H) ! Izklop 0000 0008 4001 46DF MOVE (A7)+,SR ! Povratek SR 2B5F MOVE.L (A7)+,0070H(A5) ! Povratek AV4 0070 4E5E UNLK A6 4E75 RTS *** Urejevalnik Teksta - Editor 63 stolpcev *** 0C00 CMPI.B 45H,D0 ! Ukaz E: Screen Text Editor 63 Column 0045 6600 BNE 03EEH 03EE 701B MOVEQ 1BH,D0 ! Nastavi izpis 64 znakov 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 0C10 CMPI.B 30H,(A0) ! Je ime pravilno? 0030 6406 BCC 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2248 MOVEA.L A0,A1 ! Je koncnica .EXE? D3FC ADDA.L 0000000CH,A1 0000 000C 0C19 CMPI.B 45H,(A1)+ 0045 6618 BNE 18H 0C19 CMPI.B 58H,(A1)+ 0058 6612 BNE 12H 0C19 CMPI.B 45H,(A1)+ 0045 660C BNE 0CH 133C MOVE.B 43H,-(A1) ! Postavi koncnico SRC 0043 133C MOVE.B 52H,-(A1) 0052 133C MOVE.B 53H,-(A1) 0053 4E49 TRAP9 ! Poisci stari zapis v RAMu 2448 MOVEA.L A0,A2 2649 MOVEA.L A1,A3 2200 MOVE.L D0,D1 D1FC ADDA.L 0000000FH,A0 ! Neobstojeci naslov 0000 000F 4E49 TRAP9 ! Iskanje praznine v RAMu 4A81 TST.L D1 6A12 BPL 12H ! Obstaja stari zapis >>---> 12FC MOVE.B AAH,(A1)+ ! Novo ime 00AA 700E MOVEQ 0EH,D0 12DA MOVE.B (A2)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 4299 CLR.L (A1)+ 4211 CLR.B (A1) 6032 BRA 32H 97FC SUBA.L 00000014H,A3 ! Prepisovanje starega <---<< 0000 0014 700F MOVEQ 0FH,D0 ! Prepisovanje imena in koncnice 12DB MOVE.B (A3)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 204B MOVEA.L A3,A0 22DB MOVE.L (A3)+,(A1)+ ! Prepisovanje dolzine 2449 MOVEA.L A1,A2 6004 BRA 04H 4841 SWAP D1 14DB MOVE.B (A3)+,(A2)+ ! Prepisovanje vsebine 51C9 DBF D1,FFFCH FFFC 4841 SWAP D1 51C9 DBF D1,FFF4H FFF4 4212 CLR.B (A2) 113C MOVE.B 4BH,-(A0) ! Preimenovanje stare verzije v .BAK 004B 113C MOVE.B 41H,-(A0) 0041 113C MOVE.B 42H,-(A0) 0042 6008 BRA 08H 0000 ( Offset A0 = Zacetek ekrana v tekstu ) 0000 0000 ( Offset A2 = Kurzor v tesktu ) 0000 4BFA LEA FFF6H(PC),A5 FFF6 4CDD MOVEM.L (A5)+,A0,A2 ! Ekran (A0) in kurzor (A2) <---<< 0500 D1C9 ADDA.L A1,A0 D5C9 ADDA.L A1,A2 2F0D MOVE.L A5,-(A7) 4E56 LINK A6,FF80H ! Prostor za obdelavo vrstice FF80 2669 MOVEA.L FFFCH(A1),A3 ! A3 = Konec teksta FFFC D7C9 ADDA.L A1,A3 7EFF MOVEQ FFH,D7 ! D7 = Kontrolna maska 700C MOVEQ 0CH,D0 ! Brisanje ekrana 4E40 TRAP0 B7C8 CMPA.L A0,A3 ! Kontrola konca 6402 BCC 02H 2049 MOVEA.L A1,A0 B1C9 CMPA.L A1,A0 ! Kontrola zacetka 6402 BCC 02H 2049 MOVEA.L A1,A0 B3C8 CMPA.L A0,A1 ! Kontrola zacetka prve vrstice 6408 BCC 08H 0C20 CMPI.B 0DH,-(A0) 000D 66F6 BNE F6H 5488 ADDQ.L 02H,A0 2848 MOVEA.L A0,A4 ! A4 = Kurzor risanja ekrana 220A MOVE.L A2,D1 ! Zacasno kurzor v D1 2448 MOVEA.L A0,A2 7400 MOVEQ 00H,D2 ! D2 = Stevilka vrstice kurzorja 7600 MOVEQ 00H,D3 ! D3 = Kurzor v vrstici 7800 MOVEQ 00H,D4 ! D4 = Stevilka vrstice 7A00 MOVEQ 00H,D5 ! D5 = Stevilo crk v vrstici <---<< B9C1 CMPA.L D1,A4 ! Isce kurzor <---<< 6606 BNE 06H 2441 MOVEA.L D1,A2 1404 MOVE.B D4,D2 1605 MOVE.B D5,D3 B9CB CMPA.L A3,A4 ! Konec teksta na ekranu? 6458 BCC 58H 101C MOVE.B (A4)+,D0 ! Znak v D0 5205 ADDQ.B 01H,D5 0C00 CMPI.B 0DH,D0 ! ? 000D 6732 BEQ 32H 0C05 CMPI.B 40H,D5 ! Prevec znakov v vrstici? 0040 6444 BCC 44H 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 6504 BCS 04H 4E40 TRAP0 60D8 BRA D8H ! Nov znak >>---> 1C00 MOVE.B D0,D6 701B MOVEQ 1BH,D0 4E40 TRAP0 7018 MOVEQ 18H,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 7040 MOVEQ 40H,D0 D006 ADD.B D6,D0 4E40 TRAP0 701B MOVEQ 1BH,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 60B6 BRA B6H ! Nov znak >>---> 4E40 TRAP0 0C04 CMPI.B 1FH,D4 ! Konec ekrana? 001F 6414 BCC 14H 101C MOVE.B (A4)+,D0 0C00 CMPI.B 0AH,D0 ! ? 000A 6606 BNE 06H ! Nepravilno zakljucena vrstica? 5204 ADDQ.B 01H,D4 4E40 TRAP0 609E BRA 9EH ! Nova vrstica >>---> 538C SUBQ.L 01H,A4 538C SUBQ.L 01H,A4 ! Popravi dolzino teksta <---<< 264C MOVEA.L A4,A3 9802 SUB.B D2,D4 ! <---<< Konec teksta na ekranu 4884 EXT.W D4 700B MOVEQ 0BH,D0 ! Nastavi kurzor na vrstico 6002 BRA 02H 4E40 TRAP0 51CC DBF D4,FFFCH FFFC 284A MOVEA.L A2,A4 ! A4 = Zacetek vrstice B3CC CMPA.L A4,A1 6408 BCC 08H 0C24 CMPI.B 0DH,-(A4) 000D 66F6 BNE F6H 548C ADDQ.L 02H,A4 2A4A MOVEA.L A2,A5 ! A5 = Konec vrstice BBCB CMPA.L A3,A5 6408 BCC 08H 0C1D CMPI.B 0DH,(A5)+ 000D 66F6 BNE F6H 538D SUBQ.L 01H,A5 244C MOVEA.L A4,A2 ! Prepisovanje vrstice v zacasni spomin 2C0E MOVE.L A6,D6 7A00 MOVEQ 00H,D5 ! D5 = Stevilo znakov v vrstici B5CD CMPA.L A5,A2 6406 BCC 06H 1D1A MOVE.B (A2)+,-(A6) 5205 ADDQ.B 01H,D5 60F6 BRA F6H 1D3C MOVE.B 20H,-(A6) 0020 5205 ADDQ.B 01H,D5 0C05 CMPI.B 80H,D5 0080 66F4 BNE F4 2C46 MOVEA.L D6,A6 700D MOVEQ 0DH,D0 ! Izpis vrstice <---<< 4E40 TRAP0 7A00 MOVEQ 00H,D0 244E MOVEA.L A6,A2 1022 MOVE.B -(A2),D0 <---<< 0C00 CMPI.B 20H,D0 0020 6504 BCS 04H 4E40 TRAP0 6020 BRA 20H 1C00 MOVE.B D0,D6 701B MOVEQ 1BH,D0 4E40 TRAP0 7018 MOVEQ 18H,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 7040 MOVEQ 40H,D0 D006 ADD.B D6,D0 4E40 TRAP0 701B MOVEQ 1BH,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 5205 ADDQ.B 01H,D5 0C05 CMPI.B 3FH,D5 003F 66CC BNE CCH 9A03 SUB.B D3,D5 ! Nastavi kurzor na ekranu 4885 EXT.W D5 7008 MOVEQ 08H,D0 6002 BRA 02H 4E40 TRAP0 51CD DBF D5,FFFCH FFFC 4E42 TRAP2 ! Znak s tastature v D0 0C00 CMPI.B 7FH,D0 ! Delete? 007F 6620 BNE 20H 0C03 CMPI.B 00H,D3 0000 67A8 BEQ A8H 244E MOVEA.L A6,A2 1203 MOVE.B D3,D1 5303 SUBQ.B 01H,D3 4881 EXT.W D1 94C1 SUBA.W D1,A2 1022 MOVE.B -(A2),D0 1540 MOVE.B D0,0001H(A2) 0001 5201 ADDQ.B 01H,D1 0C01 CMPI.B 80H,D1 0080 66F2 BNE F2H 608E BRA 8EH 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 6524 BCS 24H 0C03 CMPI.B 3FH,D3 ! Kurzor na koncu vrstice? 003F 64F2 BCC F2H C007 AND.B D7,D0 ! Pretvorba v kontrolne znake 7EFF MOVEQ FFH,D7 244E MOVEA.L A6,A2 1203 MOVE.B D3,D1 5203 ADDQ.B 01H,D3 ! Kurzor naprej 4881 EXT.W D1 94C1 SUBA.W D1,A2 1422 MOVE.B -(A2),D2 1480 MOVE.B D0,(A2) 1002 MOVE.B D2,D0 5201 ADDQ.B 01H,D1 0C01 CMPI.B 7FH,D1 007F 66F2 BNE F2H 60D4 BRA D4H 0C00 CMPI.B 08H,D0 ! ? 0008 660A BNE 0AH 0C03 CMPI.B 00H,D3 0000 67F2 BEQ F2H 5303 SUBQ.B 01H,D3 60EE BRA EEH 0C00 CMPI.B 09H,D0 ! ? 0009 660A BNE 0AH 0C03 CMPI.B 3FH,D3 003F 67F2 BEQ F2 5203 ADDQ.B 01H,D3 60EE BRA EEH 0C00 CMPI.B 0EH,D0 ! <^N>? 000E 661C BNE 1CH 0C03 CMPI.B 3FH,D3 003F 64F2 BCC F2H 244E MOVEA.L A6,A2 1203 MOVE.B D3,D1 5203 ADDQ.B 01H,D3 4881 EXT.W D1 94C1 SUBA.W D1,A2 0C22 CMPI.B 40H,-(A2) 0040 6504 BCS 04H 0A12 EORI.B 20H,(A2) 0020 60DC BRA DCH 0C00 CMPI.B 0FH,D0 ! <^O>? 000F 6604 BNE 04H 7E1F MOVEQ 1FH,D7 60F4 BRA F4H 244E MOVEA.L A6,A2 ! Vstavljanje vrstice v tekst 723F MOVEQ 3FH,D1 ! D1 = Dolzina vrstice 94C1 SUBA.W D1,A2 0C1A CMPI.B 20H,(A2)+ 0020 6608 BNE 08H 5341 SUBQ.W 01H,D1 0C01 CMPI.B 00H,D1 0000 66F2 BNE F2H 244C MOVEA.L A4,A2 D4C1 ADDA.W D1,A2 ! A2 = Novi konec vrstice 240B MOVE.L A3,D2 948D SUB.L A5,D2 ! D2 = Dolzina ostanka BBCA CMPA.L A2,A5 672A BEQ 2AH 641C BCC 1CH D5C2 ADDA.L D2,A2 ! Prepisovanje navzgor 2A4B MOVEA.L A3,A5 264A MOVEA.L A2,A3 ! A3 = Novi konec teksta 6004 BRA 04H 4842 SWAP D2 1525 MOVE.B -(A5),-(A2) 51CA DBF D2,FFFCH FFFC 4842 SWAP D2 51CA DBF D2,FFF4H FFF4 6010 BRA 10H 4842 SWAP D2 ! Prepisovanje navzdol 14DD MOVE.B (A5)+,(A2)+ 51CA DBF D2,FFFCH FFFC 4842 SWAP D2 51CA DBF D2,FFF4H FFF4 264A MOVEA.L A2,A3 ! A3 = Novi konec teksta 2A4C MOVEA.L A4,A5 ! Prepisovanje nove vrstice 244E MOVEA.L A6,A2 1401 MOVE.B D1,D2 0C02 CMPI.B 00H,D2 0000 6706 BEQ 06H 1AE2 MOVE.B -(A2),(A5)+ 5302 SUBQ.B 01H,D2 60F4 BRA F4H B203 CMP.B D3,D1 ! Izracun novega kurzorja v tekstu v A2 6402 BCC 02H 1601 MOVE.B D1,D3 244C MOVEA.L A4,A2 4883 EXT.W D3 D4C3 ADDA.W D3,A2 0C00 CMPI.B 01H,D0 ! <^A>? 0001 6604 BNE 04H 7201 MOVEQ 01H,D1 6012 BRA 12H 0C00 CMPI.B 04H,D0 ! <^D>? 0004 6604 BNE 04H 7208 MOVEQ 08H,D1 6008 BRA 08H 0C00 CMPI.B 06H,D0 ! <^F>? 0006 6614 BNE 14H 7220 MOVEQ 20H,D1 B3C8 CMPA.L A0,A1 640C BCC 0CH 0C20 CMPI.B 0DH,-(A0) 000D 66F6 BNE F6H 51C9 DBF D1,FFF4H FFF4 5488 ADDQ.L 02H,A0 602C BRA 2CH ! Konec >>---> 0C00 CMPI.B 02H,D0 ! <^B>? 0002 6604 BNE 04H 7200 MOVEQ 00H,D1 6012 BRA 12H 0C00 CMPI.B 05H,D0 ! <^E>? 0005 6604 BNE 04H 7207 MOVEQ 07H,D1 6008 BRA 08H 0C00 CMPI.B 07H,D0 ! <^G>? 0007 6614 BNE 14H 721F MOVEQ 1FH,D1 B1CB CMPA.L A3,A0 640C BCC 0CH 0C18 CMPI.B 0DH,(A0)+ 000D 66F6 BNE F6H 51C9 DBF D1,FFF4H FFF4 5288 ADDQ.L 01H,A0 6012 BRA 12H ! Konec >>---> 0C00 CMPI.B 0AH,D0 ! ? 000A 660E BNE 0EH B5CB CMPA.L A3,A2 6408 BCC 08H 0C1A CMPI.B 0DH,(A2)+ 000D 66F6 BNE F6H 528A ADDQ.L 01H,A2 6018 BRA 18H ! Konec >>---> 0C00 CMPI.B 0BH,D0 ! ? 000B 6614 BNE 14H 7201 MOVEQ 01H,D1 B3CA CMPA.L A2,A1 640C BCC 0CH 0C22 CMPI.B 0DH,-(A2) 000D 66F6 BNE F6H 51C9 DBF D1,FFF4H FFF4 548A ADDQ.L 02H,A2 6044 BRA 44H ! Konec >>---> 0C00 CMPI.B 0DH,D0 ! ? 000D 661C BNE 1CH 1212 MOVE.B (A2),D1 14C0 MOVE.B D0,(A2)+ 1412 MOVE.B (A2),D2 700A MOVEQ 0AH,D0 14C0 MOVES.B D0,(A2)+ 2A4A MOVEA.L A2,A5 548B ADDQ.L 02H,A3 BBCB CMPA.L A3,A5 642C BCC 2CH ! Konec >>---> 1001 MOVE.B D1,D0 1202 MOVE.B D2,D1 1415 MOVE.B (A5),D2 1AC0 MOVE.B D0,(A5)+ 60F2 BRA F2H 0C00 CMPI.B 00H,D0 ! <^@>? 0000 661E BNE 1EH 2A4C MOVEA.L A4,A5 BBCB CMPA.L A3,A5 6408 BCC 08H 0C1D CMPI.B 0DH,(A5)+ 000D 66F6 BNE F6H 528D ADDQ.L 01H,A5 244C MOVEA.L A4,A2 BBCB CMPA.L A3,A5 6404 BCC 04H 14DD MOVE.B (A5)+,(A2)+ 60F8 BRA F8H 264A MOVEA.L A2,A3 244C MOVEA.L A4,A2 7000 MOVEQ 00H,D0 ! Konec <---<< 220B MOVE.L A3,D1 ! Korekcija lihega naslova - Izhod <---<< 0281 ANDI.L 00000001H,D1 0000 0001 670C BEQ 0CH 0C23 CMPI.B 20H,-(A3) 0020 6706 BEQ 06H 528B ADDQ.L 01H,A3 16FC MOVE.B 20H,(A3)+ 0020 4213 CLR.B (A3) ! Pobrisi konec 97C9 SUBA.L A1,A3 234B MOVE.L A3,FFFCH(A1) ! Resi dolzino FFFC 4E5E UNLK A6 2A5F MOVEA.L (A7)+,A5 ! Ekran (A0) in kurzor (A2) 95C9 SUBA.L A1,A2 91C9 SUBA.L A1,A0 48E5 MOVEM A2,A0,-(A5) 00A0 4A00 TST.B D0 ! Izhod iz urejevalnika? 6700 BEQ FCC4H ! Obnova >>---> FCC4 1200 MOVE.B D0,D1 ! Brisanje ekrana 700C MOVEQ 0CH,D0 4E40 TRAP0 1001 MOVE.B D1,D0 4E75 RTS *** Urejevalnik Teksta - Editor 84 stolpcev *** 0C00 CMPI.B 59H,D0 ! Ukaz Y: Screen Text Editor 84 Column 0059 6600 BNE 03EEH 03EE 701B MOVEQ 1BH,D0 ! Nastavi izpis 85 znakov 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 0C10 CMPI.B 30H,(A0) ! Je ime pravilno? 0030 6406 BCC 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2248 MOVEA.L A0,A1 ! Je koncnica .EXE? D3FC ADDA.L 0000000CH,A1 0000 000C 0C19 CMPI.B 45H,(A1)+ 0045 6618 BNE 18H 0C19 CMPI.B 58H,(A1)+ 0058 6612 BNE 12H 0C19 CMPI.B 45H,(A1)+ 0045 660C BNE 0CH 133C MOVE.B 43H,-(A1) ! Postavi koncnico SRC 0043 133C MOVE.B 52H,-(A1) 0052 133C MOVE.B 53H,-(A1) 0053 4E49 TRAP9 ! Poisci stari zapis v RAMu 2448 MOVEA.L A0,A2 2649 MOVEA.L A1,A3 2200 MOVE.L D0,D1 D1FC ADDA.L 0000000FH,A0 ! Neobstojeci naslov 0000 000F 4E49 TRAP9 ! Iskanje praznine v RAMu 4A81 TST.L D1 6A12 BPL 12H ! Obstaja stari zapis >>---> 12FC MOVE.B AAH,(A1)+ ! Novo ime 00AA 700E MOVEQ 0EH,D0 12DA MOVE.B (A2)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 4299 CLR.L (A1)+ 4211 CLR.B (A1) 6032 BRA 32H 97FC SUBA.L 00000014H,A3 ! Prepisovanje starega <---<< 0000 0014 700F MOVEQ 0FH,D0 ! Prepisovanje imena in koncnice 12DB MOVE.B (A3)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 204B MOVEA.L A3,A0 22DB MOVE.L (A3)+,(A1)+ ! Prepisovanje dolzine 2449 MOVEA.L A1,A2 6004 BRA 04H 4841 SWAP D1 14DB MOVE.B (A3)+,(A2)+ ! Prepisovanje vsebine 51C9 DBF D1,FFFCH FFFC 4841 SWAP D1 51C9 DBF D1,FFF4H FFF4 4212 CLR.B (A2) 113C MOVE.B 4BH,-(A0) ! Preimenovanje stare verzije v .BAK 004B 113C MOVE.B 41H,-(A0) 0041 113C MOVE.B 42H,-(A0) 0042 6008 BRA 08H 0000 ( Offset A0 = Zacetek ekrana v tekstu ) 0000 0000 ( Offset A2 = Kurzor v tesktu ) 0000 4BFA LEA FFF6H(PC),A5 FFF6 4CDD MOVEM.L (A5)+,A0,A2 ! Ekran (A0) in kurzor (A2) <---<< 0500 D1C9 ADDA.L A1,A0 D5C9 ADDA.L A1,A2 2F0D MOVE.L A5,-(A7) 4E56 LINK A6,FF52H ! Prostor za obdelavo vrstice FF52 2669 MOVEA.L FFFCH(A1),A3 ! A3 = Konec teksta FFFC D7C9 ADDA.L A1,A3 7EFF MOVEQ FFH,D7 ! D7 = Kontrolna maska 700C MOVEQ 0CH,D0 ! Brisanje ekrana 4E40 TRAP0 B7C8 CMPA.L A0,A3 ! Kontrola konca 6402 BCC 02H 2049 MOVEA.L A1,A0 B1C9 CMPA.L A1,A0 ! Kontrola zacetka 6402 BCC 02H 2049 MOVEA.L A1,A0 B3C8 CMPA.L A0,A1 ! Kontrola zacetka prve vrstice 6408 BCC 08H 0C20 CMPI.B 0DH,-(A0) 000D 66F6 BNE F6H 5488 ADDQ.L 02H,A0 2848 MOVEA.L A0,A4 ! A4 = Kurzor risanja ekrana 220A MOVE.L A2,D1 ! Zacasno kurzor v D1 2448 MOVEA.L A0,A2 7400 MOVEQ 00H,D2 ! D2 = Stevilka vrstice kurzorja 7600 MOVEQ 00H,D3 ! D3 = Kurzor v vrstici 7800 MOVEQ 00H,D4 ! D4 = Stevilka vrstice 7A00 MOVEQ 00H,D5 ! D5 = Stevilo crk v vrstici <---<< B9C1 CMPA.L D1,A4 ! Isce kurzor <---<< 6606 BNE 06H 2441 MOVEA.L D1,A2 1404 MOVE.B D4,D2 1605 MOVE.B D5,D3 B9CB CMPA.L A3,A4 ! Konec teksta na ekranu? 6458 BCC 58H 101C MOVE.B (A4)+,D0 ! Znak v D0 5205 ADDQ.B 01H,D5 0C00 CMPI.B 0DH,D0 ! ? 000D 6732 BEQ 32H 0C05 CMPI.B 55H,D5 ! Prevec znakov v vrstici? 0055 6444 BCC 44H 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 6504 BCS 04H 4E40 TRAP0 60D8 BRA D8H ! Nov znak >>---> 1C00 MOVE.B D0,D6 701B MOVEQ 1BH,D0 4E40 TRAP0 7038 MOVEQ 38H,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 7040 MOVEQ 40H,D0 D006 ADD.B D6,D0 4E40 TRAP0 701B MOVEQ 1BH,D0 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 60B6 BRA B6H ! Nov znak >>---> 4E40 TRAP0 0C04 CMPI.B 1FH,D4 ! Konec ekrana? 001F 6414 BCC 14H 101C MOVE.B (A4)+,D0 0C00 CMPI.B 0AH,D0 ! ? 000A 6606 BNE 06H ! Nepravilno zakljucena vrstica? 5204 ADDQ.B 01H,D4 4E40 TRAP0 609E BRA 9EH ! Nova vrstica >>---> 538C SUBQ.L 01H,A4 538C SUBQ.L 01H,A4 ! Popravi dolzino teksta <---<< 264C MOVEA.L A4,A3 9802 SUB.B D2,D4 ! <---<< Konec teksta na ekranu 4884 EXT.W D4 700B MOVEQ 0BH,D0 ! Nastavi kurzor na vrstico 6002 BRA 02H 4E40 TRAP0 51CC DBF D4,FFFCH FFFC 284A MOVEA.L A2,A4 ! A4 = Zacetek vrstice B3CC CMPA.L A4,A1 6408 BCC 08H 0C24 CMPI.B 0DH,-(A4) 000D 66F6 BNE F6H 548C ADDQ.L 02H,A4 2A4A MOVEA.L A2,A5 ! A5 = Konec vrstice BBCB CMPA.L A3,A5 6408 BCC 08H 0C1D CMPI.B 0DH,(A5)+ 000D 66F6 BNE F6H 538D SUBQ.L 01H,A5 244C MOVEA.L A4,A2 ! Prepisovanje vrstice v zacasni spomin 2C0E MOVE.L A6,D6 7A00 MOVEQ 00H,D5 ! D5 = Stevilo znakov v vrstici B5CD CMPA.L A5,A2 6406 BCC 06H 1D1A MOVE.B (A2)+,-(A6) 5205 ADDQ.B 01H,D5 60F6 BRA F6H 1D3C MOVE.B 20H,-(A6) 0020 5205 ADDQ.B 01H,D5 0C05 CMPI.B AAH,D5 00AA 66F4 BNE F4 2C46 MOVEA.L D6,A6 700D MOVEQ 0DH,D0 ! Izpis vrstice <---<< 4E40 TRAP0 7A00 MOVEQ 00H,D0 244E MOVEA.L A6,A2 1022 MOVE.B -(A2),D0 <---<< 0C00 CMPI.B 20H,D0 0020 6504 BCS 04H 4E40 TRAP0 6020 BRA 20H 1C00 MOVE.B D0,D6 701B MOVEQ 1BH,D0 4E40 TRAP0 7038 MOVEQ 38H,D0 4E40 TRAP0 7000 MOVEQ 00H,D0 4E40 TRAP0 7040 MOVEQ 40H,D0 D006 ADD.B D6,D0 4E40 TRAP0 701B MOVEQ 1BH,D0 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 701F MOVEQ 1FH,D0 4E40 TRAP0 5205 ADDQ.B 01H,D5 0C05 CMPI.B 54H,D5 0054 66CC BNE CCH 9A03 SUB.B D3,D5 ! Nastavi kurzor na ekranu 4885 EXT.W D5 7008 MOVEQ 08H,D0 6002 BRA 02H 4E40 TRAP0 51CD DBF D5,FFFCH FFFC 4E42 TRAP2 ! Znak s tastature v D0 0C00 CMPI.B 7FH,D0 ! Delete? 007F 6620 BNE 20H 0C03 CMPI.B 00H,D3 0000 67A8 BEQ A8H 244E MOVEA.L A6,A2 1203 MOVE.B D3,D1 5303 SUBQ.B 01H,D3 4881 EXT.W D1 94C1 SUBA.W D1,A2 1022 MOVE.B -(A2),D0 1540 MOVE.B D0,0001H(A2) 0001 5201 ADDQ.B 01H,D1 0C01 CMPI.B AAH,D1 00AA 66F2 BNE F2H 608E BRA 8EH 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 6524 BCS 24H 0C03 CMPI.B 54H,D3 ! Kurzor na koncu vrstice? 0054 64F2 BCC F2H C007 AND.B D7,D0 ! Pretvorba v kontrolne znake 7EFF MOVEQ FFH,D7 244E MOVEA.L A6,A2 1203 MOVE.B D3,D1 5203 ADDQ.B 01H,D3 ! Kurzor naprej 4881 EXT.W D1 94C1 SUBA.W D1,A2 1422 MOVE.B -(A2),D2 1480 MOVE.B D0,(A2) 1002 MOVE.B D2,D0 5201 ADDQ.B 01H,D1 0C01 CMPI.B A9H,D1 00A9 66F2 BNE F2H 60D4 BRA D4H 0C00 CMPI.B 08H,D0 ! ? 0008 660A BNE 0AH 0C03 CMPI.B 00H,D3 0000 67F2 BEQ F2H 5303 SUBQ.B 01H,D3 60EE BRA EEH 0C00 CMPI.B 09H,D0 ! ? 0009 660A BNE 0AH 0C03 CMPI.B 54H,D3 0054 67F2 BEQ F2 5203 ADDQ.B 01H,D3 60EE BRA EEH 0C00 CMPI.B 0EH,D0 ! <^N>? 000E 661C BNE 1CH 0C03 CMPI.B 54H,D3 0054 64F2 BCC F2H 244E MOVEA.L A6,A2 1203 MOVE.B D3,D1 5203 ADDQ.B 01H,D3 4881 EXT.W D1 94C1 SUBA.W D1,A2 0C22 CMPI.B 40H,-(A2) 0040 6504 BCS 04H 0A12 EORI.B 20H,(A2) 0020 60DC BRA DCH 0C00 CMPI.B 0FH,D0 ! <^O>? 000F 6604 BNE 04H 7E1F MOVEQ 1FH,D7 60F4 BRA F4H 244E MOVEA.L A6,A2 ! Vstavljanje vrstice v tekst 7254 MOVEQ 54H,D1 ! D1 = Dolzina vrstice 94C1 SUBA.W D1,A2 0C1A CMPI.B 20H,(A2)+ 0020 6608 BNE 08H 5341 SUBQ.W 01H,D1 0C01 CMPI.B 00H,D1 0000 66F2 BNE F2H 244C MOVEA.L A4,A2 D4C1 ADDA.W D1,A2 ! A2 = Novi konec vrstice 240B MOVE.L A3,D2 948D SUB.L A5,D2 ! D2 = Dolzina ostanka BBCA CMPA.L A2,A5 672A BEQ 2AH 641C BCC 1CH D5C2 ADDA.L D2,A2 ! Prepisovanje navzgor 2A4B MOVEA.L A3,A5 264A MOVEA.L A2,A3 ! A3 = Novi konec teksta 6004 BRA 04H 4842 SWAP D2 1525 MOVE.B -(A5),-(A2) 51CA DBF D2,FFFCH FFFC 4842 SWAP D2 51CA DBF D2,FFF4H FFF4 6010 BRA 10H 4842 SWAP D2 ! Prepisovanje navzdol 14DD MOVE.B (A5)+,(A2)+ 51CA DBF D2,FFFCH FFFC 4842 SWAP D2 51CA DBF D2,FFF4H FFF4 264A MOVEA.L A2,A3 ! A3 = Novi konec teksta 2A4C MOVEA.L A4,A5 ! Prepisovanje nove vrstice 244E MOVEA.L A6,A2 1401 MOVE.B D1,D2 0C02 CMPI.B 00H,D2 0000 6706 BEQ 06H 1AE2 MOVE.B -(A2),(A5)+ 5302 SUBQ.B 01H,D2 60F4 BRA F4H B203 CMP.B D3,D1 ! Izracun novega kurzorja v tekstu v A2 6402 BCC 02H 1601 MOVE.B D1,D3 244C MOVEA.L A4,A2 4883 EXT.W D3 D4C3 ADDA.W D3,A2 0C00 CMPI.B 01H,D0 ! <^A>? 0001 6604 BNE 04H 7201 MOVEQ 01H,D1 6012 BRA 12H 0C00 CMPI.B 04H,D0 ! <^D>? 0004 6604 BNE 04H 7208 MOVEQ 08H,D1 6008 BRA 08H 0C00 CMPI.B 06H,D0 ! <^F>? 0006 6614 BNE 14H 7220 MOVEQ 20H,D1 B3C8 CMPA.L A0,A1 640C BCC 0CH 0C20 CMPI.B 0DH,-(A0) 000D 66F6 BNE F6H 51C9 DBF D1,FFF4H FFF4 5488 ADDQ.L 02H,A0 602C BRA 2CH ! Konec >>---> 0C00 CMPI.B 02H,D0 ! <^B>? 0002 6604 BNE 04H 7200 MOVEQ 00H,D1 6012 BRA 12H 0C00 CMPI.B 05H,D0 ! <^E>? 0005 6604 BNE 04H 7207 MOVEQ 07H,D1 6008 BRA 08H 0C00 CMPI.B 07H,D0 ! <^G>? 0007 6614 BNE 14H 721F MOVEQ 1FH,D1 B1CB CMPA.L A3,A0 640C BCC 0CH 0C18 CMPI.B 0DH,(A0)+ 000D 66F6 BNE F6H 51C9 DBF D1,FFF4H FFF4 5288 ADDQ.L 01H,A0 6012 BRA 12H ! Konec >>---> 0C00 CMPI.B 0AH,D0 ! ? 000A 660E BNE 0EH B5CB CMPA.L A3,A2 6408 BCC 08H 0C1A CMPI.B 0DH,(A2)+ 000D 66F6 BNE F6H 528A ADDQ.L 01H,A2 6018 BRA 18H ! Konec >>---> 0C00 CMPI.B 0BH,D0 ! ? 000B 6614 BNE 14H 7201 MOVEQ 01H,D1 B3CA CMPA.L A2,A1 640C BCC 0CH 0C22 CMPI.B 0DH,-(A2) 000D 66F6 BNE F6H 51C9 DBF D1,FFF4H FFF4 548A ADDQ.L 02H,A2 6044 BRA 44H ! Konec >>---> 0C00 CMPI.B 0DH,D0 ! ? 000D 661C BNE 1CH 1212 MOVE.B (A2),D1 14C0 MOVE.B D0,(A2)+ 1412 MOVE.B (A2),D2 700A MOVEQ 0AH,D0 14C0 MOVES.B D0,(A2)+ 2A4A MOVEA.L A2,A5 548B ADDQ.L 02H,A3 BBCB CMPA.L A3,A5 642C BCC 2CH ! Konec >>---> 1001 MOVE.B D1,D0 1202 MOVE.B D2,D1 1415 MOVE.B (A5),D2 1AC0 MOVE.B D0,(A5)+ 60F2 BRA F2H 0C00 CMPI.B 00H,D0 ! <^@>? 0000 661E BNE 1EH 2A4C MOVEA.L A4,A5 BBCB CMPA.L A3,A5 6408 BCC 08H 0C1D CMPI.B 0DH,(A5)+ 000D 66F6 BNE F6H 528D ADDQ.L 01H,A5 244C MOVEA.L A4,A2 BBCB CMPA.L A3,A5 6404 BCC 04H 14DD MOVE.B (A5)+,(A2)+ 60F8 BRA F8H 264A MOVEA.L A2,A3 244C MOVEA.L A4,A2 7000 MOVEQ 00H,D0 ! Konec <---<< 220B MOVE.L A3,D1 ! Korekcija lihega naslova - Izhod <---<< 0281 ANDI.L 00000001H,D1 0000 0001 670C BEQ 0CH 0C23 CMPI.B 20H,-(A3) 0020 6706 BEQ 06H 528B ADDQ.L 01H,A3 16FC MOVE.B 20H,(A3)+ 0020 4213 CLR.B (A3) ! Pobrisi konec 97C9 SUBA.L A1,A3 234B MOVE.L A3,FFFCH(A1) ! Resi dolzino FFFC 4E5E UNLK A6 2A5F MOVEA.L (A7)+,A5 ! Ekran (A0) in kurzor (A2) 95C9 SUBA.L A1,A2 91C9 SUBA.L A1,A0 48E5 MOVEM A2,A0,-(A5) 00A0 4A00 TST.B D0 ! Izhod iz urejevalnika? 6700 BEQ FCC4H ! Obnova >>---> FCC4 1200 MOVE.B D0,D1 ! Brisanje ekrana 700C MOVEQ 0CH,D0 4E40 TRAP0 1001 MOVE.B D1,D0 4E75 RTS *** Sistemski ukazi *** 0C00 CMPI.B 52H,D0 ! Ukaz R: Run .EXE 0052 6624 BNE 24H 2248 MOVEA.L A0,A1 D3FC ADDA.L 0000000CH,A1 0000 000C 12FC MOVE.B 45H,(A1)+ ! Koncnica EXE 0045 12FC MOVE.B 58H,(A1)+ 0058 12FC MOVE.B 45H,(A1)+ 0045 4E49 TRAP9 ! Poisci zapis programa 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 4E91 JSR (A1) ! Poklici program 4E75 RTS 0C00 CMPI.B 58H,D0 ! Ukaz X: Execute .CMD File 0058 666A BNE 6AH 2248 MOVEA.L A0,A1 D3FC ADDA.L 0000000CH,A1 0000 000C 12FC MOVE.B 43H,(A1)+ ! Koncnica CMD 0043 12FC MOVE.B 4DH,(A1)+ 004D 12FC MOVE.B 44H,(A1)+ 0044 4E49 TRAP9 ! Poisci seznam ukazov 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2049 MOVEA.L A1,A0 ! A0 = Naslov kazalec D3C0 ADDA.L D0,A1 ! A1 = Koncni naslov 7200 MOVEQ 00H,D1 ! D1 = Stevec znakov 4E56 LINK A6,FFC0H FFC0 244E MOVEA.L A6,A2 ! A2 = Kazalec v ukazu B1C9 CMPA.L A1,A0 ! Konec zapisa ? <---<< 6504 BCS 04H 4E5E UNLK A6 4E75 RTS 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 6416 BCC 16H 0C00 CMPI.B 0DH,D0 ! ? 000D 66EA BNE EAH 1500 MOVE.B D0,-(A2) 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E48 TRAP8 ! Izvrsevanje ukaza 7200 MOVEQ 00H,D1 244E MOVEA.L A6,A2 60DA BRA DAH 0C00 CMPI.B 60H,D0 ! Mala crka? 0060 6504 BCS 04H 0400 SUBI.B 20H,D0 0020 0C01 CMPI.B 3EH,D1 ! Prevec crk? 003E 64CA BCC CAH 1500 MOVE.B D0,-(A2) 4E40 TRAP0 5201 ADDQ.B 01H,D1 60C2 BRA C2H 0C00 CMPI.B 42H,D0 ! Ukaz B: Autoexecute Command 0042 6654 BNE 54H 4E47 TRAP7 5088 ADDQ.L 08H,A0 ! A0 = Zacetni naslov 2248 MOVEA.L A0,A1 ! A1 = Kazalec 2448 MOVEA.L A0,A2 ! A2 = Koncni naslov D5FC ADDA.L 0000003DH,A2 0000 003D 703A MOVEQ 3AH,D0 4E40 TRAP0 4E42 TRAP2 ! Vhod znaka s tastature <---<< 0C00 CMPI.B 7FH,D0 007F 6614 BNE 14H B1C9 CMPA.L A1,A0 64F4 BCC F4H 5389 SUBQ.L 01H,A1 7008 MOVEQ 08H,D0 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 7008 MOVEQ 08H,D0 4E40 TRAP0 60E4 BRA E4H 0C00 CMPI.B 60H,D0 ! Male crke? 0060 6504 BCS 04H 0400 SUBI.B 20H,D0 0020 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 650A BCS 0AH B3CA CMPA.L A2,A1 64D0 BCC D0H 12C0 MOVE.B D0,(A1)+ 4E40 TRAP0 60CA BRA CAH 700D MOVEQ 0DH,D0 12C0 MOVE.B D0,(A1)+ 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 4E75 RTS 0C00 CMPI.B 4AH,D0 ! Ukaz J: Rename RAM File 004A 662E BNE 2EH 0C01 CMPI.B 02H,D1 0002 6706 BEQ 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 4E49 TRAP9 ! Poisci prvi zapis 4A80 TST.L D0 6BF4 BMI F4H 2449 MOVEA.L A1,A2 5088 ADDQ.L 08H,A0 5088 ADDQ.L 08H,A0 4E49 TRAP9 ! Drugo ime prosto? 4A80 TST.L D0 6AE8 BPL E8H 95FC SUBA.L 00000013H,A2 0000 0013 700E MOVEQ 0EH,D0 ! Prepisi novo ime 14D8 MOVE.B (A0)+,(A2)+ 51C8 DBF D0,FFFCH FFFC 4E75 RTS 0C00 CMPI.B 56H,D0 ! Ukaz V: Verify / Compare Two RAM Files 0056 666C BNE 6CH 4E49 TRAP9 ! Poisci prvi zapis 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2200 MOVE.L D0,D1 2449 MOVEA.L A1,A2 5088 ADDQ.L 08H,A0 5088 ADDQ.L 08H,A0 4E49 TRAP9 ! Poisci drugi zapis 4A80 TST.L D0 6BEC BMI ECH 9081 SUB.L D1,D0 ! Razlika v dolzini v D0 6404 BCC 04H D280 ADD.L D0,D1 4480 NEG.L D0 4E46 TRAP6 ! Izpisi razliko v dolzini 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 204A MOVEA.L A2,A0 2401 MOVE.L D1,D2 ! Primerjava zapisov 4842 SWAP D2 4280 CLR.L D0 ! Postavi Z bit 6002 BRA 02H B109 CMPM.B (A0)+,(A1)+ ! <---<< 56C9 DBNE D1,FFFCH FFFC 6728 BEQ 28H 2008 MOVE.L A0,D0 ! Izpis relativnega naslova 5380 SUBI.L 01H,D0 908A SUB.L A2,D0 4E46 TRAP6 703A MOVEQ 3AH,D0 4E40 TRAP0 1028 MOVE.B FFFFH(A0),D0 ! Izpis bajta prvega zapisa FFFF 4E46 TRAP6 705E MOVEQ 5EH,D0 4E40 TRAP0 1029 MOVE.B FFFFH(A1),D0 ! Izpis bajta drugega zapisa FFFF 4E46 TRAP6 700D MOVEQ 0DH,D0 4E40 TRAP0 700A MOVEQ 0AH,D0 4E40 TRAP0 51C9 DBF D1,FFD2H FFD2 51CA DBF D2,FFCEH FFCE 4E75 RTS *** PREVAJALNIK ZA VISJI JEZIK *** 0C00 CMPI.B 47H,D0 ! Ukaz G: Compile .SRC Into .EXE 0047 6600 BNE 1306H 1306 2448 MOVEA.L A0,A2 ! Postavi koncnico .SRC D5FC ADDA.L 0000000CH,A2 0000 000C 14FC MOVE.B 53H,(A2)+ 0053 14FC MOVE.B 52H,(A2)+ 0052 14FC MOVE.B 43H,(A2)+ 0043 4E49 TRAP9 ! Poisci izvorni program 4A80 TST.L D0 6A06 BPL 06H 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 2649 MOVE.L A1,A3 ! Koncni naslov izvora v A3 D7C0 ADDA.L D0,A3 2E09 MOVE.L A1,D7 ! Zacasno resi A1 v D7 153C MOVE.B 45H,-(A2) ! Postavi koncnico EXE 0045 153C MOVE.B 58H,-(A2) 0058 153C MOVE.B 45H,-(A2) 0045 4E49 TRAP9 ! Poisci stari .EXE zapis v RAMu 2448 MOVEA.L A0,A2 2849 MOVEA.L A1,A4 2200 MOVE.L D0,D1 D1FC ADDA.L 0000000FH,A0 ! Neobstojeci naslov 0000 000F 4E49 TRAP9 ! Iskanje praznine v RAMu 4A81 TST.L D1 6A12 BPL 12H ! Obstaja stari zapis >>---> 12FC MOVE.B AAH,(A1)+ ! Novo ime 00AA 700E MOVEQ 0EH,D0 12DA MOVE.B (A2)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 4299 CLR.L (A1)+ 4211 CLR.B (A1) 6032 BRA 32H 99FC SUBA.L 00000014H,A4 ! Prepisovanje starega <---<< 0000 0014 700F MOVEQ 0FH,D0 ! Prepisovanje imena in koncnice 12DC MOVE.B (A4)+,(A1)+ 51C8 DBF D0,FFFCH FFFC 204C MOVEA.L A4,A0 22DC MOVE.L (A4)+,(A1)+ ! Prepisovanje dolzine 2449 MOVEA.L A1,A2 6004 BRA 04H 4841 SWAP D1 14DC MOVE.B (A4)+,(A2)+ ! Prepisovanje vsebine 51C9 DBF D1,FFFCH FFFC 4841 SWAP D1 51C9 DBF D1,FFF4H FFF4 4211 CLR.B (A1) 113C MOVE.B 44H,-(A0) ! Preimenovanje stare verzije v .OLD 0044 113C MOVE.B 4CH,-(A0) 004C 113C MOVE.B 4FH,-(A0) 004F 2449 MOVEA.L A1,A2 ! Zacetni naslov prevoda 2247 MOVEA.L D7,A1 ! Zacetni naslov izvora 2F09 MOVE.L A1,-(A7) 2F0A MOVE.L A2,-(A7) 6112 BSR 12H ! >>---> 4212 CLR.B (A2) ! Zakljucitev z 00H 205F MOVEA.L (A7)+,A0 ! Izracun dolzine prevoda 95C8 SUBA.L A0,A2 210A MOVE.L A2,-(A0) 2009 MOVE.L A1,D0 ! Izracun mesta napake 909F SUB.L (A7)+,D0 6702 BEQ 02H 4E46 TRAP6 ! Izpis mesta napake 4E75 RTS 303C MOVE.W 001DH,D0 ! Prepisovanje glave programa <---<< 001D 49FA LEA 000EH(PC),A4 000E 34DC MOVE.W (A4)+,(A2)+ 51C8 DBF D0,FFFCH FFFC 284A MOVEA.L A2,A4 ! A4 = osnovni naslov v prevodu 6000 BRA 0A6EH ! Preskok glave programa in rac rutin >>---> 0A6E ##### GLAVA PROGRAMA - dolzine 003CH ##### -------------------------------------------------------- *** Inicializacija prevedenega programa *** 48E7 MOVEM.L A5,A4,A3,A2,A1,A0,D7,D6,D5,D4,D3,D2,D1,D0,-(A7) FFFC 4E56 LINK A6,FFC0H ! Vhodno podrocje = -(A6) FFC0 3A7C MOVEA.W FFFFH,A5 ! Inicializacija A5 FFFF 4E4A TRAP10 ! Osnovni naslov racunskih rutin v A5 6108 BSR 08H ! >>---> 4E5E UNLK A6 4CDF MOVEM.L (A7)+,D0,D1,D2,D3,D4,D5,D6,D7,A0,A1,A2,A3,A4,A5 3FFF 4E75 RTS 49FA LEA 0022H(PC),A4 ! Osnovni naslov tabel in prg. <---<< 0022 207A MOVE.L 000EH(PC),A0 000E D1FA ADDA.L 000EH(PC),A0 000E D1FA ADDA.L 000EH(PC),A0 000E 4EFB JMP 12H(PC,A0) ! Preskok spremenljivk in label 8812 FFFF ! FFF0H(A4) = Dolzina tabele indeksiranih spremenljivk FFFF FFFF ! FFF4H(A4) = Dolzina tabele navadnih spremenljivk FFFF FFFF ! FFF8H(A4) = Dolzina tabele label FFFF FFFF ! FFFCH(A4) = Dolzina cistega prevoda FFFF ##### Konec glave prevedenega programa ##### -------------------------------------------- *** Racunski podprogrami - skupaj 0A30H bajtov *** *** Racunske FP rutine - TRAP10>>(A5) (0000297EH>00037F7EH) *** *** Sestevanje - operand = (A4,A2) {offset 0000H} *** 2434 MOVE.L 00H(A4,A2),D2 ! Operand v D2,D3 A800 3634 MOVE.W 04H(A4,A2),D3 A804 *** Sestevanje - operand = D2,D3 {offset 0008H} *** 2A3C MOVE.L 80000000H,D5 8000 0000 6010 BRA 10H *** Odstevanje - operand = (A4,A2) {offset 0010H} *** 2434 MOVE.L 00H(A4,A2),D2 ! Operand v D2, D3 A800 3634 MOVE.W 04H(A4,A2),D3 A804 *** Odstevanje - operand = D2,D3 {offset 0018H} *** 2A3C MOVE.L 80000000H,D5 8000 0000 BB82 EOR.L D5,D2 3803 MOVE.W D3,D4 ! <---<< 6708 BEQ 08H ! Operand enak nic? 3801 MOVE.W D1,D4 6606 BNE 06H ! Akumulator enak nic? 2002 MOVE.L D2,D0 3203 MOVE.W D3,D1 4E75 RTS 9843 SUB.W D3,D4 ! Razlika eksponentov 6406 BCC 06H ! Vecje stevilo v akumulator C142 EXG D0,D2 C343 EXG D1,D3 4444 NEG.W D4 0C44 CMPI.W 0020H,D4 ! Prevelika razlika eksponentov? 0020 64EE BCC EEH 2C00 MOVE.L D0,D6 ! Locitev predznakov in mantis 8085 OR.L D5,D0 CC85 AND.L D5,D6 2602 MOVE.L D2,D3 8485 OR.L D5,D2 C685 AND.L D5,D3 E8AA LSR.L D4,D2 ! Poravna manjse stevilo BD83 EOR.L D6,D3 ! Sestevanje ali odstevanje mantis? 660A BNE 0AH D082 ADD.L D2,D0 ! Sestevanje mantis 6422 BCC 22H E290 ROXR.L 01H,D0 5241 ADDQ.W 01H,D1 601C BRA 1CH 9082 SUB.L D2,D0 ! Odstevanje mantis 6604 BNE 04H ! Rezultat enak nic? 7200 MOVEQ 00H,D1 4E75 RTS 6404 BCC 04H ! Sprememba predznaka? 4480 NEG.L D0 BB86 EOR.L D5,D6 5341 SUBQ.W 01H,D1 ! Poravna rezultat 2400 MOVE.L D0,D2 6002 BRA 02H E388 LSL.L 01H,D0 5BC9 DBMI D1,FFFCH FFFC 5241 ADDQ.W 01H,D1 BB80 EOR.L D5,D0 ! Sestavljanje predznaka in mantise 8086 OR.L D6,D0 4E75 RTS *** Mnozenje - operand = (A4,A2) {offset 007CH} *** 2434 MOVE.L 00H(A4,A2),D2 A800 3634 MOVE.L 04H(A4,A2),D3 A804 *** Mnozenje - operand = D2,D3 {offset 0084H} *** 7800 MOVEQ 00H,D4 3801 MOVE.W D1,D4 ! Akumulator nic? 6716 BEQ 16H 2204 MOVE.L D4,D1 3803 MOVE.W D3,D4 ! Operand nic? 670E BEQ 0EH D284 ADD.L D4,D1 ! Sestevanje eksponentov 0681 ADDI.L FFFF8001H,D1 FFFF 8001 4841 SWAP D1 3801 MOVE.W D1,D4 ! Eksponent v pravilnih mejah? 6704 BEQ 04H 7200 MOVEQ 00H,D1 4E75 RTS 4841 SWAP D1 263C MOVE.L 80000000H,D3 ! Locitev predznakov in mantis 8000 0000 2C00 MOVE.L D0,D6 8083 OR.L D3,D0 B586 EOR.L D2,D6 8483 OR.L D3,D2 CC83 AND.L D3,D6 2802 MOVE.L D2,D4 ! Mnozenje mantis 4844 SWAP D4 2A04 MOVE.L D4,D5 C8C0 MULU D0,D4 ! Operand.H * Akumulator.L = D4 4840 SWAP D0 CAC0 MULU D0,D5 ! Operand.H * Akumulator.H = D5 C0C2 MULU D2,D0 ! Operand.L * Akumulator.H = D0 D084 ADD.L D4,D0 E290 ROXR.L 01H,D0 0240 ANDI.W 8000H,D0 8000 4840 SWAP D0 E398 ROL.L 01H,D0 D085 ADD.L D5,D0 6B04 BMI 04H ! Poravna rezultat E388 LSL.L 01H,D0 5341 SUBQ.W 01H,D1 B780 EOR.L D3,D0 ! Sestavljanje predznaka in mantise 8086 OR.L D6,D0 4E75 RTS *** Deljenje - operand = (A4,A2) {offset 00DC} *** 2434 MOVE.L 00H(A4,A2),D2 A800 3634 MOVE.W 04H(A4,A2),D3 A804 *** Deljenje - operand = D2,D3 {offset 00E4} *** 7800 MOVEQ 00H,D4 3801 MOVE.W D1,D4 ! Akumulator nic? 6716 BEQ 16H 2204 MOVE.L D4,D1 3803 MOVE.W D3,D4 ! Operand nic? 670E BEQ 0EH 9284 SUB.L D4,D1 ! Odstevanje eksponentov 0681 ADDI.L 00007FFFH,D1 0000 7FFF 4841 SWAP D1 3801 MOVE.W D1,D4 ! Eksponent v pravilnih mejah? 6704 BEQ 04H 7200 MOVEQ 00H,D1 4E75 RTS 4841 SWAP D1 263C MOVE.L 80000000H,D3 ! Locitev predznakov in mantis 8000 0000 2C00 MOVE.L D0,D6 8083 OR.L D3,D0 B586 EOR.L D2,D6 8483 OR.L D3,D2 CC83 AND.L D3,D6 2802 MOVE.L D2,D4 ! Deljenje mantis 2E02 MOVE.L D2,D7 4842 SWAP D2 2A00 MOVE.L D0,D5 4845 SWAP D5 BA42 CMP.W D2,D5 ! Primerjava mantis 6504 BCS 04H E288 LSR.L 01H,D0 5241 ADDQ.W 01H,D1 80C2 DIVU D2,D0 ! Akumulator / Operand.H = D0 C8C0 MULU D0,D4 ! Kvocient.H * Operand.L = D4 2A00 MOVE.L D0,D5 4245 CLR.W D5 ! Ocisceni ostanek v D5 9A84 SUB.L D4,D5 6406 BCC 06H 5340 SUBQ.W 01H,D0 DA87 ADD.L D7,D5 64FA BCC FAH 5242 ADDQ.W 01H,D2 ! Operand.H + 1 6704 BEQ 04H 8AC2 DIVU D2,D5 ! Ostanek / ( Operand.H + 1 ) = D5 6002 BRA 02H 4845 SWAP D5 4840 SWAP D0 ! Sestava rezultata 3005 MOVE.W D5,D0 2A00 MOVE.L D0,D5 6B04 BMI 04H E388 LSL.L 01H,D0 5341 SUBQ.W 01H,D1 B780 EOR.L D3,D0 ! Sestavljanje predznaka in mantise 8086 OR.L D6,D0 4E75 RTS *** Vhod vrstice znakov s tastature {offset 0154H} *** 264E MOVEA.L A6,A3 ! Postavi kazalec na zacetek 4E42 TRAP2 ! Znak s tastature <---<< 0C00 CMPI.B 7FH,D0 ! Delete? 007F 6614 BNE 14H B7CE CMPA.L A6,A3 64F4 BCC F4H 528B ADDQ.L 01H,A3 7008 MOVEQ 08H,D0 4E40 TRAP0 7020 MOVEQ 20H,D0 4E40 TRAP0 7008 MOVEQ 08H,D0 4E40 TRAP0 60E4 BRA E4H 0C00 CMPI.B 20H,D0 ! Kontrolni znak? 0020 650E BCS 0EH 723E MOVEQ 3EH,D1 D28B ADD.L A3,D1 B28E CMP.L A6,D1 65D6 BCS D6H 1700 MOVE.B D0,-(A3) 4E40 TRAP0 60D0 BRA D0H 700D MOVEQ 0DH,D0 ! Kontrolni znak = Izhod 1700 MOVE.B D0,-(A3) 4E40 TRAP0 264E MOVEA.L A6,A3 ! Postavi kazalec na zacetek 4E75 *** Pretvorba ASCII znaka v stevilo {offset 0190H} *** 1023 MOVE.B -(A3),D0 0C00 CMPI.B 20H,D0 0020 6404 BCC 04H 528B ADDQ.L 01H,A3 700D MOVEQ 0DH,D0 4840 SWAP D0 4240 CLR.W D0 E188 LSL.L 08H,D0 323C MOVE.W 8007H,D1 8007 E388 LSL.L 01H,D0 55C9 DBCS D1,FFFCH FFFC E288 LSR.L 01H,D0 4E75 RTS *** Pretvorba iz ASCII zapisa v stevilo {offset 01B0} *** 7200 MOVEQ 00H,D1 ! Vsota = 0 7800 MOVEQ 00H,D4 ! Zastavice = 0 7A00 MOVEQ 00H,D5 ! Decimalna mesta = 0 1423 MOVE.B -(A3),D2 ! <---<< 0C02 CMPI.B 20H,D2 ! Kontrolni znak - konec? 0020 6572 BCS 72H 0C02 CMPI.B 2DH,D2 ! Minus? 002D 660A BNE 0AH 3604 MOVE.W D4,D3 6668 BNE 68H 0004 ORI.B 01H,D4 0001 60E8 BRA E8H 0C02 CMPI.B 2EH,D2 ! Decimalna pika? 002E 660C BNE 0CH 0804 BTST 01H,D4 0001 6656 BNE 56H 0004 ORI.B 02H,D4 0002 60D6 BRA D6H 0C02 CMPI.B 30H,D2 ! Stevilka? 0030 6546 BCS 46H 0C02 CMPI.B 3AH,D2 003A 6440 BCC 40H 0004 ORI.B 04H,D4 0004 0804 BTST 01H,D4 0001 6702 BEQ 02H 5245 ADDQ.W 01H,D5 3F04 MOVE.W D4,-(A7) 3F05 MOVE.W D5,-(A7) 3F02 MOVE.W D2,-(A7) 243C MOVE.L 20000000H,D2 2000 0000 363C MOVE.W 8003H,D3 8003 6100 BSR FE7AH ! Mnozenje * 10 FE7A 341F MOVE.W (A7)+,D2 0242 ANDI.W 000FH,D2 000F 6712 BEQ 12H 4842 SWAP D2 4242 CLR.W D2 363C MOVE.W 800EH,D3 800E E38A LSL.L 01H,D2 5BCB DBMI D3,FFFCH FFFC 6100 BRA FDE4H ! Sestevanje FDE4 3A1F MOVE.W (A7)+,D5 381F MOVE.W (A7)+,D4 608A BRA 8AH 3604 MOVE.W D4,D3 6786 BEQ 86H 528B ADDQ.L 01H,A3 ! Izhod <---<< 6016 BRA 16H 3F04 MOVE.W D4,-(A7) 3F05 MOVE.W D5,-(A7) 243C MOVE.L 20000000H,D2 2000 0000 363C MOVE.W 8003H,D3 8003 6100 BSR FEA0H ! Deljenje / 10 FEA0 3A1F MOVE.W (A7)+,D5 381F MOVE.W (A7)+,D4 51CD DBF D5,FFE8H FFE8 0204 ANDI.B 0001H,D4 ! Minus? 0001 6606 BNE 06H 0A80 EORI.L 80000000H,D0 8000 0000 4E75 RTS *** Izpis ASCII znaka na ekran {offset 025CH} *** 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 6108 BSR 08H ! Pretvorba stevila v bajt 4E40 TRAP0 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 4E75 RTS *** Pretvorba stevila v bajt {offset 026A} *** 08C0 BSET 1FH,D0 001F 6704 BEQ 04H 7000 MOVEQ 00H,D0 4E75 RTS 0C41 CMPI.W 8000H,D0 8000 65F6 BCS F6H 0C41 CMPI.W 8008H,D1 8008 6504 BCS 04H 70FF MOVEQ FFH,D0 4E75 RTS 4441 NEG.W D1 D27C ADD.W 801FH,D1 801F E2A8 LSR.L D1,D0 4E75 RTS *** Izpis stevila na ekran - format D2,D3 {offset 028EH} *** 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 7800 MOVEQ 00H,D4 1803 MOVE.B D3,D4 3F04 MOVE.W D4,-(A7) 7820 MOVEQ 20H,D4 ! Dolocitev predznaka 0880 BCLR 1FH,D0 001F 6702 BEQ 02H 782D MOVEQ 2DH,D4 3F04 MOVE.W D4,-(A7) 7800 MOVEQ 00H,D4 ! Dolocitev velikosti stevila 1802 MOVE.B D2,D4 6602 BNE 02H 7801 MOVEQ 01H,D4 243C MOVE.L 00000000H,D2 0000 0000 363C MOVE.W 8000H,D3 8000 2F00 MOVE.L D0,-(A7) ! <---<< 3F01 MOVE.W D1,-(A7) 2F02 MOVE.L D2,-(A7) 3F03 MOVE.W D3,-(A7) 2F04 MOVE.L D4,-(A7) 6100 BSR FE22H ! Deljenje FE22 281F MOVE.L (A7)+,D4 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 6100 BSR FF9EH ! Pretvorba v bajt FF9E 4844 SWAP D4 5244 ADDQ.W 01H,D4 4844 SWAP D4 5344 SUBQ.W 01H,D4 ! Zadosti prostora? 6722 BEQ 22H 0C00 CMPI.B 0AH,D0 ! Pravi mnogokratnik 10? 000A 651C BCS 1CH 203C MOVE.L 20000000H,D0 2000 0000 323C MOVE.W 8003H,D1 8003 2F04 MOVE.L D4,-(A7) 6100 BSR FD98H ! Mnozenje mnogokratnika z 10 FD98 281F MOVE.L (A7)+,D4 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 60BC BRA BCH 7020 MOVEQ 20H,D0 ! Izpis praznine pred stevilom <---<< 6002 BRA 02H 4E40 TRAP0 51CC DBF D4,FFFCH FFFC 4844 SWAP D4 321F MOVE.W (A7)+,D1 2A1F MOVE.W (A7)+,D5 301F MOVE.W (A7)+,D0 ! Izpis predznaka 4E40 TRAP0 2005 MOVE.L D5,D0 6002 BRA 02H 611E BSR 1EH ! Izpis cele stevilke 51CC DBF D4,FFFCH FFFC 381F MOVE.W (A7)+,D4 6710 BEQ 10H 2A00 MOVE.L D0,D5 702E MOVEQ 2EH,D0 ! Izpis decimalne pike 4E40 TRAP0 2005 MOVE.L D5,D0 6002 BRA 02H 610A BSR 0AH ! Izpis decimalnega mesta 51CC DBF D4,FFFCH FFFC 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 4E75 RTS 3F04 MOVE.W D4,-(A7) ! Izracun in izpis stevilke <---<< 2F02 MOVE.L D2,-(A7) 3F03 MOVE.W D3,-(A7) 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 6100 BSR FDA6H ! Deljenje FDA6 6100 BSR FF28H ! Pretvorba v bajt FF28 0C00 CMPI.B 0AH,D0 000A 6502 BCS 02H 7009 MOVEQ 09H,D0 2200 MOVE.L D0,D1 0000 ORI.B 30H,D0 ! Izpis ASCII znaka 0030 4E40 TRAP0 2001 MOVE.L D1,D0 6710 BEQ 10H 323C MOVE.W 8007H,D1 8007 4840 SWAP D0 E188 LSL.L 08H,D0 6002 BRA 02H E388 LSL.L 01H,D0 5BC9 DBMI D1,FFFCH FFFC 362F MOVE.W 0006H(A7),D3 0006 242F MOVE.L 0008H(A7),D2 0008 6100 BSR FD12H ! Mnozenje s stevilko FD12 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 6100 BSR FC8AH ! Sestevanje (odstevanje stevilke) FC8A 243C MOVE.L 20000000H,D2 2000 0000 363C MOVE.W 8003H,D3 8003 6100 BSR FCF8H ! Mnozenje ostanka z 10 FCF8 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 381F MOVE.W (A7)+,D4 4E75 RTS *** Funkcija INT {offset 0396H} *** 0C41 CMPI.W 801FH,D1 ! Vecje od 2exp31? 801F 6408 BCC 08H 0C41 CMPI.W 8000H,D1 ! Manjse od 1? 8000 6404 BCC 04H 7200 MOVEQ 00H,D1 4E75 RTS 243C MOVE.L 80000000H,D2 8000 0000 E2A2 ASR.L D1,D2 C082 AND.L D2,D0 4E75 RTS *** Funkcila FRAC {offset 03B2H} *** 0C41 CMPI.W 8000H,D1 ! Manjse od 1? 8000 6508 BCS 08H 0C41 CMPI.W 801FH,D1 ! Vecje od 2exp31? 801F 6504 BCS 04H 7200 MOVEQ 00H,D1 4E75 RTS 2400 MOVE.L D0,D2 0082 ORI.L 7FFFFFFFH,D2 ! Predznak v D2 7FFF FFFF E3A0 ASL.L D1,D0 323C MOVE.W 7FFFH,D1 7FFF E380 ASL.L 01H,D0 67EA BEQ EAH 5BC9 DBMI D1,FFFAH FFFA C082 AND.L D2,D0 4E75 RTS *** Funkcija ABS {offset 03DC} *** 0280 ANDI.L 7FFFFFFFH,D0 7FFF FFFF 4E75 RTS *** Kvadratni koren - SQRT {offset 03E4} *** 08C0 BSET 1FH,D0 ! Negativno stevilo? 001F 6704 BEQ 04H 7200 MOVEQ 00H,D1 4E75 RTS 3601 MOVE.W D1,D3 67FA BEQ FAH ! Stevilo nic? E24B LSR.W 01H,D3 0643 ADDI.W 4000H,D3 4000 2400 MOVE.L D0,D2 2F00 MOVE.L D0,-(A7) ! Zanka racunanja korena <---<< 3F01 MOVE.W D1,-(A7) 9243 SUB.W D3,D1 ! Deljenje - eksponenti 0641 ADDI.W 7FFFH,D1 7FFF 2802 MOVE.L D2,D4 ! Deljenje mantis 2E02 MOVE.L D2,D7 4847 SWAP D7 2A00 MOVE.L D0,D5 4845 SWAP D5 BA47 CMP.W D7,D5 ! Primerjava mantis 6504 BCS 04H E288 LSR.L 01H,D0 5241 ADDQ.W 01H,D1 80C7 DIVU D7,D0 ! Akumulator / Operand.H = D0 C8C0 MULU D0,D4 ! Kvocient.H * Operand.L = D4 2A00 MOVE.L D0,D5 4245 CLR.W D5 ! Ocisceni ostanek v D5 9A84 SUB.L D4,D5 6406 BCC 06H 5340 SUBQ.W 01H,D0 DA82 ADD.L D2,D5 64FA BCC FAH 5247 ADDQ.W 01H,D7 ! Operand.H + 1 6704 BEQ 04H 8AC7 DIVU D7,D5 ! Ostanek / ( Operand.H + 1 ) = D5 6002 BRA 02H 4845 SWAP D5 4840 SWAP D0 ! Sestava rezultata 3005 MOVE.W D5,D0 2A00 MOVE.L D0,D5 6B04 BMI 04H E388 LSL.L 01H,D0 5341 SUBQ.W 01H,D1 3801 MOVE.W D1,D4 ! Sestevanje za novi priblizek 9843 SUB.W D3,D4 ! Razlika eksponentov 6406 BCC 06H ! Vecje stevilo v akumulator C142 EXG D0,D2 C343 EXG D1,D3 4444 NEG.W D4 E8AA LSR.L D4,D2 ! Poravna manjse stevilo D082 ADD.L D2,D0 ! Sestevanje mantis 6404 BCC 04H E290 ROXR.L 01H,D0 5241 ADDQ.W 01H,D1 5341 SUBQ.W 01H,D1 ! Deljenje z 2 9480 SUB.L D0,D2 ! Kontrola konvergence? 783F MOVEQ 3FH,D4 B484 CMP.L D4,D2 6510 BCS 10H 4482 NEG.L D2 B484 CMP.L D4,D2 650A BCS 0AH 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 608C BRA 8CH 0880 BCLR 1FH,D0 ! <---<< 001F 5C8F ADDQ.L 06H,A7 4E75 RTS *** Funkcija SIGN {offset 0476H} *** 4A41 TST.W D1 670A BEQ 0AH 0280 AND.L 80000000H,D0 8000 0000 323C MOVE.W 8000H,D1 8000 4E75 RTS *** Funkcija ATAN {offset 0486H} *** 4A41 TST.W D1 ! Podatek enak nic? 6602 BNE 02H 4E75 RTS 7800 MOVEQ 00H,D4 ! D4 = Zastavice stanja 0C41 CMPI.W 8000H,D1 ! Podatek vecji od ena? 8000 6510 BCS 10H 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 7000 MOVEQ 00H,D0 323C MOVE.W 8000H,D1 8000 6100 BSR FC44H ! Deljenje FC44 78FF MOVEQ FFH,D4 4244 CLR.W D4 2F04 MOVE.L D4,-(A7) ! <---<< 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 6100 BSR FBD2H ! Kvadriranje FBD2 0C41 CMPI.W 7FFAH,D1 ! Zmanjsanje argumenta vrste? 7FFA 652A BCS 2AH 7400 MOVEQ 00H,D2 363C MOVE.W 8000H,D3 8000 6100 BSR FB46H ! Pristeje 1 FB46 6100 BSR FF1EH ! Korenjenje FF1E 7400 MOVEQ 00H,D2 363C MOVE.W 8000H,D3 8000 6100 BSR FB38H ! Pristeje 1 FB38 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 6100 BSR FC08H ! Deljenje FC08 281F MOVE.L (A7)+,D4 5244 ADDQ.W 01H,D4 60C2 BRA C2H 0840 BCHG 1FH,D0 ! Priprava za racunanje vrste <---<< 001F 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 3F3C MOVE.W FFFFH,-(A7) FFFF 204F MOVEA.L A7,A0 3410 MOVE.W (A0),D2 ! (A0) = N clena vrste <---<< 5442 ADDQ.W 02H,D2 3082 MOVE.W D2,(A0) 4842 SWAP D2 4242 CLR.W D2 E18A LSL.L 08H,D2 363C MOVE.W 8006H,D3 8006 E38A LSL.L 01H,D2 5BCB DBMI D3,FFFCH FFFC 2028 MOVE.L 000AH(A0),D0 000A 3228 MOVE.W 0008H(A0),D1 0008 6100 BSR FBD2H ! Deljenje z -N FBD2 2F00 MOVE.L D0,-(A7) 3F01 MOVE.L D1,-(A7) 0C41 CMPI.W 7FDDH,D1 ! Konvergenca dosezena? 7FDD 651E BCS 1EH 2028 MOVE.L 000AH(A0),D0 000A 3228 MOVE.W 0008H(A0),D1 0008 2428 MOVE.L 0004H(A0),D2 0004 3628 MOVE.L 0002H(A0),D3 0002 6100 BSR FB54H ! Mnozenje z minus kvadratom FB54 2140 MOVE.L D0,000AH(A0) 000A 3141 MOVE.W D1,0008H(A0) 0008 60B6 BRA B6H 7200 MOVEQ 00H,D1 361F MOVE.W (A7)+,D3 ! <---<< 241F MOVE.L (A7)+,D2 6100 BSR FAC4H ! Sestevanje izracunanih clenov FAC4 BFC8 CMPA.L A0,A7 65F4 BCS F4H 508F ADDQ.L 08H,A7 5C8F ADDQ.L 06H,A7 281F MOVE.L (A7)+,D4 D244 ADD.W D4,D1 ! Mnozenje rezultata z 2expM 4844 SWAP D4 4A04 TST.B D4 6606 BNE 06H 0840 BCHG 1FH,D0 001F 4E75 RTS 243C MOVE.L C90FDAA2H,D2 ! konstanta -PI/2 C90F DAA2 363C MOVE.W 8000H,D3 8000 2800 MOVE.L D0,D4 0284 ANDI.L 80000000H,D4 8000 0000 B982 EOR.L D4,D2 6100 BSR FA94H FA94 4E75 RTS *** Funkcija ASIN {offset 0578} *** 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 6100 BSR FB02H ! Kvadriranje FB02 0840 BCHG 1FH,D0 001F 7400 MOVEQ 00H,D2 363C MOVE.W 8000H,D3 8000 6100 BSR FA78H ! Ena minus kvadrat FA78 6100 BSR FE50H ! Kvadratni koren FE50 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 B243 CMP.W D3,D1 650E BCS 0EH C142 EXG D0,D2 C343 EXG D1,D3 6100 BSR FB40H ! Deljenje FB40 6100 BSR FEDEH ! ATAN FEDE 4E75 RTS 2802 MOVE.L D2,D4 0284 ANDI.L 80000000H,D4 8000 0000 2F04 MOVE.L D4,-(A7) 6100 BSR FB2CH ! Deljenje FB2C 6100 BSR FECAH ! ATAN FECA 0840 BCHG 1FH,D0 001F 243C MOVE.L 490FDAA2H,D2 490F DAA2 363C MOVE.L 8000H,D3 8000 281F MOVE.L (A7)+,D4 B982 EOR.L D4,D2 6100 BSR FA36H ! Sestevanje rezultata FA36 4E75 RTS *** Funkcija ACOS {offset 05D6H} *** 61A0 BSR A0H ! ASIN 0840 BCHG 1FH,D0 001F 243C MOVE.L 490FDAA2H,D2 490F DAA2 363C MOVE.W 8000H,D3 8000 6100 BSR FA20H ! Sestevanje rezultata FA20 4E75 RTS *** Funkcija SIN {offset 05ECH} *** 7800 MOVEQ 00H,D4 0880 BCLR 1FH,D0 ! Absolutna vrednost 001F 6702 BEQ 02H ! Predznak v D4 - liha funkcija 7802 MOVEQ 02H,D4 6006 BRA 06H *** Funkcija COS {offset 05F8H} *** 0880 BCLR 1FH,D0 ! Absolutna vrednost - soda funkcija 001F 7801 MOVEQ 01H,D4 3F04 MOVE.W D4,-(A7) ! PRIPRAVA PODATKOV 243C MOVE.L 490FDAA2H,D2 ! PI*2 490F DAA2 363C MOVE.W 8002H 8002 6100 BSR FAD8H ! Deljenje FAD8 6100 BSR FDA2H ! FRAC FDA2 4A41 TST.W D1 6702 BEQ 02H 5441 ADDQ.W 02H,D1 ! *4 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 6100 BSR FD78H ! INT FD78 6100 BSR FC48H ! Pretvorba stevila v bajt FC48 3600 MOVE.W D0,D3 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 381F MOVE.W (A7)+,D4 D843 ADD.W D3,D4 3F04 MOVE.W D4,-(A7) 6100 BSR FD80H ! FRAC FD80 0C41 CMPI.W 7FFFH,D1 7FFF 6512 BCS 12H 2400 MOVE.L D0,D2 3601 MOVE.L D1,D3 7000 MOVEQ 00H,D0 323C MOVE.W 8000H,D1 8000 6100 BSR F9D2H ! Odstevanje 1-X F9D2 0A57 EORI.W 0001H,(A7) 0001 243C MOVE.L 490FDAA2H,D2 ! PI/2 490F DAA2 363C MOVE.W 8000H,D3 8000 6100 BSR FA2CH ! Mnozenje FA2C 3817 MOVE.W (A7),D4 0204 ANDI.B 01H,D4 ! Vrste za SIN ali COS? 0001 670C BEQ 0CH 42A7 CLR.L -(A7) 3F3C MOVE.W 8000H,-(A7) 8000 41FA LEA 005EH(PC),A0 ! Koeficienti za COS 005E 6008 BRA 08H 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 41FA LEA 0084H(PC),A0 ! Koeficienti za SIN 0084 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 6100 BSR FA08H ! Kvadriranje FA08 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 2002 MOVE.L D2,D0 3203 MOVE.W D3,D1 224F MOVEA.L A7,A1 0C41 CMPI.W 7FE3H,D1 ! Konvergenca dosezena? <---<< 7FE3 6518 BCS 18H 2F00 MOVE.L D0,-(A7) 3F01 MOVE.L D1,-(A7) 2418 MOVE.L (A0)+,D2 3618 MOVE.W (A0)+,D3 6100 BSR F9E8H ! Mnozenje s koeficientom F9E8 2429 MOVE.L 0002H(A1),D2 0002 3611 MOVE.W (A1),D3 6100 BSR F9DEH ! Mnozenje z X*X F9DE 60E2 BRA E2 BFC9 CMPA.L A1,A7 ! <---<< 640A BCC 0AH 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 6100 BSR F954H ! Sestevanje clenov vrste F954 60F2 5C8F ADDQ.L 06H,A7 381F MOVE.W (A7)+,D4 0204 ANDI.B 02H,D4 0002 6704 BEQ 04H 0840 BCHG 1FH,D0 001F 4E75 RTS 8000 ! -1/1/2 Tabela koeficientov za COS 0000 7FFF AAAA ! -1/3/4 AAAA 7FFC 8888 ! -1/5/6 8888 7FFB 9249 ! -1/7/8 2492 7FFA B60B ! -1/9/10 60B6 7FF9 F83E ! -1/11/12 0F83 7FF8 B40B ! -1/13/14 40B4 7FF8 0000 ! 0 0000 0000 AAAA ! -1/2/3 Tabela koeficientov za SIN AAAA 7FFD CCCC ! -1/4/5 CCCC 7FFB C30C ! -1/6/7 30C3 7FFA E38E ! -1/8/9 38E3 7FF9 94F2 ! -1/10/11 094F 7FF9 D20D ! -1/12/13 20D2 7FF8 9C09 ! -1/14/15 C09C 7FF8 0000 ! 0 0000 0000 *** Funkcija TAN {offset 0728H} *** 2F00 MOVE.L D0,-(A7) 3F01 MOVE.L D1,-(A7) 6100 BSR FECAH ! COS FECA 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 2F02 MOVE.L D2,-(A7) 3F03 MOVE.W D3,-(A7) 6100 BSR FEAEH ! SIN FEAE 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 6100 BSR F99EH ! Deljenje SIN/COS F99E 4E75 RTS *** Funkcija LOG {offset 074AH} *** 0800 BTST 1FH,D0 ! Kontrola podatka 001F 6704 BEQ 04H 7200 MOVEQ 00H,D1 4E75 RTS 4A41 TST.W D1 67FA BEQ FAH 3401 MOVE.W D1,D2 323C MOVE.W 7FFFH,D1 7FFF 0C80 CMPI.L 3504F333H,D0 ! Koren iz 2 3504 F333 6404 BCC 04H 5241 ADDQ.W 01H,D1 5342 SUBQ.W 01H,D2 3F02 MOVE.W D2,-(A7) 7800 MOVEQ 00H,D4 3F04 MOVE.W D4,-(A7) ! Priprava argumenta <---<< 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 7400 MOVEQ 00H,D2 363C MOVE.W 8000H,D3 8000 6100 BSR F89CH ! Odsteje 1 F89C 0C41 CMPI.W 7FFEH,D1 7FFE 650E BCS 0EH 321F MOVE.W (A7)+,D1 201F MOVE.L (A7)+,D0 6100 BSR FC5AH ! Korenjenje FC5A 381F MOVEQ.W (A7)+,D4 5244 ADDQ.W 01H,D4 60DC BRA DCH 5C8F ADDQ.L 06H,A7 ! Priprava za racunanje vrste 0840 BCHG 1FH,D0 001F 2F00 MOVE.L D0,-(A7) ! Mnogokratnik -X 3F01 MOVE.W D1,-(A7) 7801 MOVEQ 01H,D4 3F04 MOVE.W D4,-(A7) 204F MOVEA.L A7,A0 2F00 MOVE.L D0,-(A7) ! Zanka za racunanje vrste <---<< 3F01 MOVE.W D1,-(A7) 0C41 CMPI.W 7FDDH,D1 7FDD 653A BCS 3AH 2028 MOVE.L 0004H(A0),D0 0004 3228 MOVE.W 0002H(A0),D1 0002 2428 MOVE.L FFFCH(A0),D2 FFFC 3628 MOVE.W FFFAH(A0),D3 FFFA 6100 BSR F8C6H ! Mnozenje z -X F8C6 2140 MOVE.L D0,0004H(A0) 0004 3141 MOVE.W D1,0002H(A0) 0002 3410 MOVE.W (A0),D2 5242 ADDQ.W 01H,D2 ! N + 1 3082 MOVE.W D2,(A0) 4842 SWAP D2 4242 CLR.W D2 E18A LSL.L 08H,D2 363C MOVE.W 8007H,D3 8007 E38A LSL.L 01H,D2 55CB DBCS D3,FFFCH FFFC E28A LSR.L 01H,D2 6100 BSR F902H ! Deljenje z N F902 60BC BRA BCH 7200 MOVEQ 00H,D1 361F MOVE.W (A7)+,D3 ! <---<< 241F MOVE.L (A7)+,D2 6100 BSR F82AH ! Sestevanje clenov vrste F82A BFC8 CMPA.L A0,A7 65F4 BCS F4H 508F ADDQ.L 08H,A7 381F MOVE.W (A7)+,D4 ! Mnozenje rezultata vrste z 2expM 4A41 TST.W D1 6702 BEQ 02H D244 ADD.W D4,D1 341F MOVE.W (A7)+,D2 ! Logaritem eksponenta 2F00 MOVE.L D0,-(A7) 3F01 MOVE.W D1,-(A7) 7000 MOVEQ 00H,D0 0442 SUBI.W 7FFFH,D2 7FFF 6406 BCC 06H 4442 NEG D2 0840 BCHG 1FH,D0 001F 4842 SWAP D2 4242 CLR.W D2 7600 MOVEQ 00H,D3 E28A LSR.L 01H,D2 670A BEQ 0AH 363C MOVE.W 800F,D3 800F E38A LSL.L 01H,D2 5BCB DBMI D3,FFFCH FFFC B182 EOR.L D0,D2 203C MOVE.L B17217F7H,D0 ! -LOG2 B172 17F7 323C MOVE.W 7FFFH,D1 7FFF 6100 BSR F850H ! Mnozenje z -LOG2 F850 361F MOVE.W (A7)+,D3 241F MOVE.L (A7)+,D2 6100 BSR F7CCH ! Sestevanje rezultata F7CC 4E75 RTS *** Funkcija EXP {offset 0840H} *** 243C MOVE.L 317217F7H,D2 3172 17F7 363C MOVE.W 7FFFH,D3 7FFF 6100 BSR F898H ! Deljenje z LOG2 F898 0C41 CMPI.W 800FH,D1 ! Rezultat izven mej? 800F 6504 BCS 04H 7200 MOVEQ 00H,D1 4E75 RTS 7400 MOVEQ 00H,D2 ! Izracun eksponenta rezultata 0C41 CMPI.W 8000H,D1 8000 6512 BCS 12H 2400 MOVE.L D0,D2 3601 MOVE.W D1,D3 08C2 BSET 1FH,D2 001F 4842 SWAP D2 0443 SUBI.W 800FH,D3 800F 4443 NEG D3 E66A LSR.W D3,D2 0800 BTST 1FH,D0 001F 6702 BEQ 02H 4442 NEG D2 3F02 MOVE.W D2,-(A7) 6100 BSR FB34H ! FRAC Izracun mantise FB34 243C MOVE.L 317217F7H,D2 3172 17F7 363C MOVE.W 7FFFH,D3 7FFF 6100 BSR F7F8H ! Mnozenje z LOG2 F7F8 2F00 MOVE.L D0,-(A7) ! Priprava za racunanje vrste 3F01 MOVE.W D1,-(A7) 3F3C MOVE.W 0001H,-(A7) 0001 204F MOVEA.L A7,A0 42A7 CLR.L -(A7) 3F3C MOVE.W 8000H,-(A7) 8000 2F00 MOVE.L D0,-(A7) ! <---<< 3F01 MOVE.W D1,-(A7) 0C41 CMPI.W 7FDDH,D1 7FDD 652A BCS 2AH 2428 MOVE.L 0004H,D2 0004 3628 MOVE.W 0002H,D3 0002 6100 BSR F7D2H ! Mnozenje z X F7D2 3410 MOVE.W (A0),D2 5242 ADDQ.W 01H,D2 ! N + 1 3082 MOVE.W D2,(A0) 4842 SWAP D2 4242 CLR.W D2 E18A LSL.L 08H,D2 363C MOVE.W 8007H,D3 8007 E38A LSL.L 01H,D2 55CB DBCS D3,FFFCH FFFC E28A LSR.L 01H,D2 6100 BSR F816H ! Deljenje z N F816 60CC BRA CCH 7200 MOVEQ 00H,D1 361F MOVE.W (A7)+,D3 ! <---<< 241F MOVE.L (A7)+,D2 6100 BSR F72EH ! Sestevanje clenov vrste F72E BFC8 CMPA.L A0,A7 65F4 BCS F4H 508F ADDQ.L 08H,A7 D25F ADD.W (A7)+,D1 ! Sestevanje eksponentov 4E75 RTS *** Ura v ASCII zapis {offset 08E6} *** 264E MOVEA.L A6,A3 ! Postavi kazalec na zacetek 207C MOVEA.L 00010007H,A0 ! Naslov komandne besede 0001 0007 6030 BRA 30H 7403 MOVEQ 03H,D2 ! Izdaja komande <---<< E208 LSR.B 01H,D0 ! Podatki <---<< 6506 BCS 06H 10BC MOVE.B 02H,(A0) 0002 6004 BRA 04H 10BC MOVE.B 03H,(A0) 0003 10BC MOVE.B 01H,(A0) ! "CLK" 0001 10BC MOVE.B 00H,(A0) 0000 51CA DBF D2,FFE8H FFE8 10BC MOVE.B 05H,(A0) ! "STB" 0005 10BC MOVE.B 04H,(A0) 0004 7010 MOVEQ 10H,D0 ! Zakasnitev 30 uS 4E71 NOP 4E71 NOP 51C8 DBF D0,FFFA FFFA 4E75 RTS 7003 MOVEQ 03H,D0 ! "Time Read Mode" 61CC BSR CCH 7001 MOVEQ 01H,D0 ! "Register Shift Mode" 61C8 BSR C8H 742F MOVEQ 2FH,D2 1039 MOVE.B (00010005H),D0 ! Podatek = PC7 0001 0005 E310 ROXL.B 01H,D0 E294 ROXR.L 01H,D4 E293 ROXR.L 01H,D3 10BC MOVE.B 01H,(A0) ! "CLK" 0001 10BC MOVE.B 00H,(A0) 0000 51CA DBF D2,FFEAH FFEA 7401 MOVEQ 01H,D2 ! Leta E99C ROL.L 04H,D4 1004 MOVE.B D4,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 1700 MOVE.B D0,-(A3) 51CA DBF D2,FFF0H FFF0 173C MOVE.B 20H,-(A3) 0020 E99C ROL.L 04H,D4 ! Meseci 1404 MOVE.B D4,D2 0202 ANDI.B 0FH,D2 000F 7030 MOVEQ 30H,D0 0C02 CMPI.B 0AH,D2 000A 6506 BCS 06H 7031 MOVEQ 31H,D0 943C SUB.B 0AH,D2 000A 1700 MOVE.B D0,-(A3) 1002 MOVE.B D2,D0 0000 ORI.B 30H,D0 0030 1700 MOVE.B D0,-(A3) E99C ROL.L 04H,D4 7201 MOVEQ 01H,D1 ! Dnevi in ure 173C MOVE.B 20H,-(A3) 0020 7401 MOVEQ 01H,D2 E99C ROL.L 04H,D4 1004 MOVE.B D4,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 1700 MOVE.B D0,-(A3) 51CA DBF D2,FFF0H FFF0 51C9 DBF D1,FFE6H FFE6 7201 MOVEQ 01H,D1 ! Minute in sekunde 173C MOVE.B 20H,-(A3) 0020 7401 MOVEQ 01H,D2 E99B ROL.L 04H,D3 1003 MOVE.B D3,D0 0200 ANDI.B 0FH,D0 000F 0000 ORI.B 30H,D0 0030 1700 MOVE.B D0,-(A3) 51CA DBF D2,FFF0H FFF0 51C9 DBF D1,FFE6H FFE6 173C MOVE.B 0DH,-(A3) 000D 264E MOVEA.L A6,A3 ! Postavi kazalec na zacetek 4E75 RTS *** Racunanje elementa indeksirane spremenljivke {offset 09C0} 205F MOVEA.L (A7)+,A0 ! A0 = PC v glavnem programu 2F0B MOVE.L A3,-(A7) ! Zacasno shrani A3 3418 MOVE.W (A0)+,D2 224C MOVEA.L A4,A1 D3CA ADDA.L A2,A1 ! A1 kaze na stevilo indeksov 3619 MOVE.W (A1)+,D3 3803 MOVE.W D3,D4 E38C LSL.L 01H,D4 548A ADDQ.L 02H,A2 D4C4 ADDA.W D4,A2 ! A2 kaze na element 0 7800 MOVEQ 00H,D4 ! D4 = offset elementa 6048 BRA 48H 2658 MOVEA.L (A0)+,A3 ! Relativni naslov indeksa v D3 <--<< 4A43 TST.W D3 6740 BEQ 40H 5343 SUBQ.W 01H,D3 3A19 MOVE.W (A1)+,D5 ! Mnozenje z dimenzijo 2E04 MOVE.L D4,D7 670A BEQ 0AH C8C5 MULU D5,D4 4847 SWAP D7 CEC5 MULU D5,D7 4847 SWAP D7 D887 ADD.L D7,D4 2C34 MOVE.L 00H(A4,A3),D6 ! Pretvorba indeksa v 16 bitno B800 3E34 MOVE.W 04H(A4,A3),D7 B804 0C47 CMPI.W 8000H,D7 ! Manjse od 1? 8000 6522 BCS 22H 08C6 BSET 1FH,D6 ! Negativno? 001F 661C BNE 1CH 0C47 CMPI.W 8010H,D7 ! Vecje od FFFFH? 8010 6410 BCC 10H 9E7C SUB.W 800FH,D7 800F 4447 NEG.W D7 4846 SWAP D6 EE6E LSR.W D7,D6 BA46 CMP.W D6,D5 6502 BCS 02H 3A06 MOVE.W D6,D5 7C00 MOVEQ 00H,D6 ! Pristevanje indeksa <---<< 3C05 MOVE.W D5,D6 D886 ADD.L D6,D4 51CA DBF D2,FFB6H ! <---<< FFB6 E38C LSL.L 01H,D4 ! 6 * offset + A2 = A2 D5C4 ADDA.L D4,A2 E38C LSL.L 01H,D4 D5C4 ADDA.L D4,A2 265F MOVEA.L (A7)+,A3 ! Obnovi A3 4ED0 JMP (A0) *** Konec racunskih podprogramov - dolzina 0A30H *** *** Izdelava tabele indeksiranih spremenljivk *** 2049 MOVEA.L A1,A0 ! A0 kaze na znak v tekstu 7600 MOVEQ 00H,D3 ! <---<< B1CB CMPA.L A3,A0 6400 BCC 00AAH 00AA 0C10 CMPI.B 3CH,(A0) ! Zacetek teksta? 003C 6602 BNE 02H 76FF MOVEQ FFH,D3 4A03 TST.B D3 6706 BEQ 06H 0C18 CMPI.B 3EH,(A0)+ ! Konec teksta? 003E 66E8 BNE E8H 0C18 CMPI.B 24H,(A0)+ ! "$"? 0024 66E0 BNE E0H 0C10 CMPI.B 3AH,(A0) ! ":"? 003A 66DA BNE DAH 5288 ADDQ.L 01H,A0 7206 MOVEQ 06H,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 28H,D0 ! "("? 0028 6710 BEQ 10H 14C0 MOVE.B D0,(A2)+ 51C9 DBF D1,FFF4H FFF4 2248 MOVEA.L A0,A1 ! Napaka (predolgo ime) <---<< 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 421A CLR.B (A2)+ 51C9 DBF D1,FFFCH ! Polnjenje imena z 00H <---<< FFFC 2A4A MOVEA.L A2,A5 ! (A5) = stevilo dimenzij 425A CLR.W (A2)+ 7200 MOVEQ 00H,D1 ! D1 = dimenzija 1018 MOVE.B (A0)+,D0 ! <---<< 0C00 CMPI.B 30H,D0 ! Stevilka? 0030 6512 BCS 12H 0C00 CMPI.B 3AH,D0 003A 640C BCC 0CH C2FC MULU 000AH,D1 000A 0240 ANDI.W 000FH,D0 000F D240 ADD.W D0,D1 60E6 BRA E6H 0C00 CMPI.B 2CH,D0 ! ","? 002C 660C BNE 0CH 5241 ADDQ.W 01H,D1 67FC BEQ FCH 34C1 MOVE.W D1,(A2)+ 7200 MOVEQ 00H,D1 5255 ADDQ.W 01H,(A5) 60D4 BRA D4H 0C00 CMPI.B 29H,D0 ! ")"? 0029 66BA BNE BAH ! Napaka (nedovoljen znak) >--->> 5241 ADDQ.W 01H,D1 67FC BEQ FCH 34C1 MOVE.W D1,(A2)+ 5255 ADDQ.W 01H,(A5) 321D MOVE.W (A5)+,D1 ! Racunanje dolzine tabele 7006 MOVEQ 06H,D0 6012 BRA 12H 2400 MOVE.L D0,D2 4842 SWAP D2 C0D5 MULU (A5),D0 C4DD MULU (A5)+,D2 4842 SWAP D2 4A42 TST.W D2 669E BNE 9EH ! Napaka (preveliko polje) >--->> D082 ADD.L D2,D0 659A BCS 9AH ! Napaka (preveliko polje) >--->> 51C9 DBF D1,FFECH FFEC 0C80 CMPI.L 00E00000H,D0 00E0 0000 648E BCC 8EH ! Napaka (preveliko polje) >--->> D5C0 ADDA.L D0,A2 6000 BRA FF52H FF52 200A MOVE.L A2,D0 ! Dolzina tabele indeksiranih spremenljivk 908C SUB.L A4,D0 2940 MOVE.L D0,FFF0H(A4) FFF0 *** Izdelava tabele navadnih spremenljivk *** 2E0A MOVE.L A2,D7 ! Zacetek tabele v D7 2049 MOVEA.L A1,A0 7600 MOVEQ 00H,D3 ! <---<< B1CB CMPA.L A3,A0 6400 BCC 008AH 008A 0C10 CMPI.B 3CH,(A0) ! Zacetek teksta? 003C 6602 BNE 02H 76FF MOVEQ FFH,D3 4A03 TST.B D3 6706 BEQ 06H 0C18 CMPI.B 3EH,(A0)+ ! Konec teksta? 003E 66E8 BNE E8H 0C10 CMPI.B 24H,(A0) ! Funkcija? 0024 660C BNE 0CH 5288 ADDQ.L 01H,A0 0C18 CMPI.B 3CH,(A0)+ 003C 66D8 BNE D8H 76FF MOVEQ FFH,D3 60D6 BRA D6H 0C18 CMPI.B 40H,(A0)+ ! Spremenljivka? 0040 65CE BCS CEH 5388 SUBQ.L 01H,A0 7406 MOVEQ 06H,D2 E198 ROL.L 08H,D0 ! Iskanje imena spremenljivke E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 30H,D0 ! Stevilka? 0030 6518 BCS 18H 0C00 CMPI.B 3AH,D0 003A 6506 BCS 06H 0C00 CMPI.B 40H,D0 ! Crka? 0040 650C BCS 0CH 51CA DBF D2,FFE4H FFE4 2248 MOVEA.L A0,A1 ! Napaka - prevec znakov za ime 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 0C00 CMPI.B 28H,D0 ! "(" Indeksirana spremenljivka? 0028 679E BEQ 9EH 5388 SUBQ.L 01H,A0 E198 ROL.L 08H,D0 ! Polnjenje z niclami E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 4240 CLR.W D0 51CA DBF D2,FFF6H FFF6 4840 SWAP D0 2A47 MOVEA.L D7,A5 ! A5 = kazalec v obstojeci tabeli BBCA CMPA.L A2,A5 ! Konec obstojece tabele? <---<< 6508 BCS 08H 24C1 MOVE.L D1,(A2)+ 34C0 MOVE.W D0,(A2)+ 5C8A ADDQ.L 06H,A2 6080 BRA 80H ! Nova spremenljivka v tabeli >--->> B29D CMP.L D1,(A5)+ 6704 BEQ 04H 508D ADDQ.L 08H,A5 60EC BRA ECH B05D CMP.W D0,(A5)+ 67F2 BEQ F2H ! Taka spremenljivka je ze v tabeli >>---> 5C8D ADDQ.L 06H,A5 60E4 BRA E4H 200A MOVE.L A2,D0 ! Dolzina tabele navadnih spremenljivk 9087 SUB.L D7,D0 2940 MOVE.L D0,FFF4H(A4) FFF4 *** Izdelava tabele label *** 2C0A MOVE.L A2,D6 ! Zacetek tabele v D6 2049 MOVEA.L A1,A0 7600 MOVEQ 00H,D3 ! <---<< B1CB CMPA.L A3,A0 647A BCC 7AH 0C10 CMPI.B 3CH,(A0) ! Zacetek teksta? 003C 6602 BNE 02H 76FF MOVEQ FFH,D3 4A03 TST.B D3 6706 BEQ 06H 0C18 CMPI.B 3EH,(A0)+ ! Konec teksta? 003E 66EA BNE EAH 0C18 CMPI.B 23H,(A0)+ ! "#" 0023 66E2 BNE E2H 7406 MOVEQ 06H,D2 E198 ROL.L 08H,D0 ! Iskanje imena labele E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 30H,D0 ! Stevilka? 0030 6512 BCS 12H 0C00 CMPI.B 3AH,D0 003A 640C BCC 0CH 51CA DBF D2,FFEAH FFEA 2248 MOVEA.L A0,A1 ! Napaka - prevec znakov za ime <--<< 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 5388 SUBQ.L 01H,A0 E198 ROL.L 08H,D0 ! Polnjenje z niclami E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 4240 CLR.W D0 51CA DBF D2,FFF6H FFF6 4840 SWAP D0 2A46 MOVEA.L D6,A5 ! A5 = kazalec v obstojeci tabeli BBCA CMPA.L A2,A5 ! Konec obstojece tabele? <---<< 6516 BCS 16H 24C1 MOVE.L D1,(A2)+ 34C0 MOVE.W D0,(A2)+ 34FC MOVE.W 247CH,(A2)+ ! MOVE.L XXXXXXXXH,A2 247C 24FC MOVE.L FFFFFFFFH,(A2)+ ! offset FFFF FFFF 24FC MOVE.L 4EF4A800H,(A2)+ ! JMP 00H(A4,A2) 4EF4 A800 6094 BRA 94H ! Nova labela v tabeli >--->> B29D CMP.L D1,(A5)+ 6706 BEQ 06H 588D ADDQ.L 04H,A5 508D ADDQ.L 08H,A5 60DC BRA DCH B05D CMP.W D0,(A5)+ 67BE BEQ BEH ! Taka labela je ze v tabeli - napaka >>---> 588D ADDQ.L 04H,A5 5C8D ADDQ.L 06H,A5 60D2 BRA D2H 200A MOVE.L A2,D0 ! Dolzina tabele label 9086 SUB.L D6,D0 2940 MOVE.L D0,FFF8H(A4) FFF8 *** Prevajanje programa *** 2A0A MOVE.L A2,D5 ! Zacetek cistega prevoda v D5 2049 MOVEA.L A1,A0 7800 MOVEQ 00H,D4 ! D4 = stanje prevajalnika B1CB CMPA.L A3,A0 ! Konec prevajanja? <---<< 650E BCS 0EH 34FC MOVE.W 4E75H,(A2)+ ! 4E75 RTS 4E75 200A MOVE.L A2,D0 9085 SUB.L D5,D0 2940 MOVE.L D0,FFFCH(A4) FFFC 4E75 RTS ! Konec prevajanja brez napak 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 3CH,D0 ! Zacetek komentarja? 003C 6604 BNE 04H 78FF MOVEQ FFH,D4 60E2 BRA D8H 0C44 CMPI.W FFFFH,D4 ! Stanje? FFFF 660A BNE 0AH 0C00 CMPI.B 3EH,D0 ! Konec komentarja? 003E 66D6 BNE D6H 7800 MOVEQ 00H,D4 60D2 BRA C8H 0C00 CMPI.B 21H,D0 ! Presledek ali kontrolni znak? 0021 6404 BCC 04H 7800 MOVEQ 00H,D4 60C8 BRA C8H *** Dolocanje naslovov label *** 0C00 CMPI.B 23H,D0 ! "#"? 0023 664C BNE 4CH 7800 MOVEQ 00H,D4 7406 MOVEQ 06H,D2 E198 ROL.L 08H,D0 ! Dolocanje imena labele E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 30H,D0 ! Stevilka? 0030 6508 BCS 08H 0C00 CMPI.B 3AH,D0 003A 54CA DBCC D2,FFECH FFEC 5388 SUBQ.L 01H,A0 E198 ROL.L 08H,D0 ! Polnjenje z niclami E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 4240 CLR.W D0 51CA DBF D2,FFF6H FFF6 4840 SWAP D0 2A46 MOVEA.L D6,A5 ! A5 = kazalec v tabeli label B29D CMP.L (A5)+,D1 ! Iskanje po tabeli <---<< 6706 BEQ 06H 588D ADDQ.L 04H,A5 508D ADDQ.L 08H,A5 60F6 BRA F6H B05D CMP.W (A5)+,D0 6706 BEQ 06H 588D ADDQ.L 04H,A5 5C8D ADDQ.L 06H,A5 60EC BRA ECH 548D ADDQ.L 02H,A5 ! Vpisovanje naslova 200A MOVE.L A2,D0 908C SUB.L A4,D0 2A80 MOVE.L D0,(A5) 6000 BRA FF78H ! Iskanje novega znaka >>---> FF78 *** Dvovhodne racunske operacije >>---> stanje v D4 *** 0C00 CMPI.B 2AH,D0 ! "*" 002A 6606 BNE 06H 0044 ORI.W 0001H,D4 0001 602E BRA 2EH 0C00 CMPI.B 2BH,D0 ! "+" 002B 6606 BNE 06H 0044 ORI.W 0002H,D4 0002 6022 BRA 22H 0C00 CMPI.B 2DH,D0 ! "-" 002D 6606 BNE 06H 0044 ORI.W 0004H,D4 0004 6016 BRA 16H 0C00 CMPI.B 2FH,D0 ! "/" 002F 6606 BNE 06H 0044 ORI.W 0008H,D4 0008 600A BRA 0AH 0C00 CMPI.B 3DH,D0 ! "=" 003D 6608 BNE 08H 0044 ORI.W 0010H,D4 0010 6000 BRA FF3AH ! Iskanje novega znaka >>---> FF3A *** Stevila - konstante v programu *** 0C00 CMPI.B 3AH,D0 ! Stevilka? 003A 6400 BCC 00AEH 00AE 0C00 CMPI.B 2EH,D0 ! Decimalna pika? (2FH prej izlocen!) 002E 6500 BCS 00A6H 00A6 5388 SUBQ.L 01H,A0 4E56 LINK A6,FFC0H FFC0 48E7 MOVEM.L A3,A2,A1,A0,D7,D6,D5,D4,-(A7) 0FF0 2A4E MOVEA.L A6,A5 703E MOVEQ 3EH,D0 1B18 MOVE.B (A0)+,-(A5) ! Prepisovanje stevila B1CB CMPA.L A3,A0 54C8 DBCC D0,FFFAH FFFA 1B3C MOVE.B 0DH,-(A5) 000D 264E MOVEA.L A6,A3 6100 BSR F4A2H ! Pretvorba iz ASCII zapisa v stevilo F4A2 240E MOVE.L A6,D2 948B SUB.L A3,D2 4CDF MOVEM.L (A7)+,D4,D5,D6,D7,A0,A1,A2,A3 0FF0 4E5E UNLK A6 D1C2 ADDA.L D2,A0 34FC MOVE.W 6006H,(A2)+ ! 6006 BRA 06H 6006 240A MOVE.L A2,D2 24C0 MOVE.L D0,(A2)+ ! Konstanta v prevodu 34C1 MOVE.W D1,(A2)+ 34FC MOVE.W 247CH,(A2)+ ! 247C MOVEA.L XXXXXXXXH,A2 247C 948C SUB.L A4,D2 24C2 MOVE.L D2,(A2)+ ! Naslov konstante 3004 MOVE.W D4,D0 ! Staro stanje prevajanja v D0 383C MOVE.W 8000H,D4 ! Novo stanje v D4 8000 0C40 CMPI.W 0000H,D0 ! Samo prepisovanje? 0000 660E BNE 0EH 24FC MOVE.L 2034A800H,(A2)+ ! MOVE.L 00H(A4,A2),D0 2034 A800 24FC MOVE.L 3234A804H,(A2)+ ! MOVE.L 04H(A4,A2),D1 3234 A804 6040 BRA 40H 0C40 CMPI.W 0004H,D0 ! 0004 6608 BNE 08H 0A6A EORI.W 8000H,FFF4H(A2) ! Pomnozi konstanto z -1 8000 FFF4 60E4 BRA E4H 34FC MOVE.W 4EADH,(A2)+ ! 4EAD JSR XXXXH(A5) 4EAD 0C40 CMPI.W 8002H,D0 ! Sestevanje 8002 6606 BNE 06H 34FC MOVE.W 0000H,(A2)+ 0000 6022 BRA 22H 0C40 CMPI.W 8004H,D0 ! Odstevanje 8004 6606 BNE 06H 34FC MOVE.W 0010H,(A2)+ 0010 6016 BRA 16H 0C40 CMPI.W 8001H,D0 ! Mnozenje 8001 6606 BNE 06H 34FC MOVE.W 007CH,(A2)+ 007C 600A BRA 0AH 0C40 CMPI.W 8008H,D0 ! Deljenje 8008 6608 BNE 08H 34FC MOVE.W 00DCH,(A2)+ 00DC 6000 BRA FE8EH ! Iskanje novega znaka >--->> FE8E 2248 MOVE.L A0,A1 ! Napaka - nedovoljen izraz 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS *** Spremenljivke *** 0C00 CMPI.B 40H,D0 ! Spremenljivka? 0040 6500 BCS 01DEH 01DE 5388 SUBQ.L 01H,A0 7406 MOVEQ 06H,D2 E198 ROL.L 08H,D0 ! Iskanje imena spremenljivke E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 40H,D0 ! Crka? 0040 640A BCC 0AH 0C00 CMPI.B 3AH,D0 ! Stevilka? 003A 6408 BCC 08H 0C00 CMPI.B 30H,D0 0030 55CA DBCS D2,FFE6H FFE6 1600 MOVE.B D0,D3 E198 ROL.L 08H,D0 ! Polnjenje z niclami E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 4240 CLR.W D0 51CA DBF D2,FFF6H FFF6 4840 SWAP D0 0C03 CMPI.B 28H,D3 ! Indeksirana spremenljivka? 0028 6700 BEQ 00A4H ! >>---> 00A4 5388 SUBQ.L 01H,A0 2A47 MOVEA.L D7,A5 ! A5 = kazalec v tabeli spremenljivk B29D CMP.L (A5)+,D1 ! Iskanje po tabeli <---<< 6704 BEQ 04H 508D ADDQ.L 08H,A5 60F8 BRA F8H B05D CMP.W (A5)+,D0 6704 BEQ 04H 5C8D ADDQ.L 06H,A5 60F0 BRA F0H 34FC MOVE.W 247CH,(A2)+ ! MOVE.L XXXXXXXXH,A2 247C 9BCC SUBA.L A4,A5 ! Relativni naslov v A5 24CD MOVE.L A5,(A2)+ 3004 MOVE.W D4,D0 ! Staro stanje v D0 <---<< 383C MOVE.W 8000H,D4 8000 0C40 CMPI.W 0000H,D0 ! Samo prepisovanje? 0000 660E BNE 0EH 24FC MOVE.L 2034A800H,(A2)+ ! MOVE.L 00H(A4,A2),D0 2034 A800 24FC MOVE.L 3234A804H,(A2)+ ! MOVE.W 04H(A4,A2),D1 3234 A804 6060 BRA 60H 0C40 CMPI.W 0004H,D0 ! Prepisovanje krat -1 0004 6614 BNE 14H 24FC MOVE.L 2034A800H,(A2)+ ! MOVE.L 00H(A4,A2),D0 2034 A800 24FC MOVE.L 3234A804H,(A2)+ ! MOVE.W 04H(A4,A2),D1 3234 A804 24FC MOVE.L 0840001FH,(A2)+ ! BCHG 1FH,D0 0840 001F 6046 BRA 46H 0C40 CMPI.W 8010H,D0 ! Prepisovanje nazaj v spremenljivko 8010 660E BNE 0EH 24FC MOVE.L 2980A800H,(A2)+ ! MOVE.L D0,00H(A4,A2) 2980 A800 24FC MOVE.L 3981A804H,(A2)+ ! MOVE.W D1,04H(A4,A2) 3981 A804 6032 BRA 32H 34FC MOVE.W 4EADH,(A2)+ ! JSR XXXXH(A5) 4EAD 0C40 CMPI.W 8002H,D0 ! Sestevanje 8002 6606 BNE 06H 34FC MOVE.W 0000H,(A2)+ 0000 6022 BRA 22H 0C40 CMPI.W 8004H,D0 ! Odstevanje 8004 6606 BNE 06H 34FC MOVE.W 0010H,(A2)+ 0010 6016 BRA 16H 0C40 CMPI.W 8001H,D0 ! Mnozenje 8001 6606 BNE 06H 34FC MOVE.W 007CH,(A2)+ 007C 600A BRA 0AH 0C40 CMPI.W 8008H,D0 ! Deljenje 8008 6608 BNE 08H 34FC MOVE.W 00DCH,(A2)+ 00DC 6000 BRA FDACH ! Iskanje novega znaka >>---> FDAC 2248 MOVEA.L A0,A1 ! Napaka - nepravilen izraz 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS *** Indeksirane spremenljivke *** 2A4C MOVEA.L A4,A5 ! A5 na zacetek indeksiranih spremenljiv BBC7 CMPA.L D7,A5 ! Konec tabele? <---<< 6508 BCS 08H 2248 MOVEA.L A0,A1 ! Napaka - nedeklarirano polje 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS B29D CMP.L (A5)+,D1 ! Primerjava imen 6704 BEQ 04H 548D ADDQ.L 02H,A5 6004 BRA 04H B05D CMP.W (A5)+,D0 671E BEQ 1EH 4840 SWAP D0 301D MOVE.W (A5)+,D0 ! Preskok polja - mnozenje dimenzij 7406 MOVEQ 06H,D2 600C BRA 0CH 2602 MOVE.L D2,D3 4843 SWAP D3 C4D5 MULU (A5),D2 C6DD MULU (A5)+,D3 4843 SWAP D3 D483 ADD.L D3,D2 51C8 DBF D0,FFF2H FFF2 DBC2 ADDA.L D2,A5 4840 SWAP D0 60CA BRA CAH ! Nova primerjava >>---> 34FC MOVE.L 247CH,(A2)+ ! MOVE.L XXXXXXXXH,A2 247C 9BCC SUBA.L A4,A5 ! Relativni naslov v A5 24CD MOVE.L A5,(A2)+ 2C4F MOVEA.L A7,A6 ! A6 = stari SP / Naslovi indeksov v SP 0C10 CMPI.B 40H,(A0) ! Indeks je spremenljivka? <---<< 0040 6542 BCS 42H ! Konstanta >>---> 7406 MOVEQ 06H,D2 E198 ROL.L 08H,D0 ! Iskanje imena spremenljivke E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 40H,D0 0040 640A BCC 0AH 0C00 CMPI.B 3AH,D0 003A 6408 BCC 08H 0C00 CMPI.B 30H,D0 0030 55CA DBCS D2,FFE6H FFE6 E198 ROL.L 08H,D0 E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 4240 CLR.W D0 51CA DBF D2,FFF6H FFF6 4840 SWAP D0 2A47 MOVEA.L D7,A5 ! A5 = naslov spremenljivke BBC6 CMPA.L D6,A5 ! Kontrola <<---<< 644A BCC 4AH B29D CMP.L (A5)+,D1 6704 BEQ 04H 508D ADDQ.L 08H,A5 60F4 BRA F4H B05D CMP.W (A5)+,D0 673E BEQ 3EH 5C8D ADDQ.L 06H,(A5) 60EC BRA ECH 7000 MOVEQ 00H,D0 ! Indeks je konstanta <---<< 1218 MOVE.B (A0)+,D1 ! <---<< 0C01 CMPI.B 3AH,D1 003A 6412 BCC 12H 0C01 CMPI.B 30H,D1 0030 650C BCC 0CH C0FC MULU 000AH,D0 000A 0241 ANDI.W 000FH,D1 000F D041 ADD.W D1,D0 60E6 BRA E6H 7200 MOVEQ 00H,D1 ! Pretvorba v exp/mantisa format v D0,D1 4A80 TST.L D0 670E BEQ 0EH 323C MOVE.L 801EH,D1 801E E380 ASL.L 01H,D0 5BC9 DBMI D1,FFFCH FFFC 0840 BCHG 1FH,D0 001F 34FC MOVE.W 6006H,(A2)+ ! BRA 06H Preskok konstante 6006 2A4A MOVEA.L A2,A5 24C0 MOVE.L D0,(A2)+ ! Konstanta v prevod 34C1 MOVE.W D1,(A2)+ 9BCC SUBA.L A4,A5 ! <---<< 2F0D MOVE.L A5,-(A7) ! Naslov indeksa v SP 0C20 CMPI.B 2CH,-(A0) ! "," 002C 6606 BNE 06H 5288 ADDQ.L 01H,A0 6000 BRA FF70H ! Naslednji indeks >>---> FF70 0C18 CMPI.B 29H,(A0)+ ! ")" 0029 670A BEQ 0AH 2E4E MOVEA.L A6,A7 ! Napaka - napacen znak 2248 MOVEA.L A0,A1 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 200E MOVE.L A6,D0 ! Naslovi indeksov v prevod 2A4E MOVEA.L A6,A5 908F SUB.L A7,D0 E488 LSR.L 02H,D0 ! Razliko deli s 4 24FC MOVE.L 4EAD09C0H,(A2)+ ! JSR 09C0H(A5) Racunanje el.i. 4EAD 09C0 34C0 MOVE.W D0,(A2)+ ! Stevilo indeksov 6002 BRA 02H 24E5 MOVE.L -(A5),(A2)+ ! Prepisovanje naslovov 51C8 DBF D0,FFFCH FFFC 2E4E MOVEA.L A6,A7 6000 BRA FE7AH FE7A *** Heksadecimalna strojna koda *** 0C00 CMPI.B 26H,D0 ! "&" 0026 6668 BNE 68H 0044 ORI.W 8000H,D4 ! Stanje 8000 0C18 CMPI.B 3CH,(A0)+ ! "<" 003C 6640 BNE 40H ! Napaka 223C MOVE.L 0000FFFFH,D1 <---<< 0000 FFFF B1CB CMPA.L A3,A0 ! <---<< 6450 BCC 50H 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 3EH,D0 ! ">" 003E 6748 BEQ 48H 0C00 CMPI.B 21H,D0 ! Presledek 0021 65EE BCS EEH 0C00 CMPI.B 30H,D0 ! Stevilka 0030 6522 BCS 22H ! Napaka 0C00 CMPI.B 3AH,D0 003A 6406 BCC 06H 0400 SUBI.B 30H,D0 0030 6022 BRA 22H 0C00 CMPI.B 60H,D0 ! Mala crka 0060 6504 BCS 04H 0400 SUBI.B 20H,D0 0020 0C00 CMPI.B 41H,D0 ! "A" 0041 6506 BCS 06H ! Napaka 0C00 CMPI.B 47H,D0 ! "G" 0047 6508 BCS 08H 2248 MOVEA.L A0,A1 ! Napaka <---<< 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 0400 SUBI.B 37H,D0 0037 E989 LSL.L 04H,D1 6B04 BMI 04H D200 ADD.B D0,D1 60B2 BRA B2H D200 ADD.B D0,D1 34C1 MOVE.W D1,(A2)+ 60A6 BRA A6H 6000 BRA FC34H ! Iskanje novega znaka >>---> FC34 *** Funkcije *** 0C00 CMPI.B 24H,D0 ! "$" 0024 6708 BEQ 08H 2248 MOVEA.L A0,A1 ! Napaka - nepoznan znak 703F MOVEQ 3FH,D0 4E40 TRAP0 4E75 RTS 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 60H,D0 ! Male crke v velike 0060 6504 BCS 04H 0400 SUBI.B 20H,D0 0020 6104 BSR 04H 6000 BRA FC14H ! Iskanje novega znaka >>---> FC14 0C00 CMPI.B 3AH,D0 ! Funkcija $: 003A 660A BNE 0AH 7800 MOVEQ 00H,D4 0C18 CMPI.B 29H,(A0)+ ! ")" 0029 66FA BNE FAH 4E75 RTS 0C00 CMPI.B 3CH,D0 ! Funkcija $< 003C 661A BNE 1AH 7800 MOVEQ 00H,D4 303C MOVE.W 7000H,D0 ! MOVEQ XXH,D0 7000 1018 MOVE.B (A0)+,D0 ! <---<< 0C00 CMPI.B 3EH,D0 003E 670A BEQ 0AH 34C0 MOVE.W D0,(A2)+ 34FC MOVE.W 4E40H,(A2)+ ! TRAP0 4E40 B1CB CMPA.L A3,A0 65EE BCS EEH 4E75 RTS 0C00 CMPI.B 52H,D0 ! Funkcija $r 0052 6608 BNE 08H 7800 MOVEQ 00H,D4 34FC MOVE.W 4E75H,(A2)+ ! RTS 4E75 4E75 0C00 CMPI.B 4FH,D0 ! Funkcija $o 004F 663C BNE 3CH 611C BSR 1CH 303C MOVE.W 7400H,D0 ! MOVEQ XXH,D2 7400 1001 MOVE.B D1,D0 34C0 MOVE.W D0,(A2)+ 6112 BSR 12H 303C MOVE.W 7600H,D0 ! MOVEQ XXH,D3 7600 1001 MOVE.B D1,D0 34C0 MOVE.W D0,(A2)+ 5388 SUBQ.L 01H,A0 24FC MOVE.L 4EAD028EH,(A2)+ ! JSR 028EH(A5) 4EAD 028E 4E75 RTS 7200 MOVEQ 00H,D1 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 30H,D0 0030 6512 BCS 12H 0C00 CMPI.B 3AH,D0 003A 640C BCC 0CH C2FC MULU 000AH,D1 000A 0240 ANDI.W 000FH,D0 000F D240 ADD.W D0,D1 60E6 BRA E6H 4E75 RTS 0C00 CMPI.B 4AH,D0 ! Funkcija $j 004A 6608 BNE 08H 2C7C MOVEA.L 4EF4A800H,A6 ! JMP 00H(A4,A2) 4EF4 A800 600E BRA 0EH 0C00 CMPI.B 5AH,D0 ! Funkcija $z 005A 6600 BNE 0086H 0086 2C7C MOVEA.L 4EB4A800H,A6 ! JSR 00H(A4,A2) 4EB4 A800 7800 MOVEQ 00H,D4 ! Stanje prevajanja 203C MOVE.L 0800001FH,D0 ! BTST 1FH,D0 0800 001F 0C10 CMPI.B 2BH,(A0) ! "+"? 002B 6608 BNE 08H 24C0 MOVE.L D0,(A2)+ 34FC MOVE.W 660AH,(A2)+ ! BNE 0AH 660A 600C BRA 0CH 0C10 CMPI.B 2DH,(A0) ! "-"? 002D 6608 BNE 08H 24C0 MOVE.L D0,(A2)+ 34FC MOVE.W 670AH,(A2)+ ! BEQ 0AH 670A 5288 ADDQ.L 01H,A0 7406 MOVEQ 06H,D2 E198 ROL.L 08H,D0 ! Dolocanje imena labele E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 1018 MOVE.B (A0)+,D1 0C00 CMPI.B 30H,D0 0030 6514 BCS 14H 0C00 CMPI.B 3AH,D0 003A 640E BCC 0EH 51CA DBF D2,FFEAH FFEA 2248 MOVEA.L A0,A1 ! Napaka - prevec znakov za ime <---<< 703F MOVEQ 3FH,D0 4E40 TRAP0 588F ADDQ.L 04H,A7 ! SP+4 4E75 RTS 5388 SUBQ.L 01H,A0 E198 ROL.L 08H,D0 ! Polnjenje z niclami E199 ROL.L 08H,D1 1200 MOVE.B D0,D1 4240 CLR.W D0 51CA DBF D2,FFF6H FFF6 4840 SWAP D0 2A46 MOVEA.L D6,A5 ! A5 = kazalec v tabeli label BBC5 CMPA,L D5,A5 ! Konec tabele? <---<< 64E0 BCC E0H ! Napaka - skok na neobstojeco labelo >>---> B29D CMP.L (A5)+,D1 6706 BEQ 06H 588D ADDQ.L 04H,A5 508D ADDQ.L 08H,A5 60F2 BRA F2H B05D CMP.W (A5)+,D0 6706 BEQ 06H 588D ADDQ.L 04H,A5 5C8D ADDQ.L 06H,A5 60E8 BRA E8H 34FC MOVE.W 247CH,(A2)+ ! MOVE.L XXXXXXXXH,A2 247C 9BCC SUBA.L A4,A5 ! Relativni naslov v A5 24CD MOVE.L A5,(A2)+ 24CE MOVE.L A6,(A2)+ ! Ukaz iz A6 4E75 RTS 34FC MOVE.W 4EADH,(A2)+ ! JSR XXXXH,(A5) 4EAD 0C00 CMPI.B 41H,D0 ! Funkcija $a 0041 6606 BNE 06H 34FC MOVE.W 0486H,(A2)+ ! ATAN 0486 4E75 RTS 0C00 CMPI.B 42H,D0 ! Funkcija $b 0042 6606 BNE 06H 34FC MOVE.W 03DCH,(A2)+ ! ABS 03DC 4E75 RTS 0C00 CMPI.B 43H,D0 ! Funkcija $c 0043 6606 BNE 06H 34FC MOVE.W 05F8H,(A2)+ ! COS 05F8 4E75 RTS 0C00 CMPI.B 44H,D0 ! Funkcija $d 0044 6606 BNE 06H 34FC MOVE.W 05D6H,(A2)+ ! ACOS 05D6 4E75 RTS 0C00 CMPI.B 45H,D0 ! Funkcija $e 0045 6606 BNE 06H 34FC MOVE.W 0840H,(A2)+ ! EXP 0840 4E75 RTS 0C00 CMPI.B 46H,D0 ! Funkcija $f 0046 6606 BNE 06H 34FC MOVE.W 03B2H,(A2)+ ! FRAC 03B2 4E75 RTS 0C00 CMPI.B 48H,D0 ! Funkcija $h 0048 6606 BNE 06H 34FC MOVE.W 0578H,(A2)+ ! ASIN 0578 4E75 RTS 0C00 CMPI.B 49H,D0 ! Funkcija $i 0049 6606 BNE 06H 34FC MOVE.W 0396H,(A2)+ ! INT 0396 4E75 RTS 0C00 CMPI.B 4BH,D0 ! Funkcija $k 004B 6606 BNE 06H 34FC MOVE.W 0154H,(A2)+ ! Tastatura 0154 4E75 RTS 0C00 CMPI.B 4CH,D0 ! Funkcija $l 004C 6606 BNE 06H 34FC MOVE.W 074AH,(A2)+ ! LOG 074A 4E75 RTS 0C00 CMPI.B 4DH,D0 ! Funkcija $m 004D 660A BNE 0AH 383C MOVE.W 8000H,D4 8000 34FC MOVE.W 0190H,(A2)+ ! ORD 0190 4E75 RTS 0C00 CMPI.B 4EH,D0 ! Funkcija $n 004E 660A BNE 0AH 383C MOVE.W 8000H,D4 8000 34FC MOVE.W 01B0H,(A2)+ ! Stevilo 01B0 4E75 RTS 0C00 CMPI.B 50H,D0 ! Funkcija $p 0050 6606 BNE 06H 34FC MOVE.W 0476H,(A2)+ ! SIGN 0476 4E75 RTS 0C00 CMPI.B 51H,D0 ! Funkcija $q 0051 6606 BNE 06H 34FC MOVE.W 03E4H,(A2)+ ! SQRT 03E4 4E75 RTS 0C00 CMPI.B 53H,D0 ! Funkcija $s 0053 6606 BNE 06H 34FC MOVE.W 05ECH,(A2)+ ! SIN 05EC 4E75 RTS 0C00 CMPI.B 54H,D0 ! Funkcija $t 0054 6606 BNE 06H 34FC MOVE.W 0728H,(A2)+ ! TAN 0728 4E75 RTS 0C00 CMPI.B 55H,D0 ! Funkcija $u 0055 6606 BNE 06H 34FC MOVE.W 08E6H,(A2)+ ! Ura 08E6 4E75 RTS 0C00 CMPI.B 57H,D0 ! Funkcija $w 0057 6606 BNE 06H 34FC MOVE.W 025CH,(A2)+ ! CHR 025C 4E75 RTS 2248 MOVEA.L A0,A1 ! Napaka - neznana funkcija 703F MOVEQ 3FH,D0 4E40 TRAP0 588F ADDQ.L 04H,A7 ! SP+4 4E75 RTS *** Konec prevajalnika *** 41FA LEA 0010H(PC),A0 ! Ukaz H: HELP ali Napaka 0010 1018 MOVE.B (A0)+,D0 0C00 CMPI.B 80H,D0 0080 6502 BCS 02H 4E75 RTS 4E40 TRAP0 60F2 BRA F2H 000000000D1B001F ! Ini izpisa 2A2A2A20415641494C41424C45204F50 ! *** AVAILABLE OP 45524154494E472053595354454D2043 ! ERATING SYSTEM C 4F4D4D414E4453202A2A2A200D0A ! OMMANDS *** 41202020202041626F7274202D20536F ! A Abort - So 66742052455345540D0A ! ft RESET 422020202020456E746572204175746F ! B Enter Auto 737461727420436F6D6D616E64200D0A ! start Command 43203C736F757263653E203C736F7572 ! C C 6F70792052414D2046696C6573200D0A ! opy RAM Files 442020202020466C6F70707920446973 ! D Floppy Dis 6B2046696C65204469726563746F7279 ! k File Directory 0D0A ! 45203C66696C656E616D653E20202020 ! E 20456469742041534349492046696C65 ! Edit ASCII File 20363320436F6C756D6E202F2E42414B ! 63 Column /.BAK 0D0A ! 46203C7374617274747261636B3E203C ! F < 656E64747261636B3E2020202020466F ! endtrack> Fo 726D6174202F2056657269667920466C ! rmat / Verify Fl 6F707079204469736B200D0A ! oppy Disk 47203C66696C656E616D653E20202020 ! G 20436F6D70696C65202E535243203E3E ! Compile .SRC >> 2D2D2D3E3E202E455845202F2E4F4C44 ! --->> .EXE /.OLD 0D0A ! 48202020202048454C503A2053686F77 ! H HELP: Show 205468697320546578740D0A ! This Text 49203C64657374696E6174696F6E3E20 ! I 20202020496E7075742046696C652046 ! Input File F 726F6D2052532D32333220506F727420 ! rom RS-232 Port 546F2052414D0D0A ! To RAM 4A203C6F6C646E616D653E203C6E6577 ! J Rename 2052414D2046696C65200D0A ! RAM File 4B203C66696C656E616D653E20202020 ! K 204B696C6C2052414D2046696C650D0A ! Kill RAM File 4C203C66696C656E616D653E20202020 ! L 204C6F61642046726F6D20466C6F7070 ! Load From Flopp 79204469736B20546F2052414D200D0A ! y Disk To RAM 4D202020202052414D2046696C652044 ! M RAM File D 69726563746F72790D0A ! irectory 4E203C73746172743E203C6C656E6774 ! N New Memor 79205370616365200D0A ! y Space 4F203C736F757263653E20202020204F ! O O 75747075742046696C652046726F6D20 ! utput File From 52414D20546F2052532D32333220506F ! RAM To RS-232 Po 72740D0A ! rt 50203C73706565643E203C6C656E6774 ! P 506172616D65746572732052532D3233 ! Parameters RS-23 3220506F72740D0A ! 2 Port 512020202020517569740D0A ! Q Quit 52203C66696C656E616D653E20202020 ! R 2052756E202E455845200D0A ! Run .EXE 53203C66696C656E616D653E20202020 ! S 20536176652046726F6D2052414D2054 ! Save From RAM T 6F20466C6F707079204469736B200D0A ! o Floppy Disk 54203C736F757263653E202020202054 ! T T 7970652041534349492046696C650D0A ! ype ASCII File 55203C79796D6D646468686D6D73733E ! U 2020202020536574202F205265616420 ! Set / Read 5265616C2054696D6520436C6F636B20 ! Real Time Clock 0D0A ! 56203C736F757263653E203C736F7572 ! V Verify - 20436F6D706172652054776F2052414D ! Compare Two RAM 2046696C65730D0A ! Files 57203C616464726573733E203C646174 ! W
Write / R 656164204D656D6F7279204C6F636174 ! ead Memory Locat 696F6E200D0A ! ion 58203C66696C656E616D653E20202020 ! X 2045786563757465202E434D44204669 ! Execute .CMD Fi 6C650D0A ! le 59203C66696C656E616D653E20202020 ! Y 20456469742041534349492046696C65 ! Edit ASCII File 20383420436F6C756D6E202F2E42414B ! 84 Column /.BAK 0D0A ! FFFF ! Oznaka konca *** Konec ***