home *** CD-ROM | disk | FTP | other *** search
- LOAD: jsr EXPR2
- ..ld0: ldx #4
- ..ld1: jsr RI
- cmp #0FF
- bne ..ld0
- dex
- bne ..ld1
- ..ld2: jsr RI
- cmp #0FF
- beq ..ld2
- bne ..ld3
- ;
- ..loop: jsr RI
- ..ld3: sta @ptrHL,Y
- jsr SHOWIT
- jmp ..loop
- ;
- UNLD: jsr EXPR2
- jsr MARK
- ..loop: lda @ptrHL,Y
- jsr PO
- jsr SHOWIT
- jmp ..loop
- ;
- MARK: ldx #8
- ..mrk: lda #0FF
- jsr PO
- dex
- bne ..mrk
- rts
- ;
- MEMCK:
- MEMSIZ: sty ptrL
- sty ptrH
- dec ptrL
- ..mem0: inc ptrH
- lda @ptrHL,Y
- eor #0FF
- sta @ptrHL,Y
- cmp @ptrHL,Y
- bne ..mem1
- eor #0FF
- sta @ptrHL,Y
- jmp ..mem0
- ;
- ..mem1: dec ptrH
- ldx ptrL
- lda ptrH
- rts
- ;
- ;;
- ;;;********
- ASSIGN:
- BFUNCT:
- CFUNCT:
- EFUNCT:
- JTEST:
- NFUNCT:
- IUSER:
- OUSER:
- QUERY:
- READ:
- WRITE:
- YSRCH:
- lda #"?"
- jmp CO
- ;
- ;;
- .sbttl /IO subroutines/
- .page
- .ife %type-1,[
- CI: jsr CSTS
- beq CI
- lda CONPRT
- clc
- rts
- ;
- CSTS: lda CONSTS
- rora
- bcs ..none
- lda #0FF
- rts
- ;
- ..none: clc
- lda #00
- rts
- ;
- ;;
- CO: and #0FF
- beq ..rts
- pha
- ..wait: lda CONSTS
- rola
- bcs ..wait
- pla
- sta CONPRT
- ..rts: rts
- ;
- ;;
- IOINIT: lda #BREAK
- sta IRQLOC
- lda #BREAK>8
- sta IRQLOC+1
- lda #OLDBRK
- sta BRKV
- lda #OLDBRK>8
- sta BRKV+1
- rts
- ;
- ;;
- RI:
- PO:
- LO:
- IOGET:
- IOSET:
- rts
- ;;
- ;
- ;;
- .loc 0FFFA
- .WORD TRAP
- .WORD ZAPPLE
- .WORD IRQ
- ]
- .ife %type-2,[
- PRTSTS = 0C080
- PRTDAT = 0C081
- KEYBD = 0C000
- KBDSTB = 0C010
- COUT = 0FDF0
- %READ = 0FEFD
- %WRITE = 0FECD
- ;
- CI: lda KEYBD
- bpl CI
- bit KBDSTB
- clc
- rts
- ;
- CSTS: lda KEYBD
- bmi ..rts
- lda #0
- ..rts: rts
- ;
- ;;
- CO: sta regA
- and #0FF
- beq ..pla
- cmp #0A
- beq ..pla
- and #7F
- cmp #"`"
- bcc ..notl
- sbc #20
- ..notl: ora #80
- jsr COUT
- ..pla: lda regA
- rts
- ;
- ;;
- RI: ldx SLOTN
- ..noac: lda KEYBD
- bpl ..nxt
- jsr CI
- cmp #03 ;ctl C
- bne ..nxt
- jmp ERROR
- ;
- ..nxt: lda PRTSTS,X
- lsra
- bcc ..noac
- lda PRTDAT,X
- rts
- ;
- ;;
- PO: sta regA
- ldx SLOTN
- ..po: lda PRTSTS,X
- and #2
- beq ..po
- lda regA
- sta PRTDAT,X
- rts
- ;
- IOINIT: lda #BREAK
- sta IRQLOC
- lda #BREAK>8
- sta IRQLOC+1
- lda #OLDBRK
- sta BRKV
- lda #OLDBRK>8
- sta BRKV+1
- lda #2*10
- sta SLOTN
- lda #11 ;300baud
- sta BAUDR
- ACINIT: ldx SLOTN
- lda #3
- sta PRTSTS,X
- lda BAUDR
- sta PRTSTS,X
- rts
- ;
- ;;
- IOGET:
- IOSET:
- LO: rts
- RESTRT: JMP ENTRY
- ]
- .ife %type,[
- tempx= 4E
- tempy= 4F
- chin= 50
- LOUT= 3
- COUT= 1
- KBDSTS= 2
- KBDSTB= 0
- ;
- CI: stx tempx
- sty tempy
- ..sts: jsr kbdsts
- sta chin
- lda chin
- beq ..sts
- jsr kbdstb
- ldy tempy
- ldx tempx
- sta chin
- lda chin
- clc
- IOINIT: rts
- ;
- CO: and #0FF
- beq ..rts
- stx tempx
- sty tempy
- jsr COUT
- ldy tempy
- ldx tempx
- and #7F
- ..rts: rts
- ;
- CSTS: stx tempx
- sty tempy
- jsr kbdsts
- ldy tempy
- ldx tempx
- sta chin
- lda chin
- bne ..rts
- lda #0
- ..rts: rts
- ;
- RI:
- PO:
- LO:
- IOGET:
- IOSET:
- rts
- ;
- RESTRT: jmp BEGIN]
- ;
- ;;
-