home *** CD-ROM | disk | FTP | other *** search
- 10 sys7*4096:.opt oo:*=$c000
- 15 ;****
- 20 time =54:vm =0
- 25 fl22 =$61:adr =fl22+2:inp =adr+2:nr =inp+1:len =nr+1:stbyt =len+1
- 30 int =$14:r4 =stbyt+1:r5 =r4+2:r6 =r5+2
- 35 ;****
- 40 chrget =$73:chr(NULL)t =$79:zeibas =$7a
- 45 kbsout =$ffd2:ready =$a474
- 50 vbrk =$0316:message =".":load =$ffd5:save =$ffd8:devadr =$ba:secadr =$b9
- 55 getstp =$ffe1:buffer =$0200
- 60 setfnpar =$ffbd
- 65 vnmi =$0318:nmicia =$dd00:vic =$d000
- 70 oldkey =$c5:keycod =$cb
- 71 listen =$ffb1:seclisten =$ff93:clrch =$ffcc:aktio =$9a:scrdev =3
- 75 ;**** screen
- 80 rev =$c7:ins =$d8:spalte =$d3:zeile =$d6
- 85 setcr =$ea13:hivi =648:colram =$d800
- 90 lenbuf =$c6:setzei =$e6ed:prhk =$e684:lenzei =$d5
- 95 col =$0287:getbuf =$e5b4
- 100 zeil =25;zeilen:slen =1000;laenge screen:zlen =40;zeichen/zeile
- 105 scrd =$e965:sctab =$d9
- 110 flcc =$cc:flc8 =$c8:flce =$ce:flcf =$cf:fld0 =$d0
- 115 fld4 =$d4:fld7 =$d7:fl292 =$0292:crsr =$d1:setscr =$fff0
- 120 ;****
- 125 meass =",":mehex =";":mebin ="+"
- 130 mereg ="-"
- 500 ;********
- 505 pla:pla:pla:pla:ldy #"c":bne call
- 510 nbrk pla:tay:pla:tax:pla:jsr streg:pla:sta st:pla:sec:sbc #2
- 511 sta pc:pla:sbc #0:sta pc+1:cli:cld
- 515 ldy #"b":call =*:.if vm-1 :.(NULL)t 519
- 517 lda #4:sta prtdev:lda #8:sta diskdev
- 519 tsx:stx sp:lda #$ff:sta tzeil
- 520 jsr crout:tya:jsr bsout:jsr vektoren
- 535 ldy #0:jsr strout;(NULL)
- 540 jsr br
- 545 mess jsr crout:mess1 jsr cmdoff:jsr meout
- 550 mess2 ldx #0:stx infl:a1 jsr monin:cmp #13
- 551 beq a2:sta buffer,x:inx:bne a1
- 552 a2 lda #0:sta buffer,x
- 553 ldy #1:ldx #$ff:stx infl:sty zeibas+1:stx zeibas
- 555 a3 jsr chrget:beq mess:cmp #message:beq a3
- 560 tax:and #$7f:ldy #anzbef-1:a4 cmp befehle,y:bne next
- 565 jsr execute:jmp mess
- 570 next dey:bpl a4:err lda #"?":jsr glout:jmp mess
- 581 execute cpy #prtbef:bcs exe1:cpx #$80:bcc exe1
- 582 lda prtdev:sta devadr:sta aktio:jsr listen
- 583 lda #$60:jsr seclisten
- 585 exe1 tya:asl:tax:lda adresse+1,x:pha:lda adresse,x
- 590 pha:cmdr rts
- 600 ;********
- 610 cmdoff lda aktio:cmp #scrdev:beq cmdr
- 620 jsr crout:jsr clrch:jmp crout
- 700 streg sta ac:sty yr:stx xr:rts
- 710 ldreg lda ac:ldy yr:ldx xr:rts
- 800 glout pha:tya:ldy zeibas:iny:sty spalte:tay:pla:jmp bsout
- 850 strout lda copy,y:beq cmdr:jsr bsout:iny:bne strout
- 1000 ;********
- 1005 vektoren lda #<nbrk:ldy #>nbrk
- 1010 sta vbrk:sty vbrk+1
- 1015 lda vnmi:sta vektab:lda vnmi+1:sta vektab+1:rts
- 1020 chregx ldy #7:crx lda fl22,y:tax:lda xreg,y:sta fl22,y
- 1025 txa:sta xreg,y:dey:bpl crx
- 1030 ldx spalte:lda tspal:sta spalte:stx tspal:rts
- 1035 ;****
- 1040 sbytout pha:jsr spout:pla:jmp bytout
- 1045 maout pha:jsr meout:pla:.byt $2c:sf22out lda #" ":jsr bsout
- 1050 f22out lda fl22:ldy fl22+1
- 1055 adrout pha:tya:jsr bytout:pla
- 1060 bytout pha:lsr:lsr:lsr:lsr:jsr nibout
- 1065 pla:and #15:nibout clc:adc #"0"
- 1070 cmp #":":bcc out:adc #6
- 1075 out jmp bsout
- 1080 adrin jsr bytin:tay
- 1085 bytin jsr nibin:asl:asl:asl:asl:sta inp:jsr nibin:ora inp:inr clc:rts
- 1090 nibin jsr chrget:beq inerr:and #$3f:cmp #"$":beq nibin
- 1095 sec:sbc #"0":bcs inrt
- 1100 sbc #198:inrt cmp #16:bcc inr
- 1105 inerr bit infl:bpl ings:jmp err
- 1107 ings txs:sec:rts
- 1110 gesadr ldx adr:ldy adr+1:inx:bne gsa1:iny:gsa1 stx zeibas:sty zeibas+1
- 1115 tsx:jsr getadr:clc:ldy #1:lda (adr),y:rts
- 1120 getadr jsr adrin:sta fl22:sty fl22+1:rts
- 1125 get12 jsr getadr:tax:jsr getad:bcc get12a:txa:bcs get2a
- 1130 get2 jsr getadr:jsr adrin
- 1135 get2a sta int:sty int+1:get12a rts
- 1140 weit jsr chrget:php:pha:lda zeibas:bne gar1:dec zeibas+1
- 1145 gar1 dec zeibas:pla:plp:beq gar:clc:rts
- 1150 getad jsr weit:bcs gar
- 1155 jsr adrin:sta int:sty int+1:clc:.byt $24:gar sec:rts
- 1160 masout jsr maout
- 1165 spout lda #" ":.byt $2c
- 1170 crout lda #13:.byt $2c
- 1175 meout lda #message:.byt $2c
- 1180 kmout lda #",":jmp bsout
- 1185 in2a inc adr:bne in22:inc adr+1
- 1190 in22 inc fl22:bne comp:inc fl22+1:beq gar
- 1195 comp lda fl22+1:cmp int+1:bne cor:lda fl22:cmp int:cor rts
- 1200 linefeed lda #0:sta fld4:sta spalte:rts
- 1205 linend pla:pla:jsr linefeed:jmp mess1
- 1210 getbrk jsr getstp:bne crout:gsar pla:pla:rts
- 1295 ;**** arithmetik
- 1297 asdd tay:jsr crout:tya
- 1300 add ldy #0:adday clc:adc fl22:sta fl22:tya:adc fl22+1:sta fl22+1:tay
- 1305 lda fl22:rts
- 1310 sbb pha:dec zeile:jsr scrd;$e965:lda hivi:ora #$80:sta sctab;$d9
- 1315 lda #0:tax:tay:clc:jsr setscr:pla
- 1320 sub ldy #0:subay sta inp:lda fl22:sec:sbc inp:sta fl22
- 1325 sty inp:lda fl22+1:sbc inp:sta fl22+1:tay:lda fl22:sub1 rts
- 1330 mult ldy #0:multay sta inp:lda fl22:sta adr:lda fl22+1:sta adr+1
- 1335 lda #0:sta fl22:sta fl22+1
- 1340 mul1 tya:lsr:tay:ror inp:ora inp:bcs mul2:beq sub1
- 1345 bcc mul3
- 1350 mul2 lda fl22:clc:adc adr:sta fl22:lda fl22+1:adc adr+1:sta fl22+1
- 1355 mul3 asl adr:rol adr+1:jmp mul1
- 1360 decdiv lda dechi,x:tay:lda declo,x
- 1365 div sty adr+1:sta adr:stx len:ldx #1:lda #0:sta int:sta int+1
- 1370 div1 lda adr:asl:tay:lda adr+1:rol:bcs div3
- 1375 cmp fl22+1:bcc div2:bne div3
- 1380 cpy fl22:bcc div2:bne div3
- 1385 div2 sta adr+1:sty adr:inx:bne div1
- 1390 div3 dex:bpl div6:ldx len:ldy int+1:lda int:rts
- 1395 div6 lda fl22+1:cmp adr+1:bcc div4:bne div5
- 1400 lda fl22:cmp adr:bcc div4
- 1405 div5 lda fl22:sec:sbc adr:sta fl22:lda fl22+1:sbc adr+1:sta fl22+1
- 1410 sec:.byt $24:div4 clc:rol int:rol int+1
- 1415 lsr adr+1:ror adr:jmp div3
- 1420 ;****
- 1425 decout lda fl22:pha:lda fl22+1:pha
- 1430 ldx #3:do2 jsr decdiv:bne do1:dex:bpl do2:bmi do3
- 1435 do4 jsr decdiv
- 1440 do1 clc:adc #"0":jsr bsout:dex:bpl do4
- 1445 do3 lda fl22:clc:adc #"0":jsr bsout
- 1450 pla:sta fl22+1:pla:sta fl22:rts
- 1455 ;:gadr inc len:clc:ror stbyt
- 1460 jsr gbyt:sta buffer+4:jsr weit:bcs cart:cmp #",":beq cart:cmp #")"
- 1465 beq cart:cmp #"?":beq cart:inc len:lda stbyt:ora #$80:sta stbyt
- 1470 gbyt jsr gnib:asl:asl:asl:asl:sta inp:jsr gnib:ora inp:sta buffer+3:rts
- 1475 gnib jsr weit:cmp #"*":bne gni1:jsr chrget:lda #0:sec:bcs gni2
- 1480 gni1 jsr nibin:clc:gni2 rol buffer:rts
- 1485 cadr ldy buffer:ldx #0:jsr cbyt:bne cart:inx:dec len:beq cart
- 1490 cbyt lda buffer+3,x:eor adr,x
- 1495 sta inp:tya:lsr:tay:bcs cni1:lda inp:and #$0f:bne cart
- 1500 cni1 tya:lsr:tay:bcs ca1:lda inp:and #$f0:cart rts:ca1 lda #0:rts
- 2000 ;******** x = exit
- 2005 bx jmp ($a002)
- 2500 ;******** i =i/o setzen
- 2510 bi jsr bytin:sta diskdev
- 2520 jsr bytin:sta prtdev:rts
- 3000 ;******** g = goto
- 3005 bg jsr getad:bcs b(NULL)k:lda int:sta pc:lda int+1:sta pc+1
- 3010 b(NULL)k jsr crout:bg1 ldx sp:txs
- 3012 pla:pla:lda #>ready-1:pha:lda #<ready-1:pha
- 3015 lda st:pha
- 3020 jsr ldreg:plp:jmp (pc)
- 4000 ;******** s = save
- 4005 bs jsr getlsp:jsr get2:tax:lda #fl22:jmp save
- 4010 ;******** l = load
- 4015 bl jsr getlsp:jsr getad:tax:lda #0:bcc bl1:lda #1
- 4020 bl1 sta secadr:lda #0:jmp load:lser jmp err
- 4025 getlsp jsr chrget:cmp #34:bne lser
- 4030 ldy #1:glsp2 lda (zeibas),y:beq lser
- 4035 cmp #34:beq glsp1:iny:bne glsp2
- 4040 glsp1 dey
- 4045 tya:ldx zeibas:ldy zeibas+1:inx:bne glsp3:iny:glsp3 jsr setfnpar
- 4050 tay:iny:tya:clc:adc zeibas:sta zeibas:bcc glsp4:inc zeibas+1
- 4055 glsp4 lda diskdev:sta devadr:rts
- 6000 ;******** r = register
- 6005 br ldy #pbr:jsr strout:.goto 6010
- 6006 strout lda copy,y:beq br2;cmdr:jsr bsout:iny:bne strout
- 6010 br2 jsr meout:lda #mereg:jsr bsout:lda pc:ldy pc+1:jsr adrout
- 6015 lda ac:jsr sbytout:lda xr
- 6020 jsr sbytout:lda yr:jsr sbytout
- 6025 lda sp:jsr sbytout:jsr spout:lda st:jmp bin8out
- 7000 ;******** gr = get register
- 7005 bgr jsr adrin:sta pc:sty pc+1:jsr bytin:sta ac
- 7010 jsr bytin:sta xr:jsr bytin:sta yr:jsr bytin:sta sp:tax:txs
- 7015 jsr binin:ora #$20:sta st:jsr linefeed:jsr br2:jmp mess
- 8000 ;******** m = memory-dump
- 8005 bm jsr get12
- 8010 bm1 jsr getbrk:jsr zeim:bcc bm1:jmp linend
- 8015 zeim lda #mehex:jsr maout
- 8020 ldy #0:bm2 lda (fl22),y:jsr sbytout:iny:cpy #8:bne bm2:jsr spout
- 8030 ldy #0:bm3 lda (fl22),y
- 8035 tax:and #127:cmp #32:bcs ao1:lda #17:sta rev
- 8040 txa:clc:adc #64:tax
- 8045 ao1 txa:jsr bsout:lda #0:sta rev
- 8080 iny:cpy #8:bne bm3
- 8085 acc tya:jsr add:bcs bm4:jsr comp:jsr linefeed
- 8090 bm4 rts
- 9000 ;******** gm = get memory
- 9005 bgm jsr getadr:jsr weit:bcs bm4
- 9010 bgm2 ldy #0:bgm1 jsr bytin:sta (fl22),y:iny
- 9015 cpy #8:bne bgm1:jsr linefeed:jsr zeim
- 9020 ldy #mehex:bne getend
- 10000 ;******** b = binaer (sprites)
- 10005 bb jsr get12
- 10010 bb1 jsr getbrk:jsr zeib:bcc bb1:jmp linend
- 10015 zeib lda #mebin:jsr masout
- 10020 ldy #0:bb2 ldx #8
- 10025 lda (fl22),y:bb3 asl:pha:bcc bbleer:lda #"*":.byt $2c
- 10030 bbleer lda #".":jsr bsout:pla:dex:bne bb3:iny:cpy #3:bne bb2
- 10035 beq acc
- 11000 ;******** gb = get binaer
- 11005 bgb jsr getadr:jsr weit:bcc bgb2:rts
- 11010 bgb2 ldy #0:bgb3 ldx #8:lda #0:bgb4 pha:jsr chrget:bne bgb5:jmp err
- 11015 bgb5 cmp #".":pla:rol:dex:bne bgb4:eor #$ff:sta (fl22),y
- 11020 iny:cpy #3:bne bgb3:jsr linefeed:jsr zeib:ldy #mebin
- 11025 getend jsr crout:jsr meout:tya:jsr bsout:jsr f22out:jsr spout
- 11030 pla:pla:jmp mess2
- 12000 ;******** d = disassembler
- 12005 bd jsr get12
- 12010 bd1 jsr getbrk:jsr zeid:bcc bd1:jmp linend
- 12015 getpar ldy #0:lda (fl22),y:tax:and #$1f:cmp #$10:bne bda1
- 12020 bdbranch txa:lsr:lsr:lsr:lsr:lsr:sta nr:iny:lda (fl22),y:php
- 12025 ldx fl22+1:clc:adc fl22:bcc bdb1:inx:bdb1 clc:adc #2:bcc bdb1a:inx
- 12030 bdb1a plp:bpl bdb2:dex
- 12035 bdb2 sta adr:stx adr+1:lda #2:sta len:lda #6:sta stbyt:rts
- 12040 bda1 txa:ldx #0:bd1a cmp codtex,x:bne bd1b
- 12045 txa:clc:adc #8:bd4b sta nr:lda #1:sta len:rts
- 12050 bd1b inx:cpx #37-8:bne bd1a
- 12055 ldy #33:sty nr
- 12060 ldx #0:bd2b ldy #0:bd2a cmp codtab,x:beq bd2out
- 12065 inx:iny:cpy #5:bne bd2a:inc nr:ldy nr
- 12070 cpy #45:bne bd2b
- 12075 ldx #0:bd3b ldy #0:bd3a cmp codlon,x:beq bd2out
- 12080 inx:iny:cpy #8:bne bd3a:inc nr:ldy nr
- 12085 cpy #54:bne bd3b:beq bd4
- 12090 bd2out lda stb,y:sta stbyt:tax:ldy #1:lda (fl22),y
- 12095 sta adr:txa:and #4:beq bd3:iny
- 12100 lda (fl22),y:sta adr+1:bd3 iny:sty len:rts
- 12105 bd4 ldx #4:bd4a cmp andc,x:beq bd40:dex:bpl bd4a:lda #56:bne bd4b
- 12110 bd40 lda andt,x:sta nr:lda anda,x:tay:bne bd2out
- 12115 zeid lda #meass:jsr masout:jsr getpar
- 12120 lda nr:asl:clc:adc nr:tay:ldx #3
- 12125 zd1 lda text,y:jsr bsout:iny:dex:bne zd1:jsr spout:ldy len:dey:beq zdend
- 12130 lda stbyt:and #3:tay:lda vorsp,y:beq zd2:jsr bsout
- 12135 zd2 lda #"$":jsr bsout
- 12140 lda adr:ldy adr+1:lsr stbyt:lsr stbyt:lsr stbyt:bcs zd3:jsr bytout
- 12145 jmp zd4:zd3 jsr adrout
- 12150 zd4 lda stbyt:beq zdend:asl:clc:adc stbyt:tay:ldx #3
- 12155 zd41 lda nahsp-3,y:jsr bsout:iny:dex:bne zd41
- 12160 zdend ldy #10:lda #" ":zde1 jsr bsout:dey:bne zde1
- 12170 ldy len:jmp acc
- 13000 ;******** bgd = assembler
- 13005 ba jsr getadr:bgd0 ldy #meass:jmp getend
- 13010 bgd jsr getadr:jsr weit:bcc bgd2:rts
- 13015 bgd2 ldx #0:stx nr:bgd3 ldy #1
- 13020 bgd4 lda (zeibas),y:cmp text,x:bne bgd5:inx:iny:cpy #4:bne bgd4:beq bgd6
- 13025 bgd5 inc nr:lda nr:cmp #56:beq asse:asl:adc nr:tax:bne bgd3
- 13030 bgd7 jmp err
- 13035 bgd6 clc:lda #4:adc zeibas:sta zeibas:bcc bgd6a:inc zeibas+1
- 13040 bgd6a jsr getasc:lda nr:cmp #8:bcs bgd8
- 13045 lda stbyt:cmp #2:bne bgd7:lda adr:sec
- 13050 sbc fl22:tay:lda adr+1:sbc fl22+1:tax
- 13051 tya:sec:sbc #2:tay:bcs bgdd1:dex:bgdd1 cpx #0:beq bgdd2:inx:bne bgd7
- 13052 tya:bpl bgd7:bmi bgdd3:bgdd2 tya:bmi bgd7
- 13058 bgdd3 ldy #1:sta (fl22),y
- 13059 lda nr:asl:asl:asl:asl:asl:ora #$10
- 13060 assend ldy #0:sta (fl22),y:asse jsr linefeed
- 13062 jsr zeid:ldy #meass:jmp getend
- 13065 bgd8 cmp #37:bcs bgd9:ldy len:dey:bne bgd8e:tax:ldy #0
- 13070 lda codtex-8,x:jmp assend
- 13075 bgd8e cmp #33:bcs bgd9:ba1e jmp err
- 13080 bgd9 ldy len:dey:beq ba1e:cmp #45:bcs bgda
- 13085 ldy stbyt:cpy #5:bcs bgnf:sec:sbc #33
- 13090 sta nr:asl:asl:adc nr:adc stbyt:tax:lda codtab,x:ass1 beq ba1e:sta nr
- 13095 ldy len:dey:bgd9a lda adr-1,y:sta (fl22),y:dey:bne bgd9a:lda nr:bne assend
- 13100 bgda cmp #54:bcs bgnf:ldy stbyt:cpy #8:bcs bgnf:sec:sbc #45
- 13105 asl:asl:asl:adc stbyt:tax:lda codlon,x:jmp ass1
- 13110 bgnf lda nr:cmp #56:beq assend
- 13115 ldx #4:bgnf1 lda nr:cmp andt,x:bne bgnf2:lda stbyt:cmp anda,x:bne bgnf2
- 13120 lda andc,x:bne ass1
- 13125 bgnf2 dex:bpl bgnf1:jmp err
- 13130 getauf ldy #0:sty stbyt:iny:sty len:jsr chr(NULL)t:beq gau1
- 13135 ldy #0:cmp #"#":beq ga2:iny:cmp #"(":beq ga2
- 13140 iny:jsr weit+3:ga2 tya:lsr:ror stbyt:lsr:ror stbyt
- 13145 clc:.byt $24:gau1 sec:rts
- 13150 getasc jsr getauf:bcs ga1a
- 13155 ga3 jsr bytin:sta adr+1:inc len:jsr weit:bcs ga4:cmp #")":beq ga4
- 13160 cmp #",":beq ga4:cmp #"?":beq ga4
- 13165 jsr bytin:sta adr:sec:ror stbyt:inc len:bne getzu
- 13170 ga1a beq ga1:ga4 lda adr+1:sta adr:clc:ror stbyt
- 13175 getzu jsr weit:ldx #0:bcs ga7n0:lda stbyt
- 13180 and #96:cmp #32:bne ga7kl:ldx #3:ga7kl stx inp
- 13185 ga7k1 jsr chrget:beq ga7b:cmp #"?":beq ga7b:cmp #",":bne ga7k1:inc inp
- 13190 jsr chrget:cmp #"x":beq ga7b:cmp #"y":beq ga7k2:gaerr jmp err
- 13195 ga7k2 ldx inp:inx
- 13200 ga7n0 stx inp
- 13205 ga7b lda stbyt:lsr inp:ror:lsr inp:ror:lsr inp:ror:lsr:lsr:sta stbyt
- 13210 ga1 ldx #9:lda stbyt:gaa cmp stb,x:beq gaa1:dex:bpl gaa:bmi gaerr
- 13215 gaa1 stx stbyt:rts
- 14000 ;******** o = occupy
- 14005 bo jsr get2:jsr bytin:sta inp
- 14010 ldy #0:bo1 lda inp:sta (fl22),y
- 14015 jsr in22:bcc bo1:rts
- 15000 ;******** c = compare
- 15005 bc jsr get2:jsr adrin:sta adr:sty adr+1:jsr crout
- 15010 bc1 ldy #0:lda (fl22),y:cmp (adr),y
- 15015 beq bc2:jsr sf22out:bc2 jsr getstp:beq bcrt:jsr in2a
- 15020 bcc bc1:bcrt rts
- 16000 ;******** t = transfer
- 16005 bt jsr get2:jsr adrin:sta r5:sty r5+1
- 16006 cpy fl22+1:bcc bt0:bne bthv:cmp fl22:bcs bthv
- 16010 bt0 ldy #0:bt1 lda (fl22),y:sta (r5),y
- 16015 inc r5:bne bt2:inc r5+1
- 16020 bt2 jsr in22:bcc bt1:beq bt1:rts
- 16025 bthv sec:sbc fl22:tax:tya:sbc fl22+1:tay:txa
- 16030 clc:adc int:sta r5:tya:adc int+1:sta r5+1
- 16040 ldy #0:bth3 lda (int),y:sta (r5),y
- 16045 lda r5:bne bth1:dec r5+1:bth1 dec r5
- 16046 lda int:bne bth4:dec int+1:bth4 dec int
- 16060 jsr comp:bcc bth3:beq bth3:rts
- 17000 ;******** bu = adressen umrechnen
- 17005 bu jsr adrin:sta r4:sty r4+1:jsr adrin:sta r5:sty r5+1:jsr getadr
- 17006 lda r4:ldy r4+1:jsr subay
- 17009 sta r6:sty r6+1:jsr get2
- 17010 bu1 jsr getpar:lda len:cmp #3:bne bu2
- 17015 ldx adr+1:lda adr
- 17020 cpx r4+1:bcc bu2:bne bu3:cmp r4:bcc bu2
- 17025 bu3 cpx r5+1:bcc bu4:bne bu2:cmp r5:bcc bu4:bne bu2
- 17030 bu4 ldy #1:clc:adc r6:sta (fl22),y:iny:txa:adc r6+1:sta (fl22),y
- 17035 bu2 lda len:jsr add:bcs bu11:jsr comp:bcc bu1:beq bu1:bu11 rts
- 18000 ;******** f = find
- 18005 bf ldy #1:lda (zeibas),y:pha:cmp #" ":beq bf1a:jsr chrget
- 18010 bf1a jsr get2:pla:cmp #" ":bne bf1
- 18015 jsr weit:bcs bfend:ldy #0:cmp #34:bne bfn1:iny:iny
- 18020 bfn2 lda (zeibas),y:beq bfn3:cmp #34:beq bfn3
- 18025 sta buffer-2,y:iny:bne bfn2
- 18030 bfn3 dey:dey:beq bfend:bne bfn1a
- 18035 bfn1 jsr weit:bcs bfn1a:jsr bytin:sta buffer,y
- 18040 iny:bne bfn1:bfn1a dey:sty len:jsr crout
- 18045 bfn4 ldy len:bfn5 lda buffer,y:cmp (fl22),y:bne bfn6:dey:bpl bfn5
- 18050 jsr sf22out:bfn6 jsr getstp:beq bfend:jsr in22:bcc bfn4:bfend rts
- 18055 bf1 cmp #"r":bne bf1b
- 18060 lda #6:sta buffer+2:lda #2:sta buffer+1:lda #%11111111:sta buffer
- 18065 bne bfa1
- 18070 bf1b jsr chrget:jsr getauf:bcs bfa0
- 18075 lda #0:sta buffer:sta buffer+2:jsr weit:bcs bfa0:jsr gadr:jsr getzu
- 18080 sta buffer+2
- 18085 bfa0 lda len:sta buffer+1
- 18090 bfa1 jsr getpar:lda len:pha:cmp buffer+1:bne bfa1n:dec len:beq bfa1ok
- 18095 lda stbyt:cmp buffer+2:bne bfa1n
- 18100 jsr cadr:bne bfa1n
- 18105 bfa1ok jsr crout:pla:jsr zeid:jmp bfa2
- 18110 bfa1n pla:jsr add:bcs bfa3:bfa2 jsr getstp:beq bfa3
- 18115 jsr comp:bcc bfa1:beq bfa1:bfa3 rts
- 19000 ;******** w = trace-walk
- 19010 bw jsr getad:bcs bwok:lda int:sta pc:lda int+1:sta pc+1
- 19020 bwok lda #127:sta nmicia+13
- 19030 lda vic+17:sta vreg:lda #<nnmi:sta vnmi:lda #>nnmi:sta vnmi+1
- 19040 bne bww2
- 19050 ;****
- 19060 nnmi pha:lda nmicia+13:bmi nmiok:pla:rti
- 19070 nmiok pla:nmiok1 jsr streg:lda vreg:sta vic+17
- 19080 pla:sta st:pla:sta pc:pla:sta pc+1:tsx:stx sp:cld:cli
- 19090 bww2 jsr chregx:bww3 lda #0:sta tzeil
- 19100 jsr br:jsr crout
- 19110 lda pc:sta fl22:lda pc+1:sta fl22+1:jsr zeid:lda #$ff:sta tzeil
- 19120 ;****
- 19130 bww1 lda keycod:cmp #64:beq bww1:cmp #63;run/stop:bne bwx
- 19140 ;** run/stop
- 19150 lda vektab:sta vnmi:lda vektab+1:sta vnmi+1:lda #127:sta nmicia+13
- 19160 jmp mess
- 19170 ;** j=jump
- 19180 bwx cmp #34;j(sr):bne bwj:cmp oldkey:beq bww1
- 19190 ldy #1:lda nr:cmp #54;jsr:bne bwx0
- 19191 lda fl22+1:pha:lda fl22:pha:lda pc:sta fl22:lda pc+1:sta fl22+1
- 19192 lda (fl22),y:sta pc:iny:lda (fl22),y
- 19193 sta pc+1
- 19210 jmp bwx1
- 19220 bwx0 tsx:inc $0101,x:bne bwx1:inc $0102,x
- 19230 bwx1 jsr chregx:jsr bwx2:php:jmp nmiok1
- 19250 ;**** f-tasten
- 19260 bwj cmp #5;f3:beq bwok1:cmp #6;f5:bne bwf5
- 19270 ldx #0:ldy #$80:bwpause dex:bne bwpause:dey:bne bwpause:beq bwok1
- 19280 bwf5 cmp #3;f7:beq bwf7:cmp #4;f1:beq bwf1:bww1a jmp bww1
- 19290 bwf1 cmp oldkey:beq bww1a:lda fl22:ldy fl22+1:sta pc:sty pc+1:jmp bww3
- 19300 bwf7 lda keycod:cmp #64:bne bwf7
- 19310 ;****
- 19315 bwok1 lda #0:sta nmicia+5:lda #time:sta nmicia+4:lda #24:sta nmicia+14
- 19330 lda nmicia+13:lda #%10000001:sta nmicia+13
- 19331 lda vic+17:sta vreg:lda #11:sta vic+17
- 19332 bwx4 lda vic+18:bne bwx4:bit vic+17:bmi bwx4
- 19339 sei:jsr chregx:inc nmicia+14
- 19340 ldx sp:txs:bwx2 lda pc+1:pha:lda pc:pha:lda st:pha:jsr ldreg
- 19350 rti
- 30000 ;******** bdec = dec > hex
- 30005 bdec lda #0:sta fl22:sta fl22+1
- 30010 bde1 jsr chrget:bcs bdend:sec:sbc #"0":pha
- 30015 lda #10:jsr mult:pla:clc:adc fl22:sta fl22:bcc bde1:inc fl22+1:jmp bde1
- 30020 ;******** bbin = bin > hex
- 30025 bbin jsr binin:jmp bdend:binin lda #0:sta fl22:sta fl22+1
- 30030 bbi1 jsr chrget:bcs bbind:sec:sbc #"0":cmp #2:bcs bbind
- 30035 lsr:rol fl22:rol fl22+1:bcc bbi1:jmp err:bbind lda fl22:rts
- 30040 ;******** bhex = hex > dec
- 30045 bhex lda #0:sta fl22+1:jsr bytin:sta fl22:jsr weit:bcs bdend
- 30050 lda fl22:sta fl22+1:jsr bytin:sta fl22
- 30055 bdend jsr linefeed:lda #"$":jsr bsout
- 30060 jsr f22out:jsr kmout:jsr decout:jsr kmout
- 30065 binout ldx #16:lda fl22+1:bne bo4:lda fl22:bin8out sta fl22+1:ldx #8
- 30070 bo4 lda #%11000;"0"/2
- 30075 asl fl22:rol fl22+1:rol:jsr bsout:dex:bne bo4:rts
- 30077 ;********
- 30080 bfz jsr getadr:jsr chrget:ldx #3:bfz1 cmp bft,x:beq bfz2
- 30085 dex:bpl bfz1:bfzerr jmp err
- 30090 bfz2 jsr bfz3:jmp f22out
- 29839 bfz3 jsr adrin:pha:lda #"=":jsr glout:pla:cpx #0:bne bfz4
- 30100 jmp adday:bfz4 dex:bne bfz5:jmp subay
- 30105 bfz5 dex:bne bfz6:jmp multay
- 30110 bfz6 cmp #0:bne bfz7:cpy #0:beq bfzerr
- 30115 bfz7 jsr div:jsr adrout:jmp kmout
- 40000 ;******** monin = editor
- 40005 e0 jsr scrout:e1 lda lenbuf:sta flcc:sta fl292:beq e1
- 40010 lda flcf:beq e2:lda flce:ldx col:ldy #0:sty flcf:jsr setcr
- 40015 e2 jsr getbuf:cmp #13:bne e0
- 40020 ldy lenzei:sty fld0:e3 lda (crsr),y:cmp #" ":bne e4:dey:bne e3
- 40025 e4 iny:sty flc8:ldy #0:sty fl292:sty spalte:sty fld4
- 40030 ldx zeile:jsr setzei;$e6ed
- 40035 jmp s1
- 41000 ;****
- 41005 monin tya:pha:txa:pha:lda fld0:beq e1
- 41010 s1 ldy spalte:s2 lda (crsr),y:sta fld7
- 41015 and #$3f:asl fld7:bit fld7:bpl s3
- 41020 ora #$80:s3 bcc s4:ldx fld4:bne s5:s4 bvs s5:ora #$40
- 41025 s5 inc spalte:jsr prhk;$e684
- 41030 cpy flc8:bne s6:lda #0:sta fld0:lda #13:s6 sta fld7:pla:tax:pla:tay
- 41035 lda fld7:rts
- 42000 ;****
- 42005 scrout sta fld7:cmp #"":bne sc1
- 42010 ldx zeile:cpx #zeil-1:bne sc1
- 42015 lda hivi:clc:adc #>slen-zlen:sta adr+1
- 42020 lda #<slen-zlen:sta adr:sd1 ldy #0
- 42025 lda (adr),y:cmp #message:beq sd2:scca lda adr:sec:sbc #zlen
- 42030 sta adr:bcs sd3:dec adr+1:sd3 dex:bpl sd1:jmp crout
- 42035 sd2 jsr gesadr:bcs scca
- 42037 cmp #mehex:bne sd2a:lda #8:jsr asdd:jmp zeim
- 42040 sd2a cmp #mebin:bne sd2b:lda #3:jsr asdd:jmp zeib
- 42045 sd2b cmp #meass:bne scca:jsr getpar:lda len:jsr asdd:jmp zeid
- 43000 ;**
- 43005 sc1 lda fld7:cmp #"[145]":bne sc2
- 43010 ldx zeile:bne sc2
- 43015 lda hivi:sta adr+1:lda #0:sta adr:ldx #zeil
- 43020 su1 ldy #0:lda (adr),y:cmp #message:beq su2:su1a lda adr:clc:adc #zlen
- 43025 sta adr:bcc su3:inc adr+1:su3 dex:bne su1:rts
- 43030 su2 jsr gesadr:bcs su1a
- 43035 cmp #mehex:bne su2a:lda #8:jsr sbb:jmp zeim
- 43040 su2a cmp #mebin:bne su2b:lda #3:jsr sbb:jmp zeib
- 43045 su2b cmp #meass:bne su1a:lda #12:jsr sub:lda #12:sta inp
- 43050 su5 jsr getpar:lda inp:sec:sbc len:sta inp:beq su4:bcc su4
- 43055 lda len:jsr add:jmp su5
- 43060 su4 lda #0:jsr sbb:jmp zeid
- 43065 sc2 lda fld7:jmp bsout
- 44000 ;********
- 44005 bsout pha:lda tzeil:cmp #$ff:bne tout:pla:jmp kbsout
- 44010 tout txa:pha:tya:pha:tsx:lda $0100+3,x:ldy tzeil
- 44015 cmp #13:beq bscr:and #$3f:tax:lda crsr:pha:lda crsr+1:pha
- 44020 sei:lda hivi:sta crsr+1:lda #0:sta crsr:txa:sta (crsr),y
- 44025 pla:sta crsr+1:pla:sta crsr:cli
- 44030 lda col:sta colram,y:iny:bscr2 sty tzeil:pla:tay:pla:tax:pla:rts
- 44035 bscr lda #0:bscr1 clc:adc #zlen:cmp tzeil:bcc bscr1
- 44040 beq bscr1:tay:bne bscr2
- 50000 .if vm-1 :.goto 60000
- 50001 ;********
- 50002 diskdev =$02a5:prtdev =diskdev+1
- 50005 ac =prtdev+1:xr =ac+1:yr =xr+1
- 50010 st =yr+1:sp =st+1:pc =sp+1
- 50015 vektab =pc+2:tzeil =vektab+2:tspal =tzeil+1:vreg =tspal+1
- 50020 infl =vreg+1:psp =infl+2
- 50025 xreg =psp+1
- 50100 .goto60030
- 60000 ;********
- 60005 ac .byt 0:xr .byt 0:yr .byt 0
- 60010 st .byt $20:sp .byt 0:pc .byt 0,0
- 60015 vektab .byt $47,$fe:tzeil .byt $ff:tspal .byt 0:vreg .byt 0
- 60020 psp .byt 0:infl .byt $ff
- 60025 xreg .byt 0,0,0,0,0,0,0,0
- 60027 diskdev .byt 8:prtdev .byt 4
- 60030 ;****
- 60035 copy .asc "*(c)@ass":.byt 0
- 60040 brstr .byt 13:.asc " pc ac xr yr sp nv1bdizc":.byt 13,0
- 60041 pbr =brstr-copy
- 60045 ;****
- 60050 befehle .byt "m","b","d","c","f"
- 60051 .byt "x","g","r",mereg
- 60055 .byt mehex,mebin
- 60060 .byt "a",meass
- 60065 .asc "otls#%$?wui"
- 60070 anzbef =24:prtbef =5
- 60074 adresse .byt <bm-1,>bm-1,<bb-1,>bb-1,<bd-1,>bd-1
- 60075 .byt <bc-1,>bc-1,<bf-1,>bf-1
- 60076 .byt <bx-1,>bx-1,<bg-1,>bg-1
- 60080 .byt <br-1,>br-1,<bgr-1,>bgr-1
- 60085 .byt <bgm-1,>bgm-1
- 60090 .byt <bgb-1,>bgb-1
- 60095 .byt <ba-1,>ba-1
- 60100 .byt <bgd-1,>bgd-1
- 60105 .byt <bo-1,>bo-1
- 60110 .byt <bt-1,>bt-1
- 60115 .byt <bl-1,>bl-1,<bs-1,>bs-1
- 60120 .byt <bdec-1,>bdec-1,<bbin-1,>bbin-1
- 60125 .byt <bhex-1,>bhex-1,<bfz-1,>bfz-1
- 60130 .byt <bw-1,>bw-1
- 60135 .byt <bu-1,>bu-1,<bi-1,>bi-1
- 60999 ;****
- 61000 text .asc "bplbmibvcbvsbccbcsbnebeq";0-7
- 61005 .asc "brkclccldcliclvdexdeyinxiny";8-16
- 61010 .asc "nopphaphpplaplprtirtssecsedsei";17-26
- 61015 .asc "taxtaytsxtxatxstya";27-32
- 61020 .asc "asllsrrolrorbitcpxcpydecinc";33-41
- 61025 .asc "ldystxstyadcandcmpeorldaldxorasbcstajsrjmp???";42-56
- 61030 codtex .byt $00,$18,$d8,$58
- 61035 .byt $b8,$ca,$88,$e8,$c8,$ea
- 61040 .byt $48,$08,$68,$28,$40,$60
- 61045 .byt $38,$f8,$78,$aa,$a8,$ba
- 61050 .byt $8a,$9a,$98,$0a,$4a,$2a,$6a
- 61055 codtab =*
- 61060 .byt $00,$06,$0e,$16,$1e
- 61065 .byt $00,$46,$4e,$56,$5e
- 61070 .byt $00,$26,$2e,$36,$3e
- 61075 .byt $00,$66,$6e,$76,$7e
- 61080 .byt $00,$24,$2c,$00,$00
- 61085 .byt $e0,$e4,$ec,$00,$00
- 61090 .byt $c0,$c4,$cc,$00,$00
- 61095 .byt $00,$c6,$ce,$d6,$de
- 61100 .byt $00,$e6,$ee,$f6,$fe
- 61105 .byt $a0,$a4,$ac,$b4,$bc
- 61110 .byt $00,$86,$8e,$00,$00
- 61115 .byt $00,$84,$8c,$94,$00
- 61120 codlon =*
- 61125 .byt $69,$65,$6d,$75,$7d,$79,$61,$71
- 61130 .byt $29,$25,$2d,$35,$3d,$39,$21,$31
- 61135 .byt $c9,$c5,$cd,$d5,$dd,$d9,$c1,$d1
- 61140 .byt $49,$45,$4d,$55,$5d,$59,$41,$51
- 61145 .byt $a9,$a5,$ad,$b5,$bd,$b9,$a1,$b1
- 61150 .byt $a2,$a6,$ae,$00,$00,$be,$00,$00
- 61155 .byt $09,$05,$0d,$15,$1d,$19,$01,$11
- 61160 .byt $e9,$e5,$ed,$f5,$fd,$f9,$e1,$f1
- 61165 .byt $00,$85,$8d,$95,$9d,$99,$81,$91
- 61170 stb .byt $00,$02,$06,$0a,$0e,$16,$21,$29,$1d,$12
- 61175 andc .byt $96,$b6,$20,$4c,$6c
- 61180 andt .byt 43,50,54,55,55
- 61185 anda .byt 9,9,2,2,8
- 61500 ;****
- 61505 vorsp .asc "#(":.byt 0
- 61510 nahsp .asc ",x ,y ) ,x)),y"
- 61515 dechi .byt >10,>100,>1000,>10000
- 61520 declo .byt <10,<100,<1000,<10000
- 61525 bft .asc "+-*/"
-