         OPT h-F+
;------------------------------------------------
         ORG $C000

         ;
         ; suma kontrolna pierwszej części ROM
         ;
CHSRO1   dta $11,$92,$10,$05,$83,$00,$42,$42
         dta $00,$00,$01,$02
;------------------------------------------------
         ORG $C00C

         ;
         ; inicjowanie przerwań MNI
         ;
NMIENBL  dta $A9,$40,$8D,$0E,$D4,$AD,$13,$D0
         dta $8D,$FA,$03,$60
;------------------------------------------------
         ORG $C018

         ;
         ; rozpoznanie przerwania NMI
         ;
NMIFIRST dta $2C,$0F,$D4,$10,$03,$6C,$00,$02
         dta $D8,$48,$8A,$48,$98,$48,$8D,$0F
         dta $D4,$6C,$22,$02
;------------------------------------------------
         ORG $C02C

         ;
         ; skok według wektora VIMIRQ
         ;
JMPIRQV  dta $D8,$6C,$16,$02
;------------------------------------------------
         ORG $C030

         ;
         ; rozpoznanie przerwania IRQ
         ;
SINDRYI  dta $48,$AD,$0E,$D2,$29,$20,$D0,$0D
         dta $A9,$DF,$8D,$0E,$D2,$A5,$10,$8D
         dta $0E,$D2,$6C,$0A,$02,$8A,$48,$AD
         dta $FF,$D1,$2D,$49,$02,$F0,$03,$6C
         dta $38,$02,$A2,$06,$BD,$CF,$C0,$E0
         dta $05,$D0,$04,$25,$10,$F0,$05,$2C
         dta $0E,$D2,$F0,$06,$CA,$10,$ED,$4C
         dta $A0,$C0,$49,$FF,$8D,$0E,$D2,$A5
         dta $10,$8D,$0E,$D2,$E0,$00,$D0,$05
         dta $AD,$6D,$02,$D0,$23,$BD,$D7,$C0
         dta $AA,$BD,$00,$02,$8D,$8C,$02,$BD
         dta $01,$02,$8D,$8D,$02,$68,$AA,$6C
         dta $8C,$02
;------------------------------------------------
         ORG $C092

         ;
         ; przerwanie klawisza BREAK
         ;
BREAKIRQ dta $A9,$00,$85,$11,$8D,$FF,$02,$8D
         dta $F0,$02,$85,$4D,$68,$40,$68,$AA
         dta $2C,$02,$D3,$10,$06,$AD,$00,$D3
         dta $6C,$02,$02,$2C,$03,$D3,$10,$06
         dta $AD,$01,$D3,$6C,$04,$02,$68,$8D
         dta $8C,$02,$68,$48,$29,$10,$F0,$07
         dta $AD,$8C,$02,$48,$6C,$06,$02,$AD
         dta $8C,$02,$48
;------------------------------------------------
         ORG $C0CD

         ;
         ; powrót z przerwania
         ;
PLARTI   dta $68
;------------------------------------------------
         ORG $C0CE

         ;
         ; powrót z przerwania
         ;
RTI      dta $40
;------------------------------------------------
         ORG $C0CF

         ;
         ; tabela masek bitowych dla SINDRYI
         ;
MASKTAB  dta $80,$40,$04,$02,$01,$08,$10,$20
;------------------------------------------------
         ORG $C0D7

         ;
         ; tabela wektorów przerwań dla SINDRYI
         ;
VECTAB   dta $36,$08,$14,$12,$10,$0E,$0C,$0A
;------------------------------------------------
         ORG $C0DF

         ;
         ; oczekiwanie na RESET
         ;
WAITRST  dta $4C,$DF,$C0
;------------------------------------------------
         ORG $C0E2

         ;
         ; systemowe przerwanie synchronizacji (VBLK)
         ;
SYSVBL   dta $E6,$14,$D0,$08,$E6,$4D,$E6,$13
         dta $D0,$02,$E6,$12,$A9,$FE,$A2,$00
         dta $A4,$4D,$10,$06,$85,$4D,$A6,$13
         dta $A9,$F6,$85,$4E,$86,$4F,$AD,$C5
         dta $02,$45,$4F,$25,$4E,$8D,$17,$D0
         dta $A2,$00,$20,$55,$C2,$D0,$03,$20
         dta $4F,$C2,$A5,$42,$D0,$08,$BA,$BD
         dta $04,$01,$29,$04,$F0,$03,$4C,$8A
         dta $C2,$AD,$13,$D0,$CD,$FA,$03,$D0
         dta $B4,$AD,$0D,$D4,$8D,$35,$02,$AD
         dta $0C,$D4,$8D,$34,$02,$AD,$31,$02
         dta $8D,$03,$D4,$AD,$30,$02,$8D,$02
         dta $D4,$AD,$2F,$02,$8D,$00,$D4,$AD
         dta $6F,$02,$8D,$1B,$D0,$AD,$6C,$02
         dta $F0,$0E,$CE,$6C,$02,$A9,$08,$38
         dta $ED,$6C,$02,$29,$07,$8D,$05,$D4
         dta $A2,$08,$8E,$1F,$D0,$58,$BD,$C0
         dta $02,$45,$4F,$25,$4E,$9D,$12,$D0
         dta $CA,$10,$F2,$AD,$F4,$02,$8D,$09
         dta $D4,$AD,$F3,$02,$8D,$01,$D4,$A2
         dta $02,$20,$55,$C2,$D0,$03,$20,$52
         dta $C2,$A2,$02,$E8,$E8,$BD,$18,$02
         dta $1D,$19,$02,$F0,$06,$20,$55,$C2
         dta $9D,$26,$02,$E0,$08,$D0,$EC,$AD
         dta $0F,$D2,$29,$04,$F0,$08,$AD,$F1
         dta $02,$F0,$03,$CE,$F1,$02,$AD,$2B
         dta $02,$F0,$3E,$AD,$0F,$D2,$29,$04
         dta $D0,$32,$CE,$2B,$02,$D0,$32,$AD
         dta $6D,$02,$D0,$2D,$AD,$DA,$02,$8D
         dta $2B,$02,$AD,$09,$D2,$C9,$9F,$F0
         dta $20,$C9,$83,$F0,$1C,$C9,$84,$F0
         dta $18,$C9,$94,$F0,$14,$29,$3F,$C9
         dta $11,$F0,$0E,$AD,$09,$D2,$8D,$FC
         dta $02,$4C,$F3,$C1,$A9,$00,$8D,$2B
         dta $02,$AD,$00,$D3,$4A,$4A,$4A,$4A
         dta $8D,$79,$02,$8D,$7B,$02,$AD,$00
         dta $D3,$29,$0F,$8D,$78,$02,$8D,$7A
         dta $02,$AD,$10,$D0,$8D,$84,$02,$8D
         dta $86,$02,$AD,$11,$D0,$8D,$85,$02
         dta $8D,$87,$02,$A2,$03,$BD,$00,$D2
         dta $9D,$70,$02,$9D,$74,$02,$CA,$10
         dta $F4,$8D,$0B,$D2,$A2,$02,$A0,$01
         dta $B9,$78,$02,$4A,$4A,$4A,$9D,$7D
         dta $02,$9D,$81,$02,$A9,$00,$2A,$9D
         dta $7C,$02,$9D,$80,$02,$CA,$CA,$88
         dta $10,$E6,$6C,$24,$02
;------------------------------------------------
         ORG $C24F

         ;
         ; skok według wektora TIMVEC1
         ;
JMPTIM1  dta $6C,$26,$02
;------------------------------------------------
         ORG $C252

         ;
         ; skok według wektora TIMVEC2
         ;
JMPTIM2  dta $6C,$28,$02
;------------------------------------------------
         ORG $C255

         ;
         ; zmniejszenie licznika systemowego
         ;
DECTIM   dta $BC,$18,$02,$D0,$08,$BC,$19,$02
         dta $F0,$10,$DE,$19,$02,$DE,$18,$02
         dta $D0,$08,$BC,$19,$02,$D0,$03,$A9
         dta $00,$60,$A9,$FF,$60
;------------------------------------------------
         ORG $C272

         ;
         ; ustawianie wektorów przerwania VBLK
         ;
         ;
         ; ustawianie wektorów przerwania VBLK
         ;
SETVBLV  dta $0A,$8D,$2D,$02,$8A,$A2,$05,$8D
         dta $0A,$D4,$CA,$D0,$FD,$AE,$2D,$02
         dta $9D,$17,$02,$98,$9D,$16,$02,$60
;------------------------------------------------
         ORG $C28A

         ;
         ; zakończenie przerwania VBLK
         ;
EXITVBL  dta $68,$A8,$68,$AA,$68,$40
;------------------------------------------------
         ORG $C290

         ;
         ; gorący start systemu
         ;
RESETWM  dta $78,$AD,$13,$D0,$CD,$FA,$03,$D0
         dta $2F,$6A,$90,$05,$20,$C9,$C4,$D0
         dta $27,$AD,$44,$02,$D0,$22,$A9,$FF
         dta $D0,$20
;------------------------------------------------
         ORG $C2AA

         ;
         ; start systemu po naciśnięciu RESET
         ;
RESET    dta $78,$A2,$8C,$88,$D0,$FD,$CA,$D0
         dta $FA,$AD,$3D,$03,$C9,$5C,$D0,$0E
         dta $AD,$3E,$03,$C9,$93,$D0,$07,$AD
         dta $3F,$03,$C9,$25,$F0,$C8
;------------------------------------------------
         ORG $C2C8

         ;
         ; zimny start systemu
         ;
RESETCD  dta $A9,$00,$85,$08,$78,$D8,$A2,$FF
         dta $9A,$20,$71,$C4,$A9,$01,$85,$01
         dta $A5,$08,$D0,$52,$A9,$00,$A0,$08
         dta $85,$04,$85,$05,$A9,$FF,$91,$04
         dta $D1,$04,$F0,$02,$46,$01,$A9,$00
         dta $91,$04,$D1,$04,$F0,$02,$46,$01
         dta $C8,$D0,$E9,$E6,$05,$A6,$05,$E4
         dta $06,$D0,$E1,$A9,$23,$85,$0A,$A9
         dta $F2,$85,$0B,$AD,$01,$D3,$29,$7F
         dta $8D,$01,$D3,$20,$73,$FF,$B0,$05
         dta $20,$92,$FF,$90,$02,$46,$01,$AD
         dta $01,$D3,$09,$80,$8D,$01,$D3,$A9
         dta $FF,$8D,$44,$02,$D0,$22,$A2,$00
         dta $AD,$EC,$03,$F0,$07,$8E,$0E,$00
         dta $8E,$0F,$00,$8A,$9D,$00,$02,$E0
         dta $ED,$B0,$03,$9D,$00,$03,$CA,$D0
         dta $F3,$A2,$10,$95,$00,$E8,$10,$FB
         dta $A2,$00,$AD,$01,$D3,$29,$02,$F0
         dta $01,$E8,$8E,$F8,$03,$A9,$5C,$8D
         dta $3D,$03,$A9,$93,$8D,$3E,$03,$A9
         dta $25,$8D,$3F,$03,$A9,$02,$85,$52
         dta $A9,$27,$85,$53,$AD,$14,$D0,$29
         dta $0E,$D0,$08,$A9,$05,$A2,$01,$A0
         dta $28,$D0,$06,$A9,$06,$A2,$00,$A0
         dta $30,$8D,$DA,$02,$86,$62,$8C,$D9
         dta $02,$A2,$25,$BD,$4B,$C4,$9D,$00
         dta $02,$CA,$10,$F7,$A2,$0E,$BD,$2E
         dta $C4,$9D,$1A,$03,$CA,$10,$F7,$20
         dta $35,$C5,$58,$A5,$01,$D0,$15,$AD
         dta $01,$D3,$29,$7F,$8D,$01,$D3,$A9
         dta $02,$8D,$F3,$02,$A9,$E0,$8D,$F4
         dta $02
;------------------------------------------------
         ORG $C3C1

         ;
         ; skok do testu komputera
         ;
GOMEMTST dta $4C,$03,$50,$A2,$00,$86,$06,$AE
         dta $E4,$02,$E0,$B0,$B0,$0D,$AE,$FC
         dta $BF,$D0,$08,$E6,$06,$20,$C9,$C4
         dta $20,$29,$C4,$A9,$03,$A2,$00,$9D
         dta $42,$03,$A9,$48,$9D,$44,$03,$A9
         dta $C4,$9D,$45,$03,$A9,$0C,$9D,$4A
         dta $03,$20,$56,$E4,$10,$03,$4C,$AA
         dta $C2,$E8,$D0,$FD,$C8,$10,$FA,$20
         dta $6E,$C6,$A5,$06,$F0,$06,$AD,$FD
         dta $BF,$6A,$90,$06,$20,$8B,$C5,$20
         dta $39,$E7,$A9,$00,$8D,$44,$02,$A5
         dta $06,$F0,$0A,$AD,$FD,$BF,$29,$04
         dta $F0,$03
;------------------------------------------------
         ORG $C423

         ;
         ; skok według wektora CARTRUN
         ;
COLDCART dta $6C,$FA,$BF
;------------------------------------------------
         ORG $C426

         ;
         ; skok według wektora DOSVEC
         ;
DOSVECC  dta $6C,$0A,$00
;------------------------------------------------
         ORG $C429

         ;
         ; skok według wektora CARTINI
         ;
INITCART dta $6C,$FE,$BF
;------------------------------------------------
         ORG $C42C

         ;
         ; rozkazy CLC i RTS
         ;
CLCRTS   dta $18,$60
;------------------------------------------------
         ORG $C42E

         ;
         ; tabela wartości dla HATABS
         ;
INIT31A  dta $50,$30,$E4,$43,$40,$E4,$45,$00
         dta $E4,$53,$10,$E4,$4B,$20,$E4
;------------------------------------------------
         ORG $C43D

         ;
         ; meldunek błędu "BOOT ERROR"
         ;
DERRMSG  dta $42,$4F,$4F,$54,$20,$45,$52,$52
         dta $4F,$52,$9B
;------------------------------------------------
         ORG $C448

         ;
         ; nazwa edytora "E:"
         ;
NAME     dta $45,$3A,$9B
;------------------------------------------------
         ORG $C44B

         ;
         ; tabela wartości dla wektorów OS
         ;
INIT200  dta $CE,$C0,$CD,$C0,$CD,$C0,$CD,$C0
         dta $19,$FC,$2C,$EB,$AD,$EA,$EC,$EA
         dta $CD,$C0,$CD,$C0,$CD,$C0,$30,$C0
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$E2,$C0,$8A,$C2
;------------------------------------------------
         ORG $C471

         ;
         ; sprawdzenie cartridge'a
         ;
CARTGO   dta $AD,$13,$D0,$6A,$90,$0D,$AD,$FC
         dta $BF,$D0,$08,$AD,$FD,$BF,$10,$03
         dta $6C,$FE,$BF,$20,$DA,$C4,$AD,$01
         dta $D3,$09,$02,$8D,$01,$D3,$A5,$08
         dta $F0,$07,$AD,$F8,$03,$D0,$11,$F0
         dta $07,$AD,$1F,$D0,$29,$04,$F0,$08
         dta $AD,$01,$D3,$29,$FD,$8D,$01,$D3
;------------------------------------------------
         ORG $C4A9

         ;
         ; sprawdzenie wielkości RAM
         ;
GRAMHI   dta $A9,$00,$A8,$85,$05,$A9,$28,$85
         dta $06,$B1,$05,$49,$FF,$91,$05,$D1
         dta $05,$D0,$0C,$49,$FF,$91,$05,$D1
         dta $05,$D0,$04,$E6,$06,$D0,$EA,$60
;------------------------------------------------
         ORG $C4C9

         ;
         ; sprawdzenie cartridge'a
         ;
NEWCART  dta $A9,$00,$AA,$18,$7D,$F0,$BF,$E8
         dta $D0,$FA,$CD,$EB,$03,$8D,$EB,$03
         dta $60
;------------------------------------------------
         ORG $C4DA

         ;
         ; inicjowanie portów układów I/O
         ;
IOPORTIN dta $A9,$00,$AA,$8D,$03,$D3,$9D,$00
         dta $D0,$9D,$00,$D4,$9D,$00,$D2,$E0
         dta $01,$F0,$03,$9D,$00,$D3,$E8,$D0
         dta $ED,$A9,$3C,$8D,$03,$D3,$A9,$FF
         dta $8D,$01,$D3,$A9,$38,$8D,$02,$D3
         dta $8D,$03,$D3,$A9,$00,$8D,$00,$D3
         dta $A9,$FF,$8D,$01,$D3,$A9,$3C,$8D
         dta $02,$D3,$8D,$03,$D3,$AD,$01,$D3
         dta $AD,$00,$D3,$A9,$22,$8D,$0F,$D2
         dta $A9,$A0,$8D,$05,$D2,$8D,$07,$D2
         dta $A9,$28,$8D,$08,$D2,$A9,$FF,$8D
         dta $0D,$D2,$60
;------------------------------------------------
         ORG $C535

         ;
         ; inicjowanie systemu komputerowego
         ;
SYSINIT  dta $C6,$11,$A9,$92,$8D,$36,$02,$A9
         dta $C0,$8D,$37,$02,$A5,$06,$8D,$E4
         dta $02,$8D,$E6,$02,$A9,$00,$8D,$E5
         dta $02,$A9,$00,$8D,$E7,$02,$A9,$07
         dta $8D,$E8,$02,$20,$0C,$E4,$20,$1C
         dta $E4,$20,$2C,$E4,$20,$3C,$E4,$20
         dta $4C,$E4,$20,$6E,$E4,$20,$65,$E4
         dta $20,$6B,$E4,$20,$50,$E4,$A9,$6E
         dta $8D,$38,$02,$A9,$C9,$8D,$39,$02
         dta $20,$9B,$E4,$AD,$1F,$D0,$29,$01
         dta $49,$01,$8D,$E9,$03,$60
;------------------------------------------------
         ORG $C58B

         ;
         ; wstępny odczyt z dyskietki
         ;
BOOT     dta $A5,$08,$F0,$09,$A5,$09,$29,$01
         dta $F0,$33,$4C,$3B,$C6,$A9,$01,$8D
         dta $01,$03,$A9,$53,$8D,$02,$03,$20
         dta $53,$E4,$30,$21,$A9,$00,$8D,$0B
         dta $03,$A9,$01,$8D,$0A,$03,$A9,$00
         dta $8D,$04,$03,$A9,$04,$8D,$05,$03
;------------------------------------------------
         ORG $C5BB

         ;
         ; wstępny odczyt przy zimnym starcie
         ;
BLOCK1   dta $20,$59,$C6,$10,$09,$20,$3E,$C6
         dta $AD,$EA,$03,$F0,$DF,$60,$A2,$03
         dta $BD,$00,$04,$9D,$40,$02,$CA,$10
         dta $F7,$AD,$42,$02,$85,$04,$AD,$43
         dta $02,$85,$05,$AD,$04,$04,$85,$0C
         dta $AD,$05,$04,$85,$0D,$A0,$7F,$B9
         dta $00,$04,$91,$04,$88,$10,$F8,$18
         dta $A5,$04,$69,$80,$85,$04,$A5,$05
         dta $69,$00,$85,$05,$CE,$41,$02,$F0
         dta $12,$EE,$0A,$03,$20,$59,$C6,$10
         dta $DC,$20,$3E,$C6,$AD,$EA,$03,$D0
         dta $AC,$F0,$F1,$AD,$EA,$03,$F0,$03
         dta $20,$59,$C6,$20,$29,$C6,$B0,$9D
         dta $20,$3B,$C6,$E6,$09,$60
;------------------------------------------------
         ORG $C629

         ;
         ; odczyt adresu inicjowania
         ;
BLOAD    dta $18,$AD,$42,$02,$69,$06,$85,$04
         dta $AD,$43,$02,$69,$00,$85,$05,$6C
         dta $04,$00
;------------------------------------------------
         ORG $C63B

         ;
         ; skok według wektora DOSINI
         ;
DOSINITC dta $6C,$0C,$00
;------------------------------------------------
         ORG $C63E

         ;
         ; wyświetlenie meldunku błędu
         ;
DRDERR   dta $A2,$3D,$A0,$C4
;------------------------------------------------
         ORG $C642

         ;
         ; wyświetlenie linii tekstu
         ;
PUTLINE  dta $8A,$A2,$00,$9D,$44,$03,$98,$9D
         dta $45,$03,$A9,$09,$9D,$42,$03,$A9
         dta $FF,$9D,$48,$03,$4C,$56,$E4
;------------------------------------------------
         ORG $C659

         ;
         ; odczyt bloku danych z urządzenia
         ;
GETBLK   dta $AD,$EA,$03,$F0,$03,$4C,$7A,$E4
         dta $A9,$52,$8D,$02,$03,$A9,$01,$8D
         dta $01,$03,$4C,$53,$E4
;------------------------------------------------
         ORG $C66E

         ;
         ; wstępny odczyt z kasety
         ;
CASBOOT  dta $A5,$08,$F0,$09,$A5,$09,$29,$02
         dta $F0,$27,$4C,$A0,$C6,$AD,$E9,$03
         dta $F0,$1F,$A9,$80,$85,$3E,$EE,$EA
         dta $03,$20,$7D,$E4,$20,$BB,$C5,$A9
         dta $00,$8D,$EA,$03,$8D,$E9,$03,$06
         dta $09,$A5,$0C,$85,$02,$A5,$0D,$85
         dta $03,$60
;------------------------------------------------
         ORG $C6A0

         ;
         ; skok według wektora CASINI
         ;
CASINITC dta $6C,$02,$00
;------------------------------------------------
         ORG $C6A3

         ;
         ; inicjowanie obsługi stacji dysków
         ;
DSKINIT  dta $A9,$A0,$8D,$46,$02,$A9,$80,$8D
         dta $D5,$02,$A9,$00,$8D,$D6,$02,$60
;------------------------------------------------
         ORG $C6B3

         ;
         ; główna procedura dyskowa
         ;
DSKINT   dta $A9,$31,$8D,$00,$03,$AD,$46,$02
         dta $AE,$02,$03,$E0,$21,$F0,$02,$A9
         dta $07,$8D,$06,$03,$A2,$40,$AD,$02
         dta $03,$C9,$50,$F0,$04,$C9,$57,$D0
         dta $02,$A2,$80,$C9,$53,$D0,$10,$A9
         dta $EA,$8D,$04,$03,$A9,$02,$8D,$05
         dta $03,$A0,$04,$A9,$00,$F0,$06,$AC
         dta $D5,$02,$AD,$D6,$02,$8E,$03,$03
         dta $8C,$08,$03,$8D,$09,$03,$20,$59
         dta $E4,$10,$01,$60,$AD,$02,$03,$C9
         dta $53,$D0,$0A,$20,$3A,$C7,$A0,$02
         dta $B1,$15,$8D,$46,$02,$AD,$02,$03
         dta $C9,$21,$D0,$1F,$20,$3A,$C7,$A0
         dta $FE,$C8,$C8,$B1,$15,$C9,$FF,$D0
         dta $F8,$C8,$B1,$15,$C8,$C9,$FF,$D0
         dta $F2,$88,$88,$8C,$08,$03,$A9,$00
         dta $8D,$09,$03,$AC,$03,$03,$60
;------------------------------------------------
         ORG $C73A

         ;
         ; przepisanie adresu bufora dyskowego
         ;
PUTADR   dta $AD,$04,$03,$85,$15,$AD,$05,$03
         dta $85,$16,$60
;------------------------------------------------
         ORG $C745

         ;
         ; odczyt rekordu z nowego urządzenia
         ;
LOADER   dta $A2,$05,$A9,$00,$9D,$C9,$02,$CA
         dta $10,$F8,$A9,$00,$8D,$33,$02,$20
         dta $CF,$C7,$A0,$9C,$B0,$39,$8D,$88
         dta $02,$20,$CF,$C7,$A0,$9C,$B0,$2F
         dta $8D,$45,$02,$AD,$88,$02,$C9,$0B
         dta $F0,$26,$2A,$AA,$BD,$E4,$C8,$8D
         dta $C9,$02,$BD,$E5,$C8,$8D,$CA,$02
         dta $AD,$45,$02,$CD,$33,$02,$F0,$CA
         dta $20,$CF,$C7,$A0,$9C,$B0,$08,$20
         dta $D2,$C7,$EE,$33,$02,$D0,$E9,$60
;------------------------------------------------
         ORG $C795

         ;
         ; zakończenie odczytu z nowego urządzenia
         ;
HENDRT   dta $20,$CF,$C7,$A0,$9C,$B0,$2C,$8D
         dta $C9,$02,$20,$CF,$C7,$A0,$9C,$B0
         dta $22,$8D,$CA,$02,$AD,$45,$02,$C9
         dta $01,$F0,$16,$90,$17,$18,$AD,$C9
         dta $02,$6D,$D1,$02,$A8,$AD,$CA,$02
         dta $6D,$D2,$02,$8C,$C9,$02,$8D,$CA
         dta $02,$A0,$01,$60,$A0,$00,$A9,$00
         dta $F0,$F1,$6C,$CF,$02,$6C,$C9,$02
;------------------------------------------------
         ORG $C7D5

         ;
         ; odczyt znaku z nowego urządzenia
         ;
PUTCHR   dta $AC,$33,$02,$C0,$01,$F0,$0A,$B0
         dta $73,$8D,$4A,$02,$8D,$8E,$02,$90
         dta $6A,$8D,$4B,$02,$8D,$8F,$02,$A2
         dta $00,$AD,$88,$02,$F0,$06,$C9,$0A
         dta $F0,$15,$A2,$02,$18,$AD,$4A,$02
         dta $7D,$D1,$02,$8D,$8E,$02,$AD,$4B
         dta $02,$7D,$D2,$02,$8D,$8F,$02,$18
         dta $AD,$8E,$02,$6D,$45,$02,$48,$A9
         dta $00,$6D,$8F,$02,$A8,$68,$38,$E9
         dta $02,$B0,$01,$88,$48,$98,$DD,$CC
         dta $02,$68,$90,$10,$D0,$05,$DD,$CB
         dta $02,$90,$09,$9D,$CB,$02,$48,$98
         dta $9D,$CC,$02,$68,$AE,$88,$02,$E0
         dta $01,$F0,$10,$CC,$E6,$02,$90,$0B
         dta $D0,$05,$CD,$E5,$02,$90,$04,$68
         dta $68,$A0,$9D,$60,$38,$48,$AD,$33
         dta $02,$E9,$02,$18,$6D,$8E,$02,$85
         dta $36,$A9,$00,$6D,$8F,$02,$85,$37
         dta $68,$A0,$00,$91,$36,$4C,$50,$C8
;------------------------------------------------
         ORG $C86D

         ;
         ; obliczanie adresu wczytywania
         ;
ADD28E   dta $18,$6D,$8E,$02,$85,$36,$A9,$00
         dta $6D,$8F,$02,$85,$37,$A0,$00,$B1
         dta $36,$18,$6D,$D1,$02,$91,$36,$E6
         dta $36,$D0,$02,$E6,$37,$B1,$36,$6D
         dta $D2,$02,$91,$36,$60
;------------------------------------------------
         ORG $C892

         ;
         ; obliczanie adresu do zapisu i odczytu
         ;
ADDWRD   dta $A2,$00,$AC,$88,$02,$C0,$04,$90
         dta $02,$A2,$02,$18,$6D,$8E,$02,$85
         dta $36,$A9,$00,$6D,$8F,$02,$85,$37
         dta $A0,$00,$B1,$36,$18,$7D,$D1,$02
         dta $91,$36,$60
;------------------------------------------------
         ORG $C8B5

         ;
         ; obliczanie adresu do odczytu
         ;
ADDGET   dta $48,$AD,$33,$02,$6A,$68,$B0,$15
         dta $18,$6D,$8E,$02,$85,$36,$A9,$00
         dta $6D,$8F,$02,$85,$37,$A0,$00,$B1
         dta $36,$8D,$88,$02,$60,$18,$6D,$D1
         dta $02,$A9,$00,$6D,$D2,$02,$6D,$88
         dta $02,$A0,$00,$91,$36,$F0,$ED
;------------------------------------------------
         ORG $C8E4

         ;
         ; tabela wektorów nowych urządzeń
         ;
NEWVEC   dta $D5,$C7,$D5,$C7,$92,$C8,$92,$C8
         dta $92,$C8,$92,$C8,$6D,$C8,$6D,$C8
         dta $B5,$C8,$B5,$C8,$D5,$C7,$95,$C7
;------------------------------------------------
         ORG $C8FC

         ;
         ; wywołanie testu komputera
         ;
SWITROM  dta $A9,$FF,$8D,$44,$02,$AD,$01,$D3
         dta $29,$7F,$8D,$01,$D3,$4C,$83,$E4
;------------------------------------------------
         ORG $C90C

         ;
         ; inicjowanie nowych urządzeń
         ;
NEWINIT  dta $A9,$01,$8D,$48,$02,$AD,$48,$02
         dta $8D,$FF,$D1,$AD,$03,$D8,$C9,$80
         dta $D0,$0A,$AD,$0B,$D8,$C9,$91,$D0
         dta $03,$20,$19,$D8,$0E,$48,$02,$D0
         dta $E4,$A9,$00,$8D,$FF,$D1,$60
;------------------------------------------------
         ORG $C933

         ;
         ; wstępna procedura złącza szeregowego
         ;
SIOINT   dta $A9,$01,$8D,$42,$00,$AD,$01,$03
         dta $48,$AD,$47,$02,$F0,$1A,$A2,$08
         dta $20,$AF,$C9,$F0,$13,$8A,$48,$20
         dta $05,$D8,$68,$AA,$90,$F2,$A9,$00
         dta $8D,$48,$02,$8D,$FF,$D1,$F0,$03
         dta $20,$71,$E9,$68,$8D,$01,$03,$A9
         dta $00,$8D,$42,$00,$8C,$03,$03,$AC
         dta $03,$03,$60
;------------------------------------------------
         ORG $C96E

         ;
         ; przerwanie IRQ nowego urządzenia
         ;
NEWIOREQ dta $A2,$08,$6A,$B0,$03,$CA,$D0,$FA
         dta $AD,$48,$02,$48,$BD,$20,$CA,$8D
         dta $48,$02,$8D,$FF,$D1,$20,$08,$D8
         dta $68,$8D,$48,$02,$8D,$FF,$D1,$68
         dta $AA,$68,$40
;------------------------------------------------
         ORG $C991

         ;
         ; tabela procedur I/O nowych urządzeń
         ;
NWDVC    dta $A0,$01,$4C,$DC,$C9,$A0,$03,$4C
         dta $DC,$C9,$A0,$05,$4C,$DC,$C9,$A0
         dta $07,$4C,$DC,$C9,$A0,$09,$4C,$DC
         dta $C9,$A0,$0B,$4C,$DC,$C9
;------------------------------------------------
         ORG $C9AF

         ;
         ; odszukanie nowego urządzenia do operacji I/O
         ;
GETLOW   dta $CA,$10,$09,$A9,$00,$8D,$48,$02
         dta $8D,$FF,$D1,$60,$AD,$47,$02,$3D
         dta $21,$CA,$F0,$EC,$8D,$48,$02,$8D
         dta $FF,$D1,$60
;------------------------------------------------
         ORG $C9CA

         ;
         ; wywołanie procedury I/O nowego urządzenia
         ;
NEWPER   dta $B9,$0D,$D8,$48,$88,$B9,$0D,$D8
         dta $48,$AD,$4C,$02,$AE,$4D,$02,$A0
         dta $92,$60
;------------------------------------------------
         ORG $C9DC

         ;
         ; wybór i uaktywnienie nowego urządzenia
         ;
CHKNWP   dta $8D,$4C,$02,$8E,$4D,$02,$AD,$42
         dta $00,$48,$A9,$01,$8D,$42,$00,$A2
         dta $08,$20,$AF,$C9,$F0,$11,$8A,$48
         dta $98,$48,$20,$CA,$C9,$90,$20,$8D
         dta $4C,$02,$68,$68,$4C,$05,$CA,$A0
         dta $82,$A9,$00,$8D,$48,$02,$8D,$FF
         dta $D1,$68,$8D,$42,$00,$AD,$4C,$02
         dta $8C,$4D,$02,$AC,$4D,$02,$60,$68
         dta $A8,$68,$AA,$90,$CC
;------------------------------------------------
         ORG $CA21

         ;
         ; maski bitowe dla NEWIOREQ i GETLOW
         ;
BITMASK  dta $80,$40,$20,$10,$08,$04,$02,$01
;------------------------------------------------
         ORG $CA29

         ;
         ; przygotowanie operacji I/O nowego urządzenia
         ;
PRPLNK   dta $AE,$2E,$00,$BD,$4D,$03,$20,$DE
         dta $E7,$B0,$20,$18,$20,$9E,$E8,$B0
         dta $1A,$AE,$2E,$00,$BD,$4C,$03,$20
         dta $16,$E7,$B0,$0F,$AE,$2E,$00,$9D
         dta $40,$03,$85,$20,$A9,$03,$85,$17
         dta $4C,$5C,$E5,$4C,$10,$E5,$00,$13
         dta $16,$D1,$E4,$E4,$E8,$29,$EB,$EE
         dta $00,$00,$2D,$25,$2D,$2F,$32,$39
         dta $00,$34,$25,$33,$34,$00,$00,$00
         dta $32,$2F,$2D,$32,$21,$2D,$00,$00
         dta $2B,$25,$39,$22,$2F,$21,$32,$24
         dta $00,$34,$25,$33,$34,$00,$00,$00
         dta $B2,$91,$00,$92,$00,$93,$00,$94
         dta $00,$A8,$00,$A1,$00,$A2,$00,$00
         dta $00,$5B,$00,$11,$00,$12,$00,$13
         dta $00,$14,$00,$15,$00,$16,$00,$17
         dta $00,$18,$00,$19,$00,$10,$00,$1C
         dta $00,$1E,$00,$A2,$80,$B3,$00,$00
         dta $00,$FF,$FF,$00,$31,$00,$37,$00
         dta $25,$00,$32,$00,$34,$00,$39,$00
         dta $35,$00,$29,$00,$2F,$00,$30,$00
         dta $0D,$00,$1D,$00,$B2,$B4,$00,$00
         dta $00,$80,$DC,$80,$00,$21,$00,$33
         dta $00,$24,$00,$26,$00,$27,$00,$28
         dta $00,$2A,$00,$2B,$00,$2C,$00,$1B
         dta $00,$0B,$00,$0A,$00,$A3,$00,$00
         dta $00,$80,$B3,$A8,$80,$00,$3A,$00
         dta $38,$00,$23,$00,$36,$00,$22,$00
         dta $2E,$00,$2D,$00,$0C,$00,$0E,$00
         dta $0F,$00,$80,$B3,$A8,$80,$00,$00
         dta $00,$00,$00,$00,$00,$00,$80,$B3
         dta $80,$B0,$80,$A1,$80,$A3,$80,$A5
         dta $80,$80,$80,$A2,$80,$A1,$80,$B2
         dta $80,$00,$33,$00,$30,$00,$21,$00
         dta $23,$00,$25,$00,$00,$00,$22,$00
         dta $21,$00,$32,$00,$00,$33,$28,$00
         dta $22,$00,$33,$00,$5C,$00,$36,$2F
         dta $29,$23,$25,$00,$03
;------------------------------------------------
         ORG $CB56

         ;
         ; obliczenie sumy kontrolnej listy liniowej
         ;
CHCKFF   dta $A0,$11,$A9,$00,$18,$71,$4A,$88
         dta $10,$FB,$69,$00,$49,$FF,$60,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00
;------------------------------------------------
         ORG $CC00

         ;
         ; zestaw znaków międzynarodowych
         ;
CHARSET2 dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$18,$18,$18,$18,$00,$18,$00
         dta $00,$66,$66,$66,$00,$00,$00,$00
         dta $00,$66,$FF,$66,$66,$FF,$66,$00
         dta $18,$3E,$60,$3C,$06,$7C,$18,$00
         dta $00,$66,$6C,$18,$30,$66,$46,$00
         dta $1C,$36,$1C,$38,$6F,$66,$3B,$00
         dta $00,$18,$18,$18,$00,$00,$00,$00
         dta $00,$0E,$1C,$18,$18,$1C,$0E,$00
         dta $00,$70,$38,$18,$18,$38,$70,$00
         dta $00,$66,$3C,$FF,$3C,$66,$00,$00
         dta $00,$18,$18,$7E,$18,$18,$00,$00
         dta $00,$00,$00,$00,$00,$18,$18,$30
         dta $00,$00,$00,$7E,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$18,$18,$00
         dta $00,$06,$0C,$18,$30,$60,$40,$00
         dta $00,$3C,$66,$6E,$76,$66,$3C,$00
         dta $00,$18,$38,$18,$18,$18,$7E,$00
         dta $00,$3C,$66,$0C,$18,$30,$7E,$00
         dta $00,$7E,$0C,$18,$0C,$66,$3C,$00
         dta $00,$0C,$1C,$3C,$6C,$7E,$0C,$00
         dta $00,$7E,$60,$7C,$06,$66,$3C,$00
         dta $00,$3C,$60,$7C,$66,$66,$3C,$00
         dta $00,$7E,$06,$0C,$18,$30,$30,$00
         dta $00,$3C,$66,$3C,$66,$66,$3C,$00
         dta $00,$3C,$66,$3E,$06,$0C,$38,$00
         dta $00,$00,$18,$18,$00,$18,$18,$00
         dta $00,$00,$18,$18,$00,$18,$18,$30
         dta $06,$0C,$18,$30,$18,$0C,$06,$00
         dta $00,$00,$7E,$00,$00,$7E,$00,$00
         dta $60,$30,$18,$0C,$18,$30,$60,$00
         dta $00,$3C,$66,$0C,$18,$00,$18,$00
         dta $00,$3C,$66,$6E,$6E,$60,$3E,$00
         dta $00,$18,$3C,$66,$66,$7E,$66,$00
         dta $00,$7C,$66,$7C,$66,$66,$7C,$00
         dta $00,$3C,$66,$60,$60,$66,$3C,$00
         dta $00,$78,$6C,$66,$66,$6C,$78,$00
         dta $00,$7E,$60,$7C,$60,$60,$7E,$00
         dta $00,$7E,$60,$7C,$60,$60,$60,$00
         dta $00,$3E,$60,$60,$6E,$66,$3E,$00
         dta $00,$66,$66,$7E,$66,$66,$66,$00
         dta $00,$7E,$18,$18,$18,$18,$7E,$00
         dta $00,$06,$06,$06,$06,$66,$3C,$00
         dta $00,$66,$6C,$78,$78,$6C,$66,$00
         dta $00,$60,$60,$60,$60,$60,$7E,$00
         dta $00,$63,$77,$7F,$6B,$63,$63,$00
         dta $00,$66,$76,$7E,$7E,$6E,$66,$00
         dta $00,$3C,$66,$66,$66,$66,$3C,$00
         dta $00,$7C,$66,$66,$7C,$60,$60,$00
         dta $00,$3C,$66,$66,$66,$6C,$36,$00
         dta $00,$7C,$66,$66,$7C,$6C,$66,$00
         dta $00,$3C,$60,$3C,$06,$06,$3C,$00
         dta $00,$7E,$18,$18,$18,$18,$18,$00
         dta $00,$66,$66,$66,$66,$66,$7E,$00
         dta $00,$66,$66,$66,$66,$3C,$18,$00
         dta $00,$63,$63,$6B,$7F,$77,$63,$00
         dta $00,$66,$66,$3C,$3C,$66,$66,$00
         dta $00,$66,$66,$3C,$18,$18,$18,$00
         dta $00,$7E,$0C,$18,$30,$60,$7E,$00
         dta $00,$1E,$18,$18,$18,$18,$1E,$00
         dta $00,$40,$60,$30,$18,$0C,$06,$00
         dta $00,$78,$18,$18,$18,$18,$78,$00
         dta $00,$08,$1C,$36,$63,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$FF,$00
         dta $0C,$18,$3C,$06,$3E,$66,$3E,$00
         dta $30,$18,$00,$66,$66,$66,$3E,$00
         dta $36,$6C,$00,$76,$76,$7E,$6E,$00
         dta $0C,$18,$7E,$60,$7C,$60,$7E,$00
         dta $00,$00,$3C,$60,$60,$3C,$18,$30
         dta $3C,$66,$00,$3C,$66,$66,$3C,$00
         dta $30,$18,$00,$3C,$66,$66,$3C,$00
         dta $30,$18,$00,$38,$18,$18,$3C,$00
         dta $1C,$30,$30,$78,$30,$30,$7E,$00
         dta $00,$66,$00,$38,$18,$18,$3C,$00
         dta $00,$66,$00,$66,$66,$66,$3E,$00
         dta $36,$00,$3C,$06,$3E,$66,$3E,$00
         dta $66,$00,$3C,$66,$66,$66,$3C,$00
         dta $0C,$18,$00,$66,$66,$66,$3E,$00
         dta $0C,$18,$00,$3C,$66,$66,$3C,$00
         dta $00,$66,$00,$3C,$66,$66,$3C,$00
         dta $66,$00,$66,$66,$66,$66,$7E,$00
         dta $3C,$66,$1C,$06,$3E,$66,$3E,$00
         dta $3C,$66,$00,$66,$66,$66,$3E,$00
         dta $3C,$66,$00,$38,$18,$18,$3C,$00
         dta $0C,$18,$3C,$66,$7E,$60,$3C,$00
         dta $30,$18,$3C,$66,$7E,$60,$3C,$00
         dta $36,$6C,$00,$7C,$66,$66,$66,$00
         dta $3C,$C3,$3C,$66,$7E,$60,$3C,$00
         dta $18,$00,$3C,$06,$3E,$66,$3E,$00
         dta $30,$18,$3C,$06,$3E,$66,$3E,$00
         dta $18,$00,$18,$3C,$66,$7E,$66,$00
         dta $78,$60,$78,$60,$7E,$18,$1E,$00
         dta $00,$18,$3C,$7E,$18,$18,$18,$00
         dta $00,$18,$18,$18,$7E,$3C,$18,$00
         dta $00,$18,$30,$7E,$30,$18,$00,$00
         dta $00,$18,$0C,$7E,$0C,$18,$00,$00
         dta $18,$00,$18,$18,$18,$18,$18,$00
         dta $00,$00,$3C,$06,$3E,$66,$3E,$00
         dta $00,$60,$60,$7C,$66,$66,$7C,$00
         dta $00,$00,$3C,$60,$60,$60,$3C,$00
         dta $00,$06,$06,$3E,$66,$66,$3E,$00
         dta $00,$00,$3C,$66,$7E,$60,$3C,$00
         dta $00,$0E,$18,$3E,$18,$18,$18,$00
         dta $00,$00,$3E,$66,$66,$3E,$06,$7C
         dta $00,$60,$60,$7C,$66,$66,$66,$00
         dta $00,$18,$00,$38,$18,$18,$3C,$00
         dta $00,$06,$00,$06,$06,$06,$06,$3C
         dta $00,$60,$60,$6C,$78,$6C,$66,$00
         dta $00,$38,$18,$18,$18,$18,$3C,$00
         dta $00,$00,$66,$7F,$7F,$6B,$63,$00
         dta $00,$00,$7C,$66,$66,$66,$66,$00
         dta $00,$00,$3C,$66,$66,$66,$3C,$00
         dta $00,$00,$7C,$66,$66,$7C,$60,$60
         dta $00,$00,$3E,$66,$66,$3E,$06,$06
         dta $00,$00,$7C,$66,$60,$60,$60,$00
         dta $00,$00,$3E,$60,$3C,$06,$7C,$00
         dta $00,$18,$7E,$18,$18,$18,$0E,$00
         dta $00,$00,$66,$66,$66,$66,$3E,$00
         dta $00,$00,$66,$66,$66,$3C,$18,$00
         dta $00,$00,$63,$6B,$7F,$3E,$36,$00
         dta $00,$00,$66,$3C,$18,$3C,$66,$00
         dta $00,$00,$66,$66,$66,$3E,$0C,$78
         dta $00,$00,$7E,$0C,$18,$30,$7E,$00
         dta $66,$66,$18,$3C,$66,$7E,$66,$00
         dta $18,$18,$18,$18,$18,$18,$18,$18
         dta $00,$7E,$78,$7C,$6E,$66,$06,$00
         dta $08,$18,$38,$78,$38,$18,$08,$00
         dta $10,$18,$1C,$1E,$1C,$18,$10,$00
         dta $4C,$09,$50,$20,$86,$50,$4C,$91
         dta $52,$20,$86,$50,$A9,$00,$85,$80
         dta $85,$81,$85,$82,$8D,$08,$D2,$A9
         dta $03,$8D,$0F,$D2,$20,$10,$55,$A9
         dta $40,$8D,$0E,$D4,$A2,$00,$20,$73
         dta $57,$A2,$3A,$A0,$51,$20,$9E,$50
         dta $A9,$D0,$8D,$00,$02,$A9,$50,$8D
         dta $01,$02,$A2,$0C,$A9,$AA,$20,$2A
         dta $57,$A2,$00,$8E,$0A,$D4,$E8,$D0
         dta $FA,$AD,$0B,$D4,$C9,$18,$B0,$F9
         dta $A9,$10,$85,$87,$A9,$C0,$8D,$0E
         dta $D4,$AD,$1F,$D0,$29,$01,$D0,$F9
         dta $A9,$FF,$8D,$FC,$02,$A5,$86,$29
         dta $0F,$C9,$01,$F0,$10,$C9,$02,$F0
         dta $0F,$C9,$04,$F0,$0E,$A9,$88,$85
         dta $86,$A9,$FF,$85,$82,$4C,$91,$52
         dta $4C,$57,$55,$4C,$50,$54,$A9,$11
         dta $85,$86,$A9,$21,$8D,$2F,$02,$A9
         dta $C0,$8D,$0E,$D4,$A9,$41,$85,$83
         dta $A9,$FF,$8D,$FC,$02,$60,$85,$8A
         dta $98,$48,$8A,$48,$A9,$00,$8D,$2F
         dta $02,$8D,$DC,$02,$A9,$DA,$8D,$00
         dta $02,$A9,$53,$8D,$01,$02,$A2,$00
         dta $8A,$20,$2A,$57,$68,$AA,$68,$A8
         dta $8E,$30,$02,$86,$84,$8C,$31,$02
         dta $84,$85,$A9,$21,$8D,$2F,$02,$60
         dta $48,$8A,$48,$A2,$7A,$A5,$87,$C9
         dta $01,$F0,$1F,$29,$01,$F0,$0A,$E6
         dta $A2,$A5,$A2,$29,$20,$F0,$02,$A2
         dta $2C,$8E,$0A,$D4,$8E,$16,$D0,$18
         dta $66,$87,$A9,$00,$85,$4D,$68,$AA
         dta $68,$40,$A5,$88,$D0,$16,$AD,$1F
         dta $D0,$29,$02,$D0,$1A,$A5,$86,$2A
         dta $26,$86,$A9,$20,$85,$A2,$A9,$FF
         dta $85,$88,$D0,$0B,$AD,$1F,$D0,$29
         dta $02,$F0,$04,$A9,$00,$85,$88,$A5
         dta $86,$29,$0F,$09,$10,$85,$87,$E6
         dta $80,$D0,$02,$E6,$81,$A5,$81,$C9
         dta $FA,$D0,$04,$58,$4C,$75,$50,$4C
         dta $D3,$50,$70,$70,$70,$70,$70,$47
         dta $61,$51,$70,$70,$70,$4E,$00,$30
         dta $70,$F0,$C6,$71,$51,$70,$86,$70
         dta $86,$70,$06,$70,$70,$4E,$00,$30
         dta $70,$70,$70,$42,$B1,$51,$41,$3A
         dta $51,$00,$00,$00,$00,$33,$25,$2C
         dta $26,$00,$34,$25,$33,$34,$00,$00
         dta $00,$00,$00,$2D,$25,$2D,$2F,$32
         dta $39,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$21,$35,$24,$29,$2F
         dta $0D,$36,$29,$33,$35,$21,$2C,$00
         dta $00,$00,$00,$2B,$25,$39,$22,$2F
         dta $21,$32,$24,$00,$00,$00,$00,$00
         dta $00,$00,$00,$21,$2C,$2C,$00,$34
         dta $25,$33,$34,$33,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$42,$B3,$A5
         dta $AC,$A5,$A3,$B4,$56,$0C,$42,$B3
         dta $B4,$A1,$B2,$B4,$56,$2F,$32,$42
         dta $B2,$A5,$B3,$A5,$B4,$56,$00,$00
         dta $00,$70,$70,$70,$46,$00,$30,$70
         dta $70,$06,$70,$08,$70,$70,$06,$70
         dta $08,$70,$08,$70,$08,$70,$08,$70
         dta $70,$70,$01,$ED,$51,$A0,$40,$42
         dta $F5,$51,$01,$83,$00,$00,$00,$00
         dta $00,$00,$42,$B2,$A5,$B3,$A5,$B4
         dta $56,$2F,$32,$42,$A8,$A5,$AC,$B0
         dta $56,$34,$2F,$00,$25,$38,$29,$34
         dta $00,$00,$00,$00,$00,$70,$70,$70
         dta $70,$46,$00,$30,$70,$70,$70,$70
         dta $02,$70,$70,$02,$70,$02,$70,$02
         dta $70,$02,$70,$02,$70,$70,$01,$ED
         dta $51,$70,$70,$70,$70,$46,$71,$52
         dta $70,$06,$70,$70,$4B,$00,$31,$0B
         dta $0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B
         dta $0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B
         dta $0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B
         dta $0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B
         dta $0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B
         dta $0B,$70,$46,$00,$30,$70,$01,$ED
         dta $51,$00,$00,$21,$35,$24,$29,$2F
         dta $0D,$36,$29,$33,$35,$21,$2C,$00
         dta $00,$00,$00,$00,$00,$00,$00,$34
         dta $25,$33,$34,$00,$00,$00,$00,$00
         dta $00,$A2,$D1,$A0,$51,$A9,$00,$20
         dta $9E,$50,$A2,$01,$20,$73,$57,$A2
         dta $00,$20,$59,$57,$A2,$01,$20,$59
         dta $57,$AD,$20,$30,$C9,$AA,$F0,$17
         dta $A9,$55,$20,$8E,$53,$20,$B1,$53
         dta $20,$73,$FF,$B0,$05,$A9,$FF,$4C
         dta $C4,$52,$A9,$AA,$20,$8E,$53,$AD
         dta $24,$30,$C9,$AA,$F0,$17,$A9,$55
         dta $20,$99,$53,$20,$B1,$53,$20,$92
         dta $FF,$B0,$05,$A9,$FF,$4C,$E2,$52
         dta $A9,$AA,$20,$99,$53,$A9,$C0,$85
         dta $8D,$A9,$04,$85,$A4,$A9,$00,$85
         dta $8E,$85,$90,$85,$91,$85,$8F,$A6
         dta $8E,$BD,$38,$30,$25,$8D,$C9,$80
         dta $F0,$5C,$C9,$08,$F0,$58,$A9,$44
         dta $20,$C3,$53,$A5,$A4,$20,$A4,$53
         dta $A5,$A4,$49,$0C,$85,$A4,$A2,$07
         dta $BD,$4A,$54,$C5,$91,$F0,$37,$CA
         dta $10,$F6,$A9,$04,$85,$92,$A2,$00
         dta $A0,$00,$8A,$91,$90,$E8,$C8,$D0
         dta $F9,$86,$93,$A0,$00,$B1,$90,$C5
         dta $93,$D0,$10,$E6,$93,$C8,$D0,$F5
         dta $E8,$D0,$E5,$E6,$91,$C6,$92,$D0
         dta $DD,$F0,$0E,$20,$B1,$53,$A9,$88
         dta $20,$C3,$53,$4C,$5E,$53,$20,$B5
         dta $53,$A9,$CC,$20,$C3,$53,$A5,$8D
         dta $30,$26,$A9,$C0,$85,$8D,$E6,$8E
         dta $18,$A5,$8F,$69,$04,$85,$91,$85
         dta $8F,$CD,$E4,$02,$D0,$81,$A5,$82
         dta $D0,$03,$4C,$A9,$52,$A9,$0C,$20
         dta $A4,$53,$20,$B5,$53,$4C,$57,$55
         dta $A9,$0C,$85,$8D,$D0,$DA,$A2,$04
         dta $20,$2A,$57,$29,$FC,$8D,$23,$30
         dta $60,$A2,$08,$20,$2A,$57,$29,$FC
         dta $8D,$27,$30,$60,$85,$A5,$AD,$01
         dta $D3,$29,$F3,$05,$A5,$8D,$01,$D3
         dta $60,$A2,$3C,$D0,$02,$A2,$96,$A0
         dta $FF,$8C,$0A,$D4,$88,$D0,$FA,$CA
         dta $D0,$F5,$60,$48,$A6,$8E,$A5,$8D
         dta $49,$FF,$3D,$38,$30,$9D,$38,$30
         dta $68,$25,$8D,$1D,$38,$30,$9D,$38
         dta $30,$60,$48,$A9,$0C,$8D,$17,$D0
         dta $AD,$C8,$02,$8D,$18,$D0,$A9,$00
         dta $85,$4D,$AD,$DC,$02,$F0,$0E,$A9
         dta $00,$8D,$DC,$02,$A9,$0C,$20,$A4
         dta $53,$58,$4C,$0C,$50,$A5,$8A,$F0
         dta $47,$AD,$1F,$D0,$29,$01,$F0,$04
         dta $A9,$B3,$D0,$02,$A9,$33,$8D,$1C
         dta $30,$AD,$1F,$D0,$29,$02,$F0,$04
         dta $A9,$F3,$D0,$02,$A9,$73,$8D,$1E
         dta $30,$AD,$1F,$D0,$29,$04,$F0,$04
         dta $A9,$AF,$D0,$02,$A9,$2F,$8D,$20
         dta $30,$AD,$1F,$D0,$29,$07,$C9,$07
         dta $F0,$09,$A9,$64,$8D,$02,$D2,$A9
         dta $A8,$D0,$02,$A9,$00,$8D,$03,$D2
         dta $68,$40,$00,$50,$54,$30,$30,$30
         dta $A2,$00,$86,$94,$A2,$03,$20,$73
         dta $57,$A2,$15,$A0,$52,$A9,$FF,$20
         dta $9E,$50,$A2,$02,$20,$59,$57,$A2
         dta $07,$20,$59,$57,$A5,$82,$F0,$13
         dta $A6,$94,$BD,$45,$55,$E6,$94,$A6
         dta $94,$E0,$13,$D0,$14,$20,$B5,$53
         dta $4C,$91,$52,$AD,$FC,$02,$C9,$FF
         dta $F0,$F9,$C9,$C0,$B0,$F5,$AD,$FC
         dta $02,$A2,$FF,$8E,$FC,$02,$48,$29
         dta $80,$F0,$05,$A2,$08,$20,$59,$57
         dta $68,$48,$29,$40,$F0,$0A,$A2,$05
         dta $20,$59,$57,$A2,$04,$20,$59,$57
         dta $68,$29,$3F,$C9,$21,$F0,$68,$C9
         dta $2C,$F0,$74,$C9,$34,$F0,$68,$C9
         dta $0C,$F0,$76,$AA,$BD,$9C,$57,$48
         dta $A9,$21,$85,$95,$A9,$30,$85,$96
         dta $68,$A0,$FF,$C8,$D1,$95,$D0,$FB
         dta $B1,$95,$49,$80,$91,$95,$A5,$82
         dta $F0,$13,$20,$05,$55,$A2,$14,$20
         dta $B7,$53,$20,$10,$55,$A2,$0A,$20
         dta $B7,$53,$4C,$62,$54,$20,$05,$55
         dta $AD,$0F,$D2,$29,$04,$F0,$F9,$20
         dta $10,$55,$4C,$62,$54,$A9,$64,$8D
         dta $00,$D2,$A9,$A8,$8D,$01,$D2,$60
         dta $A9,$00,$8D,$01,$D2,$8D,$03,$D2
         dta $8D,$05,$D2,$8D,$07,$D2,$60,$A2
         dta $03,$20,$59,$57,$4C,$DE,$54,$A2
         dta $06,$20,$59,$57,$4C,$DE,$54,$A9
         dta $7F,$8D,$52,$30,$8D,$53,$30,$D0
         dta $A5,$A9,$32,$8D,$6D,$30,$A9,$34
         dta $8D,$6E,$30,$D0,$99,$52,$08,$0A
         dta $2B,$28,$0D,$3D,$39,$2D,$1F,$30
         dta $35,$1A,$7F,$2D,$3F,$28,$0D,$A2
         dta $02,$20,$73,$57,$A9,$00,$85,$97
         dta $A9,$00,$85,$98,$A2,$31,$A0,$52
         dta $A9,$00,$20,$9E,$50,$A2,$09,$20
         dta $59,$57,$A5,$97,$4A,$18,$69,$11
         dta $8D,$0B,$30,$A2,$0F,$A9,$FF,$9D
         dta $50,$31,$9D,$B0,$31,$9D,$10,$32
         dta $9D,$70,$32,$9D,$D0,$32,$CA,$10
         dta $EC,$A9,$00,$85,$99,$A9,$0C,$85
         dta $9A,$A6,$99,$BD,$17,$57,$A8,$BD
         dta $16,$57,$AA,$A5,$9A,$20,$85,$56
         dta $18,$A5,$9A,$69,$06,$85,$9A,$E6
         dta $99,$E6,$99,$A5,$99,$C9,$14,$D0
         dta $E0,$20,$B1,$53,$A2,$54,$A0,$31
         dta $A9,$00,$20,$85,$56,$A9,$51,$20
         dta $6C,$56,$A2,$86,$A0,$31,$A9,$00
         dta $20,$85,$56,$A9,$5B,$20,$6C,$56
         dta $A2,$F8,$A0,$30,$A9,$48,$20,$85
         dta $56,$A2,$C7,$A0,$30,$A9,$54,$20
         dta $85,$56,$A2,$48,$A0,$32,$A9,$4E
         dta $20,$85,$56,$A9,$44,$20,$6C,$56
         dta $A2,$CA,$A0,$30,$A9,$48,$20,$85
         dta $56,$A2,$1A,$A0,$32,$A9,$4E,$20
         dta $85,$56,$A2,$CA,$A0,$31,$A9,$06
         dta $20,$85,$56,$A9,$3C,$20,$6C,$56
         dta $A2,$3C,$A0,$30,$A9,$48,$20,$85
         dta $56,$A2,$8C,$A0,$31,$A9,$4E,$20
         dta $85,$56,$A2,$3C,$A0,$31,$A9,$06
         dta $20,$85,$56,$A9,$2D,$20,$6C,$56
         dta $A2,$9E,$A0,$30,$A9,$48,$20,$85
         dta $56,$A2,$EE,$A0,$31,$A9,$4E,$20
         dta $85,$56,$A9,$35,$20,$6C,$56,$20
         dta $B5,$53,$E6,$97,$E6,$97,$A5,$97
         dta $C9,$08,$D0,$07,$A5,$82,$D0,$06
         dta $4C,$5C,$55,$4C,$60,$55,$20,$B5
         dta $53,$4C,$50,$54,$A4,$97,$99,$00
         dta $D2,$A9,$A8,$99,$01,$D2,$A6,$98
         dta $BD,$B6,$56,$AA,$20,$B7,$53,$E6
         dta $98,$20,$10,$55,$60,$86,$9B,$84
         dta $9C,$AA,$A0,$00,$A9,$10,$85,$9D
         dta $A9,$06,$85,$A3,$BD,$BC,$56,$11
         dta $9B,$91,$9B,$20,$AA,$56,$C6,$9D
         dta $D0,$F2,$E6,$9D,$E8,$C6,$A3,$D0
         dta $EB,$60,$18,$A5,$9B,$69,$10,$85
         dta $9B,$90,$02,$E6,$9C,$60,$20,$20
         dta $20,$10,$10,$20,$01,$1F,$3F,$7F
         dta $3E,$1C,$00,$41,$42,$4C,$70,$40
         dta $00,$01,$02,$04,$08,$10,$00,$43
         dta $44,$48,$48,$48,$00,$44,$22,$10
         dta $08,$07,$00,$04,$08,$05,$02,$00
         dta $00,$30,$48,$88,$84,$84,$00,$88
         dta $88,$90,$A0,$C0,$00,$F0,$88,$84
         dta $82,$82,$00,$82,$82,$84,$88,$F0
         dta $00,$00,$00,$00,$00,$80,$80,$80
         dta $80,$80,$80,$80,$00,$1C,$3E,$7F
         dta $7E,$7C,$40,$00,$00,$00,$00,$00
         dta $00,$04,$04,$06,$05,$06,$C1,$30
         dta $21,$31,$81,$31,$F1,$31,$02,$30
         dta $62,$30,$22,$31,$82,$31,$C2,$30
         dta $C2,$31,$48,$BD,$DC,$57,$85,$9E
         dta $BD,$DD,$57,$85,$9F,$BD,$DE,$57
         dta $85,$A0,$BD,$DF,$57,$85,$A1,$A0
         dta $00,$68,$91,$9E,$E6,$9E,$D0,$02
         dta $E6,$9F,$48,$A5,$9E,$C5,$A0,$D0
         dta $F0,$A5,$9F,$C5,$A1,$D0,$EA,$68
         dta $60,$BD,$57,$CA,$A8,$BD,$EC,$57
         dta $85,$9E,$BD,$F6,$57,$AA,$B9,$61
         dta $CA,$9D,$00,$30,$C8,$E8,$C6,$9E
         dta $D0,$F4,$60,$BD,$8C,$57,$8D,$C4
         dta $02,$BD,$90,$57,$8D,$C5,$02,$BD
         dta $94,$57,$8D,$C6,$02,$BD,$98,$57
         dta $8D,$C8,$02,$60,$2C,$0C,$2A,$18
         dta $0F,$32,$0C,$0E,$D2,$D6,$00,$B4
         dta $D2,$A0,$30,$B4,$2C,$2A,$1B,$91
         dta $92,$2B,$0B,$0A,$2F,$00,$30,$35
         dta $B2,$29,$0D,$1D,$36,$A8,$23,$93
         dta $94,$22,$38,$3A,$14,$00,$13,$16
         dta $5B,$15,$12,$11,$0C,$00,$0E,$2E
         dta $00,$2D,$0F,$A1,$32,$00,$25,$39
         dta $FF,$34,$37,$31,$19,$00,$10,$17
         dta $A2,$18,$1C,$1E,$26,$28,$24,$00
         dta $A3,$27,$33,$21,$00,$30,$FF,$3E
         dta $20,$30,$24,$30,$24,$30,$28,$30
         dta $00,$30,$20,$30,$13,$03,$13,$13
         dta $04,$04,$03,$A8,$03,$07,$00,$28
         dta $00,$B7,$92,$AB,$4C,$22,$72,$04
;------------------------------------------------
         ORG $D800

         ;
         ; zamiana ciągu ASCII na liczbę FP
         ;
AFP      dta $20,$A1,$DB
;------------------------------------------------
         ORG $D803

         ;
         ; kod identyfikacyjny nowego urządzenia
         ;
DEVID1   dta $20,$BB
;------------------------------------------------
         ORG $D805

         ;
         ; operacja I/O nowego urządzenia
         ;
PDIOR    dta $DB,$B0,$39
;------------------------------------------------
         ORG $D808

         ;
         ; przerwanie IRQ nowego urządzenia
         ;
DEVINT   dta $A2,$ED,$A0
;------------------------------------------------
         ORG $D80B

         ;
         ; kod identyfikacyjny nowego urządzenia
         ;
DEVID2   dta $04,$20
;------------------------------------------------
         ORG $D80D

         ;
         ; wektor operacji OPEN nowego urządzenia
         ;
PDVOPV   dta $48,$DA
;------------------------------------------------
         ORG $D80F

         ;
         ; wektor operacji CLOSE nowego urządzenia
         ;
PDVCLV   dta $A2,$FF
;------------------------------------------------
         ORG $D811

         ;
         ; wektor operacji GET BYTE nowego urządzenia
         ;
PDVGBV   dta $86,$F1
;------------------------------------------------
         ORG $D813

         ;
         ; wektor operacji PUT BYTE nowego urządzenia
         ;
PDVPBV   dta $20,$44
;------------------------------------------------
         ORG $D815

         ;
         ; wektor operacji STATUS nowego urządzenia
         ;
PDVSTV   dta $DA,$F0
;------------------------------------------------
         ORG $D817

         ;
         ; wektor operacji SPECIAL nowego urządzenia
         ;
PDVSPV   dta $04,$A9
;------------------------------------------------
         ORG $D819

         ;
         ; inicjowanie nowego urządzenia
         ;
DEVINIT  dta $FF,$85,$F0,$20,$94,$DB,$B0,$21
         dta $48,$A6,$D5,$D0,$11,$20,$EB,$DB
         dta $68,$05,$D9,$85,$D9,$A6,$F1,$30
         dta $E6,$E8,$86,$F1,$D0,$E1,$68,$A6
         dta $F1,$10,$02,$E6,$ED,$4C,$18,$D8
         dta $60,$C9,$2E,$F0,$14,$C9,$45,$F0
         dta $19,$A6,$F0,$D0,$68,$C9,$2B,$F0
         dta $C6,$C9,$2D,$F0,$00,$85,$EE,$F0
         dta $BE,$A6,$F1,$10,$58,$E8,$86,$F1
         dta $F0,$B5,$A5,$F2,$85,$EC,$20,$94
         dta $DB,$B0,$37,$AA,$A5,$ED,$48,$86
         dta $ED,$20,$94,$DB,$B0,$17,$48,$A5
         dta $ED,$0A,$85,$ED,$0A,$0A,$65,$ED
         dta $85,$ED,$68,$18,$65,$ED,$85,$ED
         dta $A4,$F2,$20,$9D,$DB,$A5,$EF,$F0
         dta $09,$A5,$ED,$49,$FF,$18,$69,$01
         dta $85,$ED,$68,$18,$65,$ED,$85,$ED
         dta $D0,$13,$C9,$2B,$F0,$06,$C9,$2D
         dta $D0,$07,$85,$EF,$20,$94,$DB,$90
         dta $BA,$A5,$EC,$85,$F2,$C6,$F2,$A5
         dta $ED,$A6,$F1,$30,$05,$F0,$03,$38
         dta $E5,$F1,$48,$2A,$68,$6A,$85,$ED
         dta $90,$03,$20,$EB,$DB,$A5,$ED,$18
         dta $69,$44,$85,$D4,$20,$00,$DC,$B0
         dta $0B,$A6,$EE,$F0,$06,$A5,$D4,$09
         dta $80,$85,$D4,$18,$60
;------------------------------------------------
         ORG $D8E6

         ;
         ; zamiana liczby FP na ciąg ASCII
         ;
FASC     dta $20,$51,$DA,$A9,$30,$8D,$7F,$05
         dta $A5,$D4,$F0,$28,$29,$7F,$C9,$3F
         dta $90,$28,$C9,$45,$B0,$24,$38,$E9
         dta $3F,$20,$70,$DC,$20,$A4,$DC,$09
         dta $80,$9D,$80,$05,$AD,$80,$05,$C9
         dta $2E,$F0,$03,$4C,$88,$D9,$20,$C1
         dta $DC,$4C,$9C,$D9,$A9,$B0,$8D,$80
         dta $05,$60,$A9,$01,$20,$70,$DC,$20
         dta $A4,$DC,$E8,$86,$F2,$A5,$D4,$0A
         dta $38,$E9,$80,$AE,$80,$05,$E0,$30
         dta $F0,$17,$AE,$81,$05,$AC,$82,$05
         dta $8E,$82,$05,$8C,$81,$05,$A6,$F2
         dta $E0,$02,$D0,$02,$E6,$F2,$18,$69
         dta $01,$85,$ED,$A9,$45,$A4,$F2,$20
         dta $9F,$DC,$84,$F2,$A5,$ED,$10,$0B
         dta $A9,$00,$38,$E5,$ED,$85,$ED,$A9
         dta $2D,$D0,$02,$A9,$2B,$20,$9F,$DC
         dta $A2,$00,$A5,$ED,$38,$E9,$0A,$90
         dta $03,$E8,$D0,$F8,$18,$69,$0A,$48
         dta $8A,$20,$9D,$DC,$68,$09,$80,$20
         dta $9D,$DC,$AD,$80,$05,$C9,$30,$D0
         dta $0D,$18,$A5,$F3,$69,$01,$85,$F3
         dta $A5,$F4,$69,$00,$85,$F4,$A5,$D4
         dta $10,$09,$20,$C1,$DC,$A0,$00,$A9
         dta $2D,$91,$F3,$60
;------------------------------------------------
         ORG $D9AA

         ;
         ; zamiana liczby całkowitej na FP
         ;
IFP      dta $A5,$D4,$85,$F8,$A5,$D5,$85,$F7
         dta $20,$44,$DA,$F8,$A0,$10,$06,$F8
         dta $26,$F7,$A2,$03,$B5,$D4,$75,$D4
         dta $95,$D4,$CA,$D0,$F7,$88,$D0,$EE
         dta $D8,$A9,$42,$85,$D4,$4C,$00,$DC
;------------------------------------------------
         ORG $D9D2

         ;
         ; zamiana liczby FP na całkowitą
         ;
FPI      dta $A9,$00,$85,$F7,$85,$F8,$A5,$D4
         dta $30,$66,$C9,$43,$B0,$62,$38,$E9
         dta $40,$90,$3F,$69,$00,$0A,$85,$F5
         dta $20,$5A,$DA,$B0,$53,$A5,$F7,$85
         dta $F9,$A5,$F8,$85,$FA,$20,$5A,$DA
         dta $B0,$46,$20,$5A,$DA,$B0,$41,$18
         dta $A5,$F8,$65,$FA,$85,$F8,$A5,$F7
         dta $65,$F9,$85,$F7,$B0,$32,$20,$B9
         dta $DC,$18,$65,$F8,$85,$F8,$A5,$F7
         dta $69,$00,$B0,$24,$85,$F7,$C6,$F5
         dta $D0,$C6,$20,$B9,$DC,$C9,$05,$90
         dta $0D,$18,$A5,$F8,$69,$01,$85,$F8
         dta $A5,$F7,$69,$00,$85,$F7,$A5,$F8
         dta $85,$D4,$A5,$F7,$85,$D5,$18,$60
         dta $38,$60
;------------------------------------------------
         ORG $DA44

         ;
         ; zerowanie FR0
         ;
ZFR0     dta $A2,$D4,$A0,$06
;------------------------------------------------
         ORG $DA48

         ;
         ; zerowanie wg rejestru X
         ;
AF1      dta $A9,$00,$95,$00,$E8,$88,$D0,$FA
         dta $60
;------------------------------------------------
         ORG $DA51

         ;
         ; zapis wektora bufora
         ;
STBV     dta $A9,$05,$85,$F4,$A9,$80,$85,$F3
         dta $60
;------------------------------------------------
         ORG $DA5A

         ;
         ; przesunięcie w lewo ZTEMP2
         ;
ROLZ2    dta $18,$26,$F8,$26,$F7,$60
;------------------------------------------------
         ORG $DA60

         ;
         ; odejmowanie liczb FP
         ;
FSUB     dta $A5,$E0,$49,$80,$85,$E0
;------------------------------------------------
         ORG $DA66

         ;
         ; dodawanie liczb FP
         ;
FADD     dta $A5,$E0,$29,$7F,$85,$F7,$A5,$D4
         dta $29,$7F,$38,$E5,$F7,$10,$10,$A2
         dta $05,$B5,$D4,$B4,$E0,$95,$E0,$98
         dta $95,$D4,$CA,$10,$F4,$30,$E1,$F0
         dta $07,$C9,$05,$B0,$19,$20,$3E,$DC
         dta $F8,$A5,$D4,$45,$E0,$30,$1E,$A2
         dta $04,$18,$B5,$D5,$75,$E1,$95,$D5
         dta $CA,$10,$F7,$D8,$B0,$03,$4C,$00
         dta $DC,$A9,$01,$20,$3A,$DC,$A9,$01
         dta $85,$D5,$4C,$00,$DC,$A2,$04,$38
         dta $B5,$D5,$F5,$E1,$95,$D5,$CA,$10
         dta $F7,$90,$04,$D8,$4C,$00,$DC,$A5
         dta $D4,$49,$80,$85,$D4,$38,$A2,$04
         dta $A9,$00,$F5,$D5,$95,$D5,$CA,$10
         dta $F7,$D8,$4C,$00,$DC
;------------------------------------------------
         ORG $DADB

         ;
         ; mnożenie liczb FP
         ;
FMUL     dta $A5,$D4,$F0,$45,$A5,$E0,$F0,$3E
         dta $20,$CF,$DC,$38,$E9,$40,$38,$65
         dta $E0,$30,$38,$20,$E0,$DC,$A5,$DF
         dta $29,$0F,$85,$F6,$C6,$F6,$30,$06
         dta $20,$01,$DD,$4C,$F7,$DA,$A5,$DF
         dta $4A,$4A,$4A,$4A,$85,$F6,$C6,$F6
         dta $30,$06,$20,$05,$DD,$4C,$09,$DB
         dta $20,$62,$DC,$C6,$F5,$D0,$D7,$A5
         dta $ED,$85,$D4,$4C,$04,$DC,$20,$44
         dta $DA,$18,$60,$38,$60
;------------------------------------------------
         ORG $DB28

         ;
         ; dzielenie liczb FP
         ;
FDIV     dta $A5,$E0,$F0,$FA,$A5,$D4,$F0,$F4
         dta $20,$CF,$DC,$38,$E5,$E0,$18,$69
         dta $40,$30,$EB,$20,$E0,$DC,$E6,$F5
         dta $4C,$4E,$DB,$A2,$00,$B5,$D5,$95
         dta $D4,$E8,$E0,$0C,$D0,$F7,$A0,$05
         dta $38,$F8,$B9,$DA,$00,$F9,$E6,$00
         dta $99,$DA,$00,$88,$10,$F4,$D8,$90
         dta $04,$E6,$D9,$D0,$E9,$20,$0F,$DD
         dta $06,$D9,$06,$D9,$06,$D9,$06,$D9
         dta $A0,$05,$38,$F8,$B9,$DA,$00,$F9
         dta $E0,$00,$99,$DA,$00,$88,$10,$F4
         dta $D8,$90,$04,$E6,$D9,$D0,$E9,$20
         dta $09,$DD,$C6,$F5,$D0
;------------------------------------------------
         ORG $DB8D

         ;
         ; zwiększenie indeksu
         ;
INCIX    dta $B5,$20,$62,$DC,$4C,$1A,$DB
;------------------------------------------------
         ORG $DB94

         ;
         ; zamiana znaku z bufora
         ;
INBCN    dta $20,$AF,$DB,$A4,$F2,$90,$02,$B1
         dta $F3,$C8,$84,$F2,$60
;------------------------------------------------
         ORG $DBA1

         ;
         ; przeszukiwanie bufora
         ;
INBSS    dta $A4,$F2,$A9,$20,$D1,$F3,$D0,$03
         dta $C8,$D0,$F9,$84,$F2,$60
;------------------------------------------------
         ORG $DBAF

         ;
         ; zamiana znaku ASCII na kod BCD
         ;
ADBT     dta $A4,$F2,$B1,$F3,$38,$E9,$30,$90
         dta $18,$C9,$0A,$60
;------------------------------------------------
         ORG $DBBB

         ;
         ; przeszukiwanie ciągu ASCII
         ;
ASCSS    dta $A5,$F2,$48,$20,$94,$DB,$90,$1F
         dta $C9,$2E,$F0,$14,$C9,$2B,$F0,$07
         dta $C9,$2D,$F0,$03,$68,$38,$60,$20
         dta $94,$DB,$90,$0B,$C9,$2E,$D0,$F4
         dta $20,$94,$DB,$90,$02,$B0,$ED,$68
         dta $85,$F2,$18,$60
;------------------------------------------------
         ORG $DBE7

         ;
         ; przesunięcie w lewo liczby w FR2
         ;
ROLFR2   dta $A2,$E7,$D0,$02
;------------------------------------------------
         ORG $DBEB

         ;
         ; przesunięcie w lewo liczby w FR0
         ;
ROLFR0   dta $A2,$D5,$A0,$04,$18,$36,$04,$36
         dta $03,$36,$02,$36,$01,$36,$00,$26
         dta $EC,$88,$D0,$F0,$60
;------------------------------------------------
         ORG $DC00

         ;
         ; poprawienie formatu liczby FP
         ;
NFR0     dta $A2,$00,$86,$DA,$A2,$04,$A5,$D4
         dta $F0,$2E,$A5,$D5,$D0,$1A,$A0,$00
         dta $B9,$D6,$00,$99,$D5,$00,$C8,$C0
         dta $05,$90,$F5,$C6,$D4,$CA,$D0,$EA
         dta $A5,$D5,$D0,$04,$85,$D4,$18,$60
         dta $A5,$D4,$29,$7F,$C9,$71,$90,$01
         dta $60,$C9,$0F,$B0,$03,$20,$44,$DA
         dta $18,$60
;------------------------------------------------
         ORG $DC3A

         ;
         ; adjustowanie liczby z FR0
         ;
ADJ0     dta $A2,$D4,$D0,$02
;------------------------------------------------
         ORG $DC3E

         ;
         ; adjustowanie liczby z FR1
         ;
ADJ1     dta $A2,$E0,$86,$F9,$85,$F7,$85,$F8
         dta $A0,$04,$B5,$04,$95,$05,$CA,$88
         dta $D0,$F8,$A9,$00,$95,$05,$A6,$F9
         dta $C6,$F7,$D0,$EC,$B5,$00,$18,$65
         dta $F8,$95,$00,$60
;------------------------------------------------
         ORG $DC62

         ;
         ; przesunięcie w prawo FR0
         ;
SHR0     dta $A2,$0A,$B5,$D4,$95,$D5,$CA,$10
         dta $F9,$A9,$00,$85,$D4,$60
;------------------------------------------------
         ORG $DC70

         ;
         ; zapis znaku ASCII do bufora
         ;
STALB    dta $85,$F7,$A2,$00,$A0,$00,$20,$93
         dta $DC,$38,$E9,$01,$85,$F7,$B5,$D5
         dta $4A,$4A,$4A,$4A,$20,$9D,$DC,$B5
         dta $D5,$29,$0F,$20,$9D,$DC,$E8,$E0
         dta $05,$90,$E3,$A5,$F7,$D0,$05,$A9
         dta $2E,$20,$9F,$DC,$60
;------------------------------------------------
         ORG $DC9D

         ;
         ; zamiana kodu BCD na znak ASCII
         ;
BTAD     dta $09,$30
;------------------------------------------------
         ORG $DC9F

         ;
         ; zapis do bufora
         ;
STLB     dta $99,$80,$05,$C8,$60
;------------------------------------------------
         ORG $DCA4

         ;
         ; przeszukiwanie bufora
         ;
LBSR     dta $A2,$0A,$BD,$80,$05,$C9,$2E,$F0
         dta $07,$C9,$30,$D0,$07,$CA,$D0,$F2
         dta $CA,$BD,$80,$05,$60
;------------------------------------------------
         ORG $DCB9

         ;
         ; wydzielenie cyfry
         ;
IDEX     dta $20,$EB,$DB,$A5,$EC,$29,$0F,$60
;------------------------------------------------
         ORG $DCC1

         ;
         ; zmniejszenie licznika bufora
         ;
DECIBP   dta $38,$A5,$F3,$E9,$01,$85,$F3,$A5
         dta $F4,$E9,$00,$85,$F4,$60
;------------------------------------------------
         ORG $DCCF

         ;
         ; obliczenie znaku przy mnożeniu i dzieleniu
         ;
SGNEV    dta $A5,$D4,$45,$E0,$29,$80,$85,$EE
         dta $06,$E0,$46,$E0,$A5,$D4,$29,$7F
         dta $60
;------------------------------------------------
         ORG $DCE0

         ;
         ; przeniesienie argumentów
         ;
MVARG    dta $05,$EE,$85,$ED,$A9,$00,$85,$D4
         dta $85,$E0,$20,$28,$DD,$20,$E7,$DB
         dta $A5,$EC,$29,$0F,$85,$E6,$A9,$05
         dta $85,$F5,$20,$34,$DD,$20,$44,$DA
         dta $60
;------------------------------------------------
         ORG $DD01

         ;
         ; dodanie rejestrów FR0 i FR1
         ;
ADD01    dta $A2,$D9,$D0,$06
;------------------------------------------------
         ORG $DD05

         ;
         ; dodanie rejestrów FR0 i FR2
         ;
ADD02    dta $A2,$D9,$D0,$08
;------------------------------------------------
         ORG $DD09

         ;
         ; dodanie rejestrów FRE i FR1
         ;
ADDE1    dta $A2,$DF,$A0,$E5,$D0,$04
;------------------------------------------------
         ORG $DD0F

         ;
         ; dodanie rejestrów FRE i FR2
         ;
ADDE2    dta $A2,$DF,$A0,$EB,$A9,$05,$85,$F7
         dta $18,$F8,$B5,$00,$79,$00,$00,$95
         dta $00,$CA,$88,$C6,$F7,$10,$F3,$D8
         dta $60
;------------------------------------------------
         ORG $DD28

         ;
         ; przepisanie z FR1 do FR2
         ;
FMOV12   dta $A0,$05,$B9,$E0,$00,$99,$E6,$00
         dta $88,$10,$F7,$60
;------------------------------------------------
         ORG $DD34

         ;
         ; przepisanie z FR0 do FRE
         ;
FMOV0E   dta $A0,$05,$B9,$D4,$00,$99,$DA,$00
         dta $88,$10,$F7,$60
;------------------------------------------------
         ORG $DD40

         ;
         ; przeliczenie wielomianowe
         ;
PLYEVL   dta $86,$FE,$84,$FF,$85,$EF,$A2,$E0
         dta $A0,$05,$20,$A7,$DD,$20,$B6,$DD
         dta $A6,$FE,$A4,$FF,$20,$89,$DD,$C6
         dta $EF,$F0,$2D,$20,$DB,$DA,$B0,$28
         dta $18,$A5,$FE,$69,$06,$85,$FE,$90
         dta $06,$A5,$FF,$69,$00,$85,$FF,$A6
         dta $FE,$A4,$FF,$20,$98,$DD,$20,$66
         dta $DA,$B0,$0D,$C6,$EF,$F0,$09,$A2
         dta $E0,$A0,$05,$20,$98,$DD,$30,$D3
         dta $60
;------------------------------------------------
         ORG $DD89

         ;
         ; zapis liczby FP do FR0 według X,Y
         ;
FLD0R    dta $86,$FC,$84,$FD
;------------------------------------------------
         ORG $DD8D

         ;
         ; zapis liczby FP do FR0 według FLPTR
         ;
FLD0P    dta $A0,$05,$B1,$FC,$99,$D4,$00,$88
         dta $10,$F8,$60
;------------------------------------------------
         ORG $DD98

         ;
         ; zapis liczby FP do FR1 według X,Y
         ;
FLD1R    dta $86,$FC,$84,$FD
;------------------------------------------------
         ORG $DD9C

         ;
         ; zapis liczby FP do FR1 według FLPTR
         ;
FLD1P    dta $A0,$05,$B1,$FC,$99,$E0,$00,$88
         dta $10,$F8,$60
;------------------------------------------------
         ORG $DDA7

         ;
         ; zapis liczby FP z FR0 według X,Y
         ;
FST0R    dta $86,$FC,$84,$FD
;------------------------------------------------
         ORG $DDAB

         ;
         ; zapis liczby FP z FR0 według FLPTR
         ;
FST0P    dta $A0,$05,$B9,$D4,$00,$91,$FC,$88
         dta $10,$F8,$60
;------------------------------------------------
         ORG $DDB6

         ;
         ; przepisanie z FR0 do FR1
         ;
FMOV01   dta $A2,$05,$B5,$D4,$95,$E0,$CA,$10
         dta $F9,$60
;------------------------------------------------
         ORG $DDC0

         ;
         ; potęgowanie o podstawie e
         ;
EXP      dta $A2,$89,$A0,$DE,$20,$98,$DD,$20
         dta $DB,$DA,$B0,$7F
;------------------------------------------------
         ORG $DDCC

         ;
         ; potęgowanie o podstawie 10
         ;
EXP10    dta $A9,$00,$85,$F1,$A5,$D4,$85,$F0
         dta $29,$7F,$85,$D4,$38,$E9,$40,$30
         dta $26,$C9,$04,$10,$6A,$A2,$E6,$A0
         dta $05,$20,$A7,$DD,$20,$D2,$D9,$A5
         dta $D4,$85,$F1,$A5,$D5,$D0,$58,$20
         dta $AA,$D9,$20,$B6,$DD,$A2,$E6,$A0
         dta $05,$20,$89,$DD,$20,$60,$DA,$A9
         dta $0A,$A2,$4D,$A0,$DE,$20,$40,$DD
         dta $20,$B6,$DD,$20,$DB,$DA,$A5,$F1
         dta $F0,$23,$18,$6A,$85,$E0,$A9,$01
         dta $90,$02,$A9,$10,$85,$E1,$A2,$04
         dta $A9,$00,$95,$E2,$CA,$10,$FB,$A5
         dta $E0,$18,$69,$40,$B0,$19,$30,$17
         dta $85,$E0,$20,$DB,$DA,$A5,$F0,$10
         dta $0D,$20,$B6,$DD,$A2,$8F,$A0,$DE
         dta $20,$89,$DD,$20,$28,$DB,$60,$38
         dta $60
;------------------------------------------------
         ORG $DE4D

         ;
         ; tabela współczynników potęgowania
         ;
TP10     dta $3D,$17,$94,$19,$00,$00,$3D,$57
         dta $33,$05,$00,$00,$3E,$05,$54,$76
         dta $62,$00,$3E,$32,$19,$62,$27,$00
         dta $3F,$01,$68,$60,$30,$36,$3F,$07
         dta $32,$03,$27,$41,$3F,$25,$43,$34
         dta $56,$75,$3F,$66,$27,$37,$30,$50
         dta $40,$01,$15,$12,$92,$55,$3F,$99
         dta $99,$99,$99,$99,$3F,$43,$42,$94
         dta $48,$19,$40,$01,$00,$00,$00,$00
;------------------------------------------------
         ORG $DE95

         ;
         ; iloraz różnicowy
         ;
RSQT     dta $86,$FE,$84,$FF,$A2,$E0,$A0,$05
         dta $20,$A7,$DD,$A6,$FE,$A4,$FF,$20
         dta $98,$DD,$20,$66,$DA,$A2,$E6,$A0
         dta $05,$20,$A7,$DD,$A2,$E0,$A0,$05
         dta $20,$89,$DD,$A6,$FE,$A4,$FF,$20
         dta $98,$DD,$20,$60,$DA,$A2,$E6,$A0
         dta $05,$20,$98,$DD,$20,$28,$DB,$60
;------------------------------------------------
         ORG $DECD

         ;
         ; logarytm naturalny
         ;
LOG      dta $A9,$01,$D0,$02
;------------------------------------------------
         ORG $DED1

         ;
         ; logarytm dziesiętny
         ;
LOG10    dta $A9,$00,$85,$F0,$A5,$D4,$F0,$05
         dta $30,$03,$4C,$F6,$DF,$38,$60,$E9
         dta $40,$0A,$85,$F1,$A5,$D5,$29,$F0
         dta $D0,$04,$A9,$01,$D0,$04,$E6,$F1
         dta $A9,$10,$85,$E1,$A2,$04,$A9,$00
         dta $95,$E2,$CA,$10,$FB,$20,$28,$DB
         dta $A2,$66,$A0,$DF,$20,$95,$DE,$A2
         dta $E6,$A0,$05,$20,$A7,$DD,$20,$B6
         dta $DD,$20,$DB,$DA,$A9,$0A,$A2,$72
         dta $A0,$DF,$20,$40,$DD,$A2,$E6,$A0
         dta $05,$20,$98,$DD,$20,$DB,$DA,$A2
         dta $6C,$A0,$DF,$20,$98,$DD,$20,$66
         dta $DA,$20,$B6,$DD,$A9,$00,$85,$D5
         dta $A5,$F1,$85,$D4,$10,$07,$49,$FF
         dta $18,$69,$01,$85,$D4,$20,$AA,$D9
         dta $24,$F1,$10,$06,$A9,$80,$05,$D4
         dta $85,$D4,$20,$66,$DA,$A5,$F0,$F0
         dta $0A,$A2,$89,$A0,$DE,$20,$98,$DD
         dta $20,$28,$DB,$18,$60
;------------------------------------------------
         ORG $DF66

         ;
         ; tabela współczynników logarytmowania
         ;
TLOG     dta $40,$03,$16,$22,$77,$66,$3F,$50
         dta $00,$00,$00,$00,$3F,$49,$15,$57
         dta $11,$08,$BF,$51,$70,$49,$47,$08
         dta $3F,$39,$20,$57,$61,$95,$BF,$04
         dta $39,$63,$03,$55,$3F,$10,$09,$30
         dta $12,$64,$3F,$09,$39,$08,$04,$60
         dta $3F,$12,$42,$58,$47,$42,$3F,$17
         dta $37,$12,$06,$08,$3F,$28,$95,$29
         dta $71,$17,$3F,$86,$85,$88,$96,$44
;------------------------------------------------
         ORG $DFAE

         ;
         ; tabela współczynników funkcji arctg
         ;
TATAN    dta $3E,$16,$05,$44,$49,$00,$BE,$95
         dta $68,$38,$45,$00,$3F,$02,$68,$79
         dta $94,$16,$BF,$04,$92,$78,$90,$80
         dta $3F,$07,$03,$15,$20,$00,$BF,$08
         dta $92,$29,$12,$44,$3F,$11,$08,$40
         dta $09,$11,$BF,$14,$28,$31,$56,$04
         dta $3F,$19,$99,$98,$77,$44,$BF,$33
         dta $33,$33,$31,$13,$3F,$99,$99,$99
         dta $99,$99,$3F,$78,$53,$98,$16,$34
         dta $A5,$D4,$85,$E0,$38,$4C,$E0,$DE
         dta $00,$00
;------------------------------------------------
         ORG $E000

         ;
         ; standardowy zestaw znaków
         ;
CHARSET1 dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$18,$18,$18,$18,$00,$18,$00
         dta $00,$66,$66,$66,$00,$00,$00,$00
         dta $00,$66,$FF,$66,$66,$FF,$66,$00
         dta $18,$3E,$60,$3C,$06,$7C,$18,$00
         dta $00,$66,$6C,$18,$30,$66,$46,$00
         dta $1C,$36,$1C,$38,$6F,$66,$3B,$00
         dta $00,$18,$18,$18,$00,$00,$00,$00
         dta $00,$0E,$1C,$18,$18,$1C,$0E,$00
         dta $00,$70,$38,$18,$18,$38,$70,$00
         dta $00,$66,$3C,$FF,$3C,$66,$00,$00
         dta $00,$18,$18,$7E,$18,$18,$00,$00
         dta $00,$00,$00,$00,$00,$18,$18,$30
         dta $00,$00,$00,$7E,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$18,$18,$00
         dta $00,$06,$0C,$18,$30,$60,$40,$00
         dta $00,$3C,$66,$6E,$76,$66,$3C,$00
         dta $00,$18,$38,$18,$18,$18,$7E,$00
         dta $00,$3C,$66,$0C,$18,$30,$7E,$00
         dta $00,$7E,$0C,$18,$0C,$66,$3C,$00
         dta $00,$0C,$1C,$3C,$6C,$7E,$0C,$00
         dta $00,$7E,$60,$7C,$06,$66,$3C,$00
         dta $00,$3C,$60,$7C,$66,$66,$3C,$00
         dta $00,$7E,$06,$0C,$18,$30,$30,$00
         dta $00,$3C,$66,$3C,$66,$66,$3C,$00
         dta $00,$3C,$66,$3E,$06,$0C,$38,$00
         dta $00,$00,$18,$18,$00,$18,$18,$00
         dta $00,$00,$18,$18,$00,$18,$18,$30
         dta $06,$0C,$18,$30,$18,$0C,$06,$00
         dta $00,$00,$7E,$00,$00,$7E,$00,$00
         dta $60,$30,$18,$0C,$18,$30,$60,$00
         dta $00,$3C,$66,$0C,$18,$00,$18,$00
         dta $00,$3C,$66,$6E,$6E,$60,$3E,$00
         dta $00,$18,$3C,$66,$66,$7E,$66,$00
         dta $00,$7C,$66,$7C,$66,$66,$7C,$00
         dta $00,$3C,$66,$60,$60,$66,$3C,$00
         dta $00,$78,$6C,$66,$66,$6C,$78,$00
         dta $00,$7E,$60,$7C,$60,$60,$7E,$00
         dta $00,$7E,$60,$7C,$60,$60,$60,$00
         dta $00,$3E,$60,$60,$6E,$66,$3E,$00
         dta $00,$66,$66,$7E,$66,$66,$66,$00
         dta $00,$7E,$18,$18,$18,$18,$7E,$00
         dta $00,$06,$06,$06,$06,$66,$3C,$00
         dta $00,$66,$6C,$78,$78,$6C,$66,$00
         dta $00,$60,$60,$60,$60,$60,$7E,$00
         dta $00,$63,$77,$7F,$6B,$63,$63,$00
         dta $00,$66,$76,$7E,$7E,$6E,$66,$00
         dta $00,$3C,$66,$66,$66,$66,$3C,$00
         dta $00,$7C,$66,$66,$7C,$60,$60,$00
         dta $00,$3C,$66,$66,$66,$6C,$36,$00
         dta $00,$7C,$66,$66,$7C,$6C,$66,$00
         dta $00,$3C,$60,$3C,$06,$06,$3C,$00
         dta $00,$7E,$18,$18,$18,$18,$18,$00
         dta $00,$66,$66,$66,$66,$66,$7E,$00
         dta $00,$66,$66,$66,$66,$3C,$18,$00
         dta $00,$63,$63,$6B,$7F,$77,$63,$00
         dta $00,$66,$66,$3C,$3C,$66,$66,$00
         dta $00,$66,$66,$3C,$18,$18,$18,$00
         dta $00,$7E,$0C,$18,$30,$60,$7E,$00
         dta $00,$1E,$18,$18,$18,$18,$1E,$00
         dta $00,$40,$60,$30,$18,$0C,$06,$00
         dta $00,$78,$18,$18,$18,$18,$78,$00
         dta $00,$08,$1C,$36,$63,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$FF,$00
         dta $00,$36,$7F,$7F,$3E,$1C,$08,$00
         dta $18,$18,$18,$1F,$1F,$18,$18,$18
         dta $03,$03,$03,$03,$03,$03,$03,$03
         dta $18,$18,$18,$F8,$F8,$00,$00,$00
         dta $18,$18,$18,$F8,$F8,$18,$18,$18
         dta $00,$00,$00,$F8,$F8,$18,$18,$18
         dta $03,$07,$0E,$1C,$38,$70,$E0,$C0
         dta $C0,$E0,$70,$38,$1C,$0E,$07,$03
         dta $01,$03,$07,$0F,$1F,$3F,$7F,$FF
         dta $00,$00,$00,$00,$0F,$0F,$0F,$0F
         dta $80,$C0,$E0,$F0,$F8,$FC,$FE,$FF
         dta $0F,$0F,$0F,$0F,$00,$00,$00,$00
         dta $F0,$F0,$F0,$F0,$00,$00,$00,$00
         dta $FF,$FF,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$FF,$FF
         dta $00,$00,$00,$00,$F0,$F0,$F0,$F0
         dta $00,$1C,$1C,$77,$77,$08,$1C,$00
         dta $00,$00,$00,$1F,$1F,$18,$18,$18
         dta $00,$00,$00,$FF,$FF,$00,$00,$00
         dta $18,$18,$18,$FF,$FF,$18,$18,$18
         dta $00,$00,$3C,$7E,$7E,$7E,$3C,$00
         dta $00,$00,$00,$00,$FF,$FF,$FF,$FF
         dta $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
         dta $00,$00,$00,$FF,$FF,$18,$18,$18
         dta $18,$18,$18,$FF,$FF,$00,$00,$00
         dta $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0
         dta $18,$18,$18,$1F,$1F,$00,$00,$00
         dta $78,$60,$78,$60,$7E,$18,$1E,$00
         dta $00,$18,$3C,$7E,$18,$18,$18,$00
         dta $00,$18,$18,$18,$7E,$3C,$18,$00
         dta $00,$18,$30,$7E,$30,$18,$00,$00
         dta $00,$18,$0C,$7E,$0C,$18,$00,$00
         dta $00,$18,$3C,$7E,$7E,$3C,$18,$00
         dta $00,$00,$3C,$06,$3E,$66,$3E,$00
         dta $00,$60,$60,$7C,$66,$66,$7C,$00
         dta $00,$00,$3C,$60,$60,$60,$3C,$00
         dta $00,$06,$06,$3E,$66,$66,$3E,$00
         dta $00,$00,$3C,$66,$7E,$60,$3C,$00
         dta $00,$0E,$18,$3E,$18,$18,$18,$00
         dta $00,$00,$3E,$66,$66,$3E,$06,$7C
         dta $00,$60,$60,$7C,$66,$66,$66,$00
         dta $00,$18,$00,$38,$18,$18,$3C,$00
         dta $00,$06,$00,$06,$06,$06,$06,$3C
         dta $00,$60,$60,$6C,$78,$6C,$66,$00
         dta $00,$38,$18,$18,$18,$18,$3C,$00
         dta $00,$00,$66,$7F,$7F,$6B,$63,$00
         dta $00,$00,$7C,$66,$66,$66,$66,$00
         dta $00,$00,$3C,$66,$66,$66,$3C,$00
         dta $00,$00,$7C,$66,$66,$7C,$60,$60
         dta $00,$00,$3E,$66,$66,$3E,$06,$06
         dta $00,$00,$7C,$66,$60,$60,$60,$00
         dta $00,$00,$3E,$60,$3C,$06,$7C,$00
         dta $00,$18,$7E,$18,$18,$18,$0E,$00
         dta $00,$00,$66,$66,$66,$66,$3E,$00
         dta $00,$00,$66,$66,$66,$3C,$18,$00
         dta $00,$00,$63,$6B,$7F,$3E,$36,$00
         dta $00,$00,$66,$3C,$18,$3C,$66,$00
         dta $00,$00,$66,$66,$66,$3E,$0C,$78
         dta $00,$00,$7E,$0C,$18,$30,$7E,$00
         dta $00,$18,$3C,$7E,$7E,$18,$3C,$00
         dta $18,$18,$18,$18,$18,$18,$18,$18
         dta $00,$7E,$78,$7C,$6E,$66,$06,$00
         dta $08,$18,$38,$78,$38,$18,$08,$00
         dta $10,$18,$1C,$1E,$1C,$18,$10,$00
;------------------------------------------------
         ORG $E400

         ;
         ; wektory obsługi edytora
         ;
EDTVEC   dta $93,$EF,$2D,$F2,$49,$F2,$AF,$F2
         dta $1D,$F2,$2C,$F2,$4C,$6E,$EF,$00
;------------------------------------------------
         ORG $E410

         ;
         ; wektory obsługi ekranu
         ;
SCRVEC   dta $8D,$EF,$2D,$F2,$7F,$F1,$A3,$F1
         dta $1D,$F2,$AE,$F9,$4C,$6E,$EF,$00
;------------------------------------------------
         ORG $E420

         ;
         ; wektory obsługi klawiatury
         ;
KBDVEC   dta $1D,$F2,$1D,$F2,$FC,$F2,$2C,$F2
         dta $1D,$F2,$2C,$F2,$4C,$6E,$EF,$00
;------------------------------------------------
         ORG $E430

         ;
         ; wektory obsługi drukarki
         ;
PRTVEC   dta $C1,$FE,$06,$FF,$C0,$FE,$CA,$FE
         dta $A2,$FE,$C0,$FE,$4C,$99,$FE,$00
;------------------------------------------------
         ORG $E440

         ;
         ; wektory obsługi magnetofonu
         ;
CASVEC   dta $E5,$FC,$CE,$FD,$79,$FD,$B3,$FD
         dta $CB,$FD,$E4,$FC,$4C,$DB,$FC,$00
;------------------------------------------------
         ORG $E450

         ;
         ; skok do DSKINIT
         ;
JDSKINIT dta $4C,$A3,$C6
;------------------------------------------------
         ORG $E453

         ;
         ; skok do DSKINT
         ;
JDSKINT  dta $4C,$B3,$C6
;------------------------------------------------
         ORG $E456

         ;
         ; skok do CIOMAIN
         ;
JCIOMAIN dta $4C,$DF,$E4
;------------------------------------------------
         ORG $E459

         ;
         ; skok do SIOINT
         ;
JSIOINT  dta $4C,$33,$C9
;------------------------------------------------
         ORG $E45C

         ;
         ; skok do SETVBLV
         ;
JSETVBV  dta $4C,$72,$C2,$4C,$E2,$C0
;------------------------------------------------
         ORG $E462

         ;
         ; skok do EXITVBL
         ;
JEXITVB  dta $4C,$8A,$C2
;------------------------------------------------
         ORG $E465

         ;
         ; skok do SIOINIT
         ;
JSIOINIT dta $4C,$5C,$E9
;------------------------------------------------
         ORG $E468

         ;
         ; skok do SNDENBL
         ;
JSNDENB  dta $4C,$17,$EC
;------------------------------------------------
         ORG $E46B

         ;
         ; skok do NMIENBL
         ;
JNMIEN   dta $4C,$0C,$C0
;------------------------------------------------
         ORG $E46E

         ;
         ; skok do CIOINIT
         ;
JCIOINIT dta $4C,$C1,$E4,$4C,$23,$F2,$4C,$90
         dta $C2,$4C,$C8,$C2
;------------------------------------------------
         ORG $E47A

         ;
         ; skok do CASRDBL
         ;
         ;
         ; skok do CASRDBL
         ;
JCASRDBL dta $4C,$8D,$FD
;------------------------------------------------
         ORG $E47D

         ;
         ; skok do CASOPIN
         ;
JCASOPIN dta $4C,$F7,$FC,$4C,$23,$F2
;------------------------------------------------
         ORG $E483

         ;
         ; skok do TESTST
         ;
JTESTST  dta $4C,$00,$50,$4C,$BC,$EE,$4C,$15
         dta $E9,$4C,$98,$E8
;------------------------------------------------
         ORG $E48F

         ;
         ; tabela adresowa nowych urządzeń
         ;
CALTAB   dta $90,$C9,$95,$C9,$9A,$C9,$9F,$C9
         dta $A4,$C9,$A9,$C9
;------------------------------------------------
         ORG $E49B

         ;
         ; skok do NEWINIT
         ;
NEWINITC dta $4C,$0C,$C9,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$00,$00,$00
         dta $00,$00,$00,$00,$00,$60
;------------------------------------------------
         ORG $E4C1

         ;
         ; inicjowanie obsługi urządzeń
         ;
CIOINIT  dta $A2,$00,$A9,$FF,$9D,$40,$03,$A9
         dta $DB,$9D,$46,$03,$A9,$E4,$9D,$47
         dta $03,$8A,$18,$69,$10,$AA,$C9,$80
         dta $90,$E8,$60
;------------------------------------------------
         ORG $E4DC

         ;
         ; kanał I/O nie otwarty
         ;
CIONOPN  dta $A0,$85,$60
;------------------------------------------------
         ORG $E4DF

         ;
         ; procedura obsługi urządzeń
         ;
CIOMAIN  dta $85,$2F,$86,$2E,$8A,$29,$0F,$D0
         dta $04,$E0,$80,$90,$05,$A0,$86,$4C
         dta $70,$E6,$A0,$00,$BD,$40,$03,$99
         dta $20,$00,$E8,$C8,$C0,$0C,$90,$F4
         dta $A5,$20,$C9,$7F,$D0,$15,$A5,$22
         dta $C9,$0C,$F0,$71,$AD,$E9,$02,$D0
         dta $05
;------------------------------------------------
         ORG $E510

         ;
         ; błąd: urządzenie nie istnieje
         ;
NEXDER   dta $A0,$82,$4C,$70,$E6,$20,$29,$CA
         dta $30,$F8,$A0,$84,$A5,$22,$C9,$03
         dta $90,$25,$A8,$C0,$0E,$90,$02,$A0
         dta $0E,$84,$17,$B9,$2A,$E7,$F0,$0F
         dta $C9,$02,$F0,$48,$C9,$08,$B0,$5F
         dta $C9,$04,$F0,$76,$4C,$1E,$E6
;------------------------------------------------
         ORG $E53F

         ;
         ; procedura otwarcia kanału IOCB
         ;
CIOOPN   dta $A5,$20,$C9,$FF,$F0,$05,$A0,$81
         dta $4C,$70,$E6,$AD,$E9,$02,$D0,$27
         dta $20,$FF,$E6,$B0,$22,$A9,$00,$8D
         dta $EA,$02,$8D,$EB,$02
;------------------------------------------------
         ORG $E55C

         ;
         ; przygotowanie otwarcia IOCB
         ;
INIOPN   dta $20,$95,$E6,$B0,$E6,$20,$EA,$E6
         dta $A9,$0B,$85,$17,$20,$95,$E6,$A5
         dta $2C,$85,$26,$A5,$2D,$85,$27,$4C
         dta $72,$E6,$20,$F9,$EE,$4C,$70,$E6
;------------------------------------------------
         ORG $E57C

         ;
         ; procedura zamknięcia kanału IOCB
         ;
CIOCLS   dta $A0,$01,$84,$23,$20,$95,$E6,$B0
         dta $03,$20,$EA,$E6,$A9,$FF,$85,$20
         dta $A9,$E4,$85,$27,$A9,$DB,$85,$26
         dta $4C,$72,$E6
;------------------------------------------------
         ORG $E597

         ;
         ; odczyt statusu i operacje specjalne CIO
         ;
CIOSTSP  dta $A5,$20,$C9,$FF,$D0,$05,$20,$FF
         dta $E6,$B0,$A5,$20,$95,$E6,$20,$EA
         dta $E6,$A6,$2E,$BD,$40,$03,$85,$20
         dta $4C,$72,$E6
;------------------------------------------------
         ORG $E5B2

         ;
         ; odczyt z kanału IOCB
         ;
CIOREAD  dta $A5,$22,$25,$2A,$D0,$05,$A0,$83
         dta $4C,$70,$E6,$20,$95,$E6,$B0,$F8
         dta $A5,$28,$05,$29,$D0,$08,$20,$EA
         dta $E6,$85,$2F,$4C,$72,$E6,$20,$EA
         dta $E6,$85,$2F,$30,$41,$A0,$00,$91
         dta $24,$20,$D1,$E6,$A5,$22,$29,$02
         dta $D0,$0C,$A5,$2F,$C9,$9B,$D0,$06
         dta $20,$BB,$E6,$4C,$18,$E6,$20,$BB
         dta $E6,$D0,$DB,$A5,$22,$29,$02,$D0
         dta $1D,$20,$EA,$E6,$85,$2F,$30,$0A
         dta $A5,$2F,$C9,$9B,$D0,$F3,$A9,$89
         dta $85,$23,$20,$C8,$E6,$A0,$00,$A9
         dta $9B,$91,$24,$20,$D1,$E6,$20,$D8
         dta $E6,$4C,$72,$E6
;------------------------------------------------
         ORG $E61E

         ;
         ; zapis do kanału IOCB
         ;
CIOWRT   dta $A5,$22,$25,$2A,$D0,$05,$A0,$87
         dta $4C,$70,$E6,$20,$95,$E6,$B0,$F8
         dta $A5,$28,$05,$29,$D0,$06,$A5,$2F
         dta $E6,$28,$D0,$06,$A0,$00,$B1,$24
         dta $85,$2F,$20,$EA,$E6,$08,$20,$D1
         dta $E6,$20,$BB,$E6,$28,$30,$1D,$A5
         dta $22,$29,$02,$D0,$06,$A5,$2F,$C9
         dta $9B,$F0,$11,$A5,$28,$05,$29,$D0
         dta $DB,$A5,$22,$29,$02,$D0,$05,$A9
         dta $9B,$20,$EA,$E6,$20,$D8,$E6,$4C
         dta $72,$E6
;------------------------------------------------
         ORG $E670

         ;
         ; powrót z procedury CIO
         ;
CIORET   dta $84,$23
;------------------------------------------------
         ORG $E672

         ;
         ; zakończenie operacji CIO
         ;
CPLCIO   dta $A4,$2E,$B9,$44,$03,$85,$24,$B9
         dta $45,$03,$85,$25,$A2,$00,$8E,$E9
         dta $02,$B5,$20,$99,$40,$03,$E8,$C8
         dta $E0,$0C,$90,$F5,$A5,$2F,$A6,$2E
         dta $A4,$23,$60
;------------------------------------------------
         ORG $E695

         ;
         ; ustalenie adresu procedury operacji I/O
         ;
CMPENT   dta $A4,$20,$C0,$22,$90,$04,$A0,$85
         dta $B0,$1B,$B9,$1B,$03,$85,$2C,$B9
         dta $1C,$03,$85,$2D,$A4,$17,$B9,$2A
         dta $E7,$A8,$B1,$2C,$AA,$C8,$B1,$2C
         dta $85,$2D,$86,$2C,$18,$60
;------------------------------------------------
         ORG $E6BB

         ;
         ; zmniejszenie długości bufora danych
         ;
DECBUFL  dta $A5,$28,$D0,$02,$C6,$29,$C6,$28
         dta $A5,$28,$05,$29,$60
;------------------------------------------------
         ORG $E6C8

         ;
         ; zmniejszenie adresu bufora danych
         ;
DECBUFP  dta $A5,$24,$D0,$02,$C6,$25,$C6,$24
         dta $60
;------------------------------------------------
         ORG $E6D1

         ;
         ; zwiększenie adresu bufora danych
         ;
INCBUFP  dta $E6,$24,$D0,$02,$E6,$25,$60
;------------------------------------------------
         ORG $E6D8

         ;
         ; zmniejszenie długości bufora danych
         ;
SUBBUFL  dta $A6,$2E,$38,$BD,$48,$03,$E5,$28
         dta $85,$28,$BD,$49,$03,$E5,$29,$85
         dta $29,$60
;------------------------------------------------
         ORG $E6EA

         ;
         ; przejście do procedury operacji I/O
         ;
GOHAND   dta $A0,$92,$20,$F4,$E6,$84,$23,$C0
         dta $00,$60
;------------------------------------------------
         ORG $E6F4

         ;
         ; skok do procedury według adresu ze stosu
         ;
CIOJMP   dta $AA,$A5,$2D,$48,$A5,$2C,$48,$8A
         dta $A6,$2E,$60
;------------------------------------------------
         ORG $E6FF

         ;
         ; ustalenie numeru urządzenia
         ;
DEVNUM   dta $38,$A0,$01,$B1,$24,$E9,$31,$30
         dta $04,$C9,$09,$90,$02,$A9,$00,$85
         dta $21,$E6,$21
;------------------------------------------------
         ORG $E712

         ;
         ; poszukiwanie urządzenia w HATABS
         ;
DVSRCH   dta $A0,$00,$B1,$24
;------------------------------------------------
         ORG $E716

         ;
         ; poszukiwanie urządzenia w HATABS
         ;
FDVHND   dta $F0,$0C,$A0,$21,$D9,$1A,$03,$F0
         dta $09,$88,$88,$88,$10,$F6,$A0,$82
         dta $38,$60,$98,$85,$20,$18,$60
;------------------------------------------------
         ORG $E72D

         ;
         ; tabela indeksów adresów operacji I/O
         ;
COMTAB   dta $00,$04,$04,$04,$04,$06,$06,$06
         dta $06,$02,$08,$0A
;------------------------------------------------
         ORG $E739

         ;
         ; procedura dołączania urządzeń
         ;
         ;
         ; procedura dołączania urządzeń
         ;
LINKSOM  dta $A5,$08,$F0,$25,$A9,$E9,$85,$4A
         dta $A9,$03,$85,$4B,$A0,$12,$18,$B1
         dta $4A,$AA,$C8,$71,$4A,$F0,$26,$B1
         dta $4A,$85,$4B,$86,$4A,$20,$56,$CB
         dta $D0,$1B,$20,$94,$E8,$B0,$16,$90
         dta $E3,$A9,$00,$8D,$FB,$03,$8D,$FC
         dta $03,$A9,$4F,$D0,$2D,$A9,$00,$A8
         dta $20,$BE,$E7,$10,$01,$60,$18,$AD
         dta $E7,$02,$6D,$EA,$02,$8D,$12,$03
         dta $AD,$E8,$02,$6D,$EB,$02,$8D,$13
         dta $03,$38,$AD,$E5,$02,$ED,$12,$03
         dta $AD,$E6,$02,$ED,$13,$03,$B0,$09
         dta $A9,$4E,$A8,$20,$BE,$E7,$4C,$6E
         dta $E7,$AD,$EC,$02,$AE,$E7,$02,$8E
         dta $EC,$02,$AE,$E8,$02,$8E,$ED,$02
         dta $20,$DE,$E7,$30,$E3,$38,$20,$9E
         dta $E8,$B0,$DD,$90,$B0
;------------------------------------------------
         ORG $E7BE

         ;
         ; inicjowanie SIO dla nowego urządzenia
         ;
DCBINI   dta $48,$A2,$09,$BD,$D4,$E7,$9D,$00
         dta $03,$CA,$10,$F7,$8C,$0B,$03,$68
         dta $8D,$0A,$03,$4C,$59,$E4
;------------------------------------------------
         ORG $E7D4

         ;
         ; tabela wartości do inicjowania SIO
         ;
TSIOIN   dta $4F,$01,$40,$40,$EA,$02,$1E,$00
         dta $04,$00
;------------------------------------------------
         ORG $E7DE

         ;
         ; inicjowanie odczytu z nowego urządzenia
         ;
INITLD   dta $8D,$13,$03,$A2,$00,$8E,$12,$03
         dta $CA,$8E,$15,$03,$AD,$EC,$02,$6A
         dta $90,$08,$EE,$EC,$02,$D0,$03,$EE
         dta $ED,$02,$AD,$EC,$02,$8D,$D1,$02
         dta $AD,$ED,$02,$8D,$D2,$02,$A9,$16
         dta $8D,$CF,$02,$A9,$E8,$8D,$D0,$02
         dta $A9,$80,$8D,$D3,$02,$4C,$45,$C7
;------------------------------------------------
         ORG $E816

         ;
         ; odczyt bajtu z nowego urządzenia
         ;
GETBYT   dta $AE,$15,$03,$E8,$8E,$15,$03,$F0
         dta $08,$AE,$15,$03,$BD,$7D,$03,$18
         dta $60,$A9,$80,$8D,$15,$03,$20,$33
         dta $E8,$10,$EE,$38,$60
;------------------------------------------------
         ORG $E833

         ;
         ; odczyt bloku z nowego urządzenia
         ;
GTNXBL   dta $A2,$0B,$BD,$51,$E8,$9D,$00,$03
         dta $CA,$10,$F7,$AE,$12,$03,$8E,$0A
         dta $03,$E8,$8E,$12,$03,$AD,$13,$03
         dta $8D,$00,$03,$4C,$59,$E4
;------------------------------------------------
         ORG $E851

         ;
         ; tabela parametrów DCB dla GTNXBL
         ;
SIOTAB   dta $00,$01,$26,$40,$FD,$03,$1E,$00
         dta $80,$00,$00,$00
;------------------------------------------------
         ORG $E85D

         ;
         ; przeszukiwanie listy liniowej
         ;
SRCHLS   dta $8C,$12,$03,$8D,$13,$03,$A9,$E9
         dta $85,$4A,$A9,$03,$85,$4B,$A0,$12
         dta $B1,$4A,$AA,$C8,$B1,$4A,$CD,$13
         dta $03,$D0,$07,$EC,$12,$03,$D0,$02
         dta $18,$60,$C9,$00,$D0,$06,$E0,$00
         dta $D0,$02,$38,$60,$86,$4A,$85,$4B
         dta $20,$56,$CB,$D0,$F5,$F0,$D7
;------------------------------------------------
         ORG $E894

         ;
         ; dołączanie elementu przy gorącym starcie
         ;
LINKWM   dta $38,$08,$B0,$28,$8D,$ED,$02,$8C
         dta $EC,$02
;------------------------------------------------
         ORG $E89E

         ;
         ; dołączanie elementu przy zimnym starcie
         ;
LINKCD   dta $08,$A9,$00,$A8,$20,$5D,$E8,$B0
         dta $27,$A0,$12,$AD,$EC,$02,$91,$4A
         dta $AA,$C8,$AD,$ED,$02,$91,$4A,$86
         dta $4A,$85,$4B,$A9,$00,$91,$4A,$88
         dta $91,$4A,$20,$00,$E9,$90,$0C,$AD
         dta $ED,$02,$AC,$EC,$02,$20,$15,$E9
         dta $28,$38,$60,$28,$B0,$09,$A9,$00
         dta $A0,$10,$91,$4A,$C8,$91,$4A,$18
         dta $A0,$10,$AD,$E7,$02,$71,$4A,$8D
         dta $E7,$02,$C8,$AD,$E8,$02,$71,$4A
         dta $8D,$E8,$02,$A0,$0F,$A9,$00,$91
         dta $4A,$20,$56,$CB,$A0,$0F,$91,$4A
         dta $18,$60
;------------------------------------------------
         ORG $E900

         ;
         ; tabela wektorów nowych urządzeń
         ;
CALVEC   dta $18,$A5,$4A,$69,$0C,$8D,$12,$03
         dta $A5,$4B,$69,$00,$8D,$13,$03,$6C
         dta $12,$03,$4C,$72,$C2
;------------------------------------------------
         ORG $E915

         ;
         ; usunięcie elementu z listy liniowej
         ;
UNLINK   dta $20,$5D,$E8,$B0,$3B,$A8,$A5,$4A
         dta $48,$A5,$4B,$48,$86,$4A,$84,$4B
         dta $AD,$44,$02,$D0,$0F,$A0,$10,$18
         dta $B1,$4A,$C8,$71,$4A,$D0,$1F,$20
         dta $56,$CB,$D0,$1A,$A0,$12,$B1,$4A
         dta $AA,$C8,$B1,$4A,$A8,$68,$85,$4B
         dta $68,$85,$4A,$98,$A0,$13,$91,$4A
         dta $88,$8A,$91,$4A,$18,$60,$68,$68
         dta $38,$60,$00,$00,$4C,$33,$C9
;------------------------------------------------
         ORG $E95C

         ;
         ; inicjowanie złącza szeregowego
         ;
SIOINIT  dta $A9,$3C,$8D,$02,$D3,$A9,$3C,$8D
         dta $03,$D3,$A9,$03,$8D,$32,$02,$85
         dta $41,$8D,$0F,$D2,$60
;------------------------------------------------
         ORG $E971

         ;
         ; obsługa złącza szeregowego
         ;
SIO      dta $BA,$8E,$18,$03,$A9,$01,$85,$42
         dta $AD,$00,$03,$C9,$60,$D0,$03,$4C
         dta $9D,$EB,$A9,$00,$8D,$0F,$03,$A9
         dta $01,$8D,$BD,$02,$A9,$0D,$8D,$9C
         dta $02,$A9,$28,$8D,$04,$D2,$A9,$00
         dta $8D,$06,$D2,$18,$AD,$00,$03,$6D
         dta $01,$03,$69,$FF,$8D,$3A,$02,$AD
         dta $02,$03,$8D,$3B,$02,$AD,$0A,$03
         dta $8D,$3C,$02,$AD,$0B,$03,$8D,$3D
         dta $02,$18,$A9,$3A,$85,$32,$69,$04
         dta $85,$34,$A9,$02,$85,$33,$85,$35
         dta $A9,$34,$8D,$03,$D3,$20,$AF,$EC
         dta $AD,$3F,$02,$D0,$03,$98,$D0,$08
         dta $CE,$9C,$02,$10,$B4,$4C,$22,$EA
         dta $AD,$03,$03,$10,$0D,$A9,$0D,$8D
         dta $9C,$02,$20,$87,$EB,$20,$AF,$EC
         dta $F0,$2F,$20,$9A,$EC,$A9,$00,$8D
         dta $3F,$02,$20,$C0,$EC,$F0,$12,$2C
         dta $03,$03,$70,$07,$AD,$3F,$02,$D0
         dta $18,$F0,$1E,$20,$87,$EB,$20,$FD
         dta $EA,$AD,$3F,$02,$F0,$05,$AD,$19
         dta $03,$85,$30,$A5,$30,$C9,$01,$F0
         dta $08,$CE,$BD,$02,$30,$03,$4C,$8D
         dta $E9
;------------------------------------------------
         ORG $EA2A

         ;
         ; zakończenie operacji SIO
         ;
CLPSIO   dta $20,$84,$EC,$A9,$00,$85,$42,$A4
         dta $30,$8C,$03,$03,$60
;------------------------------------------------
         ORG $EA37

         ;
         ; oczekiwanie na potwierdzenie
         ;
WAIT     dta $A9,$00,$8D,$3F,$02,$18,$A9,$3E
         dta $85,$32,$69,$01,$85,$34,$A9,$02
         dta $85,$33,$85,$35,$A9,$FF,$85,$3C
         dta $20,$FD,$EA,$A0,$FF,$A5,$30,$C9
         dta $01,$D0,$19,$AD,$3E,$02,$C9,$41
         dta $F0,$21,$C9,$43,$F0,$1D,$C9,$45
         dta $D0,$06,$A9,$90,$85,$30,$D0,$04
         dta $A9,$8B,$85,$30,$A5,$30,$C9,$8A
         dta $F0,$07,$A9,$FF,$8D,$3F,$02,$D0
         dta $02,$A0,$00,$A5,$30,$8D,$19,$03
         dta $60
;------------------------------------------------
         ORG $EA88

         ;
         ; nadawanie na szynę szeregową
         ;
SEND     dta $A9,$01,$85,$30,$20,$17,$EC,$A0
         dta $00,$84,$31,$84,$3B,$84,$3A,$B1
         dta $32,$8D,$0D,$D2,$85,$31,$A5,$11
         dta $D0,$03,$4C,$C7,$ED,$A5,$3A,$F0
         dta $F5,$20,$84,$EC,$60
;------------------------------------------------
         ORG $EAAD

         ;
         ; przerwanie zapisu danych
         ;
ISRODN   dta $98,$48,$E6,$32,$D0,$02,$E6,$33
         dta $A5,$32,$C5,$34,$A5,$33,$E5,$35
         dta $90,$1C,$A5,$3B,$D0,$0B,$A5,$31
         dta $8D,$0D,$D2,$A9,$FF,$85,$3B,$D0
         dta $09,$A5,$10,$09,$08,$85,$10,$8D
         dta $0E,$D2,$68,$A8,$68,$40,$A0,$00
         dta $B1,$32,$8D,$0D,$D2,$18,$65,$31
         dta $69,$00,$85,$31,$4C,$D7,$EA
;------------------------------------------------
         ORG $EAEC

         ;
         ; przerwanie końca transmisji
         ;
ISRXD    dta $A5,$3B,$F0,$0B,$85,$3A,$A5,$10
         dta $29,$F7,$85,$10,$8D,$0E,$D2,$68
         dta $40
;------------------------------------------------
         ORG $EAFD

         ;
         ; procedura odczytu SIO
         ;
RECEIV   dta $A9,$00,$AC,$0F,$03,$D0,$02,$85
         dta $31,$85,$38,$85,$39,$A9,$01,$85
         dta $30,$20,$40,$EC,$A9,$3C,$8D,$03
         dta $D3,$A5,$11,$D0,$03,$4C,$C7,$ED
         dta $AD,$17,$03,$F0,$05,$A5,$39,$F0
         dta $F0,$60
;------------------------------------------------
         ORG $EB27

         ;
         ; sygnalizacja błędu Timeout
         ;
ITIMOT   dta $A9,$8A,$85,$30,$60,$98,$48
;------------------------------------------------
         ORG $EB2E

         ;
         ; przerwanie odczytu danych
         ;
ISRSIR   dta $AD,$0F,$D2,$8D,$0A,$D2,$30,$04
         dta $A0,$8C,$84,$30,$29,$20,$D0,$04
         dta $A0,$8E,$84,$30,$A5,$38,$F0,$13
         dta $AD,$0D,$D2,$C5,$31,$F0,$04,$A0
         dta $8F,$84,$30,$A9,$FF,$85,$39,$68
         dta $A8,$68,$40,$AD,$0D,$D2,$A0,$00
         dta $91,$32,$18,$65,$31,$69,$00,$85
         dta $31,$E6,$32,$D0,$02,$E6,$33,$A5
         dta $32,$C5,$34,$A5,$33,$E5,$35,$90
         dta $DE,$A5,$3C,$F0,$06,$A9,$00,$85
         dta $3C,$F0,$D0,$A9,$FF,$85,$38,$D0
         dta $CE
;------------------------------------------------
         ORG $EB87

         ;
         ; przepisanie adresu i długości bufora
         ;
LODPTR   dta $18,$AD,$04,$03,$85,$32,$6D,$08
         dta $03,$85,$34,$AD,$05,$03,$85,$33
         dta $6D,$09,$03,$85,$35,$60
;------------------------------------------------
         ORG $EB9D

         ;
         ; procedura SIO dla magnetofonu
         ;
CASENT   dta $AD,$03,$03,$10,$32,$A9,$CC,$8D
         dta $04,$D2,$A9,$05,$8D,$06,$D2,$20
         dta $17,$EC,$A6,$62,$BC,$15,$EE,$AD
         dta $0B,$03,$30,$03,$BC,$11,$EE,$A2
         dta $00,$20,$E2,$ED,$A9,$34,$8D,$02
         dta $D3,$AD,$17,$03,$D0,$FB,$20,$87
         dta $EB,$20,$88,$EA,$4C,$04,$EC,$A9
         dta $FF,$8D,$0F,$03,$A6,$62,$BC,$17
         dta $EE,$AD,$0B,$03,$30,$03,$BC,$13
         dta $EE,$A2,$00,$20,$E2,$ED,$A9,$34
         dta $8D,$02,$D3,$AD,$17,$03,$D0,$FB
         dta $20,$87,$EB,$20,$9A,$EC,$20,$E2
         dta $ED,$20,$3D,$ED,$20,$FD,$EA,$AD
         dta $0B,$03,$30,$05,$A9,$3C,$8D,$02
         dta $D3,$4C,$2A,$EA
;------------------------------------------------
         ORG $EC11

         ;
         ; przerwanie licznika 1
         ;
TIM1INT  dta $A9,$00,$8D,$17,$03,$60
;------------------------------------------------
         ORG $EC17

         ;
         ; zezwolenie na zapis danych
         ;
SNDENBL  dta $A9,$07,$2D,$32,$02,$09,$20,$AC
         dta $00,$03,$C0,$60,$D0,$0C,$09,$08
         dta $A0,$07,$8C,$02,$D2,$A0,$05,$8C
         dta $00,$D2,$8D,$32,$02,$8D,$0F,$D2
         dta $A9,$C7,$25,$10,$09,$10,$4C,$56
         dta $EC
;------------------------------------------------
         ORG $EC40

         ;
         ; zezwolenie na odczyt danych
         ;
RECVEN   dta $A9,$07,$2D,$32,$02,$09,$10,$8D
         dta $32,$02,$8D,$0F,$D2,$8D,$0A,$D2
         dta $A9,$C7,$25,$10,$09,$20
;------------------------------------------------
         ORG $EC56

         ;
         ; zezwolenie na transmisję
         ;
ENABLE   dta $85,$10,$8D,$0E,$D2,$A9,$28,$8D
         dta $08,$D2,$A2,$06,$A9,$A8,$A4,$41
         dta $D0,$02,$A9,$A0,$9D,$01,$D2,$CA
         dta $CA,$10,$F9,$A9,$A0,$8D,$05,$D2
         dta $AC,$00,$03,$C0,$60,$F0,$06,$8D
         dta $01,$D2,$8D,$03,$D2,$60
;------------------------------------------------
         ORG $EC84

         ;
         ; zabronienie zapisu danych
         ;
SNDDIS   dta $EA,$A9,$C7,$25,$10,$85,$10,$8D
         dta $0E,$D2,$A2,$06,$A9,$00,$9D,$01
         dta $D2,$CA,$CA,$10,$F9,$60
;------------------------------------------------
         ORG $EC9A

         ;
         ; ustalenie Timeout
         ;
SETTOT   dta $AD,$06,$03,$6A,$6A,$A8,$29,$3F
         dta $AA,$98,$6A,$29,$C0,$A8,$60,$2C
         dta $EB,$AD,$EA,$EC,$EA
;------------------------------------------------
         ORG $ECAF

         ;
         ; rozpoczęcie operacji zapisu
         ;
SENDIN   dta $A2,$01,$A0,$FF,$88,$D0,$FD,$CA
         dta $D0,$F8,$20,$88,$EA,$A0,$02,$A2
         dta $00
;------------------------------------------------
         ORG $ECC0

         ;
         ; ustawienie Timeout i oczekiwanie
         ;
STIMWT   dta $20,$E2,$ED,$20,$37,$EA,$98,$60
;------------------------------------------------
         ORG $ECC8

         ;
         ; obliczenie rzeczywistej szybkości odczytu
         ;
COMPUT   dta $8D,$10,$03,$8C,$11,$03,$20,$2E
         dta $ED,$8D,$10,$03,$AD,$0C,$03,$20
         dta $2E,$ED,$8D,$0C,$03,$AD,$10,$03
         dta $38,$ED,$0C,$03,$8D,$12,$03,$AD
         dta $11,$03,$38,$ED,$0D,$03,$A8,$A6
         dta $62,$A9,$00,$38,$FD,$19,$EE,$18
         dta $7D,$19,$EE,$88,$10,$F9,$18,$6D
         dta $12,$03,$A8,$4A,$4A,$4A,$0A,$38
         dta $E9,$16,$AA,$98,$29,$07,$A8,$A9
         dta $F5,$18,$69,$0B,$88,$10,$FA,$A0
         dta $00,$38,$E9,$07,$10,$01,$88,$18
         dta $7D,$F9,$ED,$8D,$EE,$02,$98,$7D
         dta $FA,$ED,$8D,$EF,$02,$60
;------------------------------------------------
         ORG $ED2E

         ;
         ; poprawienie licznika w/g systemu TV
         ;
ADJUST   dta $C9,$7C,$30,$04,$38,$E9,$7C,$60
         dta $18,$A6,$62,$7D,$1B,$EE,$60
;------------------------------------------------
         ORG $ED3D

         ;
         ; rozpoczęcie odczytu z magnetofonu
         ;
BEGNRD   dta $A5,$11,$D0,$03,$4C,$C7,$ED,$78
         dta $AD,$17,$03,$D0,$02,$F0,$25,$AD
         dta $0F,$D2,$29,$10,$D0,$EA,$8D,$16
         dta $03,$AE,$0B,$D4,$A4,$14,$8E,$0C
         dta $03,$8C,$0D,$03,$A2,$01,$8E,$15
         dta $03,$A0,$0A,$A5,$11,$F0,$5B,$AD
         dta $17,$03,$D0,$04,$58,$4C,$27,$EB
         dta $AD,$0F,$D2,$29,$10,$CD,$16,$03
         dta $F0,$E9,$8D,$16,$03,$88,$D0,$E3
         dta $CE,$15,$03,$30,$0C,$AD,$0B,$D4
         dta $A4,$14,$20,$C8,$EC,$A0,$09,$D0
         dta $D2,$AD,$EE,$02,$8D,$04,$D2,$AD
         dta $EF,$02,$8D,$06,$D2,$A9,$00,$8D
         dta $0F,$D2,$AD,$32,$02,$8D,$0F,$D2
         dta $A9,$55,$91,$32,$C8,$91,$32,$A9
         dta $AA,$85,$31,$18,$A5,$32,$69,$02
         dta $85,$32,$A5,$33,$69,$00,$85,$33
         dta $58,$60
;------------------------------------------------
         ORG $EDC7

         ;
         ; obsługa klawisza BREAK
         ;
PRBRKK   dta $20,$84,$EC,$A9,$3C,$8D,$02,$D3
         dta $A9,$3C,$8D,$03,$D3,$A9,$80,$85
         dta $30,$AE,$18,$03,$9A,$C6,$11,$58
         dta $4C,$2A,$EA
;------------------------------------------------
         ORG $EDE2

         ;
         ; ustawienie przerwania TIMCNT1
         ;
SETT1V   dta $A9,$11,$8D,$26,$02,$A9,$EC,$8D
         dta $27,$02,$A9,$01,$78,$20,$5C,$E4
         dta $A9,$01,$8D,$17,$03,$58,$60
;------------------------------------------------
         ORG $EDF9

         ;
         ; tabela współczynników szybkości transmisji
         ;
POKTAB   dta $E8,$03,$43,$04,$9E,$04,$F9,$04
         dta $54,$05,$AF,$05,$0A,$06,$65,$06
         dta $C0,$06,$1A,$07,$75,$07,$D0,$07
;------------------------------------------------
         ORG $EE11

         ;
         ; tabela współczynników systemu TV
         ;
STVCTB   dta $B4,$96,$78,$64,$0F,$0D,$0A,$08
         dta $83,$9C
;------------------------------------------------
         ORG $EE1B

         ;
         ; tabela poprawek licznika
         ;
ADJTAB   dta $07,$20
;------------------------------------------------
         ORG $EE1D

         ;
         ; tabela adresów pamięci obrazu
         ;
TSMAL    dta $18,$10,$0A,$0A,$10,$1C,$34,$64
         dta $C4,$C4,$C4,$C4,$1C,$10,$64,$C4
;------------------------------------------------
         ORG $EE2D

         ;
         ; tabela wielkości programów ANTIC-a
         ;
TDLEC    dta $17,$17,$0B,$17,$2F,$2F,$5F,$5F
         dta $61,$61,$61,$61,$17,$0B,$BF,$61
         dta $13,$13,$09,$13,$27,$27,$4F,$4F
         dta $41,$41,$41,$41,$13,$09,$9F,$41
;------------------------------------------------
         ORG $EE4D

         ;
         ; tabela trybów ANTIC-a
         ;
TAGRM    dta $02,$06,$07,$08,$09,$0A,$0B,$0D
         dta $0F,$0F,$0F,$0F,$04,$05,$0C,$0E
;------------------------------------------------
         ORG $EE5D

         ;
         ; tabela wielkości trybów ANTIC-a
         ;
TDLVL    dta $00,$00,$00,$00,$00,$00,$00,$01
         dta $01,$01,$01,$01,$00,$00,$01,$01
;------------------------------------------------
         ORG $EE6D

         ;
         ; tabela przesunięć do obliczania adresu
         ;
TLSHC    dta $03,$02,$02,$01,$01,$02,$02,$03
         dta $03,$03,$03,$03,$03,$03,$02,$03
;------------------------------------------------
         ORG $EE7D

         ;
         ; tabela wielkości kolumn obrazu
         ;
TMCCN    dta $28,$14,$14,$28,$50,$50,$A0,$A0
         dta $40,$50,$50,$50,$28,$28,$A0,$A0
;------------------------------------------------
         ORG $EE8D

         ;
         ; tabela wielkości wierszy obrazu
         ;
TMRCN    dta $18,$18,$0C,$18,$30,$30,$60,$60
         dta $C0,$C0,$C0,$C0,$18,$0C,$C0,$C0
;------------------------------------------------
         ORG $EE9D

         ;
         ; tabela przesunięć do obliczania adresu
         ;
TRSHC    dta $00,$00,$00,$02,$03,$02,$03,$02
         dta $03,$01,$01,$01,$00,$00,$03,$02
;------------------------------------------------
         ORG $EEAD

         ;
         ; tabela masek bitowych dla obrazu
         ;
TDMSK    dta $FF,$F0,$0F,$C0,$30,$0C,$03
;------------------------------------------------
         ORG $EEB4

         ;
         ; tabela masek bitowych
         ;
MSKTAB   dta $80,$40,$20,$10,$08,$04,$02,$01
;------------------------------------------------
         ORG $EEBC

         ;
         ; wpisanie nowego urządzenia do HATABS
         ;
NEWDEV   dta $48,$98,$48,$8A,$A2,$00,$DD,$1A
         dta $03,$F0,$1E,$E8,$E8,$E8,$E0,$22
         dta $30,$F4,$A2,$00,$A8,$A9,$00,$DD
         dta $1A,$03,$F0,$13,$E8,$E8,$E8,$E0
         dta $22,$30,$F4,$68,$68,$A0,$FF,$38
         dta $60,$68,$A8,$68,$E8,$38,$60,$98
         dta $9D,$1A,$03,$68,$9D,$1B,$03,$68
         dta $9D,$1C,$03,$18,$60
;------------------------------------------------
         ORG $EEF9

         ;
         ; specjalna procedura obsługi I/O
         ;
SPCHND   dta $A0,$00,$B1,$24,$A4,$21,$20,$BE
         dta $E7,$10,$03,$A0,$82,$60,$A9,$7F
         dta $85,$20,$A9,$25,$85,$26,$A9,$EF
         dta $85,$27,$AD,$EC,$02,$AE,$2E,$00
         dta $9D,$4D,$03,$A0,$00,$B1,$24,$9D
         dta $4C,$03,$A0,$01,$60
;------------------------------------------------
         ORG $EF26

         ;
         ; procedura obsługi nowego urządzenia
         ;
PUTBYT   dta $48,$8A,$48,$29,$0F,$D0,$10,$E0
         dta $80,$10,$0C,$AD,$E9,$02,$D0,$0B
         dta $A0,$82,$68,$68,$C0,$00,$60,$A0
         dta $86,$30,$F7,$8E,$2E,$00,$A0,$00
         dta $BD,$40,$03,$99,$20,$00,$E8,$C8
         dta $C0,$0C,$30,$F4,$20,$29,$CA,$30
         dta $E1,$68,$AA,$68,$A8,$A5,$27,$48
         dta $A5,$26,$48,$98,$A0,$92,$60,$00
         dta $00,$00,$00,$00,$00,$4C,$05,$FD
;------------------------------------------------
         ORG $EF6E

         ;
         ; inicjowanie edytora
         ;
POWERON  dta $A9,$FF,$8D,$FC,$02,$AD,$E4,$02
         dta $85,$6A,$A9,$40,$8D,$BE,$02,$A9
         dta $51,$85,$79,$A9,$FB,$85,$7A,$A9
         dta $11,$85,$60,$A9,$FC,$85,$61,$60
;------------------------------------------------
         ORG $EF8E

         ;
         ; otwarcie kanału dla ekranu
         ;
SCOPN    dta $A5,$2B,$29,$0F,$D0,$08
;------------------------------------------------
         ORG $EF94

         ;
         ; otwarcie kanału dla edytora
         ;
EDOPN    dta $A5,$2A,$29,$0F,$85,$2A,$A9,$00
         dta $85,$57,$C9,$10,$90,$05,$A9,$91
         dta $4C,$54,$F1,$A9,$E0,$8D,$F4,$02
         dta $A9,$CC,$8D,$6B,$02,$A9,$02,$8D
         dta $F3,$02,$8D,$2F,$02,$A9,$01,$85
         dta $4C,$A9,$C0,$05,$10,$85,$10,$8D
         dta $0E,$D2,$A9,$40,$8D,$0E,$D4,$2C
         dta $6E,$02,$10,$0C,$A9,$C4,$8D,$00
         dta $02,$A9,$FC,$8D,$01,$02,$A9,$C0
         dta $8D,$0E,$D4,$A9,$00,$8D,$93,$02
         dta $85,$64,$85,$7B,$8D,$F0,$02,$A0
         dta $0E,$A9,$01,$99,$A3,$02,$88,$10
         dta $FA,$A2,$04,$BD,$08,$FB,$9D,$C4
         dta $02,$CA,$10,$F7,$A4,$6A,$88,$8C
         dta $95,$02,$A9,$60,$8D,$94,$02,$A6
         dta $57,$BD,$4D,$EE,$85,$51,$A5,$6A
         dta $85,$65,$BC,$1D,$EE,$A9,$28,$20
         dta $7A,$F5,$88,$D0,$F8,$AD,$6F,$02
         dta $29,$3F,$85,$67,$A8,$E0,$08,$90
         dta $1F,$E0,$0F,$F0,$0D,$E0,$0C,$B0
         dta $17,$8A,$6A,$6A,$6A,$29,$C0,$05
         dta $67,$A8,$A9,$10,$20,$7A,$F5,$E0
         dta $0B,$D0,$05,$A9,$06,$8D,$C8,$02
         dta $8C,$6F,$02,$A5,$64,$85,$58,$A5
         dta $65,$85,$59,$AD,$0B,$D4,$C9,$7A
         dta $D0,$F9,$20,$78,$F5,$BD,$5D,$EE
         dta $F0,$06,$A9,$FF,$85,$64,$C6,$65
         dta $20,$65,$F5,$A5,$64,$85,$68,$A5
         dta $65,$85,$69,$A9,$41,$20,$70,$F5
         dta $86,$66,$A9,$18,$8D,$BF,$02,$A5
         dta $57,$C9,$0C,$B0,$04,$C9,$09,$B0
         dta $39,$A5,$2A,$29,$10,$F0,$33,$A9
         dta $04,$8D,$BF,$02,$A2,$02,$AD,$6E
         dta $02,$F0,$03,$20,$A0,$F5,$A9,$02
         dta $20,$69,$F5,$CA,$10,$F8,$A4,$6A
         dta $88,$98,$20,$70,$F5,$A9,$60,$20
         dta $70,$F5,$A9,$42,$20,$69,$F5,$18
         dta $A9,$10,$65,$66,$A8,$BE,$2D,$EE
         dta $D0,$15,$A4,$66,$BE,$2D,$EE,$A5
         dta $57,$D0,$0C,$AD,$6E,$02,$F0,$07
         dta $20,$A0,$F5,$A9,$22,$85,$51,$A5
         dta $51,$20,$70,$F5,$CA,$D0,$F8,$A5
         dta $57,$C9,$08,$90,$26,$C9,$0F,$F0
         dta $04,$C9,$0C,$B0,$1E,$A2,$5D,$A5
         dta $6A,$38,$E9,$10,$20,$70,$F5,$A9
         dta $00,$20,$70,$F5,$A5,$51,$09,$40
         dta $20,$70,$F5,$A5,$51,$20,$70,$F5
         dta $CA,$D0,$F8,$A5,$59,$20,$70,$F5
         dta $A5,$58,$20,$70,$F5,$A5,$51,$09
         dta $40,$20,$70,$F5,$A9,$70,$20,$70
         dta $F5,$A9,$70,$20,$70,$F5,$A5,$64
         dta $8D,$30,$02,$A5,$65,$8D,$31,$02
         dta $A9,$70,$20,$70,$F5,$A5,$64,$8D
         dta $E5,$02,$A5,$65,$8D,$E6,$02,$A0
         dta $01,$AD,$30,$02,$91,$68,$C8,$AD
         dta $31,$02,$91,$68,$A5,$4C,$10,$10
         dta $8D,$EC,$03,$20,$94,$EF,$AD,$EC
         dta $03,$A0,$00,$8C,$EC,$03,$A8,$60
         dta $A5,$2A,$29,$20,$D0,$0B,$20,$20
         dta $F4,$8D,$90,$02,$A5,$52,$8D,$91
         dta $02,$A9,$22,$0D,$2F,$02,$8D,$2F
         dta $02,$4C,$0B,$F2
;------------------------------------------------
         ORG $F180

         ;
         ; odczyt znaku z ekranu
         ;
GETCH    dta $20,$CA,$F6,$20,$8F,$F1,$20,$6A
         dta $F7,$20,$0A,$F6,$4C,$1E,$F2
;------------------------------------------------
         ORG $F18F

         ;
         ; odczyt punktu z ekranu
         ;
GETPLT   dta $20,$AC,$F5,$B1,$64,$2D,$A0,$02
         dta $46,$6F,$B0,$03,$4A,$10,$F9,$8D
         dta $FA,$02,$C9,$00,$60
;------------------------------------------------
         ORG $F1A4

         ;
         ; zapis znaku na ekranie
         ;
OUTCH    dta $8D,$FB,$02,$C9,$7D,$D0,$06,$20
         dta $20,$F4,$4C,$0B,$F2,$20,$CA,$F6
;------------------------------------------------
         ORG $F1B4

         ;
         ; porównanie znaku z RETURN ($9B)
         ;
TSTRET   dta $AD,$FB,$02,$C9,$9B,$D0,$06,$20
         dta $61,$F6,$4C,$0B,$F2,$20,$CA,$F1
         dta $20,$0E,$F6,$4C,$0B,$F2
;------------------------------------------------
         ORG $F1CA

         ;
         ; zapis punktu na ekranie
         ;
OUTPLT   dta $AD,$FF,$02,$D0,$FB,$A2,$02,$B5
         dta $54,$95,$5A,$CA,$10,$F9,$AD,$FB
         dta $02,$A8,$2A,$2A,$2A,$2A,$29,$03
         dta $AA,$98,$29,$9F,$1D,$49,$FB
;------------------------------------------------
         ORG $F1E9

         ;
         ; przekształcenie znaku na ekranie
         ;
DISPLY   dta $8D,$FA,$02,$20,$AC,$F5,$AD,$FA
         dta $02,$46,$6F,$B0,$04,$0A,$4C,$F2
         dta $F1,$2D,$A0,$02,$85,$50,$AD,$A0
         dta $02,$49,$FF,$31,$64,$05,$50,$91
         dta $64,$60
;------------------------------------------------
         ORG $F20B

         ;
         ; powrót z procedur monitora
         ;
RETURM   dta $20,$8F,$F1,$85,$5D,$A6,$57,$D0
         dta $0A,$AE,$F0,$02,$D0,$05,$49,$80
         dta $20,$E9,$F1
;------------------------------------------------
         ORG $F21E

         ;
         ; otwarcie kanału dla klawiatury
         ;
KBOPN    dta $A4,$4C,$4C,$26,$F2
;------------------------------------------------
         ORG $F223

         ;
         ; skok do SWITROM
         ;
TESTROM  dta $4C,$FC,$C8,$A9,$01,$85,$4C,$AD
         dta $FB,$02
;------------------------------------------------
         ORG $F22D

         ;
         ; procedura specjalna dla edytora
         ;
EDSP     dta $60
;------------------------------------------------
         ORG $F22E

         ;
         ; zamknięcie kanału dla ekranu
         ;
SCRFIN   dta $2C,$6E,$02,$10,$EB,$A9,$40,$8D
         dta $0E,$D4,$A9,$00,$8D,$6E,$02,$A9
         dta $CE,$8D,$00,$02,$A9,$C0,$8D,$01
         dta $02,$4C,$94,$EF
;------------------------------------------------
         ORG $F24A

         ;
         ; odczyt znaku z edytora
         ;
EGETCH   dta $20,$62,$F9,$20,$BC,$F6,$A5,$6B
         dta $D0,$34,$A5,$54,$85,$6C,$A5,$55
         dta $85,$6D,$20,$FD,$F2,$84,$4C,$AD
         dta $FB,$02,$C9,$9B,$F0,$12,$20,$BE
         dta $F2,$20,$62,$F9,$A5,$63,$C9,$71
         dta $D0,$03,$20,$56,$F5,$4C,$5C,$F2
         dta $20,$18,$F7,$20,$B1,$F8,$A5,$6C
         dta $85,$54,$A5,$6D,$85,$55,$A5,$6B
         dta $F0,$11,$C6,$6B,$F0,$0D,$A5,$4C
         dta $30,$F8,$20,$80,$F1,$8D,$FB,$02
         dta $4C,$62,$F9,$20,$61,$F6,$A9,$9B
         dta $8D,$FB,$02,$20,$0B,$F2,$84,$4C
         dta $4C,$62,$F9
;------------------------------------------------
         ORG $F2AD

         ;
         ; skok pośredni do procedury
         ;
JSRIND   dta $6C,$64,$00
;------------------------------------------------
         ORG $F2B0

         ;
         ; zapis znaku do edytora
         ;
EOUTCH   dta $8D,$FB,$02,$20,$62,$F9,$20,$BC
         dta $F6,$A9,$00,$8D,$E8,$03
;------------------------------------------------
         ORG $F2BE

         ;
         ; obsługa znaku w edytorze
         ;
PRCCHR   dta $20,$18,$F7,$20,$3C,$F9,$F0,$09
         dta $0E,$A2,$02,$20,$B4,$F1,$4C,$62
         dta $F9,$AD,$FE,$02,$0D,$A2,$02,$D0
         dta $EF,$0E,$A2,$02,$E8,$AD,$E8,$03
         dta $F0,$05,$8A,$18,$69,$2D,$AA,$BD
         dta $0D,$FB,$85,$64,$BD,$0E,$FB,$85
         dta $65,$20,$AD,$F2,$20,$0B,$F2,$4C
         dta $62,$F9
;------------------------------------------------
         ORG $F2F8

         ;
         ; odczyt następnego znaku z klawiatury
         ;
IGNORE   dta $A9,$FF,$8D,$FC,$02
;------------------------------------------------
         ORG $F2FD

         ;
         ; odczyt znaku z klawiatury
         ;
KBGBYT   dta $A9,$00,$8D,$E8,$03
;------------------------------------------------
         ORG $F302

         ;
         ; pobranie znaku z klawiatury
         ;
KGETCH   dta $A5,$2A,$4A,$B0,$6F,$A9,$80,$A6
         dta $11,$F0,$65,$AD,$FC,$02,$C9,$FF
         dta $F0,$E9,$85,$7C,$A2,$FF,$8E,$FC
         dta $02,$AE,$DB,$02,$D0,$03,$20,$83
         dta $F9,$A8,$C0,$C0,$B0,$D0,$B1,$79
         dta $8D,$FB,$02,$AA,$30,$03,$4C,$B4
         dta $F3,$C9,$80,$F0,$C1,$C9,$81,$D0
         dta $0A,$AD,$B6,$02,$49,$80,$8D,$B6
         dta $02,$B0,$B3,$C9,$82,$D0,$0C,$AD
         dta $BE,$02,$F0,$0B,$A9,$00,$8D,$BE
         dta $02,$F0,$A3,$C9,$83,$D0,$07,$A9
         dta $40,$8D,$BE,$02,$D0,$98,$C9,$84
         dta $D0,$08,$A9,$80,$8D,$BE,$02,$4C
         dta $F8,$F2,$C9,$85,$D0,$0B,$A9,$88
         dta $85,$4C,$85,$11,$A9,$9B,$4C,$DA
         dta $F3,$C9,$89,$D0,$10,$AD,$DB,$02
         dta $49,$FF,$8D,$DB,$02,$D0,$03,$20
         dta $83,$F9,$4C,$F8,$F2,$C9,$8E,$B0
         dta $12,$C9,$8A,$90,$F5,$E9,$8A,$06
         dta $7C,$10,$02,$09,$04,$A8,$B1,$60
         dta $4C,$2A,$F3,$C9,$92,$B0,$0B,$C9
         dta $8E,$90,$DF,$E9,$72,$EE,$E8,$03
         dta $D0,$26,$A5,$7C,$C9,$40,$B0,$15
         dta $AD,$FB,$02,$C9,$61,$90,$0E,$C9
         dta $7B,$B0,$0A,$AD,$BE,$02,$F0,$05
         dta $05,$7C,$4C,$23,$F3,$20,$3C,$F9
         dta $F0,$09,$AD,$FB,$02,$4D,$B6,$02
         dta $8D,$FB,$02,$4C,$1E,$F2
;------------------------------------------------
         ORG $F3E0

         ;
         ; procedura znaku "Escape"
         ;
ESCAPE   dta $A9,$80,$8D,$A2,$02,$60
;------------------------------------------------
         ORG $F3E6

         ;
         ; kursor o jeden wiersz w górę
         ;
CRSUP    dta $C6,$54,$10,$06,$AE,$BF,$02,$CA
         dta $86,$54,$4C,$0C,$F9
;------------------------------------------------
         ORG $F3F3

         ;
         ; kursor o jeden wiersz w dół
         ;
CRSDWN   dta $E6,$54,$A5,$54,$CD,$BF,$02,$90
         dta $F4,$A2,$00,$F0,$EE
;------------------------------------------------
         ORG $F400

         ;
         ; kursor o jeden znak w lewo
         ;
CRSLFT   dta $C6,$55,$A5,$55,$30,$04,$C5,$52
         dta $B0,$04
;------------------------------------------------
         ORG $F40A

         ;
         ; kursor do prawego marginesu
         ;
CRSRMR   dta $A5,$53,$85,$55,$4C,$8E,$F8
;------------------------------------------------
         ORG $F411

         ;
         ; kursor o jeden znak w prawo
         ;
CRSRGT   dta $E6,$55,$A5,$55,$C5,$53,$90,$F5
         dta $F0,$F3
;------------------------------------------------
         ORG $F41B

         ;
         ; kursor do lewego marginesu
         ;
CRSLMR   dta $A5,$52,$4C,$0C,$F4
;------------------------------------------------
         ORG $F420

         ;
         ; czyszczenie ekranu
         ;
CLRSCR   dta $20,$A6,$F9,$A4,$64,$A9,$00,$85
         dta $64,$91,$64,$C8,$D0,$FB,$E6,$65
         dta $A6,$65,$E4,$6A,$90,$F3,$A9,$FF
         dta $99,$B2,$02,$C8,$C0,$04,$90,$F8
;------------------------------------------------
         ORG $F440

         ;
         ; kursor do lewego, górnego rogu ekranu
         ;
CRSHOM   dta $20,$97,$F9,$85,$63,$85,$6D,$A9
         dta $00,$85,$54,$85,$56,$85,$6C,$60
;------------------------------------------------
         ORG $F450

         ;
         ; kasowanie znaku w lewo od kursora
         ;
CRSBS    dta $A5,$63,$C5,$52,$F0,$21,$A5,$55
         dta $C5,$52,$D0,$03,$20,$23,$F9,$20
         dta $00,$F4,$A5,$55,$C5,$53,$D0,$07
         dta $A5,$54,$F0,$03,$20,$E6,$F3,$A9
         dta $20,$8D,$FB,$02,$20,$CA,$F1,$4C
         dta $8E,$F8
;------------------------------------------------
         ORG $F47A

         ;
         ; kursor na następną pozycję tabulacji
         ;
CRSTAB   dta $20,$11,$F4,$A5,$55,$C5,$52,$D0
         dta $08,$20,$65,$F6,$20,$58,$F7,$B0
         dta $07,$A5,$63,$20,$5D,$F7,$90,$E8
         dta $4C,$8E,$F8
;------------------------------------------------
         ORG $F495

         ;
         ; ustawianie pozycji tabulacji
         ;
CRSSTB   dta $A5,$63,$4C,$3E,$F7
;------------------------------------------------
         ORG $F49A

         ;
         ; kasowanie pozycji tabulacji
         ;
CRSCTB   dta $A5,$63,$4C,$4A,$F7
;------------------------------------------------
         ORG $F49F

         ;
         ; wstawienie znaku pod kursorem
         ;
INSCHR   dta $20,$4C,$F9,$20,$8F,$F1,$85,$7D
         dta $A9,$00,$8D,$BB,$02,$20,$E9,$F1
         dta $A5,$63,$48,$20,$12,$F6,$68,$C5
         dta $63,$B0,$0C,$A5,$7D,$48,$20,$8F
         dta $F1,$85,$7D,$68,$4C,$AC,$F4,$20
         dta $57,$F9,$CE,$BB,$02,$30,$04,$C6
         dta $54,$D0,$F7,$4C,$8E,$F8
;------------------------------------------------
         ORG $F4D5

         ;
         ; usunięcie znaku spod kursora
         ;
DELCHR   dta $20,$4C,$F9,$20,$AC,$F5,$A5,$64
         dta $85,$68,$A5,$65,$85,$69,$A5,$63
         dta $48,$20,$0A,$F6,$68,$C5,$63,$B0
         dta $10,$A5,$54,$CD,$BF,$02,$B0,$09
         dta $20,$8F,$F1,$A0,$00,$91,$68,$F0
         dta $DA,$A0,$00,$98,$91,$68,$20,$18
         dta $F9,$20,$57,$F9,$4C,$8E,$F8
;------------------------------------------------
         ORG $F50C

         ;
         ; wstawienie linii pod kursorem
         ;
INSLIN   dta $38
;------------------------------------------------
         ORG $F50D

         ;
         ; wstawienie linii pod kursorem
         ;
INSLN2   dta $20,$C2,$F7,$A5,$52,$85,$55,$20
         dta $AC,$F5,$20,$8E,$F7,$20,$E2,$F7
         dta $4C,$8E,$F8
;------------------------------------------------
         ORG $F520

         ;
         ; usunięcie linii spod kursora
         ;
DELLIN   dta $20,$8E,$F8,$A4,$51,$84,$54
;------------------------------------------------
         ORG $F527

         ;
         ; usunięcie linii fizycznej
         ;
DELROW   dta $A4,$54,$98,$38,$20,$5B,$F7,$08
         dta $98,$18,$69,$78,$28,$20,$3C,$F7
         dta $C8,$C0,$18,$D0,$ED,$AD,$B4,$02
         dta $09,$01,$8D,$B4,$02,$A9,$00,$85
         dta $55,$20,$AC,$F5,$20,$2A,$F8,$20
         dta $58,$F7,$90,$D4,$4C,$1B,$F4
;------------------------------------------------
         ORG $F556

         ;
         ; brzęczyk edytora
         ;
BELL     dta $A0,$20,$20,$83,$F9,$88,$10,$FA
         dta $60
;------------------------------------------------
         ORG $F55F

         ;
         ; kursor do lewego, dolnego rogu
         ;
BTMLIN   dta $20,$40,$F4,$4C,$E6,$F3
;------------------------------------------------
         ORG $F565

         ;
         ; dwukrotne zmniejszenie dwubajtowego wektora
         ;
DBDEC    dta $A9,$02,$D0,$11
;------------------------------------------------
         ORG $F569

         ;
         ; ustawienie parametrów przesuwu obrazu
         ;
STDFS    dta $AC,$6E,$02,$F0,$02,$09,$20
;------------------------------------------------
         ORG $F570

         ;
         ; ustawienie parametrów obrazu
         ;
STDDSP   dta $A4,$4C,$30,$2B,$A0,$00,$91,$64
;------------------------------------------------
         ORG $F578

         ;
         ; jednokrotne zmniejszenie dwubajtowego wektora
         ;
SGDEC    dta $A9,$01
;------------------------------------------------
         ORG $F57A

         ;
         ; zmniejszenie wektora według akumulatora
         ;
DCUSAC   dta $8D,$9E,$02,$A5,$4C,$30,$1E,$A5
         dta $64,$38,$ED,$9E,$02,$85,$64,$B0
         dta $02,$C6,$65,$A5,$0F,$C5,$65,$90
         dta $0C,$D0,$06,$A5,$0E,$C5,$64,$90
         dta $04,$A9,$93,$85,$4C,$60
;------------------------------------------------
         ORG $F5A0

         ;
         ; ustawienie adresu DL przy przesuwie obrazu
         ;
SSDLE    dta $A9,$02,$20,$70,$F5,$A9,$A2,$20
         dta $70,$F5,$CA,$60
;------------------------------------------------
         ORG $F5AC

         ;
         ; zamiana pozycji kursora na adres
         ;
CONVRT   dta $A2,$01,$86,$66,$CA,$86,$65,$A5
         dta $54,$0A,$26,$65,$0A,$26,$65,$65
         dta $54,$85,$64,$90,$02,$E6,$65,$A4
         dta $57,$BE,$6D,$EE,$06,$64,$26,$65
         dta $CA,$D0,$F9,$A5,$56,$4A,$A5,$55
         dta $BE,$9D,$EE,$F0,$06,$6A,$06,$66
         dta $CA,$D0,$FA,$65,$64,$90,$02,$E6
         dta $65,$18,$65,$58,$85,$64,$85,$5E
         dta $A5,$65,$65,$59,$85,$65,$85,$5F
         dta $BE,$9D,$EE,$BD,$04,$FB,$25,$55
         dta $65,$66,$A8,$B9,$AC,$EE,$8D,$A0
         dta $02,$85,$6F,$A0,$00,$60
;------------------------------------------------
         ORG $F60A

         ;
         ; zwiększenie pozycji kursora
         ;
INCRSB   dta $A9,$00,$F0,$02
;------------------------------------------------
         ORG $F60E

         ;
         ; koniec wiersza logicznego
         ;
EOLSUB   dta $A9,$9B,$85,$7D
;------------------------------------------------
         ORG $F612

         ;
         ; sprawdzenie końca wiersza logicznego
         ;
SCRIBT   dta $E6,$63,$E6,$55,$D0,$02,$E6,$56
         dta $A5,$55,$A6,$57,$DD,$7D,$EE,$F0
         dta $0A,$E0,$00,$D0,$E2,$C5,$53,$F0
         dta $DE,$90,$DC,$E0,$08,$D0,$04,$A5
         dta $56,$F0,$D4,$A5,$57,$D0,$2C,$A5
         dta $63,$C9,$51,$90,$0A,$A5,$7D,$F0
         dta $22,$20,$61,$F6,$4C,$AB,$F6,$20
         dta $65,$F6,$A5,$54,$18,$69,$78,$20
         dta $5D,$F7,$90,$08,$A5,$7D,$F0,$04
         dta $18,$20,$0D,$F5,$4C,$8E,$F8
;------------------------------------------------
         ORG $F661

         ;
         ; przesunięcie ekranu z dodaniem wiersza
         ;
RTWSCR   dta $A9,$9B,$85,$7D
;------------------------------------------------
         ORG $F665

         ;
         ; umieszczenie znaku RETURN
         ;
RETURN   dta $20,$97,$F9,$A9,$00,$85,$56,$E6
         dta $54,$A6,$57,$A0,$18,$24,$7B,$10
         dta $05,$A0,$04,$98,$D0,$03,$BD,$8D
         dta $EE,$C5,$54,$D0,$29,$8C,$9D,$02
         dta $8A,$D0,$23,$A5,$7D,$F0,$1F,$C9
         dta $9B,$F0,$01,$18,$20,$F7,$F7,$EE
         dta $BB,$02,$C6,$6C,$10,$02,$E6,$6C
         dta $CE,$9D,$02,$AD,$B2,$02,$38,$10
         dta $EB,$AD,$9D,$02,$85,$54,$4C,$8E
         dta $F8
;------------------------------------------------
         ORG $F6AE

         ;
         ; aktualizacja wartości ROWAC lub COLAC
         ;
SUBEND   dta $38,$B5,$70,$E5,$74,$95,$70,$B5
         dta $71,$E5,$75,$95,$71,$60
;------------------------------------------------
         ORG $F6BC

         ;
         ; sprawdzenie zakresu edytora
         ;
ERANGE   dta $AD,$BF,$02,$C9,$04,$F0,$07,$A5
         dta $57,$F0,$03,$20,$94,$EF
;------------------------------------------------
         ORG $F6CA

         ;
         ; sprawdzenie zakresu ekranu
         ;
RANGE    dta $A9,$27,$C5,$53,$B0,$02,$85,$53
         dta $A6,$57,$BD,$8D,$EE,$C5,$54,$90
         dta $2A,$F0,$28,$E0,$08,$D0,$0A,$A5
         dta $56,$F0,$13,$C9,$01,$D0,$1C,$F0
         dta $04,$A5,$56,$D0,$16,$BD,$7D,$EE
         dta $C5,$55,$90,$0F,$F0,$0D,$A9,$01
         dta $85,$4C,$A9,$80,$A6,$11,$85,$11
         dta $F0,$06,$60,$20,$40,$F4,$A9,$8D
         dta $85,$4C,$68,$68,$A5,$7B,$10,$03
         dta $4C,$62,$F9,$4C,$1E,$F2
;------------------------------------------------
         ORG $F718

         ;
         ; odtworzenie znaku spod kursora
         ;
OFFCRS   dta $A0,$00,$A5,$5F,$F0,$04,$A5,$5D
         dta $91,$5E,$60
;------------------------------------------------
         ORG $F723

         ;
         ; zamiana znaku na maskę bitową
         ;
BITCON   dta $48,$29,$07,$AA,$BD,$B4,$EE,$85
         dta $6E,$68,$4A,$4A,$4A,$AA,$60
;------------------------------------------------
         ORG $F732

         ;
         ; przesunięcie LOGMAP o jeden bit w lewo
         ;
BITROL   dta $2E,$B4,$02,$2E,$B3,$02,$2E,$B2
         dta $02,$60
;------------------------------------------------
         ORG $F73C

         ;
         ; ustawienie bitu w TABMAP
         ;
BITPUT   dta $90,$0C
;------------------------------------------------
         ORG $F73E

         ;
         ; ustawienie bitu w TABMAP
         ;
BITPT2   dta $20,$23,$F7,$BD,$A3,$02,$05,$6E
         dta $9D,$A3,$02,$60
;------------------------------------------------
         ORG $F74A

         ;
         ; skasowanie bitu w TABMAP
         ;
BITCLR   dta $20,$23,$F7,$A5,$6E,$49,$FF,$3D
         dta $A3,$02,$9D,$A3,$02,$60
;------------------------------------------------
         ORG $F758

         ;
         ; obliczenie wiersza logicznego
         ;
LOGGET   dta $A5,$54
;------------------------------------------------
         ORG $F75A

         ;
         ; obliczenie wiersza logicznego
         ;
LGET2    dta $18
;------------------------------------------------
         ORG $F75B

         ;
         ; obliczenie wiersza logicznego
         ;
LGET3    dta $69,$78
;------------------------------------------------
         ORG $F75D

         ;
         ; obliczenie maski bitowej
         ;
BITGET   dta $20,$23,$F7,$18,$BD,$A3,$02,$25
         dta $6E,$F0,$01,$38,$60
;------------------------------------------------
         ORG $F76A

         ;
         ; zamiana kodu Internal na ATASCII
         ;
INATAC   dta $AD,$FA,$02,$A4,$57,$C0,$0E,$B0
         dta $17,$C0,$0C,$B0,$04,$C0,$03,$B0
         dta $0F,$2A,$2A,$2A,$2A,$29,$03,$AA
         dta $AD,$FA,$02,$29,$9F,$1D,$4D,$FB
         dta $8D,$FB,$02,$60
;------------------------------------------------
         ORG $F78E

         ;
         ; dodanie nowego wiersza na ekranie
         ;
LININS   dta $A6,$6A,$CA,$86,$69,$86,$67,$A9
         dta $B0,$85,$68,$A9,$D8,$85,$66,$A6
         dta $54,$E8,$EC,$BF,$02,$F0,$E8,$A0
         dta $27,$B1,$68,$91,$66,$88,$10,$F9
         dta $38,$A5,$68,$85,$66,$E9,$28,$85
         dta $68,$A5,$69,$85,$67,$E9,$00,$85
         dta $69,$4C,$9F,$F7
;------------------------------------------------
         ORG $F7C2

         ;
         ; dodanie do LOGMAP nowego wiersza
         ;
EXTEND   dta $08,$A0,$16,$98,$20,$5A,$F7,$08
         dta $98,$18,$69,$79,$28,$20,$3C,$F7
         dta $88,$30,$04,$C4,$54,$B0,$EC,$A5
         dta $54,$18,$69,$78,$28,$4C,$3C,$F7
;------------------------------------------------
         ORG $F7E2

         ;
         ; skasowanie zawartości linii na ekranie
         ;
CLRLIN   dta $A5,$52,$85,$55,$20,$AC,$F5,$38
         dta $A5,$53,$E5,$52,$A8,$A9,$00,$91
         dta $64,$88,$10,$FB,$60
;------------------------------------------------
         ORG $F7F7

         ;
         ; wykonanie przesunięcia obrazu
         ;
DOSCR    dta $20,$32,$F7,$AD,$6E,$02,$F0,$28
         dta $AD,$6C,$02,$D0,$FB,$A9,$08,$8D
         dta $6C,$02,$AD,$6C,$02,$C9,$01,$D0
         dta $F9,$AD,$0B,$D4,$C9,$40,$B0,$F9
         dta $A2,$0D,$AD,$BF,$02,$C9,$04,$D0
         dta $02,$A2,$70,$EC,$0B,$D4,$B0,$FB
         dta $20,$A6,$F9
;------------------------------------------------
         ORG $F82A

         ;
         ; obliczenie adresu linii obrazu
         ;
COMADR   dta $A5,$64,$A6,$65,$E8,$E4,$6A,$F0
         dta $06,$38,$E9,$10,$4C,$2E,$F8,$69
         dta $27,$D0,$0A,$A6,$65,$E8,$E4,$6A
         dta $F0,$38,$18,$69,$10,$A8,$85,$7E
         dta $38,$A5,$64,$E5,$7E,$85,$64,$B0
         dta $02,$C6,$65,$A5,$64,$18,$69,$28
         dta $85,$7E,$A5,$65,$69,$00,$85,$7F
         dta $B1,$7E,$91,$64,$C8,$D0,$F9,$A0
         dta $10,$A5,$64,$C9,$D8,$F0,$0B,$18
         dta $69,$F0,$85,$64,$90,$DD,$E6,$65
         dta $D0,$D9,$A6,$6A,$CA,$86,$7F,$A2
         dta $D8,$86,$7E,$A9,$00,$A0,$27,$91
         dta $7E,$88,$10,$FB
;------------------------------------------------
         ORG $F88E

         ;
         ; obliczenie wiersza logicznego
         ;
COMLOG   dta $A9,$00,$85,$63,$A5,$54,$85,$51
         dta $A5,$51,$20,$5A,$F7,$B0,$0C,$A5
         dta $63,$18,$69,$28,$85,$63,$C6,$51
         dta $4C,$96,$F8,$18,$A5,$63,$65,$55
         dta $85,$63,$60
;------------------------------------------------
         ORG $F8B1

         ;
         ; obliczenie chwilowej długości wiersza
         ;
DOBUFC   dta $20,$4C,$F9,$A5,$63,$48,$A5,$6C
         dta $85,$54,$A5,$6D,$85,$55,$A9,$01
         dta $85,$6B,$A2,$17,$A5,$7B,$10,$02
         dta $A2,$03,$E4,$54,$D0,$0B,$A5,$55
         dta $C5,$53,$D0,$05,$E6,$6B,$4C,$EA
         dta $F8,$20,$0A,$F6,$E6,$6B,$A5,$63
         dta $C5,$52,$D0,$DE,$C6,$54,$20,$00
         dta $F4,$20,$8F,$F1,$D0,$17,$C6,$6B
         dta $A5,$63,$C5,$52,$F0,$0F,$20,$00
         dta $F4,$A5,$55,$C5,$53,$D0,$02,$C6
         dta $54,$A5,$6B,$D0,$E4,$68,$85,$63
         dta $4C,$57,$F9
;------------------------------------------------
         ORG $F90C

         ;
         ; zapis początku bufora wiersza
         ;
STRBEG   dta $20,$8E,$F8,$A5,$51,$85,$6C,$A5
         dta $52,$85,$6D,$60
;------------------------------------------------
         ORG $F918

         ;
         ; skasowanie pustej linii ekranu
         ;
DELTIE   dta $A5,$63,$C5,$52,$D0,$02,$C6,$54
         dta $20,$8E,$F8
;------------------------------------------------
         ORG $F923

         ;
         ; skasowanie pustej linii ekranu
         ;
DELEML   dta $A5,$63,$C5,$52,$F0,$EE,$20,$AC
         dta $F5,$A5,$53,$38,$E5,$52,$A8,$B1
         dta $64,$D0,$E1,$88,$10,$F9,$4C,$27
         dta $F5
;------------------------------------------------
         ORG $F93C

         ;
         ; sprawdzenie znaków kontrolnych
         ;
TSTCNT   dta $A2,$2D,$BD,$0D,$FB,$CD,$FB,$02
         dta $F0,$05,$CA,$CA,$CA,$10,$F3,$60
;------------------------------------------------
         ORG $F94C

         ;
         ; zapamiętanie pozycji kursora
         ;
PHACRS   dta $A2,$02,$B5,$54,$9D,$B8,$02,$CA
         dta $10,$F8,$60
;------------------------------------------------
         ORG $F957

         ;
         ; odtworzenie pozycji kursora
         ;
PLACRS   dta $A2,$02,$BD,$B8,$02,$95,$54,$CA
         dta $10,$F8,$60
;------------------------------------------------
         ORG $F962

         ;
         ; przełączanie między ekranem a oknem
         ;
SWAP     dta $AD,$BF,$02,$C9,$18,$F0,$17,$A2
         dta $0B,$B5,$54,$48,$BD,$90,$02,$95
         dta $54,$68,$9D,$90,$02,$CA,$10,$F1
         dta $A5,$7B,$49,$FF,$85,$7B,$4C,$1E
         dta $F2
;------------------------------------------------
         ORG $F983

         ;
         ; dźwięk klawiatury
         ;
KEYCLK   dta $A2,$7E,$48,$8E,$1F,$D0,$AD,$0B
         dta $D4,$CD,$0B,$D4,$F0,$FB,$CA,$CA
         dta $10,$F1,$68,$60
;------------------------------------------------
         ORG $F997

         ;
         ; kursor na lewej krawędzi obrazu
         ;
SCLED    dta $A9,$00,$A6,$7B,$D0,$04,$A6,$57
         dta $D0,$02,$A5,$52,$85,$55,$60
;------------------------------------------------
         ORG $F9A6

         ;
         ; przepisanie adresu pamięci obrazu
         ;
PUTMSC   dta $A5,$58,$85,$64,$A5,$59,$85,$65
         dta $60
;------------------------------------------------
         ORG $F9AF

         ;
         ; procedura specjalna dla ekranu
         ;
DRAW     dta $A2,$00,$A5,$22,$C9,$11,$F0,$08
         dta $C9,$12,$F0,$03,$A0,$84,$60,$E8
         dta $8E,$B7,$02,$A5,$54,$8D,$F5,$02
         dta $A5,$55,$8D,$F6,$02,$A5,$56,$8D
         dta $F7,$02,$A9,$01,$8D,$F8,$02,$8D
         dta $F9,$02,$38,$AD,$F5,$02,$E5,$5A
         dta $85,$76,$B0,$0E,$A9,$FF,$8D,$F8
         dta $02,$A5,$76,$49,$FF,$18,$69,$01
         dta $85,$76,$38,$AD,$F6,$02,$E5,$5B
         dta $85,$77,$AD,$F7,$02,$E5,$5C,$85
         dta $78,$B0,$17,$A9,$FF,$8D,$F9,$02
         dta $A5,$77,$49,$FF,$85,$77,$A5,$78
         dta $49,$FF,$85,$78,$E6,$77,$D0,$02
         dta $E6,$78,$A2,$02,$A0,$00,$84,$73
         dta $98,$95,$70,$B5,$5A,$95,$54,$CA
         dta $10,$F6,$A5,$77,$E8,$A8,$A5,$78
         dta $85,$7F,$85,$75,$D0,$0B,$A5,$77
         dta $C5,$76,$B0,$05,$A5,$76,$A2,$02
         dta $A8,$98,$85,$7E,$85,$74,$48,$A5
         dta $75,$4A,$68,$6A,$95,$70,$A5,$7E
         dta $05,$7F,$D0,$03,$4C,$01,$FB,$18
         dta $A5,$70,$65,$76,$85,$70,$90,$02
         dta $E6,$71,$A5,$71,$C5,$75,$90,$15
         dta $D0,$06,$A5,$70,$C5,$74,$90,$0D
         dta $18,$A5,$54,$6D,$F8,$02,$85,$54
         dta $A2,$00,$20,$AE,$F6,$18,$A5,$72
         dta $65,$77,$85,$72,$A5,$73,$65,$78
         dta $85,$73,$C5,$75,$90,$28,$D0,$06
         dta $A5,$72,$C5,$74,$90,$20,$2C,$F9
         dta $02,$10,$10,$C6,$55,$A5,$55,$C9
         dta $FF,$D0,$0E,$A5,$56,$F0,$0A,$C6
         dta $56,$10,$06,$E6,$55,$D0,$02,$E6
         dta $56,$A2,$02,$20,$AE,$F6,$20,$CA
         dta $F6,$20,$CA,$F1,$AD,$B7,$02,$F0
         dta $2F,$20,$4C,$F9,$AD,$FB,$02,$8D
         dta $BC,$02,$A5,$54,$48,$20,$12,$F6
         dta $68,$85,$54,$20,$CA,$F6,$20,$8F
         dta $F1,$D0,$0C,$AD,$FD,$02,$8D,$FB
         dta $02,$20,$CA,$F1,$4C,$C9,$FA,$AD
         dta $BC,$02,$8D,$FB,$02,$20,$57,$F9
         dta $38,$A5,$7E,$E9,$01,$85,$7E,$A5
         dta $7F,$E9,$00,$85,$7F,$30,$03,$4C
         dta $4D,$FA,$4C,$1E,$F2
;------------------------------------------------
         ORG $FB04

         ;
         ; tabela numerów masek bitowych obrazu
         ;
TBMSK    dta $00,$01,$03,$07
;------------------------------------------------
         ORG $FB08

         ;
         ; tabela standardowych kolorów obrazu
         ;
COLTAB   dta $28,$CA,$94,$46,$00
;------------------------------------------------
         ORG $FB0D

         ;
         ; tabela wektorów znaków kontrolnych
         ;
CNTRLS   dta $1B,$E0,$F3,$1C,$E6,$F3,$1D,$F3
         dta $F3,$1E,$00,$F4,$1F,$11,$F4,$7D
         dta $20,$F4,$7E,$50,$F4,$7F,$7A,$F4
         dta $9B,$61,$F6,$9C,$20,$F5,$9D,$0C
         dta $F5,$9E,$9A,$F4,$9F,$95,$F4,$FD
         dta $56,$F5,$FE,$D5,$F4,$FF,$9F,$F4
         dta $1C,$40,$F4,$1D,$5F,$F5,$1E,$1B
         dta $F4,$1F,$0A,$F4
;------------------------------------------------
         ORG $FB49

         ;
         ; tabela zamiany z ATASCII na Internal
         ;
AINCC    dta $40,$00,$20,$60
;------------------------------------------------
         ORG $FB4D

         ;
         ; tabela zamiany z Internal na ATASCII
         ;
INACC    dta $20,$40,$00,$60
;------------------------------------------------
         ORG $FB51

         ;
         ; tabela definicji klawiszy
         ;
KEYDEF   dta $6C,$6A,$3B,$8A,$8B,$6B,$2B,$2A
         dta $6F,$80,$70,$75,$9B,$69,$2D,$3D
         dta $76,$80,$63,$8C,$8D,$62,$78,$7A
         dta $34,$80,$33,$36,$1B,$35,$32,$31
         dta $2C,$20,$2E,$6E,$80,$6D,$2F,$81
         dta $72,$80,$65,$79,$7F,$74,$77,$71
         dta $39,$80,$30,$37,$7E,$38,$3C,$3E
         dta $66,$68,$64,$80,$82,$67,$73,$61
         dta $4C,$4A,$3A,$8A,$8B,$4B,$5C,$5E
         dta $4F,$80,$50,$55,$9B,$49,$5F,$7C
         dta $56,$80,$43,$8C,$8D,$42,$58,$5A
         dta $24,$80,$23,$26,$1B,$25,$22,$21
         dta $5B,$20,$5D,$4E,$80,$4D,$3F,$81
         dta $52,$80,$45,$59,$9F,$54,$57,$51
         dta $28,$80,$29,$27,$9C,$40,$7D,$9D
         dta $46,$48,$44,$80,$83,$47,$53,$41
         dta $0C,$0A,$7B,$80,$80,$0B,$1E,$1F
         dta $0F,$80,$10,$15,$9B,$09,$1C,$1D
         dta $16,$80,$03,$89,$80,$02,$18,$1A
         dta $80,$80,$85,$80,$1B,$80,$FD,$80
         dta $00,$20,$60,$0E,$80,$0D,$80,$81
         dta $12,$80,$05,$19,$9E,$14,$17,$11
         dta $80,$80,$80,$80,$FE,$80,$7D,$FF
         dta $06,$08,$04,$80,$84,$07,$13,$01
;------------------------------------------------
         ORG $FC11

         ;
         ; tabela definicji klawiszy funkcyjnych
         ;
FKDEF    dta $1C,$1D,$1E,$1F,$8E,$8F,$90,$91
;------------------------------------------------
         ORG $FC19

         ;
         ; przerwanie IRQ klawiatury
         ;
CPUIRQ   dta $8A,$48,$98,$48,$AC,$01,$D3,$AD
         dta $09,$D2,$CD,$F2,$02,$D0,$05,$AE
         dta $F1,$02,$D0,$49,$AE,$6D,$02,$C9
         dta $83,$D0,$13,$8A,$49,$FF,$8D,$6D
         dta $02,$D0,$05,$98,$09,$04,$D0,$03
         dta $98,$29,$FB,$A8,$B0,$26,$8A,$D0
         dta $3D,$AD,$09,$D2,$AA,$C9,$9F,$D0
         dta $0A,$AD,$FF,$02,$49,$FF,$8D,$FF
         dta $02,$B0,$11,$29,$3F,$C9,$11,$D0
         dta $2E,$8E,$DC,$02,$F0,$06,$8E,$FC
         dta $02,$8E,$F2,$02,$A9,$03,$8D,$F1
         dta $02,$A9,$00,$85,$4D,$AD,$D9,$02
         dta $8D,$2B,$02,$AD,$2F,$02,$D0,$06
         dta $AD,$DD,$02,$8D,$2F,$02,$8C,$01
         dta $D3,$68,$A8,$68,$AA,$68,$40,$E0
         dta $84,$F0,$21,$E0,$94,$D0,$CF,$AD
         dta $F4,$02,$AE,$6B,$02,$8D,$6B,$02
         dta $8E,$F4,$02,$E0,$CC,$F0,$06,$98
         dta $09,$08,$A8,$D0,$BF,$98,$29,$F7
         dta $A8,$4C,$6D,$FC,$AD,$2F,$02,$F0
         dta $CD,$8D,$DD,$02,$A9,$00,$8D,$2F
         dta $02,$F0,$C3
;------------------------------------------------
         ORG $FCC4

         ;
         ; przerwanie NMI programu ANTIC-a
         ;
FSDL     dta $48,$AD,$C6,$02,$4D,$4F,$00,$2D
         dta $4E,$00,$8D,$0A,$D4,$8D,$17,$D0
         dta $68,$40,$00,$00,$4C,$83,$F9
;------------------------------------------------
         ORG $FCDB

         ;
         ; inicjowanie magnetofonu
         ;
CASINIT  dta $A9,$CC,$8D,$EE,$02,$A9,$05,$8D
         dta $EF,$02
;------------------------------------------------
         ORG $FCE5

         ;
         ; procedura specjalna dla magnetofonu
         ;
CASSP    dta $60
;------------------------------------------------
         ORG $FCE6

         ;
         ; otwarcie kanału dla magnetofonu
         ;
CASOPN   dta $A5,$2B,$85,$3E,$A5,$2A,$29,$0C
         dta $C9,$04,$F0,$05,$C9,$08,$F0,$3E
         dta $60
;------------------------------------------------
         ORG $FCF7

         ;
         ; początek odczytu z magnetofonu
         ;
CASOPIN  dta $A9,$00,$8D,$89,$02,$85,$3F,$A9
         dta $01,$20,$FC,$FD,$30,$29,$A9,$34
         dta $8D,$02,$D3,$A6,$62,$BC,$93,$FE
         dta $BD,$91,$FE,$AA,$A9,$03,$8D,$2A
         dta $02,$20,$5C,$E4,$AD,$2A,$02,$D0
         dta $FB,$A9,$80,$85,$3D,$8D,$8A,$02
         dta $4C,$77,$FD,$A0,$80,$C6,$11,$A9
         dta $00,$8D,$89,$02,$60,$A9,$80,$8D
         dta $89,$02,$A9,$02,$20,$FC,$FD,$30
         dta $EE,$A9,$CC,$8D,$04,$D2,$A9,$05
         dta $8D,$06,$D2,$A9,$60,$8D,$00,$03
         dta $20,$68,$E4,$A9,$34,$8D,$02,$D3
         dta $A6,$62,$BC,$8F,$FE,$BD,$8D,$FE
         dta $AA,$A9,$03,$20,$5C,$E4,$A9,$FF
         dta $8D,$2A,$02,$A5,$11,$F0,$BC,$AD
         dta $2A,$02,$D0,$F7,$A9,$00,$85,$3D
         dta $A0,$01,$60
;------------------------------------------------
         ORG $FD7A

         ;
         ; odczyt bajtu z magnetofonu
         ;
CASRDBT  dta $A5,$3F,$30,$33,$A6,$3D,$EC,$8A
         dta $02,$F0,$08,$BD,$00,$04,$E6,$3D
         dta $A0,$01,$60
;------------------------------------------------
         ORG $FD8D

         ;
         ; odczyt bloku z magnetofonu
         ;
CASRDBL  dta $A9,$52,$20,$3F,$FE,$98,$30,$F7
         dta $A9,$00,$85,$3D,$A2,$80,$AD,$FF
         dta $03,$C9,$FE,$F0,$0D,$C9,$FA,$D0
         dta $03,$AE,$7F,$04,$8E,$8A,$02,$4C
         dta $7A,$FD,$C6,$3F,$A0,$88,$60
;------------------------------------------------
         ORG $FDB4

         ;
         ; zapis na magnetofon
         ;
CASWRT   dta $A6,$3D,$9D,$00,$04,$E6,$3D,$A0
         dta $01,$E0,$7F,$F0,$01,$60,$A9,$FC
         dta $20,$7C,$FE,$A9,$00,$85,$3D,$60
;------------------------------------------------
         ORG $FDCC

         ;
         ; odczyt statusu magnetofonu
         ;
CASST    dta $A0,$01,$60
;------------------------------------------------
         ORG $FDCF

         ;
         ; zamknięcie kanału dla magnetofonu
         ;
CASCLS   dta $AD,$89,$02,$30,$08,$A0,$01,$A9
         dta $3C,$8D,$02,$D3,$60,$A6,$3D,$F0
         dta $0A,$8E,$7F,$04,$A9,$FA,$20,$7C
         dta $FE,$30,$EC,$A2,$7F,$A9,$00,$9D
         dta $00,$04,$CA,$10,$FA,$A9,$FE,$20
         dta $7C,$FE,$4C,$D6,$FD
;------------------------------------------------
         ORG $FDFC

         ;
         ; dźwięk i oczekiwanie na naciśnięcie klawisza
         ;
BPWT     dta $85,$40,$A5,$14,$18,$A6,$62,$7D
         dta $95,$FE,$AA,$A9,$FF,$8D,$1F,$D0
         dta $A9,$00,$A0,$F0,$88,$D0,$FD,$8D
         dta $1F,$D0,$A0,$F0,$88,$D0,$FD,$E4
         dta $14,$D0,$E8,$C6,$40,$F0,$0E,$8A
         dta $18,$A6,$62,$7D,$97,$FE,$AA,$E4
         dta $14,$D0,$FC,$F0,$CD,$20,$36,$FE
         dta $98,$60
;------------------------------------------------
         ORG $FE36

         ;
         ; przejście do odczytu klawisza
         ;
PHVRT    dta $AD,$25,$E4,$48,$AD,$24,$E4,$48
         dta $60
;------------------------------------------------
         ORG $FE3F

         ;
         ; ustawienie DCB dla magnetofonu
         ;
SYSBUF   dta $8D,$02,$03,$A9,$00,$8D,$09,$03
         dta $A9,$83,$8D,$08,$03,$A9,$03,$8D
         dta $05,$03,$A9,$FD,$8D,$04,$03,$A9
         dta $60,$8D,$00,$03,$A9,$00,$8D,$01
         dta $03,$A9,$23,$8D,$06,$03,$AD,$02
         dta $03,$A0,$40,$C9,$52,$F0,$02,$A0
         dta $80,$8C,$03,$03,$A5,$3E,$8D,$0B
         dta $03,$20,$59,$E4,$60
;------------------------------------------------
         ORG $FE7C

         ;
         ; przygotowanie do zapisu na magnetofon
         ;
WSIOSB   dta $8D,$FF,$03,$A9,$55,$8D,$FD,$03
         dta $8D,$FE,$03,$A9,$57,$20,$3F,$FE
         dta $60
;------------------------------------------------
         ORG $FE8D

         ;
         ; tabela wartości dla magnetofonu
         ;
TABCAS   dta $04,$03,$80,$C0,$02,$01,$40,$E0
         dta $1E,$19,$0A,$08
;------------------------------------------------
         ORG $FE99

         ;
         ; inicjowanie drukarki
         ;
         ;
         ; inicjowanie drukarki
         ;
PRINIT   dta $A9,$1E,$8D,$14,$03,$60
;------------------------------------------------
         ORG $FE9F

         ;
         ; adres bufora statusu drukarki
         ;
PRSTAD   dta $EA,$02
;------------------------------------------------
         ORG $FEA1

         ;
         ; adres bufora danych drukarki
         ;
PRCHAR   dta $C0,$03
;------------------------------------------------
         ORG $FEA3

         ;
         ; odczyt statusu drukarki
         ;
PRSTAT   dta $A9,$04,$8D,$DF,$02,$AE,$9F,$FE
         dta $AC,$A0,$FE,$A9,$53,$8D,$02,$03
         dta $8D,$0A,$03,$20,$14,$FF,$20,$59
         dta $E4,$30,$03,$20,$44,$FF
;------------------------------------------------
         ORG $FEC1

         ;
         ; procedura specjalna i odczyt z drukarki
         ;
PRRDSP   dta $60
;------------------------------------------------
         ORG $FEC2

         ;
         ; otwarcie kanału dla drukarki
         ;
PROPN    dta $20,$A3,$FE,$A9,$00,$8D,$DE,$02
         dta $60
;------------------------------------------------
         ORG $FECB

         ;
         ; zapis na drukarkę
         ;
PRWRT    dta $48,$BD,$41,$03,$85,$21,$20,$4B
         dta $FF,$AE,$DE,$02,$68,$9D,$C0,$03
         dta $E8,$EC,$DF,$02,$F0,$15,$8E,$DE
         dta $02,$C9,$9B,$F0,$03,$A0,$01,$60
         dta $A9,$20
;------------------------------------------------
         ORG $FEED

         ;
         ; wypełnienie bufora drukarki
         ;
FPBUF    dta $9D,$C0,$03,$E8,$EC,$DF,$02,$D0
         dta $F7,$A9,$00,$8D,$DE,$02,$AE,$A1
         dta $FE,$AC,$A2,$FE,$20,$14,$FF,$4C
         dta $59,$E4,$20,$4B,$FF,$A9,$9B,$AE
         dta $DE,$02,$D0,$DC,$A0,$01,$60
;------------------------------------------------
         ORG $FF14

         ;
         ; ustawienie DCB dla drukarki
         ;
SETDCB   dta $8E,$04,$03,$8C,$05,$03,$A9,$40
         dta $8D,$00,$03,$A5,$21,$8D,$01,$03
         dta $A9,$80,$AE,$02,$03,$E0,$53,$D0
         dta $02,$A9,$40,$8D,$03,$03,$AD,$DF
         dta $02,$8D,$08,$03,$A9,$00,$8D,$09
         dta $03,$AD,$14,$03,$8D,$06,$03,$60
;------------------------------------------------
         ORG $FF44

         ;
         ; ustawienie Timeout dla drukarki
         ;
PRPUT    dta $AD,$EC,$02,$8D,$14,$03,$60
;------------------------------------------------
         ORG $FF4B

         ;
         ; ustalenie trybu pracy drukarki
         ;
PRMODE   dta $A0,$57,$A5,$2B,$C9,$4E,$D0,$04
         dta $A2,$28,$D0,$0E,$C9,$44,$D0,$04
         dta $A2,$14,$D0,$06,$C9,$53,$D0,$0C
         dta $A2,$1D,$8E,$DF,$02,$8C,$02,$03
         dta $8D,$0A,$03,$60,$A9,$4E,$D0,$DC
;------------------------------------------------
         ORG $FF73

         ;
         ; sprawdzenie pierwszej części ROM
         ;
CKROM1   dta $A2,$00,$86,$8B,$86,$8C,$20,$A9
         dta $FF,$E0,$0C,$D0,$F9,$AD,$00,$C0
         dta $AE,$01,$C0,$C5,$8B,$D0,$06,$E4
         dta $8C,$D0,$02,$18,$60,$38,$60
;------------------------------------------------
         ORG $FF92

         ;
         ; sprawdzenie drugiej części ROM
         ;
CKROM2   dta $A2,$00,$86,$8B,$86,$8C,$A2,$0C
         dta $20,$A9,$FF,$20,$A9,$FF,$AD,$F8
         dta $FF,$AE,$F9,$FF,$4C,$86,$FF
;------------------------------------------------
         ORG $FFA9

         ;
         ; zliczanie sumy kontrolnej
         ;
GETCKS   dta $A0,$00,$BD,$D7,$FF,$99,$9E,$00
         dta $E8,$C8,$C0,$04,$D0,$F4,$A0,$00
         dta $18,$B1,$9E,$65,$8B,$85,$8B,$90
         dta $02,$E6,$8C,$E6,$9E,$D0,$02,$E6
         dta $9F,$A5,$9E,$C5,$A0,$D0,$E9,$A5
         dta $9F,$C5,$A1,$D0,$E3,$60
;------------------------------------------------
         ORG $FFD7

         ;
         ; tabela adresów bloków pamięci ROM
         ;
CKSTAB   dta $02,$C0,$00,$D0,$00,$50,$00,$58
         dta $00,$D8,$00,$E0,$00,$E0,$F8,$FF
         dta $FA,$FF,$00,$00,$00,$00,$00,$10
         dta $05,$83,$02,$42,$42,$00,$00,$01
         dta $02
;------------------------------------------------
         ORG $FFF8

         ;
         ; suma kontrolna drugiej części ROM
         ;
CHSRO2   dta $8C,$6C
;------------------------------------------------
         ORG $FFFA

         ;
         ; wektor procedury przerwania NMI
         ;
NMIVEC   dta $18,$C0
;------------------------------------------------
         ORG $FFFC

         ;
         ; wektor procedury przerwania RESET
         ;
RESETVEC dta $AA,$C2
;------------------------------------------------
         ORG $FFFE

         ;
         ; wektor procedury przerwania IRQ
         ;
IRQVEC   dta $2C,$C0

