mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
585 lines
8.5 KiB
NASM
585 lines
8.5 KiB
NASM
extrn .begin,.chl,.swt
|
||
extrn csave,cret,.move
|
||
global style_,1
|
||
global vdp_rege_,960
|
||
global szTemp_,128
|
||
global linenum_,1
|
||
global counter_,1
|
||
global outer_,1
|
||
global inner_,1
|
||
global limit_,1
|
||
global index_,2
|
||
global line_,2
|
||
global ubyte_,1
|
||
global bitmask_,1
|
||
global row_,2
|
||
global bit_,2
|
||
global ascii_,2
|
||
global bool_,2
|
||
global fd_,2
|
||
PUBLIC main_
|
||
main_: lxi d,.2
|
||
call csave
|
||
LXI H,.1+0
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
LXI H,0
|
||
PUSH H
|
||
CALL vdp_wrvr_
|
||
POP D
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
LXI H,.1+77
|
||
PUSH H
|
||
LXI H,.1+65
|
||
PUSH H
|
||
CALL fopen_
|
||
POP D
|
||
POP D
|
||
SHLD fd_
|
||
LXI H,.1+79
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,.1+130
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,.1+185
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,0
|
||
SHLD line_
|
||
JMP .4
|
||
.3:
|
||
LHLD line_
|
||
INX H
|
||
SHLD line_
|
||
.4:
|
||
LHLD line_
|
||
LXI D,1024
|
||
XCHG
|
||
CALL .ul
|
||
JZ .5
|
||
LHLD line_
|
||
DAD H
|
||
DAD H
|
||
DAD H
|
||
DAD H
|
||
PUSH H
|
||
LXI H,.1+240
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
LXI H,0
|
||
XCHG
|
||
LXI H,3-.2
|
||
DAD SP
|
||
MOV M,E
|
||
JMP .7
|
||
.6:
|
||
LXI H,3-.2
|
||
DAD SP
|
||
PUSH H
|
||
MOV L,M
|
||
INX H
|
||
XCHG
|
||
POP H
|
||
MOV M,E
|
||
.7:
|
||
LXI H,3-.2
|
||
DAD SP
|
||
MOV E,M
|
||
MVI D,0
|
||
LXI H,16
|
||
CALL .lt
|
||
JZ .8
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
PUSH H
|
||
LXI H,.1+247
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
JMP .6
|
||
.8:
|
||
LXI H,.1+253
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LHLD line_
|
||
PUSH H
|
||
LXI H,13
|
||
PUSH H
|
||
LXI H,.1+255
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
JMP .3
|
||
.5:
|
||
LXI H,.1+265
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
LXI H,0
|
||
PUSH H
|
||
CALL vdp_wrvr_
|
||
POP D
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
LXI H,.1+290
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,.1+343
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,.1+386
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,0
|
||
SHLD line_
|
||
JMP .10
|
||
.9:
|
||
LHLD line_
|
||
INX H
|
||
SHLD line_
|
||
.10:
|
||
LHLD line_
|
||
LXI D,24
|
||
XCHG
|
||
CALL .ul
|
||
JZ .11
|
||
LHLD line_
|
||
PUSH H
|
||
LXI H,.1+441
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
LXI H,0
|
||
XCHG
|
||
LXI H,3-.2
|
||
DAD SP
|
||
MOV M,E
|
||
JMP .13
|
||
.12:
|
||
LXI H,3-.2
|
||
DAD SP
|
||
PUSH H
|
||
MOV L,M
|
||
INX H
|
||
XCHG
|
||
POP H
|
||
MOV M,E
|
||
.13:
|
||
LXI H,3-.2
|
||
DAD SP
|
||
MOV E,M
|
||
MVI D,0
|
||
LXI H,20
|
||
CALL .lt
|
||
JZ .14
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
PUSH H
|
||
LXI H,.1+447
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
JMP .12
|
||
.14:
|
||
LXI H,.1+453
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LHLD line_
|
||
PUSH H
|
||
LXI H,.1+455
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
LXI H,0
|
||
XCHG
|
||
LXI H,3-.2
|
||
DAD SP
|
||
MOV M,E
|
||
JMP .16
|
||
.15:
|
||
LXI H,3-.2
|
||
DAD SP
|
||
PUSH H
|
||
MOV L,M
|
||
INX H
|
||
XCHG
|
||
POP H
|
||
MOV M,E
|
||
.16:
|
||
LXI H,3-.2
|
||
DAD SP
|
||
MOV E,M
|
||
MVI D,0
|
||
LXI H,20
|
||
CALL .lt
|
||
JZ .17
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
PUSH H
|
||
LXI H,.1+461
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
JMP .15
|
||
.17:
|
||
LXI H,.1+467
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LHLD line_
|
||
PUSH H
|
||
LXI H,13
|
||
PUSH H
|
||
LXI H,.1+470
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
JMP .9
|
||
.11:
|
||
LXI H,.1+480
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
LXI H,.1+537
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,.1+589
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,.1+643
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LXI H,2048
|
||
PUSH H
|
||
CALL vdp_wrvr_
|
||
POP D
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
LXI H,0
|
||
SHLD ascii_
|
||
JMP .19
|
||
.18:
|
||
LHLD ascii_
|
||
INX H
|
||
SHLD ascii_
|
||
.19:
|
||
LHLD ascii_
|
||
LXI D,256
|
||
XCHG
|
||
CALL .lt
|
||
JZ .20
|
||
LHLD ascii_
|
||
PUSH H
|
||
LXI H,13
|
||
PUSH H
|
||
LXI H,.1+652
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
LHLD ascii_
|
||
PUSH H
|
||
LHLD ascii_
|
||
PUSH H
|
||
LXI H,.1+671
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
XCHG
|
||
LXI H,8
|
||
DAD SP
|
||
SPHL
|
||
LXI H,0
|
||
SHLD row_
|
||
JMP .22
|
||
.21:
|
||
LHLD row_
|
||
INX H
|
||
SHLD row_
|
||
.22:
|
||
LHLD row_
|
||
LXI D,8
|
||
XCHG
|
||
CALL .lt
|
||
JZ .23
|
||
LXI H,152
|
||
PUSH H
|
||
CALL in_
|
||
POP D
|
||
MOV A,L
|
||
STA ubyte_
|
||
LDA ubyte_
|
||
MOV L,A
|
||
MVI H,0
|
||
PUSH H
|
||
LXI H,.1+684
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
LXI H,0
|
||
SHLD bit_
|
||
JMP .25
|
||
.24:
|
||
LHLD bit_
|
||
INX H
|
||
SHLD bit_
|
||
.25:
|
||
LHLD bit_
|
||
LXI D,8
|
||
XCHG
|
||
CALL .lt
|
||
JZ .26
|
||
LXI H,7
|
||
XCHG
|
||
LHLD bit_
|
||
CALL .sb
|
||
PUSH H
|
||
LXI H,1
|
||
POP D
|
||
XCHG
|
||
CALL .ls
|
||
MOV A,L
|
||
STA bitmask_
|
||
LDA bitmask_
|
||
MOV L,A
|
||
MVI H,0
|
||
PUSH H
|
||
LDA ubyte_
|
||
MOV L,A
|
||
MVI H,0
|
||
POP D
|
||
CALL .an
|
||
SHLD bool_
|
||
LHLD bool_
|
||
MOV A,H
|
||
ORA L
|
||
JNZ .27
|
||
LXI H,.1+693
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
JMP .28
|
||
.27:
|
||
LXI H,.1+695
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
.28:
|
||
JMP .24
|
||
.26:
|
||
LXI H,.1+697
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
JMP .21
|
||
.23:
|
||
LXI H,.1+699
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LHLD line_
|
||
PUSH H
|
||
LXI H,13
|
||
PUSH H
|
||
LXI H,.1+701
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
POP D
|
||
POP D
|
||
JMP .18
|
||
.20:
|
||
LXI H,.1+711
|
||
PUSH H
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fprintf_
|
||
POP D
|
||
POP D
|
||
LHLD fd_
|
||
PUSH H
|
||
CALL fclose_
|
||
POP D
|
||
LXI H,.1+766
|
||
PUSH H
|
||
CALL printf_
|
||
POP D
|
||
RET
|
||
.2 EQU -1
|
||
.1:
|
||
DB 116,109,115,115,116,97,116,46,99,111,109,32,49,48,47
|
||
DB 48,52,47,50,48,49,50,32,100,119,103,32,45,32,99
|
||
DB 114,101,97,116,101,32,116,109,115,57,57,49,56,46,100
|
||
DB 109,112,32,102,105,108,101,115,32,102,114,111,109,32,86
|
||
DB 82,65,77,10,0,116,109,115,57,57,49,56,46,100,109
|
||
DB 112,0,119,0,84,104,105,115,32,105,115,32,97,32,104
|
||
DB 101,120,97,100,101,99,105,109,97,108,32,100,117,109,112
|
||
DB 32,111,102,32,116,104,101,32,101,110,116,105,114,101,32
|
||
DB 49,54,75,32,86,82,65,77,10,0,65,100,100,114,58
|
||
DB 32,48,48,32,48,49,32,48,50,32,48,51,32,48,52
|
||
DB 32,48,53,32,48,54,32,48,55,32,48,56,32,48,57
|
||
DB 32,48,65,32,48,66,32,48,67,32,48,68,32,48,69
|
||
DB 32,48,70,10,0,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,10,0
|
||
DB 37,48,52,120,58,32,0,37,48,50,120,32,0,10,0
|
||
DB 37,99,108,105,110,101,32,37,100,0,10,68,117,109,112
|
||
DB 32,111,102,32,86,82,65,77,32,67,111,109,112,108,101
|
||
DB 116,101,100,10,0,10,84,104,105,115,32,105,115,32,97
|
||
DB 32,104,101,120,97,100,101,99,105,56,109,97,108,32,100
|
||
DB 117,109,112,32,111,102,32,116,104,101,32,78,97,109,101
|
||
DB 32,84,97,98,108,101,32,102,111,114,32,10,0,116,104
|
||
DB 101,32,50,52,32,108,105,110,101,115,32,111,102,32,116
|
||
DB 104,101,32,100,105,115,112,108,97,121,32,105,110,32,84
|
||
DB 101,120,116,32,77,111,100,101,46,10,0,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,10,0,37,50,100,58,32,0,37,48,50
|
||
DB 120,32,0,10,0,37,50,100,58,32,0,37,48,50,120
|
||
DB 32,0,10,10,0,37,99,108,105,110,101,32,37,100,0
|
||
DB 10,68,117,109,112,32,111,102,32,78,97,109,101,32,84
|
||
DB 97,98,108,101,32,102,111,114,32,52,48,120,50,52,32
|
||
DB 84,101,120,116,32,77,111,100,101,32,76,105,110,101,115
|
||
DB 32,67,111,109,112,108,101,116,101,100,10,0,10,9,84
|
||
DB 104,105,115,32,105,115,32,97,32,72,101,120,97,100,101
|
||
DB 99,105,109,97,108,44,32,68,101,99,105,109,97,108,44
|
||
DB 32,97,110,100,32,71,114,97,112,104,105,99,32,100,117
|
||
DB 109,112,10,0,111,102,32,116,104,101,32,67,104,97,114
|
||
DB 97,99,116,101,114,32,71,101,110,101,114,97,116,111,114
|
||
DB 32,66,105,116,109,97,112,115,32,102,111,114,32,97,108
|
||
DB 108,32,50,53,54,32,65,83,67,73,73,32,0,99,104
|
||
DB 97,114,115,46,10,10,0,37,99,68,117,109,112,105,110
|
||
DB 103,32,65,83,67,73,73,32,37,100,0,48,120,37,50
|
||
DB 120,40,37,51,100,41,58,10,0,48,120,37,48,50,120
|
||
DB 58,32,0,32,0,42,0,10,0,10,0,37,99,108,105
|
||
DB 110,101,32,37,100,0,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
||
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,10
|
||
DB 0,10,68,117,109,112,32,111,102,32,67,104,97,114,97
|
||
DB 99,116,101,114,32,66,105,116,109,97,112,32,68,97,116
|
||
DB 97,32,67,111,109,112,108,101,116,101,100,46,10,0
|
||
extrn fclose_
|
||
extrn fprintf_
|
||
extrn in_
|
||
extrn printf_
|
||
extrn vdp_wrvr_
|
||
extrn fopen_
|
||
extrn .an
|
||
extrn .lt
|
||
extrn .ul
|
||
extrn .ls
|
||
extrn .sb
|
||
END
|
||
|