home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol006
/
zap5.ins
< prev
next >
Wrap
Text File
|
1984-04-29
|
3KB
|
264 lines
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]
;
;;