You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

333 lines
3.2 KiB

extrn .begin,.chl,.swt
extrn zsave,zret
global termtype_,1
DSEG
public wy50row_
wy50row_:
DB 32
DB 33
DB 34
DB 35
DB 36
DB 37
DB 38
DB 39
DB 40
DB 41
DB 42
DB 43
DB 44
DB 45
DB 46
DB 47
DB 48
DB 49
DB 50
DB 51
DB 52
DB 53
DB 54
DB 55
CSEG
DSEG
public wy50col_
wy50col_:
DB 32
DB 33
DB 34
DB 35
DB 36
DB 37
DB 38
DB 39
DB 40
DB 41
DB 42
DB 43
DB 44
DB 45
DB 46
DB 47
DB 48
DB 49
DB 50
DB 51
DB 52
DB 53
DB 54
DB 55
DB 56
DB 57
DB 58
DB 59
DB 60
DB 61
DB 62
DB 63
DB 64
DB 65
DB 66
DB 67
DB 68
DB 69
DB 70
DB 71
DB 72
DB 73
DB 74
DB 75
DB 76
DB 77
DB 78
DB 79
DB 80
DB 81
DB 82
DB 83
DB 84
DB 85
DB 86
DB 87
DB 88
DB 89
DB 90
DB 91
DB 92
DB 93
DB 94
DB 95
DB 96
DB 97
DB 98
DB 99
DB 100
DB 101
DB 102
DB 103
DB 104
DB 105
DB 106
DB 107
DB 108
DB 109
DB 110
DB 111
CSEG
PUBLIC crtinit_
crtinit_: lxi d,.2
call zsave
LXI H,12-.2
DAD SP
MOV E,M
XCHG
MOV A,L
STA termtype_
RET
.2 EQU 0
PUBLIC crtclr_
crtclr_: lxi d,.3
call zsave
LDA termtype_
MOV L,A
MVI H,0
JMP .4
.6:
LXI H,0
XCHG
LXI H,6-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .8
.7:
LXI H,6-.3
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.8:
LXI H,6-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,43
CALL .lt
JZ .9
LXI H,10
PUSH H
LXI H,13
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
POP D
JMP .7
.9:
JMP .5
.10:
LXI H,27
PUSH H
LXI H,.1+5
PUSH H
CALL printf_
POP D
POP D
JMP .5
.11:
LXI H,27
PUSH H
LXI H,.1+11
PUSH H
CALL printf_
POP D
POP D
JMP .5
.12:
LXI H,27
PUSH H
LXI H,27
PUSH H
LXI H,.1+15
PUSH H
CALL printf_
POP D
POP D
POP D
JMP .5
.4:
CALL .swt
DW 4
DW 0,.6
DW 1,.10
DW 2,.11
DW 3,.12
DW .5
.5:
RET
.3 EQU -2
.1:
DB 37,99,37,99,0,37,99,91,50,74,0,37,99,43,0
DB 37,99,74,37,99,72,0
PUBLIC crtlc_
crtlc_: lxi d,.14
call zsave
LDA termtype_
MOV L,A
MVI H,0
JMP .15
.17:
JMP .16
.18:
LXI H,102
PUSH H
LXI H,16-.14
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,16-.14
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,27
PUSH H
LXI H,.13+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
JMP .16
.19:
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,wy50col_
DAD D
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,wy50row_
DAD D
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,27
PUSH H
LXI H,.13+11
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
JMP .16
.20:
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
PUSH H
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
PUSH H
LXI H,27
PUSH H
LXI H,.13+19
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
JMP .16
.15:
CALL .swt
DW 4
DW 0,.17
DW 1,.18
DW 2,.19
DW 3,.20
DW .16
.16:
RET
.14 EQU -2
.13:
DB 37,99,91,37,100,59,37,100,37,99,0,37,99,61,37
DB 99,37,99,0,37,99,89,37,99,37,99,0
extrn printf_
extrn .lt
END