Files
RomWBW/branches/dwg/Apps/crossdev/EDITOR.ASM
doug e312ea9d7a this is the first serious commit of the entire apps suite.
not all there yet, but the core apps are, see coreapps.bat.
2013-02-16 05:36:54 +00:00

367 lines
3.9 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
extrn .begin,.chl,.swt
extrn csave,cret,.move
PUBLIC vdaini_
vdaini_: lxi d,.2
call csave
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16384
CALL .or
SHLD hregbc_
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD hregde_
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD hreghl_
CALL diagnose_
LDA hrega_
MOV L,A
MVI H,0
RET
.2 EQU 0
PUBLIC bitlook_
bitlook_: lxi d,.3
call csave
LXI H,-32768
XCHG
LXI H,2-.3
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,0-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .5
.4:
LXI H,0-.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
.5:
LXI H,0-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,256
CALL .lt
JZ .6
LXI H,0-.3
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
LXI H,0
XCHG
LXI H,-2-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .8
.7:
LXI H,-2-.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,-2-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,8
CALL .lt
JZ .9
LXI H,2-.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
XCHG
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,.1+16
PUSH H
CALL printf_
POP D
POP D
JMP .7
.9:
LXI H,.1+24
PUSH H
CALL printf_
POP D
JMP .4
.6:
RET
.3 EQU -6
.1:
DB 97,115,99,105,105,32,61,32,48,120,37,48,50,120,32
DB 0,48,120,37,48,50,120,32,0,10,0
PUBLIC vdaqry_
vdaqry_: lxi d,.11
call csave
LXI H,8-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16640
CALL .or
SHLD hregbc_
LXI H,10-.11
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD hreghl_
CALL diagnose_
LDA hrega_
MOV L,A
MVI H,0
RET
.11 EQU 0
PUBLIC flip_
flip_: lxi d,.12
call csave
LXI H,-32768
PUSH H
LXI H,64
PUSH H
CALL vdaqry_
POP D
POP D
XCHG
LXI H,-3-.12
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-32768
XCHG
LXI H,2-.12
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-1-.12
DAD SP
MOV M,E
INX H
MOV M,D
JMP .14
.13:
LXI H,-1-.12
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
.14:
LXI H,-1-.12
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2048
CALL .lt
JZ .15
LXI H,2-.12
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
MOV E,M
LXI H,1-.12
DAD SP
MOV M,E
LXI H,1-.12
DAD SP
MOV E,M
MVI D,0
LXI H,255
CALL .xr
XCHG
LXI H,1-.12
DAD SP
MOV M,E
LXI H,1-.12
DAD SP
MOV E,M
PUSH D
LXI H,4-.12
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
POP D
MOV M,E
LXI H,2-.12
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
JMP .13
.15:
LXI H,-32768
PUSH H
LXI H,0
PUSH H
LXI H,64
PUSH H
CALL vdaini_
POP D
POP D
POP D
RET
.12 EQU -7
PUBLIC main_
main_: lxi d,.16
call csave
LXI H,1
XCHG
LXI H,2-.16
DAD SP
MOV M,E
INX H
MOV M,D
.17:
LXI H,1
XCHG
LXI H,2-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .18
LXI H,1
SHLD dregbc_
CALL bdoscall_
LDA drega_
MOV L,A
MVI H,0
JMP .19
.21:
CALL flip_
JMP .20
.22:
LXI H,0
XCHG
LXI H,2-.16
DAD SP
MOV M,E
INX H
MOV M,D
JMP .20
.23:
LXI H,7
PUSH H
LXI H,.10+0
PUSH H
CALL printf_
POP D
POP D
JMP .20
.19:
CALL .swt
DW 2
DW 3,.22
DW 102,.21
DW .23
.20:
JMP .17
.18:
CALL flip_
RET
.16 EQU -2
.10:
DB 37,99,0
extrn printf_
extrn bdoscall_
extrn dregbc_
extrn drega_
extrn diagnose_
extrn hreghl_
extrn hregde_
extrn hregbc_
extrn hrega_
extrn .or
extrn .xr
extrn .eq
extrn .lt
END