mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc9b3e663a | ||
|
|
804ee6f3d8 | ||
|
|
6577b5f96b | ||
|
|
7beb054122 | ||
|
|
c24a04300c | ||
|
|
d1b74430c6 | ||
|
|
b86d2c66de | ||
|
|
a4920532bf | ||
|
|
8450dca0b9 | ||
|
|
4cfa164f1f | ||
|
|
d545100ce4 | ||
|
|
e984d5899f | ||
|
|
8f5fd86169 | ||
|
|
f510da9d46 | ||
|
|
bba3b237b8 | ||
|
|
ed8b513dc3 | ||
|
|
5434a2eea8 | ||
|
|
1d562b16bd | ||
|
|
993deef13a | ||
|
|
164dda5f51 | ||
|
|
f7f27213d9 | ||
|
|
aecf9aa283 | ||
|
|
95d2a73b7d | ||
|
|
b6b216aee5 | ||
|
|
ef44b0d7ad | ||
|
|
6e1bce4587 | ||
|
|
938935314d | ||
|
|
7f0e89003d | ||
|
|
3969e15fd6 | ||
|
|
d1aa9f4054 | ||
|
|
21e2ff7989 | ||
|
|
0791fde5c4 | ||
|
|
191f08cc46 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Apps/apps-bins/comfiles.lbr
Normal file
BIN
Apps/apps-bins/comfiles.lbr
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
20
Apps/crossdev/readme.1st
Normal file
20
Apps/crossdev/readme.1st
Normal file
@@ -0,0 +1,20 @@
|
||||
This directory has the files that comprise a cross development
|
||||
environment for building C utility programs.
|
||||
|
||||
The program files located here are not current but rather represent
|
||||
a snapshot from a recent time. If you wanted to compile any of the
|
||||
current apps from RomWBW, you would have too unpack the sources in
|
||||
/RomWBW/trunk/Apps/apps-srcs and copy them to this folder, being careful
|
||||
to usde upper case filenames.
|
||||
|
||||
The build is set up in sort of a microsoft-like folder arrangement
|
||||
with files generated being placed in either the DEBUG or RELEASE folder.
|
||||
|
||||
The actual apps for RomWBW are generated directly on CP/M-80- v2.2
|
||||
using native language tools, it's the "CP/M way".
|
||||
|
||||
Have fun,
|
||||
|
||||
Douglas Goodall
|
||||
Santa Maria, CA
|
||||
douglas_goodall@mac.com
|
||||
BIN
Apps/dougs-devo/allfiles.lbr
Normal file
BIN
Apps/dougs-devo/allfiles.lbr
Normal file
Binary file not shown.
12
Apps/dougs-devo/readme.txt
Normal file
12
Apps/dougs-devo/readme.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
This file, "allfiles.lbr" is the complete contents of my A: drive,
|
||||
on which I develop all my apps and utilities. Once you have your
|
||||
system running with storage (ppide,ide,sd,...), configure to use
|
||||
DM_PPIDE or similar so the mass storage is on A: B: C: & D:.
|
||||
|
||||
Unpack this file onto A: and you will be all set to build the apps.
|
||||
|
||||
You will also have enough to get you going writing your own.
|
||||
|
||||
Good luck,
|
||||
|
||||
Douglas Goodall
|
||||
27
DiskImg/Build.cmd
Normal file
27
DiskImg/Build.cmd
Normal file
@@ -0,0 +1,27 @@
|
||||
@echo off
|
||||
PowerShell .\Build.ps1 %*
|
||||
goto :eof
|
||||
|
||||
setlocal
|
||||
set path=..\tools\cpmtools;%path%
|
||||
|
||||
echo Creating partition 0...
|
||||
copy /b Blank.img hd0.tmp >nul
|
||||
if exist hd0\*. cpmcp -f hd0 hd0.tmp hd0/* 0:
|
||||
|
||||
echo Creating partition 1...
|
||||
copy /b Blank.img hd1.tmp >nul
|
||||
if exist hd1\*. cpmcp -f hd0 hd1.tmp hd1/* 0:
|
||||
|
||||
echo Creating partition 2...
|
||||
copy /b Blank.img hd2.tmp >nul
|
||||
if exist hd2\*. cpmcp -f hd0 hd2.tmp hd2/* 0:
|
||||
|
||||
echo Creating partition 3...
|
||||
copy /b Blank.img hd3.tmp >nul
|
||||
if exist hd3\*. cpmcp -f hd0 hd3.tmp hd3/* 0:
|
||||
|
||||
echo Building final image...
|
||||
copy /b hd*.tmp Disk.img
|
||||
|
||||
del *.tmp
|
||||
58
DiskImg/Build.ps1
Normal file
58
DiskImg/Build.ps1
Normal file
@@ -0,0 +1,58 @@
|
||||
$ErrorAction = 'Stop'
|
||||
|
||||
$CpmToolsPath = '..\tools\cpmtools'
|
||||
|
||||
$env:PATH = $CpmToolsPath + ';' + $env:PATH
|
||||
|
||||
$ImgFile = "..\Output\Disk.img"
|
||||
$Blank = ([byte[]](0xE5) * (128KB * 65))
|
||||
|
||||
"Creating work file..."
|
||||
if (!(Test-Path('Blank.tmp'))) {Set-Content -Value $Blank -Encoding byte -Path 'Blank.tmp'}
|
||||
|
||||
"Adding files to partition 0..."
|
||||
copy Blank.tmp hd0.tmp
|
||||
if (Test-Path ('hd0\*')) {cpmcp -f hd0 hd0.tmp hd0/*.* 0:}
|
||||
|
||||
"Adding files to partition 1..."
|
||||
copy Blank.tmp hd1.tmp
|
||||
if (Test-Path ('hd1\*')) {cpmcp -f hd0 hd1.tmp hd1/*.* 0:}
|
||||
|
||||
"Adding files to partition 2..."
|
||||
copy Blank.tmp hd2.tmp
|
||||
if (Test-Path ('hd2\*')) {cpmcp -f hd0 hd2.tmp hd2/*.* 0:}
|
||||
|
||||
"Adding files to partition 3..."
|
||||
copy Blank.tmp hd3.tmp
|
||||
if (Test-Path ('hd3\*')) {cpmcp -f hd0 hd3.tmp hd3/*.* 0:}
|
||||
|
||||
"Adding slices to image..."
|
||||
#gc hd0.tmp -Enc Byte -Read 512 | Add-Content -Enc Byte $ImgFile
|
||||
#gc hd0.tmp -Enc Byte -Read 10240 | sc x.x -Enc Byte
|
||||
&$env:COMSPEC /c copy /b hd*.tmp $ImgFile
|
||||
|
||||
Remove-Item *.tmp
|
||||
|
||||
return
|
||||
|
||||
"Adding files to partition 0..."
|
||||
Set-Content -Value $Blank -Encoding byte -Path hd.img
|
||||
if (Test-Path ('hd0\*')) {cpmcp -f hd0 hd.img hd0/*.* 0:}
|
||||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte
|
||||
|
||||
"Adding files to partition 1..."
|
||||
Set-Content -Value ([byte[]](0xE5) * (128KB * 65)) -Encoding byte -Path hd.img
|
||||
if (Test-Path ('hd1\*')) {cpmcp -f hd0 hd.img hd1/*.* 0:}
|
||||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte
|
||||
|
||||
"Adding files to partition 2..."
|
||||
Set-Content -Value ([byte[]](0xE5) * (128KB * 65)) -Encoding byte -Path hd.img
|
||||
if (Test-Path ('hd2\*')) {cpmcp -f hd0 hd.img hd2/*.* 0:}
|
||||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte
|
||||
|
||||
"Adding files to partition 3..."
|
||||
Set-Content -Value ([byte[]](0xE5) * (128KB * 65)) -Encoding byte -Path hd.img
|
||||
if (Test-Path ('hd3\*')) {cpmcp -f hd0 hd.img hd3/*.* 0:}
|
||||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte
|
||||
|
||||
return
|
||||
341
DiskImg/diskdefs
Normal file
341
DiskImg/diskdefs
Normal file
@@ -0,0 +1,341 @@
|
||||
diskdef ibm-3740
|
||||
seclen 128
|
||||
tracks 77
|
||||
sectrk 26
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 6
|
||||
boottrk 2
|
||||
os p2dos
|
||||
end
|
||||
|
||||
diskdef 4mb-hd
|
||||
seclen 128
|
||||
tracks 1024
|
||||
sectrk 32
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 0
|
||||
os p2dos
|
||||
end
|
||||
|
||||
diskdef pcw
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 9
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 1
|
||||
boottrk 1
|
||||
os 3
|
||||
end
|
||||
|
||||
diskdef pc1.2m
|
||||
seclen 512
|
||||
tracks 80
|
||||
# this format uses 15 sectors per track, but 30 per cylinder
|
||||
sectrk 30
|
||||
blocksize 4096
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 0
|
||||
os 3
|
||||
end
|
||||
|
||||
# CP/M 86 on 1.44MB floppies
|
||||
diskdef cpm86-144feat
|
||||
seclen 512
|
||||
tracks 160
|
||||
sectrk 18
|
||||
blocksize 4096
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 2
|
||||
os 3
|
||||
end
|
||||
|
||||
diskdef cf2dd
|
||||
seclen 512
|
||||
tracks 160
|
||||
sectrk 9
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 1
|
||||
os 3
|
||||
end
|
||||
|
||||
#amstrad: values are read from super block (special name hardcoded)
|
||||
|
||||
# Royal alphatronic
|
||||
# setfdprm /dev/fd1 dd ssize=256 cyl=40 sect=16 head=2
|
||||
diskdef alpha
|
||||
seclen 256
|
||||
tracks 40
|
||||
sectrk 32
|
||||
blocksize 2048
|
||||
maxdir 128
|
||||
skew 1
|
||||
boottrk 2
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# Apple II CP/M skew o Apple II DOS 3.3 skew
|
||||
diskdef apple-do
|
||||
seclen 256
|
||||
tracks 35
|
||||
sectrk 16
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 0
|
||||
boottrk 3
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# Apple II CP/M skew o Apple II PRODOS skew
|
||||
diskdef apple-po
|
||||
seclen 256
|
||||
tracks 35
|
||||
sectrk 16
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 0
|
||||
boottrk 3
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# MYZ80 hard drive (only works with libdsk, because it has a 256-byte header)
|
||||
diskdef myz80
|
||||
seclen 1024
|
||||
tracks 64
|
||||
sectrk 128
|
||||
blocksize 4096
|
||||
maxdir 1024
|
||||
skew 1
|
||||
boottrk 0
|
||||
os 3
|
||||
end
|
||||
|
||||
# Despite being Amstrad formats, CPC System and CPC Data don't have an Amstrad
|
||||
# superblock. You'll need to use libdsk to access them because the Linux
|
||||
# and Windows kernel drivers won't touch them.
|
||||
diskdef cpcsys
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 9
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 1
|
||||
boottrk 2
|
||||
os 3
|
||||
end
|
||||
diskdef cpcdata
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 9
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 1
|
||||
boottrk 0
|
||||
os 3
|
||||
end
|
||||
|
||||
# after being read in with no sector skew.
|
||||
diskdef nigdos
|
||||
seclen 512
|
||||
# NigDos double sided disk format, 42 tracks * 2 sides
|
||||
tracks 84
|
||||
sectrk 10
|
||||
blocksize 2048
|
||||
maxdir 128
|
||||
skew 1
|
||||
boottrk 0
|
||||
# this format wastes half of the directory entry
|
||||
logicalextents 1
|
||||
os 3
|
||||
end
|
||||
|
||||
diskdef epsqx10
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 20
|
||||
blocksize 2048
|
||||
maxdir 128
|
||||
skew 0
|
||||
boottrk 2
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef ibm-8ss
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 8
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 0
|
||||
boottrk 1
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef ibm-8ds
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 8
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 0
|
||||
boottrk 1
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef electroglas
|
||||
seclen 512
|
||||
tracks 80
|
||||
sectrk 10
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 1
|
||||
os 3
|
||||
end
|
||||
|
||||
# IBM CP/M-86
|
||||
# setfdprm /dev/fd1 sect=8 dtr=1 hd ssize=512 tpi=48 head=1
|
||||
diskdef ibmpc-514ss
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 8
|
||||
blocksize 1024
|
||||
maxdir 64
|
||||
skew 1
|
||||
boottrk 1
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# IBM CP/M-86
|
||||
# setfdprm /dev/fd1 sect=8 dtr=1 hd ssize=512 tpi=48
|
||||
diskdef ibmpc-514ds
|
||||
seclen 512
|
||||
tracks 80
|
||||
sectrk 8
|
||||
blocksize 2048
|
||||
maxdir 64
|
||||
skew 0
|
||||
boottrk 2
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef p112
|
||||
seclen 512
|
||||
tracks 160
|
||||
sectrk 18
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 2
|
||||
os 3
|
||||
end
|
||||
|
||||
diskdef p112-old
|
||||
seclen 512
|
||||
tracks 160
|
||||
sectrk 18
|
||||
blocksize 2048
|
||||
maxdir 128
|
||||
skew 1
|
||||
boottrk 1
|
||||
os 3
|
||||
end
|
||||
|
||||
diskdef kpii
|
||||
seclen 512
|
||||
tracks 40
|
||||
sectrk 10
|
||||
blocksize 1024
|
||||
maxdir 32
|
||||
skew 0
|
||||
boottrk 1
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# setfdprm /dev/fd0 dd sect=10
|
||||
diskdef interak
|
||||
seclen 512
|
||||
tracks 80
|
||||
sectrk 20
|
||||
blocksize 4096
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 2
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# For 512KB ROM, less 32K for system image
|
||||
diskdef rom512KB
|
||||
seclen 128
|
||||
tracks 14
|
||||
sectrk 256
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# For 1024KB ROM, less 32K for system image
|
||||
diskdef rom1024KB
|
||||
seclen 128
|
||||
tracks 30
|
||||
sectrk 256
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 1
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# For N8VEM mass storage (4 raw partitions)
|
||||
diskdef hd0
|
||||
seclen 512
|
||||
tracks 65
|
||||
sectrk 256
|
||||
blocksize 4096
|
||||
maxdir 512
|
||||
skew 1
|
||||
boottrk 1
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef hd1
|
||||
seclen 512
|
||||
tracks 130
|
||||
sectrk 256
|
||||
blocksize 4096
|
||||
maxdir 512
|
||||
skew 1
|
||||
boottrk 66
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef hd2
|
||||
seclen 512
|
||||
tracks 195
|
||||
sectrk 256
|
||||
blocksize 4096
|
||||
maxdir 512
|
||||
skew 1
|
||||
boottrk 131
|
||||
os 2.2
|
||||
end
|
||||
|
||||
diskdef hd3
|
||||
seclen 512
|
||||
tracks 260
|
||||
sectrk 256
|
||||
blocksize 4096
|
||||
maxdir 512
|
||||
skew 1
|
||||
boottrk 196
|
||||
os 2.2
|
||||
end
|
||||
BIN
DiskImg/hd0/X0.DAT
Normal file
BIN
DiskImg/hd0/X0.DAT
Normal file
Binary file not shown.
BIN
DiskImg/hd1/X1.DAT
Normal file
BIN
DiskImg/hd1/X1.DAT
Normal file
Binary file not shown.
BIN
DiskImg/hd2/X2.DAT
Normal file
BIN
DiskImg/hd2/X2.DAT
Normal file
Binary file not shown.
69
DiskImg/hd3/VIDATT.Z80
Normal file
69
DiskImg/hd3/VIDATT.Z80
Normal file
@@ -0,0 +1,69 @@
|
||||
title WordStar 4.0 Video Attributes Driver
|
||||
|
||||
strngout equ 0283h
|
||||
|
||||
esc equ 1bh
|
||||
dim equ 1
|
||||
blink equ 2
|
||||
invert equ 4
|
||||
uline equ 8
|
||||
|
||||
aseg
|
||||
org 03c1h
|
||||
|
||||
vidatt:
|
||||
xor a
|
||||
ld hl,funtbl
|
||||
ld b,8
|
||||
getloop:
|
||||
rr c
|
||||
jr nc,getnext
|
||||
or a,(hl)
|
||||
getnext:
|
||||
inc hl
|
||||
djnz getloop
|
||||
;
|
||||
ld hl,string+2 ; attribute #1 on/off indicator
|
||||
push hl
|
||||
ld b,4
|
||||
ld de,'?!' ; ? = attribute off, ! = attribute on
|
||||
setloop:
|
||||
rra
|
||||
jr nc,attroff
|
||||
ld (hl),e ; attribute on
|
||||
jr setnext
|
||||
attroff:
|
||||
ld (hl),d ; attribute off
|
||||
setnext:
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl ; advance to next on/off indicator
|
||||
djnz setloop
|
||||
;
|
||||
pop hl ; hl --> dim on/off
|
||||
ld a,d ; attribute off
|
||||
cp (hl) ; dim off?
|
||||
jr nz,setdim
|
||||
ld a,e ; attribute on
|
||||
setdim:
|
||||
ld (hl),a
|
||||
ld hl,string
|
||||
jp strngout ; ws string routine
|
||||
;
|
||||
;
|
||||
funtbl:
|
||||
defb dim ; strike out
|
||||
defb invert or blink ; warnings & errors
|
||||
defb invert ; block
|
||||
defb uline ; underline
|
||||
defb blink ; subscript
|
||||
defb blink or uline ; superscript
|
||||
defb invert ; menu, headline, bold, double
|
||||
defb invert or uline ; italics, RET, backspace
|
||||
;
|
||||
string:
|
||||
defb 12,esc,' 2',esc,' 3',esc,' 4',esc,' 5'
|
||||
;
|
||||
finis equ $
|
||||
end
|
||||
|
||||
BIN
DiskImg/hd3/WS.OVR
Normal file
BIN
DiskImg/hd3/WS.OVR
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSCHANGE.COM
Normal file
BIN
DiskImg/hd3/WSCHANGE.COM
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSCHANGE.OVR
Normal file
BIN
DiskImg/hd3/WSCHANGE.OVR
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSCHHELP.OVR
Normal file
BIN
DiskImg/hd3/WSCHHELP.OVR
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSHELP.OVR
Normal file
BIN
DiskImg/hd3/WSHELP.OVR
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSMSGS.OVR
Normal file
BIN
DiskImg/hd3/WSMSGS.OVR
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSPRINT.OVR
Normal file
BIN
DiskImg/hd3/WSPRINT.OVR
Normal file
Binary file not shown.
142
DiskImg/hd3/WSPRINT.TST
Normal file
142
DiskImg/hd3/WSPRINT.TST
Normal file
@@ -0,0 +1,142 @@
|
||||
.hePRINT.TST Features of Your Printer
|
||||
.f1 WordStar
|
||||
.f2 Print test
|
||||
.f3 Page #
|
||||
.oj on
|
||||
WordStaò anä Youò Printer
|
||||
|
||||
WordStar‚ workó witè á widå rangå oæ printeró anä offeró yoõ á <20>
|
||||
varietù oæ prinô enhancements® Whetheò youò printeò caî producå <20>
|
||||
thå prinô enhancementó outlineä iî thió documenô dependó oî itó <20>
|
||||
capabilities® Pleaså notå thaô noô alì printeró arå capablå oæ <20>
|
||||
showinç alì thå exampleó below.
|
||||
|
||||
Speciaì Printinç Capabilities
|
||||
|
||||
WordStaò supportó thå followinç speciaì printinç capabilities:
|
||||
|
||||
ª Boldface¬ Doublå strike
|
||||
* Italics/Alternatå ribboî color
|
||||
* Strikå out
|
||||
* Overprinô (aó iî co^te)
|
||||
* Noncontinuouó underline¬ anä
|
||||
.ul on
|
||||
* Continuouó underline
|
||||
.ul off
|
||||
|
||||
* SuperScript¬ SubScript
|
||||
|
||||
* anä almosô anù combinatioî - WordStar
|
||||
|
||||
Characteò Width
|
||||
|
||||
Somå printeró wilì supporô WordStar‚ commandó foò variablå <20>
|
||||
characteò widths®<73>
|
||||
|
||||
.cw 24
|
||||
µ characteró peò inch® (.C× 24)
|
||||
.cw 20
|
||||
¶ characteró peò inch® (.C× 20)
|
||||
.cw 14
|
||||
8.¶ characteró peò inch® (.C× 14)
|
||||
.cw 12
|
||||
1° characteró peò inch® (.C× 12)
|
||||
.cw 10
|
||||
1² characteró peò inch® (.C× 10)
|
||||
.cw 7
|
||||
17.± characteró peò inch® (.C× 7)
|
||||
.cw 12
|
||||
|
||||
Youò printeò caî alsï bå seô tï "toggle¢ betweeî normaì pitcè anä <20>
|
||||
alternatå pitch:
|
||||
|
||||
Thió sentencå ió printeä witè thå normaì 1°-pitcè setting¬ <20>
|
||||
theî toggleä tï 1² pitch¬ theî bacë tï normal.
|
||||
.cw 7
|
||||
|
||||
Yoõ caî alsï changå thå normaì anä alternatå characteò widths:
|
||||
|
||||
.cw 14
|
||||
.rm 55
|
||||
Thå "normal¢ characteò widtè ió 1´ (8.¶ cpi© anä <20>
|
||||
thå alternatå characteò widtè ió · (17.± cpi).
|
||||
.pa
|
||||
Š.rm 65
|
||||
.cw 10
|
||||
|
||||
.cw 12
|
||||
Linå Height
|
||||
|
||||
Yoõ caî alsï uså differenô linå heights.
|
||||
|
||||
.lh 16
|
||||
Thió ió aî examplå oæ variablå linå height® (.LÈ 1¶ ³ lpi)
|
||||
.lh 12
|
||||
Thió ió aî examplå oæ variablå linå height® (.LÈ 1² ´ lpi)
|
||||
.lh 8
|
||||
Thió ió aî examplå oæ variablå linå height® (.LÈ ¸ ¶ lpi)
|
||||
.lh 6
|
||||
Thió ió aî examplå oæ variablå linå heighô® (.LÈ ¶ ¸ lpi)
|
||||
.lh 8
|
||||
|
||||
Proportionaì Printing
|
||||
|
||||
.ps on
|
||||
.uj on
|
||||
WordStar‚ alsï supportó proportionaì printinç foò mosô printeró <20>
|
||||
thaô havå it® Yoõ selecô proportionaì fontó bù changinç characteò <20>
|
||||
widthó aó iî thå followinç examplesº
|
||||
.cw 22
|
||||
Thió ió characteò widtè 22.
|
||||
.cw 11
|
||||
Thió ió characteò widtè 11.
|
||||
.cw 9
|
||||
Thió ió characteò widtè 9.
|
||||
.cw 7
|
||||
Thió ió characteò widtè 7.
|
||||
.uj dis
|
||||
.ps off
|
||||
.cw 12
|
||||
|
||||
Other
|
||||
|
||||
Phantoí Spacå¬ Phantoí Rubout
|
||||
|
||||
WordStaò maù allo÷ yoõ tï prinô speciaì characteró (foò example¬ <20>
|
||||
á paragrapè sigî oò centó sign© bù usinç thå phantoí spacå <20>
|
||||
commanä (^PF© oò thå phantoí rubouô commanä (^PG© iî á document® <20>
|
||||
Foò youò printer¬ thå phantoí spacå characteò isº ¬ anä thå <20>
|
||||
phantoí rubouô characteò isº .
|
||||
|
||||
Switchinç tï Drafô Mode
|
||||
|
||||
.lq off
|
||||
Doô matriø printeò driveró allo÷ switchinç froí NLÑ (neaò letteò <20>
|
||||
quality© modå tï drafô modå foò fasteò printing.
|
||||
.lq on
|
||||
|
||||
Microspacå Justification
|
||||
|
||||
.uj on
|
||||
WordStar‚ allowó microspacå justification¬ iæ youò printeò <20>
|
||||
supportó it¬ tï producå evenlù spaceä wordó iî justifieä text® <20>
|
||||
Microspacinç spreadó thå whitå spacå betweeî wordó (anä sometimeó <20>
|
||||
betweeî thå letteró oæ eacè word© aó evenlù aó possible®
|
||||
.uj dis
|
||||
.pa
|
||||
ŠLookinç Aô Thió Filå Onscreen
|
||||
|
||||
Iæ yoõ wanô tï seå thå embeddeä commandó thaô produceä thå texô <20>
|
||||
yoõ arå no÷ reading¬ follo÷ theså steps:
|
||||
|
||||
1 Aô thå Openinç Menu¬ presó D‚ tï ediô á document.
|
||||
|
||||
² Aô thå prompô foò filename¬ typå print.tsô anä presó Enter.
|
||||
|
||||
Noticå thaô thå texô onscreeî includeó somå characteró thaô don'ô <20>
|
||||
appeaò iî thå printeä copy® Foò example¬ á headinç linå ió <20>
|
||||
identifieä bù thå doô commanä .he® Wordó iî boldfacå arå <20>
|
||||
surroundeä bù ^Â anä appeaò eitheò highlighteä oò iî á differenô <20>
|
||||
coloò oî youò screen.
|
||||
|
||||
Tï continuå viewinç thå contentó oæ thió file¬ presó ^C® Presó <20>
|
||||
880
DiskImg/hd3/WSREADME.TXT
Normal file
880
DiskImg/hd3/WSREADME.TXT
Normal file
@@ -0,0 +1,880 @@
|
||||
--THE README FILE--
|
||||
------------------------
|
||||
|
||||
README contains late-breaking news and tips about WordStar,
|
||||
and information about printers.
|
||||
|
||||
|
||||
THE DISKS THAT CAME IN YOUR PACKAGE
|
||||
-----------------------------------
|
||||
|
||||
The file HOMONYMS.TXT is included on the Speller disk
|
||||
contrary to what is listed in Appendix D.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
WINSTALL and WSCHANGE
|
||||
|
||||
WordStar has two installation programs:
|
||||
|
||||
o WINSTALL contains the basic choices to install WordStar.
|
||||
It is recommended for all users.
|
||||
|
||||
Be sure and install your valid disk drives since WordStar
|
||||
running under CP/M cannot recover from attempts to access non-
|
||||
existent disk drives.
|
||||
|
||||
o WSCHANGE contains every installation and customization
|
||||
choice. It is designed for advanced users and users who
|
||||
want to customize WordStar after they're familiar with it.
|
||||
Use the menu listing below for a directory of the menus
|
||||
in WSCHANGE.
|
||||
|
||||
Directory of WSCHANGE Menus
|
||||
|
||||
The chart below shows the organization of menus in WSCHANGE.
|
||||
Print it out and refer to it as you customize WordStar.
|
||||
|
||||
Main Installation Menu
|
||||
|
||||
A Console
|
||||
A Monitor
|
||||
A Monitor selection
|
||||
B Monitor name
|
||||
C Screen sizing
|
||||
B Function keys
|
||||
C Monitor patches
|
||||
A Special characters
|
||||
B Cursor control
|
||||
C Screen control
|
||||
D Keyboard patches
|
||||
A Function keys
|
||||
B Save function keys
|
||||
E Interface patches
|
||||
A Console busy handshaking
|
||||
B Special I/O subroutines
|
||||
B Printer
|
||||
A Printer choices
|
||||
A Printer selection
|
||||
B Printer name
|
||||
C Default printer driver
|
||||
B Printer driver library
|
||||
A Select library file
|
||||
B Create smaller library
|
||||
C Add new printer driver
|
||||
D Change printer driver data
|
||||
C WS printer patches
|
||||
A Custom print controls, printer initialization
|
||||
|
||||
NOTE: Disregard the "CUSTOM & SIMPLE Controls Save CUSTOM/SIMPLE
|
||||
Controls" option shown. This is not available from this menu.
|
||||
|
||||
D Printing defaults
|
||||
E Printer interface
|
||||
A Printer port selection
|
||||
B Printer busy handshaking
|
||||
C Printer subroutines
|
||||
C Computer
|
||||
A Disk drives
|
||||
A Valid disk drives
|
||||
B Maximum valid user number
|
||||
C Delay disk access if typing
|
||||
B Operating system
|
||||
A Single-user system
|
||||
B Multi-user MP/M
|
||||
C Multi-user Turbo DOS
|
||||
D ZCPR3
|
||||
C Memory usage
|
||||
D WordStar files
|
||||
E Directory display
|
||||
F Computer patches
|
||||
D WordStar
|
||||
A Page layout
|
||||
A Page sizing & margins
|
||||
B Headers & footers
|
||||
C Tabs
|
||||
B Editing settings
|
||||
A Edit screen & help level
|
||||
B Typing
|
||||
C Paragraph alignment
|
||||
D Blocks
|
||||
E Erase & unerase
|
||||
F Lines & characters
|
||||
G Find & replace
|
||||
H WordStar 3.3 compatibility
|
||||
I Printing defaults
|
||||
C Other features
|
||||
A Spelling checks
|
||||
B Nondocument mode
|
||||
C Indexing
|
||||
D Shorthand (key macros)
|
||||
E Merge printing
|
||||
F Miscellaneous
|
||||
E Patching
|
||||
A Auto patcher
|
||||
B Save settings
|
||||
C Reset all settings
|
||||
|
||||
MEMORY USAGE
|
||||
------------
|
||||
|
||||
WordStar requires a minimum TPA size of 50 kbytes to run
|
||||
using the factory defaults. The TPA is the amount of memory
|
||||
available in your computer for use by programs that have a
|
||||
file type of COM. To see how big the TPA is in your computer,
|
||||
press the question mark key (?) at the Opening Menu.
|
||||
|
||||
The amount of memory required by WordStar can be reduced by
|
||||
approximately 3 kbytes if necessary. Use the WSCHANGE program
|
||||
to select the minimum memory configuration option. The menu
|
||||
will show you what capabilities are being reduced.
|
||||
|
||||
WordStar uses a general-purpose buffer for a variety of
|
||||
tasks. WordStar allocates memory to this buffer for editing,
|
||||
for merge printing, and at the Opening Menu (see BFSIZE in
|
||||
PATCH.LST). The buffer used for editing is usually the most
|
||||
sensitive to a reduced TPA size. (You may be able to use the
|
||||
Opening Menu and print, but there may be insufficient memory
|
||||
for editing.)
|
||||
|
||||
The merge print buffer is used only to hold merge print
|
||||
variable names and data. Increase it if you run out of memory
|
||||
while merge printing.
|
||||
|
||||
The Opening Menu buffer is used primarily to hold the file
|
||||
directory, and for miscellaneous tasks.
|
||||
|
||||
|
||||
LOW-MEMORY INDICATOR IN STATUS LINE
|
||||
-----------------------------------
|
||||
|
||||
If the Low-Memory indicator appears in the status line, it
|
||||
means that WordStar was unable to complete some function.
|
||||
The most common symptoms are: the line number in the
|
||||
status line is wrong, or a paragraph alignment could not be
|
||||
completed. You may correct the line counter by saving your
|
||||
file, exiting WordStar, and re-loading your file. To correct
|
||||
the paragraph alignment, move your cursor to the point where
|
||||
paragraph alignment stopped, and then press ^B again.
|
||||
|
||||
The reason this comes up is that WordStar was not able to fit
|
||||
a big enough chunk of text into memory at one time.
|
||||
|
||||
When you first begin editing, WordStar uses the value from
|
||||
EDSIZE in the user area to determine the minimum amount
|
||||
of memory required for a page of text. The default
|
||||
is set for approximately a 55 line by 66 column page. If
|
||||
your page size is routinely larger than this, you may want
|
||||
to increase EDSIZE. Multiply the number of lines by the
|
||||
number of columns, and divide by 128.
|
||||
|
||||
If the Low-Memory indicator comes on while printing, it is due
|
||||
to either the same reasons as for editing, or there is
|
||||
insufficient memory to print the text proportionally spaced.
|
||||
The amount of memory required depends on which printer
|
||||
driver you are using. If you aren't using the .PS ON dot
|
||||
command to turn proportional spacing on in your document,
|
||||
low memory won't be a problem. Also, WordStar uses more
|
||||
memory for merge printing than it does for regular printing
|
||||
(around 2.5 kbytes more).
|
||||
|
||||
The Low-Memory indicator will also appear when a full disk error
|
||||
is encountered during editing. Treat the disk-full error as you
|
||||
would normally.
|
||||
|
||||
|
||||
RAM-RESIDENT PROGRAMS
|
||||
---------------------
|
||||
|
||||
RAM-resident programs, such as SmartKey, reduce the amount of
|
||||
working memory (TPA) that WordStar can use. The new features in
|
||||
WordStar, such as shorthand, may reduce the need for these
|
||||
RAM-resident programs, thus freeing memory for WordStar.
|
||||
|
||||
|
||||
ZCPR3 SUPPORT
|
||||
-------------
|
||||
|
||||
In order to enable the ZCPR facilities within WordStar, the user
|
||||
must use the Z3INS utility provided with ZCPR to install the
|
||||
address of the ZCPR "environment" into WordStar. The environment
|
||||
contains information that WordStar uses to support ZCPR-specific
|
||||
functions.
|
||||
|
||||
Generally, the user should log onto the drive containing the file
|
||||
WS.COM, and issue the command:
|
||||
|
||||
Z3INS SYS.ENV WS.COM
|
||||
|
||||
The user should also run either WINSTALL or WSCHANGE to further
|
||||
install WordStar for ZCPR. However, this is not mandatory because
|
||||
the only thing that happens is that the WordStar sign-on says
|
||||
"ZCPR3," and the LGLUSR location in the user area is changed for a
|
||||
maximum user number of 31. (The normal default for LGLUSR is 15.)
|
||||
|
||||
Once the user has installed WordStar for use with ZCPR, the user
|
||||
will be able to use the following ZCPR features:
|
||||
|
||||
- A named directory may be used when logging onto a new drive/user.
|
||||
|
||||
- A named directory may be used instead of a drive/user as part
|
||||
of any file name.
|
||||
|
||||
- The drive/user always appears above file directories. (For CP/M
|
||||
only the drive letter is shown if the user number is zero.)
|
||||
|
||||
- The directory name also appears above the directory if one has
|
||||
been defined for the currently logged drive/user.
|
||||
|
||||
- If WordStar does not find its OVR files on the current drive and
|
||||
user, it will search the drives and user numbers in the ZCPR
|
||||
search path rather than using its standard search pattern.
|
||||
|
||||
- WordStar installs itself as a ZCPR "shell" process which lets the
|
||||
user enter any legal ZCPR command when running a program. (CP/M
|
||||
can only run programs that are COM files.)
|
||||
|
||||
|
||||
OSBORNE USERS
|
||||
-------------
|
||||
|
||||
The command to change a hard carriage return to a soft carriage
|
||||
return (document mode) or to turn Auto-indent ON (nondocument
|
||||
mode) does not function on the Osborne because of a limitation
|
||||
in its BIOS. The following patch can be applied to change the
|
||||
command from ^^ to ^- (Ctrl-Hyphen):
|
||||
|
||||
Using DDT or SID in the file WSMSGS.OVR:
|
||||
|
||||
At 02DA replace 1E with a 1D
|
||||
At 02EF replace 1E with a 1D
|
||||
At 0359 replace 1E with a 1D
|
||||
At 06B2 replace 1E with a 1D
|
||||
At 06C9 replace 1E with a 1D
|
||||
|
||||
At the system prompt type SAVE 53 WSMSGS.OVR
|
||||
|
||||
For more information on how to use SID or DDT, see your CP/M
|
||||
reference guide. As always, be sure and apply the patch to a
|
||||
COPY of the file.
|
||||
|
||||
|
||||
INSTRUCTIONS FOR TWO FLOPPY DISK COMPUTERS
|
||||
------------------------------------------
|
||||
|
||||
Do not remove the Program disk while you are using WordStar.
|
||||
|
||||
The Printer Driver Library file (WSPRINT.OVR) on the WordStar
|
||||
program disk is much smaller than the Printer Driver Library
|
||||
file contained on the disk labeled PRINTER. Be sure to read the
|
||||
section in "Starting" that discusses the printer library file.
|
||||
|
||||
|
||||
RUN A PROGRAM
|
||||
-------------
|
||||
|
||||
Once you press R you can type the drive and user number for the
|
||||
program you want to run. You may run only .COM files. CCP commands,
|
||||
such as DIR cannot be used.
|
||||
|
||||
|
||||
INDEXING
|
||||
--------
|
||||
|
||||
Using StarIndex
|
||||
|
||||
StarIndex 1.01 works with files created with this release of
|
||||
WordStar.
|
||||
|
||||
"Can't Use That Printer" Message
|
||||
|
||||
When WordStar creates an index or table of contents, it uses
|
||||
the printer drivers $INDEX and $TOC. If you created a smaller
|
||||
WSPRINT.OVR file, you may have left these drivers out. To
|
||||
return them to the file, copy the original WSPRINT.OVR file
|
||||
onto your disk. When you create a smaller file again, be sure
|
||||
to save these drivers. See Appendix C in the WordStar manual
|
||||
for a list of other drivers to save.
|
||||
|
||||
|
||||
SPELL CHECKING
|
||||
--------------
|
||||
|
||||
Dual floppy disk users:
|
||||
|
||||
Unless you have sufficient room on your working WordStar program
|
||||
disk for the files TW.COM, SPELL.COM, MARKFIX.COM, REVIEW.COM and
|
||||
MAINDICT.CMP you will not be able to run a spell check from the
|
||||
Opening Menu. You will need to exit WordStar and replace the
|
||||
working WordStar program disk with the dictionary disk you created
|
||||
during installation. This disk should contain the files listed
|
||||
above. Make sure the disk in drive B has the file you want to
|
||||
spell-check.
|
||||
|
||||
Follow the directions for running a spell check in The WORD Plus
|
||||
manual.
|
||||
|
||||
|
||||
UPGRADING FROM A PREVIOUS RELEASE
|
||||
---------------------------------
|
||||
|
||||
This release of WordStar contains many new features and commands.
|
||||
See the "What's New" booklet for a complete list. The following
|
||||
changes came in too late to be included in the documentation.
|
||||
|
||||
Printer Patches
|
||||
|
||||
Previous versions of WordStar treat most dot matrix printers
|
||||
and other non-daisy wheel printers as a DRAFT printer with a
|
||||
few patchable items. Because of this, many users have used
|
||||
these patches to be able to use certain features of their
|
||||
printers. Sometimes the patches have been quite extensive, and
|
||||
some users have many files that count on them.
|
||||
|
||||
The printer drivers of WordStar Release 4, on the other hand,
|
||||
are very powerful. Almost every driver recognizes all the print
|
||||
controls and all the dot commands. In fact, if a document is
|
||||
written to be printed on one kind of printer, it is likely that
|
||||
it will also print fine on some other printer.
|
||||
|
||||
However, if you want to use your existing files with WordStar
|
||||
4, and those files rely on the user area being patched in a
|
||||
special way, you can probably do so by moving the patches into
|
||||
WordStar 4, and using the CUSTOM or SIMPLE printer driver.
|
||||
|
||||
On the INSTALL disk is a program called MOVEPRN.COM that
|
||||
copies the printer driver portion of the previous release's
|
||||
user area into files that can be installed into Release 4 with
|
||||
the "auto patcher" feature.
|
||||
|
||||
Copy the program MOVEPRN.COM onto the disk containing the
|
||||
WS.COM file for the previous version. Type
|
||||
|
||||
MOVEPRN WS.COM FILE1.PAT FILE2.PAT
|
||||
|
||||
MOVEPRN extracts the proper portions of the user area and
|
||||
writes them into two files that may then be used with the "auto
|
||||
patcher" feature of WSCHANGE.
|
||||
|
||||
FILE1.PAT is to be used with the general patching menu
|
||||
(Choose E "Patching" on the WSCHANGE Main Menu, then A "Auto
|
||||
Patcher"). FILE2.PAT should be used to install strings first
|
||||
into the SIMPLE driver, and then into the CUSTOM driver (choose
|
||||
B "Printer" on the WSCHANGE Main Menu, then B "Printer driver
|
||||
library", D "Change printer driver data" and D "Driver auto
|
||||
patcher").
|
||||
|
||||
Test print your document first with the SIMPLE driver, and then
|
||||
with the CUSTOM driver to see which one produces the most
|
||||
satisfactory results.
|
||||
|
||||
Also read Appendix C for more information on using the Auto
|
||||
Patcher.
|
||||
|
||||
|
||||
Hanging Indents
|
||||
|
||||
For WordStar Professional Release 4, MailMerge reformats indented
|
||||
text created with ^OG to the current margins. If you want the text
|
||||
to remain indented, use embedded ruler lines or the .RM, .LM,
|
||||
and .PM commands. See the "Reference Guide" for more information.
|
||||
|
||||
Pressing ^OG to wrap back to the first tab on the ruler line after
|
||||
having reached the last tab works the same way it did in previous
|
||||
versions of WordStar, contrary to what is stated in the manual.
|
||||
|
||||
|
||||
TERMINALS
|
||||
---------
|
||||
|
||||
WordStar comes installed for an "idealized" special terminal.
|
||||
WINSTALL and WSCHANGE allow you to install many terminals by
|
||||
name, thus allowing WordStar to take advantage of the special
|
||||
features that the terminal might support, such as underlining
|
||||
or the function keys.
|
||||
|
||||
Use either WINSTALL or WSCHANGE to pick your specific terminal
|
||||
or computer screen from the Monitor menu. If your terminal
|
||||
isn't on the menu, it probably emulates one of those that is
|
||||
there. Look in your terminal documentation to find out.
|
||||
|
||||
After you install WordStar for the proper terminal, run
|
||||
WordStar and open the file PRINT.TST to see which attributes
|
||||
(such as bold and underline) work on your screen.
|
||||
WordStar will highlight the following in some way...
|
||||
|
||||
Bold (^PB)
|
||||
Underline (^PS)
|
||||
Strike-out (^PX)
|
||||
Subscript (^PV)
|
||||
Superscript (^PT)
|
||||
Doublestrike (^PD)
|
||||
Italics (^PY)
|
||||
Blocks (^KB, ^KK)
|
||||
Error messages
|
||||
|
||||
Most of the time, normal text will be shown in dim intensity,
|
||||
and highlighted text will be shown in bright intensity. You
|
||||
may have to use a brightness and/or contrast knob to adjust
|
||||
your screen the first time you use WordStar this way.
|
||||
|
||||
If your dim intensity is too dim to see well, and you can't
|
||||
adjust it, you can change the BRITE flag to ON using WSCHANGE.
|
||||
This will invert bright and dim in your text, so that regular
|
||||
text is displayed bright, and highlighted text will be
|
||||
displayed as dim. However, text in the menus is not affected.
|
||||
|
||||
|
||||
DISPLAY PROBLEMS WITH TERMINALS
|
||||
-------------------------------
|
||||
|
||||
Once you have installed WordStar for the proper terminal, you
|
||||
may still experience display problems.
|
||||
|
||||
If text from the previous screen remains after WordStar
|
||||
displays a new screenful of text, the most likely cause is
|
||||
cursor wrap. Basically, WordStar must know what happens to the
|
||||
cursor when a character is displayed at the rightmost position
|
||||
of the screen. It can either remain at the right edge, or it
|
||||
can wrap to the beginning of the next line. The WRAP flag in
|
||||
WordStar must be set either on or off to correspond to the
|
||||
way the terminal works. (It is generally set for the
|
||||
terminal's factory default, but the default can usually be
|
||||
changed using the terminal's setup mode.)
|
||||
|
||||
Another possible cause for display problems is your terminal's
|
||||
incomplete emulation of some other terminal. The most
|
||||
common differences are...
|
||||
|
||||
Line insert (LININS), line delete (LINDEL),
|
||||
Erase to end of screen (ERAEOS),
|
||||
Erase to end of line (ERAEOL),
|
||||
And, erase screen (ERASCR).
|
||||
|
||||
Look in the manual for your terminal and use WSCHANGE to see
|
||||
if the control sequences match.
|
||||
|
||||
|
||||
PRINTERS
|
||||
--------
|
||||
|
||||
WHAT'S IN THIS SECTION
|
||||
|
||||
This section contains the following information:
|
||||
|
||||
Choosing a Printer
|
||||
Setting Up Your Printer
|
||||
Printer Drivers
|
||||
Proportional Printing
|
||||
Laser Printers
|
||||
Information on Specific Printers
|
||||
|
||||
CHOOSING A PRINTER
|
||||
|
||||
WordStar is ready to work with over 100 printers. The printer you
|
||||
choose during installation becomes your default printer. However,
|
||||
when you print a document, you can choose any other printer. To
|
||||
choose a default printer, follow these steps:
|
||||
|
||||
1. Look at the Printer Information brochure that came in your
|
||||
package. The first chart shows the printers listed on the
|
||||
Printer Selection Menus. If your printer is on the menu,
|
||||
simply choose it during installation.
|
||||
|
||||
2. If your printer isn't listed on the menu, it may work like a
|
||||
printer that is. Refer to the second chart in the Printer
|
||||
Information brochure for a list of printers that work like
|
||||
printers on the menu. When WordStar asks you to choose a
|
||||
printer, choose the printer that works like yours.
|
||||
|
||||
3. If neither chart lists your printer, choose Typewriter Printer
|
||||
(if your printer can backspace) or Draft Printer (if it can't).
|
||||
These choices may not take advantage of all your printer's
|
||||
features, but they will work with almost any printer.
|
||||
|
||||
Note: If you choose Draft or Typewriter, you can modify custom
|
||||
print controls and printer initialization.
|
||||
|
||||
If you want to make more modifications to take advantage of your
|
||||
printer's feature, choose the Custom or Simple drivers, then use
|
||||
the WS Printer Patches section of WSCHANGE to tell WordStar the
|
||||
codes for your printer. Refer to your printer manual for these
|
||||
codes. Some printers work better with the Custom driver and some
|
||||
with the Simple driver. Try using both and see which works better
|
||||
with your printer. See the "Reference Guide" for more information.
|
||||
|
||||
SETTING UP YOUR PRINTER
|
||||
|
||||
Choosing a Printer Port
|
||||
|
||||
Each printer is connected to a printer port at the back of
|
||||
the computer. WordStar looks for printers on the LST: port.
|
||||
If your printer is connected to a different port, use
|
||||
WSCHANGE to tell WordStar the correct port.
|
||||
|
||||
Testing Your Printer Connection
|
||||
|
||||
At the operating system prompt, type "PIP LST:=READ.ME." This
|
||||
file should be printed by your printer. If it is not, your printer
|
||||
may be connected to a different port. See your computer reference
|
||||
manual, and the section on the STAT command in your CP/M
|
||||
reference manual for more information.
|
||||
|
||||
|
||||
PRINTER DRIVERS
|
||||
|
||||
The WSPRINT.OVR file on the Printers disk contains a printer
|
||||
driver for each printer on the Printer Selection Menu. The printer
|
||||
driver for a printer contains all the codes WordStar needs to work
|
||||
with that printer.
|
||||
|
||||
Each printer driver has a short name. If you choose a printer when
|
||||
you print a document, you see the names of the printer drivers, not
|
||||
the names of the printers.
|
||||
|
||||
PROPORTIONAL PRINTING
|
||||
|
||||
WordStar supports proportional printing on a number of printers.
|
||||
To turn on proportional printing, either install WordStar to
|
||||
default to proportional printing, or place a ".PS on" command
|
||||
in your document. At print time, WordStar selects the
|
||||
appropriate proportional font based on the character width
|
||||
(.CW) currently in effect.
|
||||
|
||||
The specific printer descriptions later in this section show
|
||||
recommended character widths for proportional typefaces.
|
||||
These widths are for a normal mix of upper- and lowercase
|
||||
letters. If you have many words or phrases all in uppercase
|
||||
or if you want your text less densely printed, choose a larger
|
||||
character width.
|
||||
|
||||
While WordStar mostly sets character widths based on the
|
||||
proportional-width table in the driver, on the more advanced
|
||||
daisy wheel printers, WordStar uses the printer's proportional-
|
||||
spacing mode. WordStar determines how much white space is needed
|
||||
to right-justify the line based on its own proportional width
|
||||
tables. If the table values don't match the wheel installed,
|
||||
WordStar won't be able to justify the line correctly.
|
||||
|
||||
WordStar sends standard ASCII characters; if a proportional wheel
|
||||
uses a different spoke mapping, set up the printer to handle this.
|
||||
|
||||
LASER PRINTERS
|
||||
|
||||
WordStar supports laser printer features such as font changes
|
||||
and proportional spacing.
|
||||
|
||||
WordStar supports several laser printers: the Canon LPB-8 A1 & A2;
|
||||
the Hewlett-Packard LaserJet, LaserJet+, and LaserJet 500+;
|
||||
and the Ricoh LP4080. Refer to the "Specific Printer
|
||||
Information" section of this file for information on these
|
||||
printers. General notes about using laser printers are given below.
|
||||
|
||||
Paper Size and Margins
|
||||
|
||||
Laser printers come with preset page margins. You need to
|
||||
compensate for these margins by changing page length in your
|
||||
WordStar documents. The chart below shows the recommended
|
||||
settings for 8 1/2 X 11 inch paper for both portrait and landscape
|
||||
orientations. These settings allow 55 lines of text for portrait
|
||||
orientation and 40 lines of text for landscape orientation (at 6
|
||||
lines per inch). They also allow for a footer of up to 3 lines
|
||||
and a one-line header. If you use multiple-line headers, adjust
|
||||
the top margin accordingly.
|
||||
|
||||
Dot Default Portrait Landscape
|
||||
Setting Command Value Orientation Orientation
|
||||
------- ------- ------- ----------- -----------
|
||||
page length .PL 66 62 47
|
||||
top margin .MT 3 2 2
|
||||
bottom margin .MB 8 5 5
|
||||
header margin .HM 2 1 1
|
||||
footer margin .FM 2 2 2
|
||||
|
||||
If the laser printer is your primary printer, you can use WSCHANGE
|
||||
to make these settings the defaults.
|
||||
|
||||
Because laser printers leave small margins at the left and right
|
||||
sides of the page, you may want to use a smaller page offset
|
||||
setting (the default is .PO 8).
|
||||
|
||||
Form Feeds
|
||||
|
||||
When you print with a laser printer, answer Y for yes to the "Use
|
||||
form feeds (Y/N)?" prompt at print time. (The default is NO.) If
|
||||
the laser printer is your primary printer, you can use WSCHANGE to
|
||||
change the default to yes.
|
||||
|
||||
WordStar Commands for Font Selection
|
||||
|
||||
The WordStar dot commands and print control commands listed below
|
||||
determine the fonts used for printing a document.
|
||||
|
||||
.PR .PR OR=L selects landscape orientation; .PR OR=P (or just
|
||||
.PR OR) selects portrait orientation (the default). If
|
||||
either of these commands appears after the first printing
|
||||
line on a page, the orientation will not change until the
|
||||
following page.
|
||||
|
||||
.PS .PS ON selects proportionally spaced characters; .PS OFF
|
||||
(the default) selects fixed-spaced characters.
|
||||
|
||||
.CW The character-width setting (.CW followed by the width in
|
||||
120ths of an inch) determines the character pitch and font
|
||||
selected for fixed-width printing. For proportional fonts, it
|
||||
determines the point size and proportional-width table
|
||||
selected.
|
||||
|
||||
.LQ .LQ ON selects near letter quality print (if supported by
|
||||
your printer). LQ OFF selects draft quality print. Default
|
||||
is ON.
|
||||
|
||||
^PY The italic print control toggles between normal and italic
|
||||
characters when the appropriate italic font is available.
|
||||
|
||||
^PB The boldface print control toggles between normal and bold
|
||||
characters when the appropriate bold font is available.
|
||||
|
||||
^PD The double strike print control used with the laser printers
|
||||
toggles overprinting with a horizontal offset of 1/120"
|
||||
between the two character images. This allows a bold effect
|
||||
where no bold font is available.
|
||||
|
||||
^PA ^PA turns alternate pitch on. Use .CW to assign different
|
||||
character widths to normal pitch (see ^PN below) and alternate
|
||||
pitch so that each pitch accesses a different font. You can
|
||||
then change fonts by switching between the two pitches. This
|
||||
is the only way to use two fonts on the same line.
|
||||
(See "Character width" and "Pitch" in the "Reference Guide.")
|
||||
|
||||
^PN ^PN turns normal pitch on. You can use it with ^PA as
|
||||
described above.
|
||||
|
||||
^P@ When working with columns, if you use alternate and normal
|
||||
pitch for two fonts, or if you use proportional spacing, you
|
||||
may need to use ^P@ to make sure the columns line up.
|
||||
Remember that the column position set with ^P@ is determined
|
||||
by the normal pitch character width. (See "Columns" and
|
||||
"Proportional spacing" in the "Reference Guide."
|
||||
|
||||
INFORMATION ON SPECIFIC PRINTERS
|
||||
|
||||
This section describes the capabilities of each printer listed on
|
||||
the Printer Selection Menu. The printers are listed in alphabetical
|
||||
order (except for the generic printers such as "Draft,"
|
||||
"Typewriter," "Custom," "Simple," and the various print-to-disk
|
||||
options, which are listed first).
|
||||
|
||||
There is a chart for each printer explaining how features work and
|
||||
listing any special notes about the printer. Each printer is
|
||||
described in the following format:
|
||||
|
||||
PRINTER NAME ----- Driver: (short name)
|
||||
|
||||
^PY Effect of italics/ribbon color print control
|
||||
^PT/V Subscript/superscript information
|
||||
.CW Information on available character widths and fonts. The
|
||||
chart shows the .CW, .LQ, and .PS settings required to use
|
||||
different fonts.
|
||||
|
||||
.LQ OFF .LQ ON .PS ON Font Name
|
||||
------- ------ ------ ---------
|
||||
.cw val .cw val recommended value (range) font 1
|
||||
.cw val .cw val recommended value (range) font 2
|
||||
|
||||
.UL Continuous-underline information (if restrictions)
|
||||
.UJ Microspace-justification information (if restrictions)
|
||||
|
||||
N/A means a command has no effect on this printer.
|
||||
|
||||
NOTES Switch settings, special features, anomalies.
|
||||
|
||||
DRAFT PRINTER (nonbackspacing) ----- Driver: DRAFT
|
||||
|
||||
^PD Overprints the line twice
|
||||
^PB Overprints the line three times
|
||||
^PS Overprints the underscore character in a separate pass
|
||||
^PT/V Prints super/subscripts with a full line between
|
||||
super/subscript and text
|
||||
.LH Sets line height only in multiples of full lines
|
||||
.CW N/A
|
||||
.PS N/A
|
||||
.LQ N/A
|
||||
.UJ N/A
|
||||
|
||||
NOTES This driver works with any printer that doesn't automatically
|
||||
perform a line feed when it receives a carriage return command. All
|
||||
overprinting is done by returning the carriage and passing over the
|
||||
line again.
|
||||
|
||||
TYPEWRITER PRINTER (backspacing) ----- Driver: TYPEWR
|
||||
|
||||
^PD Backspaces and overprints each character twice
|
||||
^PB Backspaces and overprints each character three times
|
||||
^PS Backspaces and overprints the underscore character
|
||||
^PT/V Prints super/subscripts with a full line between
|
||||
super/subscript and text
|
||||
.LH Sets line height only in multiples of full lines
|
||||
.CW N/A
|
||||
.PS N/A
|
||||
.LQ N/A
|
||||
.UJ N/A
|
||||
|
||||
NOTES This driver works with any printer that doesn't automatically
|
||||
perform a line feed when a it receives a carriage return command,
|
||||
and responds to a backspace character. Overprinting is done by
|
||||
backspacing.
|
||||
|
||||
AUTO LINE FEED PRINTER (backspacing) ----- Driver: AUTOLF
|
||||
|
||||
^PD Backspaces and overprints each character twice
|
||||
^PB Backspaces and overprints each character three times
|
||||
^PS Backspaces and overprints the underscore character
|
||||
^PT/V Prints super/subscripts with a full line between
|
||||
super/subscript and text
|
||||
.LH Sets line height only in multiples of full lines
|
||||
.CW N/A
|
||||
.PS N/A
|
||||
.LQ N/A
|
||||
.UJ N/A
|
||||
|
||||
NOTES This driver works with any printer that automatically
|
||||
performs a line feed when it receives a carriage return character,
|
||||
and responds to a backspace command. Overprinting is done by
|
||||
backspacing.
|
||||
|
||||
SIMPLE CUSTOMIZABLE PRINTERS ----- Driver: SIMPLE
|
||||
|
||||
All print controls cause control strings (on and off) in
|
||||
the user area to be sent to the printer. These strings
|
||||
are used by both the SIMPLE and CUSTOM drivers. They can
|
||||
be installed with the WSCHANGE program.
|
||||
|
||||
.LQ Controlled by user area strings
|
||||
.PS Controlled by user area strings
|
||||
.CW N/A
|
||||
.UJ N/A
|
||||
.LH N/A
|
||||
|
||||
NOTES This printer driver prints the line in one pass, sending
|
||||
control strings from the user area to select print enhancements.
|
||||
|
||||
CUSTOMIZABLE PRINTERS ----- Driver: CUSTOM
|
||||
|
||||
All print controls cause control strings (on and off) in
|
||||
the user area to be sent to the printer. These strings
|
||||
are used by both the SIMPLE and CUSTOM drivers. They can
|
||||
be installed with the WSCHANGE program.
|
||||
|
||||
.LQ ON/OFF controlled by user area strings
|
||||
.PS ON/OFF controlled by user area strings
|
||||
.LH Sets line height only in multiples of full lines
|
||||
.UJ N/A
|
||||
.CW N/A
|
||||
|
||||
NOTES This driver prints the line in multiple passes, sending
|
||||
control strings from the user area to select print enhancements.
|
||||
|
||||
PREVIEW TO DISK ----- Driver: PRVIEW
|
||||
|
||||
This driver prints documents to the PREVIEW.WS file to allow
|
||||
you to preview the format and appearance of a document before
|
||||
printing. Headers, footers, and pagination are shown correctly
|
||||
and print controls remain in the file to display onscreen
|
||||
attributes. Dot commands are not printed.
|
||||
|
||||
PRINT TO DISK WITHOUT PRINT CONTROLS ----- Driver: ASCII
|
||||
|
||||
This driver prints to the ASCII.WS file, stripping headers and
|
||||
footers, high bits, and print controls.
|
||||
|
||||
PRINT TO DISK WITHOUT HEADERS AND FOOTERS ----- Driver: XTRACT
|
||||
|
||||
This driver prints to the XTRACT.WS disk file, stripping headers
|
||||
and footers, but preserving high bits and print controls.
|
||||
|
||||
ANADEX 9500A, 9500B ----- Driver: 9500
|
||||
|
||||
^PY N/A
|
||||
^PT/V Even superscript roll
|
||||
|
||||
.CW .CW Font name
|
||||
--- ---------
|
||||
9 13.3 cpi
|
||||
10 12 cpi
|
||||
12 10 cpi
|
||||
18 6.7 cpi
|
||||
20 6 cpi
|
||||
24 5 cpi
|
||||
|
||||
.LH 1/24" resolution, use even values
|
||||
.UJ This printer has no incremental horizontal positioning
|
||||
.PS N/A
|
||||
.LQ N/A
|
||||
|
||||
ANADEX 9501B, INTEQ 5100B ----- Driver: 9501B
|
||||
|
||||
^PY N/A
|
||||
^PT/V Even superscript roll
|
||||
|
||||
.CW .CW Font name
|
||||
--- ---------
|
||||
7 16.7 cpi
|
||||
8 15 cpi
|
||||
10 12.5 cpi
|
||||
12 10 cpi
|
||||
14 8.3 cpi
|
||||
16 7.5 cpi
|
||||
20 6.2 cpi
|
||||
24 5 cpi
|
||||
|
||||
.LH 1/24" resolution, use even values
|
||||
.UJ This printer has no incremental horizontal positioning
|
||||
.PS N/A
|
||||
.LQ N/A
|
||||
|
||||
C. ITOH STARWRITER 1550 AND 8510 ----- Driver: C1550
|
||||
|
||||
^PY N/A
|
||||
^PT/V Prints full-size characters with roll
|
||||
|
||||
.CW .CW Font Name
|
||||
--- ---------
|
||||
7 compressed
|
||||
10 elite
|
||||
12 pica
|
||||
14 expanded compressed
|
||||
20 expanded elite
|
||||
24 expanded pica
|
||||
|
||||
.LQ N/A
|
||||
.PS N/A
|
||||
.UL Continuous underlining suppresses microspace justification
|
||||
|
||||
C. ITOH F10 STARWRITER ----- Driver: QUME
|
||||
|
||||
See Diablo 630, 1610, 1620 Daisy Wheel.
|
||||
|
||||
Note: Proportional printing was tested with a Theme 10 wheel.
|
||||
|
||||
CANON LBP-8A1 AND LBP-8A2 LASER PRINTER ----- Driver: LBP8
|
||||
|
||||
^PY Selects italics if appropriate font installed
|
||||
^PT/V Prints full-size characters with roll
|
||||
.PS .PS
|
||||
.CW OFF ON Font Name
|
||||
--- -- ---------
|
||||
6 - 20 cpi
|
||||
8 - 15 cpi
|
||||
9 - 13.3 cpi
|
||||
10 - 12 cpi (elite)
|
||||
12 - 10 cpi
|
||||
20 - 6 cpi
|
||||
24 - 5 cpi
|
||||
16 - 7.5 cpi
|
||||
- 7 (0-8) Garland 8 point
|
||||
- 10 (9-11) Garland 12 point
|
||||
- 14 (12-17) Expanded 8 point
|
||||
- 20 (18-30) Expand
|
||||
BIN
DiskImg/hd3/WSSHORT.OVR
Normal file
BIN
DiskImg/hd3/WSSHORT.OVR
Normal file
Binary file not shown.
BIN
DiskImg/hd3/WSU.COM
Normal file
BIN
DiskImg/hd3/WSU.COM
Normal file
Binary file not shown.
BIN
Doc/Ecma-035.pdf
Normal file
BIN
Doc/Ecma-035.pdf
Normal file
Binary file not shown.
BIN
Doc/Ecma-048.pdf
Normal file
BIN
Doc/Ecma-048.pdf
Normal file
Binary file not shown.
Binary file not shown.
128
Doc/SD-howto.txt
128
Doc/SD-howto.txt
@@ -1,18 +1,44 @@
|
||||
Using an SD card with the RomWBW firmware.
|
||||
|
||||
This document describes using the SD-card interface for the Z80-SBC, Zeta and
|
||||
N8 systems with the RomWBW firmware.
|
||||
V2.0 supports the bit-bang method as well as CSIO port on the N8. It does not
|
||||
support the original connection by Juha to the Z80-SBC MK-I.
|
||||
N8 systems with the RomWBW firmware. It does not cover the ParPortProp SD
|
||||
interface.
|
||||
V2.0 supports the bit-bang method as well as CSI/O port on the N8. It does not
|
||||
support the original connection by Juha to the Z80-SBC MK-I. The firmware does
|
||||
have support for the high capacity (HC) cards.
|
||||
V2.1 supports the Mini-PPISD board for the Z80-SBC and Zeta.
|
||||
|
||||
All interfaces (except the PPISD) use the latch and input port used to
|
||||
communicate with the DS1302 RTC chip. Each interface is slightly different and
|
||||
will be discussed in turn.
|
||||
The SD-card interface uses four signal lines. A chip select, data
|
||||
out to the card, clock out to the card and a data in from the card.
|
||||
An SD-card interface uses four signal lines. A chip select, data out to the
|
||||
card, clock out to the card and a data in from the card. Except for the CSIO
|
||||
port interface on the N8-2312 board, all N8VEM interfaces use a bit-banging
|
||||
technique. The hardware is slightly different for each and will be discussed
|
||||
in turn. The configuration options are given for those who tailor their
|
||||
versions of the firmware.
|
||||
- Z80-SBC MK-II with SD-mini board
|
||||
- Zeta with SD-mini board
|
||||
- N8-2511 (prototype)
|
||||
- N8-2312 (production)
|
||||
- Mini-PPISD board
|
||||
|
||||
Zeta
|
||||
|
||||
--Z80-SBC MK-II with SD-mini board--
|
||||
The Z80-SBC interface uses the latch and input port normally used for the
|
||||
DS1302 RTC chip. The latch for the RTC is only 6-bits wide so we will be
|
||||
doubling up on the RTC data out and clock lines. The chip select uses a spare
|
||||
latch output and the data in uses the 'config' header input.
|
||||
Miniboard MK II SBC Use
|
||||
1 +5v
|
||||
2 GND
|
||||
3 U5 pin 9 Data in to SBC from card
|
||||
4 U18 pin 15 Data out from SBC to card
|
||||
5 N/C alternative to pin 3
|
||||
6 N/C alternative to pin 4
|
||||
7 U18 pin 12 Clock out to card
|
||||
8 U18 pin 2 Chip select to card
|
||||
The jumpers on the miniboard are K1 1-2, K2 1-2.
|
||||
Resistor R11 must be removed.
|
||||
|
||||
--Zeta with SD-mini board--
|
||||
The Zeta uses a 6-bit latch for the RTC so we will be doubling up on the RTC
|
||||
data out and clock lines. The chip select uses a spare latch output and the
|
||||
data in uses the 'config' header input.
|
||||
@@ -33,20 +59,6 @@ Miniboard Zeta Use
|
||||
8 U11 pin 7 Chip select to card
|
||||
The jumpers on the SD miniboard are K1 1-2, K2 1-2.
|
||||
|
||||
N8VEM Z80-SBC MK-II
|
||||
This is the same as for the Zeta except using different pin numbers.
|
||||
Miniboard MK II SBC Use
|
||||
1 +5v
|
||||
2 GND
|
||||
3 U5 pin 9 Data in to SBC from card
|
||||
4 U18 pin 15 Data out from SBC to card
|
||||
5 N/C alternative to pin 3
|
||||
6 N/C alternative to pin 4
|
||||
7 U18 pin 12 Clock out to card
|
||||
8 U18 pin 2 Chip select to card
|
||||
The jumpers on the miniboard are K1 1-2, K2 1-2.
|
||||
Resistor R11 must be removed.
|
||||
|
||||
Testing the Zeta and Z80-SBC MK-II boards
|
||||
With the miniboard connected to the Zeta BUT WITH NO SD-CARD INSTALLED do the
|
||||
following.
|
||||
@@ -66,13 +78,21 @@ instead of a 74HCT174 (or similar) for U11. To bring the outputs up enough
|
||||
>O 70 80 activates the data out line
|
||||
>O 70 40 activates the clock line
|
||||
>O 70 04 activates the chip select line
|
||||
5. If all is ok then time to assemble new firmware. In your xxx_config.asm
|
||||
file set SDENABLE to true and set the SDCAPACITY to the size of your card.
|
||||
6. Power down, plug in the SD-card and power-up. There is no hot-swapping in
|
||||
5. Power down, plug in the SD-card and power-up. There is no hot-swapping in
|
||||
this interface. After that it should behave as the other drives.
|
||||
Note that the SD-interface is SLOW and can take a few seconds to respond.
|
||||
For assembly in the relative config_xxx.asm file alter the following:
|
||||
SDENABLE .EQU TRUE
|
||||
SDTRACE .EQU 1
|
||||
SDCAPACITY .EQU (whatever your card size is in MB)
|
||||
SDCSIO .EQU FALSE (FALSE for bit-banging)
|
||||
SDCSIOFAST .EQU FALSE (ignore this, only for N8 CSIO port)
|
||||
PPISD .EQU FALSE
|
||||
|
||||
N8
|
||||
--N8-2511 (prototype)--
|
||||
The N8-2511 board by default uses a similar bit-banging technique and interface
|
||||
as the Z80 MK-II and Zeta boards. A hardware modification is needed to use the
|
||||
faster CSI/O port of the Z180 CPU.
|
||||
Make sure you have cut the track to or removed 4k7 pullup resistor marked
|
||||
PU4.7K-H that goes to the data out of the SD-card and pin 9 of U4 (the
|
||||
74LS125). It has damaged the SD-card I was initially testing as they are not
|
||||
@@ -80,8 +100,16 @@ designed for 5v on any pin. Before putting any SD-card into the connector,
|
||||
check all voltages and make sure they are less than 3.6v, preferably about
|
||||
3.3v. You can use the monitor's 'O 88 07' command to set all outputs on.
|
||||
|
||||
The quick guide to modifying the SD-card interface to use the CSI/O
|
||||
port on the N8-2511 board.
|
||||
For assembly in the config_n8_2511.asm file alter the following:
|
||||
SDENABLE .EQU TRUE
|
||||
SDTRACE .EQU 1
|
||||
SDCAPACITY .EQU (whatever your card size is in MB)
|
||||
SDCSIO .EQU FALSE (FALSE for bit-banging)
|
||||
SDCSIOFAST .EQU FALSE (ignore this, only for CSIO port)
|
||||
PPISD .EQU FALSE
|
||||
|
||||
--The quick guide to modifying the SD-card interface to use the CSI/O
|
||||
port on the N8-2511 board.--
|
||||
|
||||
It is assumed that you have got the standard SD-card interface running and
|
||||
have a known working SD-card (though not necessary for either).
|
||||
@@ -110,6 +138,7 @@ have a known working SD-card (though not necessary for either).
|
||||
7. DO NOT INSTALL THE SD CARD YET. Power up the N8 and grab your voltmeter.
|
||||
Looking at the SD card connector from the edge closest to the joystick headers
|
||||
you should have the following voltages:
|
||||
PIN VOLTAGE USE
|
||||
--9 3.3v not used, pulled high
|
||||
-1 3.3v /CS
|
||||
-2 0 or 3.3v data to card (TXS)
|
||||
@@ -151,25 +180,43 @@ TXS: TXS will stay at the same level as the last bit sent. If it is hi use
|
||||
|
||||
If everything has gone as detailed above then you should be ready to try the
|
||||
firmware.
|
||||
|
||||
N8 Firmware
|
||||
There are two extra configurations for the CSIO port in the config_n8.asm file.
|
||||
SDCSIO should be set to TRUE if you are using the CSIO port. The CSIO
|
||||
transfers data LSB first, the SD card uses MSB first. Each data byte has to be
|
||||
mirrored (i.e. swap bits around). There are two methods used. The rotate and
|
||||
shift is slow but uses very little code. The lookup table is much faster but
|
||||
uses an extra 256 bytes of code space.
|
||||
For assembly in the config_n8_2511.asm file alter the following:
|
||||
SDENABLE .EQU TRUE
|
||||
SDTRACE .EQU 1
|
||||
SDCAPACITY .EQU (whatever your card size is in MB)
|
||||
SDCSIO .EQU TRUE (FALSE for bit-banging)
|
||||
SDCSIOFAST .EQU TRUE (only use FALSE if memory space is tight)
|
||||
PPISD .EQU FALSE
|
||||
|
||||
Mini-PPISD board
|
||||
--N8-2312 (production)--
|
||||
The production version has the CSI/O modifications already taken care of. If
|
||||
there are problems then the hardware can be tested from Step 7 of the
|
||||
modification guide above. NOTE: JP15 should be open.
|
||||
The config_n8_2312.asm file should contain the following:
|
||||
SDENABLE .EQU TRUE
|
||||
SDTRACE .EQU 1
|
||||
SDCAPACITY .EQU (whatever your card size is in MB)
|
||||
SDCSIO .EQU TRUE
|
||||
SDCSIOFAST .EQU TRUE (only use FALSE if memory space is tight)
|
||||
PPISD .EQU FALSE
|
||||
|
||||
--Mini-PPISD board--
|
||||
The PPISD is an updated version of the bit-bang design. It uses the PPI port
|
||||
found on the N8VEM range and can be used with the 6x0x mezzanine board. It has
|
||||
full 5v to 3.3v level translation, can use power from the PPI connector or an
|
||||
external supply and has a choice chip select inputs so two boards can be used
|
||||
on the one computer. An extra header is given for daisy chaining a DSKY board
|
||||
or another PPISD board.
|
||||
found throughout the N8VEM range and can be used with the 6x0x mezzanine board.
|
||||
It has full 5v to 3.3v level translation, can use power from the PPI connector
|
||||
or an external supply and has a choice chip select inputs so two boards can be
|
||||
used on the one computer. An extra header is given for daisy chaining a DSKY
|
||||
board or another PPISD board.
|
||||
There are only a few points to watch out for. It cannot be used with a PPIDE
|
||||
or a ParPortProp board as they double up on several pins. The chip select line
|
||||
is active LOW - opposite to the Juha board.
|
||||
or a ParPortProp board as they double up on several pins, but it can be used
|
||||
with the DSKY board on the same PPI connector. The chip select line is active
|
||||
LOW - opposite to the SD-mini board.
|
||||
If the PPI is being used for other purposes (such as the DSKY) then the only
|
||||
programming requirements are that PPI outputs PC4 and PC5 must be kept high.
|
||||
There are two jumpers. K1 selects the power source. Jumper 1-2 for an
|
||||
@@ -178,6 +225,9 @@ from the PPI connector (Z80-SBC MK-II, Zeta, N8 or SBC-188).
|
||||
K2 selects which card-select line to be used. 1-2 uses PC4 and is the default
|
||||
for the RomWBW firmware. Jumper 2-3 to use PC5.
|
||||
There is a page on the N8VEM Wiki with the latest details.
|
||||
In the config_xxx.asm files make
|
||||
PPISD .EQU TRUE
|
||||
PPIDEENABLE .EQU FALSE
|
||||
|
||||
DGG
|
||||
|
||||
|
||||
BIN
Doc/Source/Bank Switched Memory.vsd
Normal file
BIN
Doc/Source/Bank Switched Memory.vsd
Normal file
Binary file not shown.
BIN
Doc/Source/Character Emulation Video Services.vsd
Normal file
BIN
Doc/Source/Character Emulation Video Services.vsd
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,10 +1,10 @@
|
||||
@echo off
|
||||
echo Setting PowerShell ExecutionPolicy = Unrestricted...
|
||||
echo Setting PowerShell ExecutionPolicy = RemoteSigned...
|
||||
echo.
|
||||
PowerShell Set-ExecutionPolicy Unrestricted
|
||||
PowerShell Set-ExecutionPolicy RemoteSigned
|
||||
echo PowerShell ExecutionPolicy is now:
|
||||
PowerShell Get-ExecutionPolicy
|
||||
echo.
|
||||
echo The execution policy should be "Unrestricted"
|
||||
echo The execution policy should be "RemoteSigned"
|
||||
echo.
|
||||
pause
|
||||
379
LSource/Makefile
Normal file
379
LSource/Makefile
Normal file
@@ -0,0 +1,379 @@
|
||||
# RomWBW/branches/dwg/LSource/Makefile 1/16/2013 dwg - Makefile for scientific Linux (red hat enterprise)
|
||||
# RomWBW/branches/dwg/LSource/Makefile 11/09/2012 dwg - added rule to copy n8chars.minc
|
||||
# RomWBW/branches/dwg/LSource/Makefile 10/27/2012 dwg -
|
||||
#
|
||||
# GCC based makefile
|
||||
#
|
||||
# 10/27/2012 2.x dwg - updated for Linux
|
||||
#
|
||||
# 09/28/2012 2.2 dwg - updated for Mac OS X 10.8.2 Mountain Lion
|
||||
#
|
||||
# 06/18/2012 2.0 dgg - updated for v2.0
|
||||
#
|
||||
# 02/22/2012 1.5 dgg - modified for assembly under Linux
|
||||
#
|
||||
# 01/11/2011 1.4 wbw - added support for ZSDOS/ZDDOS/ZCPR
|
||||
#
|
||||
# 12/22/2011 1.3 wbw - removed all built-in config stuff, operation is now entirely
|
||||
# dependent on variables CONFIG, ROMSIZE, and CPU
|
||||
#
|
||||
# 12/02/2011 1.3 wbw - replaced makever functionality with built-in makefile stuff
|
||||
#
|
||||
# 11/29/2011 1.3 dwg - uses makever to generate stdincl.inc from the version.hpp file
|
||||
#
|
||||
# 11/19/2011 1.3 dwg - added n8vem_vdu to "usage" and "all" rules
|
||||
# enhanced clean to get files in $(OUTDIR)
|
||||
# added custom to "all" rule
|
||||
|
||||
#
|
||||
# The operation of this makefile is entirely dependent on the setting
|
||||
# of three variables: CONFIG, ROMSIZE, and CPU:
|
||||
#
|
||||
# CONFIG determines which configuration to build which means that
|
||||
# it will determine the config_xxx.asm config settings file to
|
||||
# include as well as the output file names. So, for example,
|
||||
# if CONFIG is "n8vem", the config_n8vem.asm file will be used
|
||||
# for BIOS configuration settings and the output files will be
|
||||
# n8vem.rom, n8vem.sys, and n8vem.com.
|
||||
#
|
||||
# ROMSIZE specifies the size of the ROM image to be produced and
|
||||
# currently must be either "1024" for a 1MB ROM or "512" for a
|
||||
# 512KB ROM.
|
||||
#
|
||||
# CPU specifies the instruction set to be used in assembly and
|
||||
# must be either "80" for Z80 or "180" for Z180. Currently,
|
||||
# you should use 180 for N8 ROMs and 80 for everything else.
|
||||
#
|
||||
# SYS specifies the system variant to build in. CPM will
|
||||
# build traditional CP/M. ZSYS will build ZSystem which
|
||||
# currently means ZSDOS 1.2 & ZCPR 1.0
|
||||
#
|
||||
# ROMNAME names the output file. It defaults to
|
||||
# CONFIG. The output of the build will be:
|
||||
# <ROMNAME>.rom, <ROMNAME>.sys, and <ROMNAME>.com.
|
||||
#
|
||||
# These variables can be passed into the makefile by the command
|
||||
# line, hardcoded in this file, or set as environment variables
|
||||
# in the OS. To use a command line, use the following format:
|
||||
#
|
||||
# make CONFIG=<config> ROMSIZE=<romsize> CPU=<cpu> SYS=<sys> ROMNAME=<romname>
|
||||
#
|
||||
# An example of this is:
|
||||
#
|
||||
# make CONFIG=n8vem ROMSIZE=512 CPU=80 SYS=CPM ROMNAME=n8vem
|
||||
#
|
||||
# Alternatively, you can specify the variables by hardcoding them
|
||||
# in this file. To do so, uncomment the five lines after these
|
||||
# comments and change the values as desired.
|
||||
# If the variables are specified this way, you would then invoke
|
||||
# the make by simply using "make"
|
||||
#
|
||||
# If you want to set them as environment variables, you can
|
||||
# do this with commands like the following at an OS command
|
||||
# prompt or in a batch file:
|
||||
#
|
||||
# SET CONFIG=zeta
|
||||
# SET ROMSIZE=512
|
||||
# SET CPU=80
|
||||
# SET SYS=CPM
|
||||
# SET ROMNAME=zeta
|
||||
#
|
||||
# Note: use "make clean" to delete temporary and output files
|
||||
#
|
||||
# A good idea is to do a clean with every build and this can be
|
||||
# accomplished on one command line doing something like this:
|
||||
#
|
||||
# make clean all CONFIG=n8vem ROMSIZE=512 CPU=80 SYS=CPM ROMNAME=n8vem
|
||||
#
|
||||
# or, if you are using hard coded variables above:
|
||||
#
|
||||
# make clean all
|
||||
#
|
||||
# Uncomment and update values below to hardcode settings:
|
||||
#
|
||||
CONFIG := n8_2312
|
||||
ROMSIZE := 512
|
||||
CPU := 180
|
||||
SYS := CPM
|
||||
ROMNAME := n8_2312
|
||||
|
||||
ifndef ROMNAME
|
||||
ROMNAME := $(CONFIG)
|
||||
endif
|
||||
|
||||
CPMCP := bin/CPMCP
|
||||
CVT := bin/CVT2LINUX
|
||||
|
||||
SRC := ../Source/
|
||||
|
||||
ROMDSKFILES := ../RomDsk/$(SYS)_$(ROMSIZE)KB/*.* ../RomDsk/cfg_$(CONFIG)/*.* ../Apps/core/*.*
|
||||
|
||||
ifeq "$(SYS)" "CPM"
|
||||
DOSBIN := bdosb01.bin
|
||||
CPBIN := ccpb03.bin
|
||||
else
|
||||
DOSBIN :s= zsdos.bin
|
||||
CPBIN := zcprw.bin
|
||||
endif
|
||||
|
||||
OUTDIR := ../Output
|
||||
|
||||
TASM := bin/TASM
|
||||
TASMTABS := bin
|
||||
export TASMTABS
|
||||
|
||||
ASMOPT80 := -t$(CPU) -g3
|
||||
ASMOPT85 := -t85 -g3
|
||||
|
||||
ASM80 := $(TASM) $(ASMOPT80)
|
||||
ASM85 := $(TASM) $(ASMOPT85)
|
||||
ASMIMG := $(TASM) $(ASMOPT80) -b -fE5
|
||||
|
||||
NULL :=
|
||||
SPACE := ${NULL} ${NULL}
|
||||
|
||||
%.bin: %.asm
|
||||
$(ASM80) $< $@
|
||||
|
||||
%.com: %.asm
|
||||
$(ASM80) $< $@
|
||||
|
||||
%.img: %.asm
|
||||
$(ASMIMG) $< $@
|
||||
|
||||
%.exe: %.cpp
|
||||
$(CC) $< -o $@
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifeq "$(and $(CONFIG), $(ROMSIZE), $(CPU), $(SYS), $(ROMNAME))" ""
|
||||
$(error sage: make CONFIG=<config> ROMSIZE=[512|1024] CPU=[80|180] SYS=[CPM|ZSYS] ROMNAME=<romname>)
|
||||
endif
|
||||
endif
|
||||
|
||||
all: tasm80.tab tasm85.tab $(OUTDIR)/$(ROMNAME).rom $(OUTDIR)/$(ROMNAME).sys $(OUTDIR)/$(ROMNAME).com
|
||||
|
||||
tasm80.tab: bin/TASM80.TAB
|
||||
cp bin/TASM80.TAB tasm80.tab
|
||||
|
||||
tasm85.tab: bin/TASM85.TAB
|
||||
cp bin/TASM85.TAB tasm85.tab
|
||||
|
||||
|
||||
build.inc:
|
||||
/bin/echo ';' >$@
|
||||
/bin/echo -n '; RomWBW Configured for '$(CONFIG)' ' >>$@
|
||||
date >> $@
|
||||
/bin/echo ; >>$@
|
||||
/bin/echo -n '#DEFINE TIMESTAMP "' >>$@
|
||||
date '+%Y %m %d %H%M"' >>$@
|
||||
/bin/echo ; >>$@
|
||||
/bin/echo '#DEFINE VARIANT "WBW-$(USERNAME)"' >>$@
|
||||
/bin/echo ; >>$@
|
||||
/bin/echo ROMSIZE .EQU $(ROMSIZE) >>$@
|
||||
/bin/echo ; >>$@
|
||||
/bin/echo '#INCLUDE "config_'$(CONFIG)'.asm"' >>$@
|
||||
/bin/echo ; >>$@
|
||||
|
||||
bootrom.bin : bootrom.asm std.asm build.inc ver.inc memmgr.asm config_$(CONFIG).asm xio.asm
|
||||
$(TASM) $(ASMOPT80) $< $@
|
||||
|
||||
bootapp.bin: bootapp.asm std.asm build.inc ver.inc
|
||||
$(TASM) $(ASMOPT80) $< $@
|
||||
|
||||
pgzero.bin: pgzero.asm std.asm build.inc ver.inc
|
||||
$(TASM) $(ASMOPT80) $< $@
|
||||
|
||||
zcprw.bin: zcprw.asm zcpr.asm
|
||||
$(TASM) $(ASMOPT85) $< $@
|
||||
|
||||
zsdos.bin: zsdos.asm zsdos.lib zsdos-gp.z80
|
||||
$(TASM) $(ASMOPT80) $< $@
|
||||
|
||||
cbios.bin: cbios.asm fd_data.asm ide_data.asm ppide_data.asm sd_data.asm prp_data.asm ppp_data.asm uart.asm vdu.asm std.asm ver.inc build.inc infolist.inc
|
||||
$(TASM) $(ASMOPT80) -dBLD_SYS=SYS_$(SYS) $< $@
|
||||
|
||||
dbgmon.bin: dbgmon.asm std.asm ver.inc build.inc
|
||||
|
||||
syscfg.bin: syscfg.asm std.asm build.inc ver.inc
|
||||
|
||||
os.bin: $(CPBIN) $(DOSBIN) cbios.bin
|
||||
cat $(CPBIN) $(DOSBIN) cbios.bin >>$@
|
||||
|
||||
rom0.bin: pgzero.bin bootrom.bin syscfg.bin loader.bin romfill.bin dbgmon.bin os.bin hbfill.bin
|
||||
cat pgzero.bin bootrom.bin syscfg.bin loader.bin romfill.bin dbgmon.bin os.bin hbfill.bin >>$@
|
||||
|
||||
rom1.bin: pgzero.bin bootrom.bin syscfg.bin loader.bin hbios.bin
|
||||
cat pgzero.bin bootrom.bin syscfg.bin loader.bin hbios.bin >>$@
|
||||
|
||||
$(OUTDIR)/$(ROMNAME).rom: rom0.bin rom1.bin $(ROMDISKFILES) $(OUTDIR)/$(ROMNAME).sys diskdefs
|
||||
cp $(SRC)blank$(ROMSIZE)KB.dat RomDisk.tmp
|
||||
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp $(ROMDSKFILES) 0:
|
||||
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp ../Output/$(ROMNAME).sys 0:$(SYS).sys
|
||||
cat rom0.bin rom1.bin RomDisk.tmp >>$@
|
||||
|
||||
$(OUTDIR)/$(ROMNAME).com: bootapp.bin syscfg.bin loader.bin hbios.bin dbgmon.bin os.bin
|
||||
cat bootapp.bin syscfg.bin loader.bin hbios.bin dbgmon.bin os.bin >>$@
|
||||
|
||||
$(OUTDIR)/$(ROMNAME).sys: prefix.bin os.bin
|
||||
cat prefix.bin os.bin >>$@
|
||||
|
||||
ansi.asm: $(SRC)ansi.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
bdosb01.asm: $(SRC)bdosb01.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
hbios.asm: $(SRC)hbios.asm fd.asm ppide.asm n8v.asm n8chars.inc ppk.asm sd.asm tty.asm ansi.asm
|
||||
cp $(SRC)hbios.asm $@
|
||||
$(CVT) $@
|
||||
|
||||
bootapp.asm: $(SRC)bootapp.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
bootrom.asm: $(SRC)bootrom.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
cbios.asm: $(SRC)cbios.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ccpb03.asm: $(SRC)ccpb03.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
cnfgdata.inc: $(SRC)cnfgdata.inc
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
##config_zeta.asm: $(SRC)config_zeta.asm
|
||||
## cp $< $@
|
||||
## $(CVT) $@
|
||||
|
||||
config_$(CONFIG).asm: $(SRC)config_$(CONFIG).asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
dbgmon.asm: $(SRC)dbgmon.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
diskdefs: $(SRC)diskdefs
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
fd.asm: $(SRC)fd.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
fd_data.asm: $(SRC)fd_data.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
hbfill.asm: $(SRC)hbfill.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ide_data.asm: $(SRC)ide_data.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
infolist.inc: $(SRC)infolist.inc
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
loader.asm: $(SRC)loader.asm util.asm
|
||||
cp $(SRC)loader.asm $@
|
||||
$(CVT) $@
|
||||
|
||||
memmgr.asm: $(SRC)memmgr.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
n8chars.inc: $(SRC)n8chars.inc
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
n8v.asm: $(SRC)n8v.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
pgzero.asm: $(SRC)pgzero.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ppide.asm: $(SRC)ppide.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ppide_data.asm: $(SRC)ppide_data.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ppk.asm: $(SRC)ppk.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ppp_data.asm: $(SRC)ppp_data.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
prefix.asm: $(SRC)prefix.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
prp_data.asm: $(SRC)prp_data.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
romfill.asm: $(SRC)romfill.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
sd.asm: $(SRC)sd.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
sd_data.asm: $(SRC)sd_data.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
std.asm: $(SRC)std.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
syscfg.asm: $(SRC)syscfg.asm config_$(CONFIG).asm cnfgdata.inc
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
tty.asm: $(SRC)tty.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
uart.asm: $(SRC)uart.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
util.asm: $(SRC)util.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
vdu.asm: $(SRC)vdu.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
ver.inc: $(SRC)ver.inc
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
xio.asm: $(SRC)xio.asm
|
||||
cp $< $@
|
||||
$(CVT) $@
|
||||
|
||||
clean:
|
||||
rm -f *.tab *.TAB *.inc *.asm *.bin *.com *.img *.rom *.lst *.exp *.tmp
|
||||
rm -f build.inc diskdefs
|
||||
rm -f $(OUTDIR)/*.*
|
||||
BIN
LSource/bin/CPMCHATTR
Executable file
BIN
LSource/bin/CPMCHATTR
Executable file
Binary file not shown.
BIN
LSource/bin/CPMCHMOD
Executable file
BIN
LSource/bin/CPMCHMOD
Executable file
Binary file not shown.
BIN
LSource/bin/CPMCP
Executable file
BIN
LSource/bin/CPMCP
Executable file
Binary file not shown.
BIN
LSource/bin/CPMLS
Executable file
BIN
LSource/bin/CPMLS
Executable file
Binary file not shown.
BIN
LSource/bin/CPMRM
Executable file
BIN
LSource/bin/CPMRM
Executable file
Binary file not shown.
BIN
LSource/bin/CVT2LINUX
Executable file
BIN
LSource/bin/CVT2LINUX
Executable file
Binary file not shown.
BIN
LSource/bin/TASM
Executable file
BIN
LSource/bin/TASM
Executable file
Binary file not shown.
215
LSource/bin/TASM05.TAB
Normal file
215
LSource/bin/TASM05.TAB
Normal file
@@ -0,0 +1,215 @@
|
||||
"TASM 6805 Assembler. "
|
||||
/***************************************************************************
|
||||
/* $Id
|
||||
/***************************************************************************
|
||||
/* This is the instruction set definition table for the 6805 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorported, April 1988.
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
ADC #* A9 2 NOP 1
|
||||
ADC ,X F9 1 NOP 1
|
||||
ADC *,X D9 3 MZERO 1
|
||||
ADC * C9 3 MZERO 1
|
||||
|
||||
ADD #* AB 2 NOP 1
|
||||
ADD ,X FB 1 NOP 1
|
||||
ADD *,X DB 3 MZERO 1
|
||||
ADD * CB 3 MZERO 1
|
||||
|
||||
AND #* A4 2 NOP 1
|
||||
AND ,X F4 1 NOP 1
|
||||
AND *,X D4 3 MZERO 1
|
||||
AND * C4 3 MZERO 1
|
||||
|
||||
ASLA "" 48 1 NOP 1
|
||||
ASLX "" 58 1 NOP 1
|
||||
ASL ,X 78 1 NOP 1
|
||||
ASL *,X 68 2 NOP 1
|
||||
ASL * 38 2 NOP 1
|
||||
|
||||
ASRA "" 47 1 NOP 1
|
||||
ASRX "" 57 1 NOP 1
|
||||
ASR ,X 77 1 NOP 1
|
||||
ASR *,X 67 2 NOP 1
|
||||
ASR * 37 2 NOP 1
|
||||
|
||||
BCC * 24 2 R1 1
|
||||
BCLR *,* 11 2 MBIT 1
|
||||
BCS * 25 2 R1 1
|
||||
BEQ * 27 2 R1 1
|
||||
BHCC * 28 2 R1 1
|
||||
BHCS * 29 2 R1 1
|
||||
BHI * 22 2 R1 1
|
||||
BHS * 24 2 R1 1
|
||||
BIH * 2F 2 R1 1
|
||||
BIL * 2E 2 R1 1
|
||||
|
||||
BIT #* A5 2 NOP 1
|
||||
BIT ,X F5 1 NOP 1
|
||||
BIT *,X D5 3 MZERO 1
|
||||
BIT * C5 3 MZERO 1
|
||||
|
||||
BLO * 25 2 R1 1
|
||||
BLS * 23 2 R1 1
|
||||
BMC * 2C 2 R1 1
|
||||
BMI * 2B 2 R1 1
|
||||
BMS * 2D 2 R1 1
|
||||
BNE * 26 2 R1 1
|
||||
BPL * 2A 2 R1 1
|
||||
BRA * 20 2 R1 1
|
||||
|
||||
BRCLR *,*,* 01 3 MBIT 1
|
||||
BRN * 21 2 R1 1
|
||||
BRSET *,*,* 00 3 MBIT 1
|
||||
BSET *,* 10 2 MBIT 1
|
||||
BSR * AD 2 R1 1
|
||||
|
||||
CLC "" 98 1 NOP 1
|
||||
CLI "" 9A 1 NOP 1
|
||||
|
||||
CLRA "" 4F 1 NOP 1
|
||||
CLRX "" 5F 1 NOP 1
|
||||
CLR ,X 7F 1 NOP 1
|
||||
CLR *,X 6F 2 NOP 1
|
||||
CLR * 3F 2 NOP 1
|
||||
|
||||
CMP #* A1 2 NOP 1
|
||||
CMP ,X F1 1 NOP 1
|
||||
CMP *,X D1 3 MZERO 1
|
||||
CMP * C1 3 MZERO 1
|
||||
|
||||
CMPX #* A3 2 NOP 1 /* equivalent to CPX */
|
||||
CMPX ,X F3 1 NOP 1
|
||||
CMPX *,X D3 3 MZERO 1
|
||||
CMPX * C3 3 MZERO 1
|
||||
|
||||
COMA "" 43 1 NOP 1
|
||||
COMX "" 53 1 NOP 1
|
||||
COM ,X 73 1 NOP 1
|
||||
COM *,X 63 2 NOP 1
|
||||
COM * 33 2 NOP 1
|
||||
|
||||
CPX #* A3 2 NOP 1
|
||||
CPX ,X F3 1 NOP 1
|
||||
CPX *,X D3 3 MZERO 1
|
||||
CPX * C3 3 MZERO 1
|
||||
|
||||
DECA "" 4A 1 NOP 1
|
||||
DECX "" 5A 1 NOP 1
|
||||
DEX "" 5A 1 NOP 1
|
||||
DEC ,X 7A 1 NOP 1
|
||||
DEC *,X 6A 2 NOP 1
|
||||
DEC * 3A 2 NOP 1
|
||||
|
||||
EOR #* A8 2 NOP 1
|
||||
EOR ,X F8 1 NOP 1
|
||||
EOR *,X D8 3 MZERO 1
|
||||
EOR * C8 3 MZERO 1
|
||||
|
||||
INCA "" 4C 1 NOP 1
|
||||
INCX "" 5C 1 NOP 1
|
||||
INX "" 5C 1 NOP 1
|
||||
INC ,X 7C 1 NOP 1
|
||||
INC *,X 6C 2 NOP 1
|
||||
INC * 3C 2 NOP 1
|
||||
|
||||
JMP ,X FC 1 NOP 1
|
||||
JMP *,X DC 3 MZERO 1
|
||||
JMP * CC 3 MZERO 1
|
||||
|
||||
JSR ,X FD 1 NOP 1
|
||||
JSR *,X DD 3 MZERO 1
|
||||
JSR * CD 3 MZERO 1
|
||||
|
||||
LDA #* A6 2 NOP 1
|
||||
LDA ,X F6 1 NOP 1
|
||||
LDA *,X D6 3 MZERO 1
|
||||
LDA * C6 3 MZERO 1
|
||||
|
||||
LDX #* AE 2 NOP 1
|
||||
LDX ,X FE 1 NOP 1
|
||||
LDX *,X DE 3 MZERO 1
|
||||
LDX * CE 3 MZERO 1
|
||||
|
||||
LSLA "" 48 1 NOP 1
|
||||
LSLX "" 58 1 NOP 1
|
||||
LSL ,X 78 1 NOP 1
|
||||
LSL *,X 68 2 NOP 1
|
||||
LSL * 38 2 NOP 1
|
||||
|
||||
LSRA "" 44 1 NOP 1
|
||||
LSRX "" 54 1 NOP 1
|
||||
LSR ,X 74 1 NOP 1
|
||||
LSR *,X 64 2 NOP 1
|
||||
LSR * 34 2 NOP 1
|
||||
|
||||
MUL "" 42 1 NOP 4 /* HC05C4 only */
|
||||
|
||||
NEGA "" 40 1 NOP 1
|
||||
NEGX "" 50 1 NOP 1
|
||||
NEG ,X 70 1 NOP 1
|
||||
NEG *,X 60 2 NOP 1
|
||||
NEG * 30 2 NOP 1
|
||||
|
||||
NOP "" 9D 1 NOP 1
|
||||
|
||||
ORA #* AA 2 NOP 1
|
||||
ORA ,X FA 1 NOP 1
|
||||
ORA *,X DA 3 MZERO 1
|
||||
ORA * CA 3 MZERO 1
|
||||
|
||||
ROLA "" 49 1 NOP 1
|
||||
ROLX "" 59 1 NOP 1
|
||||
ROL ,X 79 1 NOP 1
|
||||
ROL *,X 69 2 NOP 1
|
||||
ROL * 39 2 NOP 1
|
||||
|
||||
RORA "" 46 1 NOP 1
|
||||
RORX "" 56 1 NOP 1
|
||||
ROR ,X 76 1 NOP 1
|
||||
ROR *,X 66 2 NOP 1
|
||||
ROR * 36 2 NOP 1
|
||||
|
||||
RSP "" 9C 1 NOP 1
|
||||
RTI "" 80 1 NOP 1
|
||||
RTS "" 81 1 NOP 1
|
||||
|
||||
SBC #* A2 2 NOP 1
|
||||
SBC ,X F2 1 NOP 1
|
||||
SBC *,X D2 3 MZERO 1
|
||||
SBC * C2 3 MZERO 1
|
||||
|
||||
SEC "" 99 1 NOP 1
|
||||
SEI "" 9B 1 NOP 1
|
||||
|
||||
STA ,X F7 1 NOP 1
|
||||
STA *,X D7 3 MZERO 1
|
||||
STA * C7 3 MZERO 1
|
||||
|
||||
STOP "" 8E 1 NOP 2 /* M146805 CMOS only */
|
||||
|
||||
STX ,X FF 1 NOP 1
|
||||
STX *,X DF 3 MZERO 1
|
||||
STX * CF 3 MZERO 1
|
||||
|
||||
SUB #* A0 2 NOP 1
|
||||
SUB ,X F0 1 NOP 1
|
||||
SUB *,X D0 3 MZERO 1
|
||||
SUB * C0 3 MZERO 1
|
||||
|
||||
SWI "" 83 1 NOP 1
|
||||
|
||||
TAX "" 97 1 NOP 1
|
||||
|
||||
TSTA "" 4D 1 NOP 1
|
||||
TSTX "" 5D 1 NOP 1
|
||||
TST ,X 7D 1 NOP 1
|
||||
TST *,X 6D 2 NOP 1
|
||||
TST * 3D 2 NOP 1
|
||||
|
||||
TXA "" 9F 1 NOP 1
|
||||
|
||||
WAIT "" 8F 1 NOP 2 /* M146805 CMOS only */
|
||||
|
||||
205
LSource/bin/TASM3210.TAB
Normal file
205
LSource/bin/TASM3210.TAB
Normal file
@@ -0,0 +1,205 @@
|
||||
"TASM TMS32010 Assembler."
|
||||
/****************************************************************************
|
||||
/* $Id: tasm3210.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table
|
||||
/* for the TMS32010 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorporated
|
||||
/*
|
||||
/* See TASM manual for info on table structure.
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT MASK */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
/* Generate opcodes high byte first */
|
||||
.MSFIRST
|
||||
/* Don't use '*' as the wild card since it is used for indirect addressing */
|
||||
/* In this table '@' is the wild card indicating where expression may appear*/
|
||||
.ALTWILD
|
||||
/* Use word addressing (not byte addressing)
|
||||
.WORDADDRS
|
||||
/* All shift/and stuff applies to opcodes, not args
|
||||
.NOARGSHIFT
|
||||
|
||||
.REGSET *+ A0 1
|
||||
.REGSET *- 90 1
|
||||
.REGSET * 80 1
|
||||
|
||||
ABS "" 7F88 2 NOP 1
|
||||
|
||||
ADD !,@,@ 0000 2 T1 1 8 0F00
|
||||
ADD !,@ 0008 2 T1 1 8 0F00
|
||||
ADD ! 0008 2 NOP 1
|
||||
ADD @,@ 0000 2 TDMA 1 8 0F00
|
||||
ADD @ 0000 2 T1 1 0 007F
|
||||
|
||||
ADDH !,@ 6000 2 T1 1 0 01
|
||||
ADDH ! 6008 2 NOP 1
|
||||
ADDH @ 6000 2 T1 1 0 007F
|
||||
|
||||
ADDS !,@ 6100 2 T1 1 0 01
|
||||
ADDS ! 6108 2 NOP 1
|
||||
ADDS @ 6100 2 T1 1 0 007F
|
||||
|
||||
AND !,@ 7900 2 T1 1 0 01
|
||||
AND ! 7908 2 NOP 1
|
||||
AND @ 7900 2 T1 1 0 7F
|
||||
|
||||
APAC "" 7F8F 2 NOP 1
|
||||
B @ F900 4 SWAP 1
|
||||
BANZ @ F400 4 SWAP 1
|
||||
BGEZ @ FD00 4 SWAP 1
|
||||
BGZ @ FC00 4 SWAP 1
|
||||
BIOZ @ F600 4 SWAP 1
|
||||
BLEZ @ FB00 4 SWAP 1
|
||||
BLZ @ FA00 4 SWAP 1
|
||||
BNZ @ FE00 4 SWAP 1
|
||||
BV @ F500 4 SWAP 1
|
||||
BZ @ FF00 4 SWAP 1
|
||||
CALA "" 7F8C 2 NOP 1
|
||||
CALL @ F800 4 SWAP 1
|
||||
DINT "" 7F81 2 NOP 1
|
||||
|
||||
DMOV !,@ 6900 2 T1 1 0 01
|
||||
DMOV ! 6908 2 NOP 1
|
||||
DMOV @ 6900 2 T1 1 0 007F
|
||||
|
||||
EINT "" 7F82 2 NOP 1
|
||||
|
||||
IN !,@,@ 4000 2 T1 1 8 0700
|
||||
IN !,@ 4008 2 T1 1 8 0700
|
||||
IN @,@ 4000 2 TDMA 1 8 0700
|
||||
|
||||
LAC !,@,@ 2000 2 T1 1 8 0F00
|
||||
LAC !,@ 2008 2 T1 1 8 0F00
|
||||
LAC ! 2008 2 NOP 1
|
||||
LAC @,@ 2000 2 TDMA 1 8 0F00
|
||||
LAC @ 2000 2 T1 1 0 007F
|
||||
|
||||
LACK @ 7E00 2 T1 1 0 00FF
|
||||
|
||||
LAR @,!,@ 3800 2 TAR 1 0 0001
|
||||
LAR @,! 3808 2 TAR 1 0 0001
|
||||
LAR @,@ 3800 2 TAR 1 0 007F
|
||||
|
||||
LARK @,@ 7000 2 TAR 1 0 00FF
|
||||
LARP @ 6880 2 T1 1 0 0001
|
||||
|
||||
LDP !,@ 6F00 2 T1 1 0 01
|
||||
LDP ! 6F08 2 NOP 1
|
||||
LDP @ 6F00 2 T1 1 0 007F
|
||||
|
||||
LDPK @ 6E00 2 T1 1 0 01
|
||||
|
||||
LST !,@ 7B00 2 T1 1 0 01
|
||||
LST ! 7B08 2 NOP 1
|
||||
LST @ 7B00 2 T1 1 0 007F
|
||||
|
||||
LT !,@ 6A00 2 T1 1 0 01
|
||||
LT ! 6A08 2 NOP 1
|
||||
LT @ 6A00 2 T1 1 0 007F
|
||||
|
||||
LTA !,@ 6C00 2 T1 1 0 01
|
||||
LTA ! 6C08 2 NOP 1
|
||||
LTA @ 6C00 2 T1 1 0 007F
|
||||
|
||||
LTD !,@ 6B00 2 T1 1 0 01
|
||||
LTD ! 6B08 2 NOP 1
|
||||
LTD @ 6B00 2 T1 1 0 007F
|
||||
|
||||
MAR !,@ 6800 2 T1 1 0 01
|
||||
MAR ! 6808 2 NOP 1
|
||||
MAR @ 6800 2 T1 1 0 007F
|
||||
|
||||
MPY !,@ 6D00 2 T1 1 0 01
|
||||
MPY ! 6D08 2 NOP 1
|
||||
MPY @ 6D00 2 T1 1 0 007F
|
||||
|
||||
MPYK @ 8000 2 T1 1 0 1FFF
|
||||
|
||||
NOP "" 7F80 2 NOP 1
|
||||
|
||||
OR !,@ 7A00 2 T1 1 0 01
|
||||
OR ! 7A08 2 NOP 1
|
||||
OR @ 7A00 2 T1 1 0 007F
|
||||
|
||||
OUT !,@,@ 4800 2 T1 1 8 0700
|
||||
OUT !,@ 4808 2 T1 1 8 0700
|
||||
OUT @,@ 4800 2 TDMA 1 8 0700
|
||||
|
||||
PAC "" 7F8E 2 NOP 1
|
||||
POP "" 7F9D 2 NOP 1
|
||||
PUSH "" 7F9C 2 NOP 1
|
||||
RET "" 7F8D 2 NOP 1
|
||||
ROVM "" 7F8A 2 NOP 1
|
||||
|
||||
/* shift count for SACH can only be 0,1, or 4. The mask allows */
|
||||
/* 0,1,4, or 5. Let the user beware */
|
||||
SACH !,@,@ 5800 2 T1 1 8 0500
|
||||
SACH !,@ 5808 2 T1 1 8 0500
|
||||
SACH ! 5808 2 NOP 1
|
||||
SACH @,@ 5800 2 TDMA 1 8 0500
|
||||
SACH @ 5800 2 T1 1 0 007F
|
||||
|
||||
/* The data book shows a shift field for SACL but states it must be 0.
|
||||
/* The previous version of this table left the shift field out
|
||||
/* for simplicity, but here I have put it back for compatibility.
|
||||
/* The AND mask is set to zero in this case so a error message
|
||||
/* will result from non-zero shifts.
|
||||
SACL !,@,@ 5000 2 T1 1 8 0000
|
||||
SACL !,@ 5008 2 T1 1 8 0000
|
||||
SACL ! 5008 2 NOP 1
|
||||
SACL @,@ 5000 2 TDMA 1 8 0000
|
||||
SACL @ 5000 2 T1 1 0 007F
|
||||
|
||||
SAR @,!,@ 3000 2 TAR 1 0 0001
|
||||
SAR @,! 3008 2 TAR 1 0 0001
|
||||
SAR @,@ 3000 2 TAR 1 0 007F
|
||||
|
||||
SOVM "" 7F8B 2 NOP 1
|
||||
SPAC "" 7F90 2 NOP 1
|
||||
|
||||
SST !,@ 7C00 2 T1 1 0 0001
|
||||
SST ! 7C08 2 NOP 1
|
||||
SST @ 7C00 2 T1 1 0 007F
|
||||
|
||||
SUB !,@,@ 1000 2 T1 1 8 0F00
|
||||
SUB !,@ 1008 2 T1 1 8 0F00
|
||||
SUB ! 1008 2 NOP 1
|
||||
SUB @,@ 1000 2 TDMA 1 8 0F00
|
||||
SUB @ 1000 2 T1 1 0 007F
|
||||
|
||||
SUBC !,@ 6400 2 T1 1 0 01
|
||||
SUBC ! 6408 2 NOP 1
|
||||
SUBC @ 6400 2 T1 1 0 007F
|
||||
|
||||
SUBH !,@ 6200 2 T1 1 0 01
|
||||
SUBH ! 6208 2 NOP 1
|
||||
SUBH @ 6200 2 T1 1 0 007F
|
||||
|
||||
SUBS !,@ 6300 2 T1 1 0 01
|
||||
SUBS ! 6308 2 NOP 1
|
||||
SUBS @ 6300 2 T1 1 0 007F
|
||||
|
||||
TBLR !,@ 6700 2 T1 1 0 01
|
||||
TBLR ! 6708 2 NOP 1
|
||||
TBLR @ 6700 2 T1 1 0 007F
|
||||
|
||||
TBLW !,@ 7D00 2 T1 1 0 01
|
||||
TBLW ! 7D08 2 NOP 1
|
||||
TBLW @ 7D00 2 T1 1 0 007F
|
||||
|
||||
XOR !,@ 7800 2 T1 1 0 01
|
||||
XOR ! 7808 2 NOP 1
|
||||
XOR @ 7800 2 T1 1 0 007F
|
||||
|
||||
ZAC "" 7F89 2 NOP 1
|
||||
|
||||
ZALH !,@ 6500 2 T1 1 0 01
|
||||
ZALH ! 6508 2 NOP 1
|
||||
ZALH @ 6500 2 T1 1 0 007F
|
||||
|
||||
ZALS !,@ 6600 2 T1 1 0 01
|
||||
ZALS ! 6608 2 NOP 1
|
||||
ZALS @ 6600 2 T1 1 0 007F
|
||||
|
||||
456
LSource/bin/TASM3225.TAB
Normal file
456
LSource/bin/TASM3225.TAB
Normal file
@@ -0,0 +1,456 @@
|
||||
"TASM TMS32025 Assembler."
|
||||
/****************************************************************************
|
||||
/* $Id: tasm3225.tab 1.2 1997/09/28 22:16:44 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table
|
||||
/* for the TMS32025 version of TASM.
|
||||
/* Bob Stricklin
|
||||
/*
|
||||
/* See TASM manual for info on table structure.
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT MASK */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
/* Generate opcodes high byte first */
|
||||
.MSFIRST
|
||||
/* Don't use '*' as the wild card since it is used for indirect addressing */
|
||||
/* In this table '@' is the wild card indicating where expression may appear*/
|
||||
.ALTWILD
|
||||
.WORDADDRS
|
||||
.NOARGSHIFT
|
||||
|
||||
/* Addressing mode definitions.
|
||||
/* Value gets OR'd in to the opcode if the
|
||||
/* addressing mode is recognized
|
||||
/* Note: no special classes are defined, so if this
|
||||
/* table is used for TMS32020, invalid instructions
|
||||
/* will not result in errors (no BR0+/- addressing mode (for example)
|
||||
/* The ! character can match any of the patterns in the REGSET:
|
||||
.REGSET *BR0+ F0 1
|
||||
.REGSET *BR0- C0 1
|
||||
.REGSET *0+ E0 1
|
||||
.REGSET *0- D0 1
|
||||
.REGSET *+ A0 1
|
||||
.REGSET *- 90 1
|
||||
.REGSET * 80 1
|
||||
|
||||
|
||||
|
||||
|
||||
ABS "" CE1B 2 NOP 1
|
||||
|
||||
ADD !,@,@ 0088 2 T1 1 8 0F00
|
||||
ADD !,@ 0080 2 T1 1 8 0F00
|
||||
ADD ! 0080 2 NOP 1
|
||||
ADD @,@ 0000 2 TDMA 1 8 0F00
|
||||
ADD @ 0000 2 T1 1 0 007F
|
||||
|
||||
ADDC !,@ 4388 2 T1 1 0 0007
|
||||
ADDC ! 4380 2 NOP 1
|
||||
ADDC @ 4300 2 T1 1 0 007F
|
||||
|
||||
ADDH !,@ 4888 2 T1 1 0 0007
|
||||
ADDH ! 4880 2 NOP 1
|
||||
ADDH @ 4800 2 T1 1 0 007F
|
||||
|
||||
ADDK @ CC00 2 T1 1 0 00FF ;8 bit constant
|
||||
|
||||
ADDS !,@ 4988 2 T1 1 0 0007
|
||||
ADDS ! 4980 2 NOP 1
|
||||
ADDS @ 4900 2 T1 1 0 007F
|
||||
|
||||
ADDT !,@ 4A88 2 T1 1 0 0007
|
||||
ADDT ! 4A80 2 NOP 1
|
||||
ADDT @ 4A00 2 T1 1 0 007F
|
||||
|
||||
ADLK @,@ D002 4 TLK 1 8 0F00
|
||||
ADLK @ D002 4 TLK 1
|
||||
|
||||
ADRK @ 7E00 2 T1 1 0 00FF ;8 bit constant
|
||||
|
||||
AND !,@ 4E88 2 T1 1 0 0007
|
||||
AND ! 4E80 2 NOP 1
|
||||
AND @ 4E00 2 T1 1 0 007F
|
||||
|
||||
ANDK @,@ D004 4 TLK 1 8 0F00
|
||||
ANDK @ D004 4 TLK 1
|
||||
|
||||
APAC "" CE15 2 NOP 1
|
||||
|
||||
B @,!,@ FF88 4 TLK 1 0 07
|
||||
B @,! FF80 4 SWAP 1
|
||||
B @ FF80 4 SWAP 1
|
||||
|
||||
BACC "" CE25 2 NOP 1
|
||||
|
||||
BANZ @,!,@ FB88 4 TLK 1 0 07
|
||||
BANZ @,! FB80 4 SWAP 1
|
||||
BANZ @ FB90 4 SWAP 1 ; Default to the equivalent of
|
||||
; BANZ loop,*- (as per spec) for
|
||||
; TMS32010 compatibility.
|
||||
|
||||
BBNZ @,!,@ F988 4 TLK 1 0 07
|
||||
BBNZ @,! F980 4 SWAP 1
|
||||
BBNZ @ F980 4 SWAP 1
|
||||
|
||||
BBZ @,!,@ F888 4 TLK 1 0 07
|
||||
BBZ @,! F880 4 SWAP 1
|
||||
BBZ @ F880 4 SWAP 1
|
||||
|
||||
BC @,!,@ 5E88 4 TLK 1 0 07
|
||||
BC @,! 5E80 4 SWAP 1
|
||||
BC @ 5E80 4 SWAP 1
|
||||
|
||||
BGEZ @,!,@ F488 4 TLK 1 0 07
|
||||
BGEZ @,! F480 4 SWAP 1
|
||||
BGEZ @ F480 4 SWAP 1
|
||||
|
||||
BGZ @,!,@ F188 4 TLK 1 0 07
|
||||
BGZ @,! F180 4 SWAP 1
|
||||
BGZ @ F180 4 SWAP 1
|
||||
|
||||
BIOZ @,!,@ FA88 4 TLK 1 0 07
|
||||
BIOZ @,! FA80 4 SWAP 1
|
||||
BIOZ @ FA80 4 SWAP 1
|
||||
|
||||
BIT !,@,@ 9088 2 T1 1 8 0F00 ;8 bit shift
|
||||
BIT !,@ 9080 2 T1 1 8 0F00
|
||||
BIT @,@ 9000 2 TDMA 1 8 0F00
|
||||
|
||||
BITT !,@ 5788 2 T1 1 0 07
|
||||
BITT ! 5780 2 T1 1
|
||||
BITT @ 5700 2 T1 1 0 7F
|
||||
|
||||
BLEZ @,!,@ F288 4 TLK 1 0 07
|
||||
BLEZ @,! F280 4 SWAP 1
|
||||
BLEZ @ F280 4 SWAP 1
|
||||
|
||||
BLKD @,!,@ FD88 4 TLK 1 0 07
|
||||
BLKD @,! FD80 4 TLK 1 0 07
|
||||
BLKD @,@ FD00 4 TLK 1 0 FF
|
||||
|
||||
BLKP @,!,@ FC88 4 TLK 1 0 07
|
||||
BLKP @,! FC80 4 TLK 1 0 07
|
||||
BLKP @,@ FC00 4 TLK 1 0 FF
|
||||
|
||||
BLZ @,!,@ F388 4 TLK 1 0 07
|
||||
BLZ @,! F380 4 SWAP 1
|
||||
BLZ @ F380 4 SWAP 1
|
||||
|
||||
BNC @,!,@ 5F88 4 TLK 1 0 07
|
||||
BNC @,! 5F80 4 SWAP 1
|
||||
BNC @ 5F80 4 SWAP 1
|
||||
|
||||
BNV @,!,@ F788 4 TLK 1 0 07
|
||||
BNV @,! F780 4 SWAP 1
|
||||
BNV @ F780 4 SWAP 1
|
||||
|
||||
BNZ @,!,@ F588 4 TLK 1 0 07
|
||||
BNZ @,! F580 4 SWAP 1
|
||||
BNZ @ F580 4 SWAP 1
|
||||
|
||||
BV @,!,@ F088 4 TLK 1 0 07
|
||||
BV @,! F080 4 SWAP 1
|
||||
BV @ F080 4 SWAP 1
|
||||
|
||||
BZ @,!,@ F688 4 TLK 1 0 07
|
||||
BZ @,! F680 4 SWAP 1
|
||||
BZ @ F680 4 SWAP 1
|
||||
|
||||
CALA "" CE24 2 NOP 1
|
||||
|
||||
CALL @,!,@ FE88 4 TLK 1 0 07
|
||||
CALL @,! FE80 4 SWAP 1
|
||||
CALL @ FE80 4 SWAP 1
|
||||
|
||||
CMPL "" CE27 2 NOP 1
|
||||
|
||||
CMPR @ CE50 2 T1 1 0 03 ;2 BIT CONTANT
|
||||
|
||||
CNFD "" CE04 2 NOP 1
|
||||
|
||||
CNFP "" CE05 2 NOP 1
|
||||
|
||||
CONF "" CE3C 2 T1 4 0 03 ; c26 ONLY
|
||||
|
||||
DINT "" CE01 2 NOP 1
|
||||
|
||||
DMOV !,@ 5688 2 T1 1 0 07
|
||||
DMOV ! 5680 2 NOP 1
|
||||
DMOV @ 5600 2 T1 1 0 007F
|
||||
|
||||
EINT "" CE00 2 NOP 1
|
||||
|
||||
FORT @ CE0E 2 T1 1 0 01
|
||||
|
||||
IDLE "" CE1F 2 NOP 1
|
||||
|
||||
IN !,@,@ 8088 2 T1 1 8 0F00
|
||||
IN !,@ 8080 2 T1 1 8 0F00
|
||||
IN @,@ 8000 2 TDMA 1 8 0F00
|
||||
|
||||
LAC !,@,@ 2088 2 T1 1 8 0F00
|
||||
LAC !,@ 2080 2 T1 1 8 0F00
|
||||
LAC ! 2080 2 NOP 1
|
||||
LAC @,@ 2000 2 TDMA 1 8 0F00
|
||||
LAC @ 2000 2 T1 1 0 007F
|
||||
|
||||
LACK @ CA00 2 T1 1 0 00FF ;tested for -25
|
||||
|
||||
LACT !,@ 4288 2 T1 1 0 07
|
||||
LACT ! 4280 2 NOP 1
|
||||
LACT @ 4200 2 T1 1 0 007F
|
||||
|
||||
LALK @,@ D001 4 TLK 1 8 0F00
|
||||
LALK @ D001 4 TLK 1
|
||||
|
||||
LAR @,!,@ 3088 2 TAR 1 0 07
|
||||
LAR @,! 3080 2 TAR 1 0 07
|
||||
LAR @,@ 3000 2 TAR 1 0 7F
|
||||
|
||||
LARK @,@ C000 2 TAR 1 0 00FF
|
||||
LARP @ 5588 2 T1 1 0 0007
|
||||
|
||||
LDP !,@ 5288 2 T1 1 0 07
|
||||
LDP ! 5280 2 NOP 1
|
||||
LDP @ 5200 2 T1 1 0 007F
|
||||
|
||||
LDPK @ C800 2 T1 1 0 01FF ;9 bit constant
|
||||
|
||||
LPH !,@ 5388 2 T1 1 0 07
|
||||
LPH ! 5380 2 NOP 1
|
||||
LPH @ 5300 2 T1 1 0 7F
|
||||
|
||||
LRLK @,@ D000 4 T5 1 8 0700 ;<arp>, <const16>
|
||||
|
||||
LST !,@ 5088 2 T1 1 0 07
|
||||
LST ! 5080 2 NOP 1
|
||||
LST @ 5000 2 T1 1 0 7F
|
||||
|
||||
LST1 !,@ 5188 2 T1 1 0 07
|
||||
LST1 ! 5180 2 NOP 1
|
||||
LST1 @ 5100 2 T1 1 0 7F
|
||||
|
||||
LT !,@ 3C88 2 T1 1 0 07
|
||||
LT ! 3C80 2 NOP 1
|
||||
LT @ 3C00 2 T1 1 0 7F
|
||||
|
||||
LTA !,@ 3D88 2 T1 1 0 07
|
||||
LTA ! 3D80 2 NOP 1
|
||||
LTA @ 3D00 2 T1 1 0 7F
|
||||
|
||||
LTD !,@ 3F88 2 T1 1 0 07
|
||||
LTD ! 3F80 2 NOP 1
|
||||
LTD @ 3F00 2 T1 1 0 7F
|
||||
|
||||
LTP !,@ 3E88 2 T1 1 0 07
|
||||
LTP ! 3E80 2 NOP 1
|
||||
LTP @ 3E00 2 T1 1 0 7F
|
||||
|
||||
LTS !,@ 5B88 2 T1 1 0 07
|
||||
LTS ! 5B80 2 NOP 1
|
||||
LTS @ 5B00 2 T1 1 0 7F
|
||||
|
||||
MAC @,!,@ 5D88 4 TLK 1 0 07
|
||||
MAC @,! 5D80 4 TLK 1 0 07
|
||||
MAC @,@ 5D00 4 TLK 1 0 7F
|
||||
|
||||
MACD @,!,@ 5C88 4 TLK 1 0 07
|
||||
MACD @,! 5C80 4 TLK 1 0 07
|
||||
MACD @,@ 5C00 4 TLK 1 0 7F
|
||||
|
||||
MAR !,@ 5588 2 T1 1 0 07
|
||||
MAR ! 5580 2 NOP 1
|
||||
MAR @ 5500 2 T1 1 0 7F
|
||||
|
||||
MPY !,@ 3888 2 T1 1 0 07
|
||||
MPY ! 3880 2 NOP 1
|
||||
MPY @ 3800 2 T1 1 0 7F
|
||||
|
||||
MPYA !,@ 3A88 2 T1 1 0 07
|
||||
MPYA ! 3A80 2 NOP 1
|
||||
MPYA @ 3A00 2 T1 1 0 7F
|
||||
|
||||
MPYK @ A000 2 T1 1 0 1FFF ;13 BIT CONTSTANT
|
||||
|
||||
MPYS !,@ 3B88 2 T1 1 0 07
|
||||
MPYS ! 3B80 2 NOP 1
|
||||
MPYS @ 3B00 2 T1 1 0 7F
|
||||
|
||||
MPYU !,@ CF88 2 T1 1 0 07
|
||||
MPYU ! CF80 2 NOP 1
|
||||
MPYU @ CF00 2 T1 1 0 7F
|
||||
|
||||
NEG "" CE23 2 NOP 1
|
||||
|
||||
NOP "" 5500 2 NOP 1
|
||||
|
||||
NORM ! CE82 2 NOP 1 ; C25
|
||||
NORM "" CEA2 2 NOP 1 ; C20
|
||||
|
||||
OR !,@ 4D88 2 T1 1 0 07
|
||||
OR ! 4D80 2 NOP 1
|
||||
OR @ 4D00 2 T1 1 0 7F
|
||||
|
||||
ORK @,@ D005 4 TLK 1 8 0F00
|
||||
ORK @ D005 4 TLK 1
|
||||
|
||||
OUT !,@,@ E088 2 T1 1 8 0F00
|
||||
OUT !,@ E080 2 T1 1 8 0F00
|
||||
OUT @,@ E000 2 TDMA 1 8 0F00
|
||||
|
||||
PAC "" CE14 2 NOP 1
|
||||
|
||||
POP "" CE1D 2 NOP 1
|
||||
|
||||
POPD !,@ 7A88 2 T1 1 0 07
|
||||
POPD ! 7A80 2 NOP 1
|
||||
POPD @ 7A00 2 T1 1 0 7F
|
||||
|
||||
PSHD !,@ 5488 2 T1 1 0 07
|
||||
PSHD ! 5480 2 NOP 1
|
||||
PSHD @ 5400 2 T1 1 0 7F
|
||||
|
||||
PUSH "" CE1C 2 NOP 1
|
||||
RC "" CE30 2 NOP 1
|
||||
RET "" CE26 2 NOP 1
|
||||
RFSM "" CE36 2 NOP 1
|
||||
RHM "" CE38 2 NOP 1
|
||||
ROL "" CE34 2 NOP 1
|
||||
ROR "" CE35 2 NOP 1
|
||||
ROVM "" CE02 2 NOP 1
|
||||
|
||||
RPT !,@ 4B88 2 T1 1 0 07
|
||||
RPT ! 4B80 2 NOP 1
|
||||
RPT @ 4B00 2 T1 1 0 7F
|
||||
|
||||
RPTK @ CB00 2 T1 1 0 00FF ;8 bit constant
|
||||
|
||||
RSXM "" CE06 2 NOP 1
|
||||
RTC "" CE32 2 NOP 1
|
||||
RTXM "" CE20 2 NOP 1
|
||||
RXF "" CE0C 2 NOP 1
|
||||
|
||||
/* shift count for SACH can only be 0,1, or 4 FOR 32020
|
||||
/* 0-7 FOR 320c25. For now, build the table specifically for the 320C25
|
||||
SACH !,@,@ 6888 2 T1 1 8 0700
|
||||
SACH !,@ 6880 2 T1 1 8 0700
|
||||
SACH ! 6880 2 NOP 1
|
||||
SACH @,@ 6800 2 TDMA 1 8 0700
|
||||
SACH @ 6800 2 T1 1 0 007F
|
||||
|
||||
SACL !,@,@ 6088 2 T1 1 8 0700
|
||||
SACL !,@ 6080 2 T1 1 8 0700
|
||||
SACL ! 6080 2 NOP 1
|
||||
SACL @,@ 6000 2 TDMA 1 8 0700
|
||||
SACL @ 6000 2 T1 1 0 007F
|
||||
|
||||
SAR @,!,@ 7088 2 TAR 1 0 0007
|
||||
SAR @,! 7080 2 TAR 1 0 0007
|
||||
SAR @,@ 7000 2 TAR 1 0 007F
|
||||
|
||||
SBLK @,@ D003 4 TLK 1 8 0F00
|
||||
SBLK @ D003 4 TLK 1
|
||||
|
||||
SBRK @ 7F00 2 T1 1 0 00FF
|
||||
|
||||
SC "" CE31 2 NOP 1
|
||||
SFL "" CE18 2 NOP 1
|
||||
SFR "" CE19 2 NOP 1
|
||||
SFSM "" CE37 2 NOP 1
|
||||
SHM "" CE39 2 NOP 1
|
||||
SOVM "" CE03 2 NOP 1
|
||||
SPAC "" CE16 2 NOP 1
|
||||
|
||||
SPH !,@ 7D88 2 T1 1 0 07
|
||||
SPH ! 7D80 2 NOP 1
|
||||
SPH @ 7D00 2 T1 1 0 7F
|
||||
|
||||
SPL !,@ 7C88 2 T1 1 0 07
|
||||
SPL ! 7C80 2 NOP 1
|
||||
SPL @ 7C00 2 T1 1 0 7F
|
||||
|
||||
SPM @ CE08 2 T1 1 0 03 ;2 bit constant
|
||||
|
||||
SQRA !,@ 3988 2 T1 1 0 07
|
||||
SQRA ! 3980 2 NOP 1
|
||||
SQRA @ 3900 2 T1 1 0 7F
|
||||
|
||||
SQRS !,@ 5A88 2 T1 1 0 07
|
||||
SQRS ! 5A80 2 NOP 1
|
||||
SQRS @ 5A00 2 T1 1 0 7F
|
||||
|
||||
SST !,@ 7888 2 T1 1 0 07
|
||||
SST ! 7880 2 NOP 1
|
||||
SST @ 7800 2 T1 1 0 7F
|
||||
|
||||
SST1 !,@ 7988 2 T1 1 0 07
|
||||
SST1 ! 7980 2 NOP 1
|
||||
SST1 @ 7900 2 T1 1 0 7F
|
||||
|
||||
SSXM "" CE07 2 NOP 1
|
||||
STC "" CE33 2 NOP 1
|
||||
STXM "" CE21 2 NOP 1
|
||||
|
||||
|
||||
SUB !,@,@ 1088 2 T1 1 8 0F00
|
||||
SUB !,@ 1080 2 T1 1 8 0F00
|
||||
SUB ! 1080 2 NOP 1
|
||||
SUB @,@ 1000 2 TDMA 1 8 0F00
|
||||
SUB @ 1000 2 T1 1 0 007F
|
||||
|
||||
SUBB !,@ 4F88 2 T1 1 0 07
|
||||
SUBB ! 4F80 2 NOP 1
|
||||
SUBB @ 4F00 2 T1 1 0 7F
|
||||
|
||||
SUBC !,@ 4788 2 T1 1 0 07
|
||||
SUBC ! 4780 2 NOP 1
|
||||
SUBC @ 4700 2 T1 1 0 7F
|
||||
|
||||
SUBH !,@ 4488 2 T1 1 0 07
|
||||
SUBH ! 4480 2 NOP 1
|
||||
SUBH @ 4400 2 T1 1 0 7F
|
||||
|
||||
SUBK @ CD00 2 T1 1 0 00FF
|
||||
|
||||
SUBS !,@ 4588 2 T1 1 0 07
|
||||
SUBS ! 4580 2 NOP 1
|
||||
SUBS @ 4500 2 T1 1 0 7F
|
||||
|
||||
SUBT !,@ 4688 2 T1 1 0 07
|
||||
SUBT ! 4680 2 NOP 1
|
||||
SUBT @ 4600 2 T1 1 0 7F
|
||||
|
||||
SXF "" CE0D 2 NOP 1
|
||||
|
||||
TBLR !,@ 5888 2 T1 1 0 07
|
||||
TBLR ! 5880 2 NOP 1
|
||||
TBLR @ 5800 2 T1 1 0 7F
|
||||
|
||||
TBLW !,@ 5988 2 T1 1 0 07
|
||||
TBLW ! 5980 2 NOP 1
|
||||
TBLW @ 5900 2 T1 1 0 7F
|
||||
|
||||
TRAP "" CE1E 2 NOP 1
|
||||
|
||||
XOR !,@ 4C88 2 T1 1 0 07
|
||||
XOR ! 4C80 2 NOP 1
|
||||
XOR @ 4C00 2 T1 1 0 7F
|
||||
|
||||
XORK @,@ D006 4 TLK 1 8 0F00
|
||||
XORK @ D006 4 TLK 1
|
||||
|
||||
ZAC "" CA00 2 NOP 1
|
||||
|
||||
ZALH !,@ 4088 2 T1 1 0 07
|
||||
ZALH ! 4080 2 NOP 1
|
||||
ZALH @ 4000 2 T1 1 0 7F
|
||||
|
||||
ZALR !,@ 7B88 2 T1 1 0 07
|
||||
ZALR ! 7B80 2 NOP 1
|
||||
ZALR @ 7B00 2 T1 1 0 7F
|
||||
|
||||
ZALS !,@ 4188 2 T1 1 0 07
|
||||
ZALS ! 4180 2 NOP 1
|
||||
ZALS @ 4100 2 T1 1 0 7F
|
||||
|
||||
281
LSource/bin/TASM48.TAB
Normal file
281
LSource/bin/TASM48.TAB
Normal file
@@ -0,0 +1,281 @@
|
||||
"TASM 8048 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm48.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table for the 8048 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorported, June 1987.
|
||||
/* CLASS bits are assigned as follows:
|
||||
/* bit 0 = 8X48, 8035, 8039, 8049 instructions
|
||||
/* bit 1 = 8X41A
|
||||
/* bit 2 = 8022
|
||||
/* bit 3 = 8021
|
||||
/* Note that some of the base instructions should be disabled for the
|
||||
/* 8041, 8022, and 8021, but are not.
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
ADD A,R0 68 1 NOP 1
|
||||
ADD A,R1 69 1 NOP 1
|
||||
ADD A,R2 6A 1 NOP 1
|
||||
ADD A,R3 6B 1 NOP 1
|
||||
ADD A,R4 6C 1 NOP 1
|
||||
ADD A,R5 6D 1 NOP 1
|
||||
ADD A,R6 6E 1 NOP 1
|
||||
ADD A,R7 6F 1 NOP 1
|
||||
ADD A,@R0 60 1 NOP 1
|
||||
ADD A,@R1 61 1 NOP 1
|
||||
ADD A,#* 03 2 NOP 1
|
||||
|
||||
ADDC A,R0 78 1 NOP 1
|
||||
ADDC A,R1 79 1 NOP 1
|
||||
ADDC A,R2 7A 1 NOP 1
|
||||
ADDC A,R3 7B 1 NOP 1
|
||||
ADDC A,R4 7C 1 NOP 1
|
||||
ADDC A,R5 7D 1 NOP 1
|
||||
ADDC A,R6 7E 1 NOP 1
|
||||
ADDC A,R7 7F 1 NOP 1
|
||||
ADDC A,@R0 70 1 NOP 1
|
||||
ADDC A,@R1 71 1 NOP 1
|
||||
ADDC A,#* 13 2 NOP 1
|
||||
|
||||
ANL A,R0 58 1 NOP 1
|
||||
ANL A,R1 59 1 NOP 1
|
||||
ANL A,R2 5A 1 NOP 1
|
||||
ANL A,R3 5B 1 NOP 1
|
||||
ANL A,R4 5C 1 NOP 1
|
||||
ANL A,R5 5D 1 NOP 1
|
||||
ANL A,R6 5E 1 NOP 1
|
||||
ANL A,R7 5F 1 NOP 1
|
||||
ANL A,@R0 50 1 NOP 1
|
||||
ANL A,@R1 51 1 NOP 1
|
||||
ANL A,#* 53 2 NOP 1
|
||||
ANL BUS,#* 98 2 NOP 1
|
||||
ANL P1,#* 99 2 NOP 1
|
||||
ANL P2,#* 9A 2 NOP 1
|
||||
|
||||
ANLD P4,A 9C 1 NOP 1
|
||||
ANLD P5,A 9D 1 NOP 1
|
||||
ANLD P6,A 9E 1 NOP 1
|
||||
ANLD P7,A 9F 1 NOP 1
|
||||
|
||||
CALL * 14 2 JMP 1
|
||||
|
||||
CLR A 27 1 NOP 1
|
||||
CLR C 97 1 NOP 1
|
||||
CLR F0 85 1 NOP 1
|
||||
CLR F1 A5 1 NOP 1
|
||||
|
||||
CPL A 37 1 NOP 1
|
||||
CPL C A7 1 NOP 1
|
||||
CPL F0 95 1 NOP 1
|
||||
CPL F1 B5 1 NOP 1
|
||||
|
||||
DA A 57 1 NOP 1
|
||||
|
||||
DEC A 07 1 NOP 1
|
||||
DEC R0 C8 1 NOP 1
|
||||
DEC R1 C9 1 NOP 1
|
||||
DEC R2 CA 1 NOP 1
|
||||
DEC R3 CB 1 NOP 1
|
||||
DEC R4 CC 1 NOP 1
|
||||
DEC R5 CD 1 NOP 1
|
||||
DEC R6 CE 1 NOP 1
|
||||
DEC R7 CF 1 NOP 1
|
||||
|
||||
DIS I 15 1 NOP 1
|
||||
DIS TCNTI 35 1 NOP 1
|
||||
|
||||
DJNZ R0,* E8 2 JTHISPAGE 1
|
||||
DJNZ R1,* E9 2 JTHISPAGE 1
|
||||
DJNZ R2,* EA 2 JTHISPAGE 1
|
||||
DJNZ R3,* EB 2 JTHISPAGE 1
|
||||
DJNZ R4,* EC 2 JTHISPAGE 1
|
||||
DJNZ R5,* ED 2 JTHISPAGE 1
|
||||
DJNZ R6,* EE 2 JTHISPAGE 1
|
||||
DJNZ R7,* EF 2 JTHISPAGE 1
|
||||
|
||||
EN DMA E5 1 NOP 2 ;8041
|
||||
EN FLAGS F5 1 NOP 2 ;8041
|
||||
EN I 05 1 NOP 1
|
||||
EN TCNTI 25 1 NOP 1
|
||||
ENT0 CLK 75 1 NOP 1
|
||||
|
||||
IN A,DBB 22 1 NOP 2 ;8041
|
||||
IN A,P0 08 1 NOP 8 ;8021
|
||||
IN A,P1 09 1 NOP 1
|
||||
IN A,P2 0A 1 NOP 1
|
||||
|
||||
INC A 17 1 NOP 1
|
||||
INC R0 18 1 NOP 1
|
||||
INC R1 19 1 NOP 1
|
||||
INC R2 1A 1 NOP 1
|
||||
INC R3 1B 1 NOP 1
|
||||
INC R4 1C 1 NOP 1
|
||||
INC R5 1D 1 NOP 1
|
||||
INC R6 1E 1 NOP 1
|
||||
INC R7 1F 1 NOP 1
|
||||
INC @R0 10 1 NOP 1
|
||||
INC @R1 11 1 NOP 1
|
||||
|
||||
INS A,BUS 08 1 NOP 1
|
||||
|
||||
JB0 * 12 2 JTHISPAGE 1
|
||||
JB1 * 32 2 JTHISPAGE 1
|
||||
JB2 * 52 2 JTHISPAGE 1
|
||||
JB3 * 72 2 JTHISPAGE 1
|
||||
JB4 * 92 2 JTHISPAGE 1
|
||||
JB5 * B2 2 JTHISPAGE 1
|
||||
JB6 * D2 2 JTHISPAGE 1
|
||||
JB7 * F2 2 JTHISPAGE 1
|
||||
|
||||
JMP * 04 2 JMP 1
|
||||
|
||||
JC * F6 2 JTHISPAGE 1
|
||||
JF0 * B6 2 JTHISPAGE 1
|
||||
JF1 * 76 2 JTHISPAGE 1
|
||||
JNC * E6 2 JTHISPAGE 1
|
||||
JNI * 86 2 JTHISPAGE 1
|
||||
JNIBF * D6 2 JTHISPAGE 2 ;8041
|
||||
JNT0 * 26 2 JTHISPAGE 1
|
||||
JNT1 * 46 2 JTHISPAGE 1
|
||||
JNZ * 96 2 JTHISPAGE 1
|
||||
JOBF * 86 2 JTHISPAGE 2 ;8041
|
||||
JTF * 16 2 JTHISPAGE 1
|
||||
JT0 * 36 2 JTHISPAGE 1
|
||||
JT1 * 56 2 JTHISPAGE 1
|
||||
JZ * C6 2 JTHISPAGE 1
|
||||
|
||||
JMPP @A B3 1 NOP 1
|
||||
|
||||
MOV A,PSW C7 1 NOP 1
|
||||
MOV A,R0 F8 1 NOP 1
|
||||
MOV A,R1 F9 1 NOP 1
|
||||
MOV A,R2 FA 1 NOP 1
|
||||
MOV A,R3 FB 1 NOP 1
|
||||
MOV A,R4 FC 1 NOP 1
|
||||
MOV A,R5 FD 1 NOP 1
|
||||
MOV A,R6 FE 1 NOP 1
|
||||
MOV A,R7 FF 1 NOP 1
|
||||
MOV A,T 42 1 NOP 1
|
||||
MOV A,@R0 F0 1 NOP 1
|
||||
MOV A,@R1 F1 1 NOP 1
|
||||
MOV A,#* 23 2 NOP 1
|
||||
MOV PSW,A D7 1 NOP 1
|
||||
MOV R0,A A8 1 NOP 1
|
||||
MOV R1,A A9 1 NOP 1
|
||||
MOV R2,A AA 1 NOP 1
|
||||
MOV R3,A AB 1 NOP 1
|
||||
MOV R4,A AC 1 NOP 1
|
||||
MOV R5,A AD 1 NOP 1
|
||||
MOV R6,A AE 1 NOP 1
|
||||
MOV R7,A AF 1 NOP 1
|
||||
MOV R0,#* B8 2 NOP 1
|
||||
MOV R1,#* B9 2 NOP 1
|
||||
MOV R2,#* BA 2 NOP 1
|
||||
MOV R3,#* BB 2 NOP 1
|
||||
MOV R4,#* BC 2 NOP 1
|
||||
MOV R5,#* BD 2 NOP 1
|
||||
MOV R6,#* BE 2 NOP 1
|
||||
MOV R7,#* BF 2 NOP 1
|
||||
MOV STS,A 90 1 NOP 2 ;8041
|
||||
MOV T,A 62 1 NOP 1
|
||||
MOV @R0,A A0 1 NOP 1
|
||||
MOV @R1,A A1 1 NOP 1
|
||||
MOV @R0,#* B0 2 NOP 1
|
||||
MOV @R1,#* B1 2 NOP 1
|
||||
|
||||
MOVD A,P4 0C 1 NOP 1
|
||||
MOVD A,P5 0D 1 NOP 1
|
||||
MOVD A,P6 0E 1 NOP 1
|
||||
MOVD A,P7 0F 1 NOP 1
|
||||
MOVD P4,A 3C 1 NOP 1
|
||||
MOVD P5,A 3D 1 NOP 1
|
||||
MOVD P6,A 3E 1 NOP 1
|
||||
MOVD P7,A 3F 1 NOP 1
|
||||
|
||||
MOVP A,@A A3 1 NOP 1
|
||||
MOVP3 A,@A E3 1 NOP 1
|
||||
|
||||
MOVX A,@R0 80 1 NOP 1
|
||||
MOVX A,@R1 81 1 NOP 1
|
||||
MOVX @R0,A 90 1 NOP 1
|
||||
MOVX @R1,A 91 1 NOP 1
|
||||
|
||||
NOP "" 00 1 NOP 1
|
||||
|
||||
ORL A,R0 48 1 NOP 1
|
||||
ORL A,R1 49 1 NOP 1
|
||||
ORL A,R2 4A 1 NOP 1
|
||||
ORL A,R3 4B 1 NOP 1
|
||||
ORL A,R4 4C 1 NOP 1
|
||||
ORL A,R5 4D 1 NOP 1
|
||||
ORL A,R6 4E 1 NOP 1
|
||||
ORL A,R7 4F 1 NOP 1
|
||||
ORL A,@R0 40 1 NOP 1
|
||||
ORL A,@R1 41 1 NOP 1
|
||||
ORL A,#* 43 2 NOP 1
|
||||
ORL BUS,#* 88 2 NOP 1
|
||||
ORL P1,#* 89 2 NOP 1
|
||||
ORL P2,#* 8A 2 NOP 1
|
||||
|
||||
ORLD P4,A 8C 1 NOP 1
|
||||
ORLD P5,A 8D 1 NOP 1
|
||||
ORLD P6,A 8E 1 NOP 1
|
||||
ORLD P7,A 8F 1 NOP 1
|
||||
|
||||
OUTL BUS,A 02 1 NOP 1
|
||||
OUT DBB,A 02 1 NOP 2 ;8041
|
||||
OUTL P0,A 90 1 NOP 8 ;8021
|
||||
OUTL P1,A 39 1 NOP 1
|
||||
OUTL P2,A 3A 1 NOP 1
|
||||
|
||||
RAD "" 80 1 NOP 4 ;8022
|
||||
|
||||
RET "" 83 1 NOP 1
|
||||
RETI "" 93 1 NOP 4 ;8022
|
||||
RETR "" 93 1 NOP 1
|
||||
|
||||
RL A E7 1 NOP 1
|
||||
RLC A F7 1 NOP 1
|
||||
RR A 77 1 NOP 1
|
||||
RRC A 67 1 NOP 1
|
||||
|
||||
SEL AN0 85 1 NOP 4 ;8022
|
||||
SEL AN1 95 1 NOP 4 ;8022
|
||||
SEL MB0 E5 1 NOP 1
|
||||
SEL MB1 F5 1 NOP 1
|
||||
SEL RB0 C5 1 NOP 1
|
||||
SEL RB1 D5 1 NOP 1
|
||||
|
||||
STOP TCNT 65 1 NOP 1
|
||||
STRT CNT 45 1 NOP 1
|
||||
STRT T 55 1 NOP 1
|
||||
|
||||
SWAP A 47 1 NOP 1
|
||||
|
||||
XCH A,R0 28 1 NOP 1
|
||||
XCH A,R1 29 1 NOP 1
|
||||
XCH A,R2 2A 1 NOP 1
|
||||
XCH A,R3 2B 1 NOP 1
|
||||
XCH A,R4 2C 1 NOP 1
|
||||
XCH A,R5 2D 1 NOP 1
|
||||
XCH A,R6 2E 1 NOP 1
|
||||
XCH A,R7 2F 1 NOP 1
|
||||
XCH A,@R0 20 1 NOP 1
|
||||
XCH A,@R1 21 1 NOP 1
|
||||
|
||||
XCHD A,@R0 30 1 NOP 1
|
||||
XCHD A,@R1 31 1 NOP 1
|
||||
|
||||
XRL A,R0 D8 1 NOP 1
|
||||
XRL A,R1 D9 1 NOP 1
|
||||
XRL A,R2 DA 1 NOP 1
|
||||
XRL A,R3 DB 1 NOP 1
|
||||
XRL A,R4 DC 1 NOP 1
|
||||
XRL A,R5 DD 1 NOP 1
|
||||
XRL A,R6 DE 1 NOP 1
|
||||
XRL A,R7 DF 1 NOP 1
|
||||
XRL A,@R0 D0 1 NOP 1
|
||||
XRL A,@R1 D1 1 NOP 1
|
||||
XRL A,#* D3 2 NOP 1
|
||||
|
||||
285
LSource/bin/TASM51.TAB
Normal file
285
LSource/bin/TASM51.TAB
Normal file
@@ -0,0 +1,285 @@
|
||||
"TASM 8051 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm51.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table for the 8051 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorported, June 1987.
|
||||
/*
|
||||
|
||||
.NOARGSHIFT
|
||||
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
ACALL * 11 2 JMP 1 0 F800
|
||||
|
||||
ADD A,R0 28 1 NOP 1
|
||||
ADD A,R1 29 1 NOP 1
|
||||
ADD A,R2 2A 1 NOP 1
|
||||
ADD A,R3 2B 1 NOP 1
|
||||
ADD A,R4 2C 1 NOP 1
|
||||
ADD A,R5 2D 1 NOP 1
|
||||
ADD A,R6 2E 1 NOP 1
|
||||
ADD A,R7 2F 1 NOP 1
|
||||
ADD A,@R0 26 1 NOP 1
|
||||
ADD A,@R1 27 1 NOP 1
|
||||
ADD A,#* 24 2 NOP 1
|
||||
ADD A,* 25 2 NOP 1
|
||||
|
||||
ADDC A,R0 38 1 NOP 1
|
||||
ADDC A,R1 39 1 NOP 1
|
||||
ADDC A,R2 3A 1 NOP 1
|
||||
ADDC A,R3 3B 1 NOP 1
|
||||
ADDC A,R4 3C 1 NOP 1
|
||||
ADDC A,R5 3D 1 NOP 1
|
||||
ADDC A,R6 3E 1 NOP 1
|
||||
ADDC A,R7 3F 1 NOP 1
|
||||
ADDC A,@R0 36 1 NOP 1
|
||||
ADDC A,@R1 37 1 NOP 1
|
||||
ADDC A,#* 34 2 NOP 1
|
||||
ADDC A,* 35 2 NOP 1
|
||||
|
||||
AJMP * 01 2 JMP 1 0 F800
|
||||
|
||||
ANL A,R0 58 1 NOP 1
|
||||
ANL A,R1 59 1 NOP 1
|
||||
ANL A,R2 5A 1 NOP 1
|
||||
ANL A,R3 5B 1 NOP 1
|
||||
ANL A,R4 5C 1 NOP 1
|
||||
ANL A,R5 5D 1 NOP 1
|
||||
ANL A,R6 5E 1 NOP 1
|
||||
ANL A,R7 5F 1 NOP 1
|
||||
ANL A,@R0 56 1 NOP 1
|
||||
ANL A,@R1 57 1 NOP 1
|
||||
ANL A,#* 54 2 NOP 1
|
||||
ANL A,* 55 2 NOP 1
|
||||
ANL C,/* b0 2 NOP 1
|
||||
ANL C,* 82 2 NOP 1
|
||||
ANL *,A 52 2 NOP 1
|
||||
ANL *,#* 53 3 COMBINE 1
|
||||
|
||||
CJNE A,#*,* b4 3 CR 1
|
||||
CJNE A,*,* b5 3 CR 1
|
||||
CJNE R0,#*,* b8 3 CR 1
|
||||
CJNE R1,#*,* b9 3 CR 1
|
||||
CJNE R2,#*,* ba 3 CR 1
|
||||
CJNE R3,#*,* bb 3 CR 1
|
||||
CJNE R4,#*,* bc 3 CR 1
|
||||
CJNE R5,#*,* bd 3 CR 1
|
||||
CJNE R6,#*,* be 3 CR 1
|
||||
CJNE R7,#*,* bf 3 CR 1
|
||||
CJNE @R0,#*,* b6 3 CR 1
|
||||
CJNE @R1,#*,* b7 3 CR 1
|
||||
|
||||
CLR A e4 1 NOP 1
|
||||
CLR C c3 1 NOP 1
|
||||
CLR * c2 2 NOP 1
|
||||
|
||||
CPL A f4 1 NOP 1
|
||||
CPL C b3 1 NOP 1
|
||||
CPL * b2 2 NOP 1
|
||||
|
||||
DA A d4 1 NOP 1
|
||||
|
||||
DEC A 14 1 NOP 1
|
||||
DEC R0 18 1 NOP 1
|
||||
DEC R1 19 1 NOP 1
|
||||
DEC R2 1A 1 NOP 1
|
||||
DEC R3 1B 1 NOP 1
|
||||
DEC R4 1C 1 NOP 1
|
||||
DEC R5 1D 1 NOP 1
|
||||
DEC R6 1E 1 NOP 1
|
||||
DEC R7 1F 1 NOP 1
|
||||
DEC @R0 16 1 NOP 1
|
||||
DEC @R1 17 1 NOP 1
|
||||
DEC * 15 2 NOP 1
|
||||
|
||||
DIV AB 84 1 NOP 1
|
||||
|
||||
DJNZ R0,* d8 2 R1 1
|
||||
DJNZ R1,* d9 2 R1 1
|
||||
DJNZ R2,* dA 2 R1 1
|
||||
DJNZ R3,* dB 2 R1 1
|
||||
DJNZ R4,* dC 2 R1 1
|
||||
DJNZ R5,* dD 2 R1 1
|
||||
DJNZ R6,* dE 2 R1 1
|
||||
DJNZ R7,* dF 2 R1 1
|
||||
DJNZ *,* d5 3 CR 1
|
||||
|
||||
INC A 04 1 NOP 1
|
||||
INC R0 08 1 NOP 1
|
||||
INC R1 09 1 NOP 1
|
||||
INC R2 0A 1 NOP 1
|
||||
INC R3 0B 1 NOP 1
|
||||
INC R4 0C 1 NOP 1
|
||||
INC R5 0D 1 NOP 1
|
||||
INC R6 0E 1 NOP 1
|
||||
INC R7 0F 1 NOP 1
|
||||
INC @R0 06 1 NOP 1
|
||||
INC @R1 07 1 NOP 1
|
||||
INC DPTR a3 1 NOP 1
|
||||
INC * 05 2 NOP 1
|
||||
|
||||
JB *,* 20 3 CR 1
|
||||
JBC *,* 10 3 CR 1
|
||||
JC * 40 2 R1 1
|
||||
JMP @A+DPTR 73 1 NOP 1
|
||||
JNB *,* 30 3 CR 1
|
||||
JNC * 50 2 R1 1
|
||||
JNZ * 70 2 R1 1
|
||||
JZ * 60 2 R1 1
|
||||
|
||||
LCALL * 12 3 SWAP 1
|
||||
|
||||
LJMP * 02 3 SWAP 1
|
||||
|
||||
MOV A,R0 e8 1 NOP 1
|
||||
MOV A,R1 e9 1 NOP 1
|
||||
MOV A,R2 eA 1 NOP 1
|
||||
MOV A,R3 eB 1 NOP 1
|
||||
MOV A,R4 eC 1 NOP 1
|
||||
MOV A,R5 eD 1 NOP 1
|
||||
MOV A,R6 eE 1 NOP 1
|
||||
MOV A,R7 eF 1 NOP 1
|
||||
MOV A,@R0 e6 1 NOP 1
|
||||
MOV A,@R1 e7 1 NOP 1
|
||||
MOV A,#* 74 2 NOP 1
|
||||
MOV A,* e5 2 NOP 1
|
||||
MOV C,* a2 2 NOP 1
|
||||
MOV DPTR,#* 90 3 SWAP 1
|
||||
MOV R0,A f8 1 NOP 1
|
||||
MOV R1,A f9 1 NOP 1
|
||||
MOV R2,A fA 1 NOP 1
|
||||
MOV R3,A fB 1 NOP 1
|
||||
MOV R4,A fC 1 NOP 1
|
||||
MOV R5,A fD 1 NOP 1
|
||||
MOV R6,A fE 1 NOP 1
|
||||
MOV R7,A fF 1 NOP 1
|
||||
MOV R0,#* 78 2 NOP 1
|
||||
MOV R1,#* 79 2 NOP 1
|
||||
MOV R2,#* 7A 2 NOP 1
|
||||
MOV R3,#* 7B 2 NOP 1
|
||||
MOV R4,#* 7C 2 NOP 1
|
||||
MOV R5,#* 7D 2 NOP 1
|
||||
MOV R6,#* 7E 2 NOP 1
|
||||
MOV R7,#* 7F 2 NOP 1
|
||||
MOV R0,* a8 2 NOP 1
|
||||
MOV R1,* a9 2 NOP 1
|
||||
MOV R2,* aA 2 NOP 1
|
||||
MOV R3,* aB 2 NOP 1
|
||||
MOV R4,* aC 2 NOP 1
|
||||
MOV R5,* aD 2 NOP 1
|
||||
MOV R6,* aE 2 NOP 1
|
||||
MOV R7,* aF 2 NOP 1
|
||||
MOV @R0,A f6 1 NOP 1
|
||||
MOV @R1,A f7 1 NOP 1
|
||||
MOV @R0,#* 76 2 NOP 1
|
||||
MOV @R1,#* 77 2 NOP 1
|
||||
MOV @R0,* a6 2 NOP 1
|
||||
MOV @R1,* a7 2 NOP 1
|
||||
MOV *,A f5 2 NOP 1
|
||||
MOV *,C 92 2 NOP 1
|
||||
MOV *,R0 88 2 NOP 1
|
||||
MOV *,R1 89 2 NOP 1
|
||||
MOV *,R2 8A 2 NOP 1
|
||||
MOV *,R3 8B 2 NOP 1
|
||||
MOV *,R4 8C 2 NOP 1
|
||||
MOV *,R5 8D 2 NOP 1
|
||||
MOV *,R6 8E 2 NOP 1
|
||||
MOV *,R7 8F 2 NOP 1
|
||||
MOV *,@R0 86 2 NOP 1
|
||||
MOV *,@R1 87 2 NOP 1
|
||||
MOV *,#* 75 3 COMBINE 1
|
||||
MOV *,* 85 3 CSWAP 1
|
||||
|
||||
MOVC A,@A+DPTR 93 1 NOP 1
|
||||
MOVC A,@A+PC 83 1 NOP 1
|
||||
|
||||
MOVX A,@R0 e2 1 NOP 1
|
||||
MOVX A,@R1 e3 1 NOP 1
|
||||
MOVX A,@DPTR e0 1 NOP 1
|
||||
MOVX @R0,A f2 1 NOP 1
|
||||
MOVX @R1,A f3 1 NOP 1
|
||||
MOVX @DPTR,A f0 1 NOP 1
|
||||
|
||||
MUL AB a4 1 NOP 1
|
||||
|
||||
NOP "" 00 1 NOP 1
|
||||
|
||||
ORL A,R0 48 1 NOP 1
|
||||
ORL A,R1 49 1 NOP 1
|
||||
ORL A,R2 4A 1 NOP 1
|
||||
ORL A,R3 4B 1 NOP 1
|
||||
ORL A,R4 4C 1 NOP 1
|
||||
ORL A,R5 4D 1 NOP 1
|
||||
ORL A,R6 4E 1 NOP 1
|
||||
ORL A,R7 4F 1 NOP 1
|
||||
ORL A,@R0 46 1 NOP 1
|
||||
ORL A,@R1 47 1 NOP 1
|
||||
ORL A,#* 44 2 NOP 1
|
||||
ORL A,* 45 2 NOP 1
|
||||
ORL C,/* a0 2 NOP 1
|
||||
ORL C,* 72 2 NOP 1
|
||||
ORL *,A 42 2 NOP 1
|
||||
ORL *,#* 43 3 COMBINE 1
|
||||
|
||||
POP * d0 2 NOP 1
|
||||
PUSH * c0 2 NOP 1
|
||||
|
||||
RET "" 22 1 NOP 1
|
||||
RETI "" 32 1 NOP 1
|
||||
|
||||
RL A 23 1 NOP 1
|
||||
RLC A 33 1 NOP 1
|
||||
RR A 03 1 NOP 1
|
||||
RRC A 13 1 NOP 1
|
||||
|
||||
SETB C d3 1 NOP 1
|
||||
SETB * d2 2 NOP 1
|
||||
|
||||
SJMP * 80 2 R1 1
|
||||
|
||||
SUBB A,R0 98 1 NOP 1
|
||||
SUBB A,R1 99 1 NOP 1
|
||||
SUBB A,R2 9A 1 NOP 1
|
||||
SUBB A,R3 9B 1 NOP 1
|
||||
SUBB A,R4 9C 1 NOP 1
|
||||
SUBB A,R5 9D 1 NOP 1
|
||||
SUBB A,R6 9E 1 NOP 1
|
||||
SUBB A,R7 9F 1 NOP 1
|
||||
SUBB A,@R0 96 1 NOP 1
|
||||
SUBB A,@R1 97 1 NOP 1
|
||||
SUBB A,#* 94 2 NOP 1
|
||||
SUBB A,* 95 2 NOP 1
|
||||
|
||||
SWAP A c4 1 NOP 1
|
||||
|
||||
XCH A,R0 c8 1 NOP 1
|
||||
XCH A,R1 c9 1 NOP 1
|
||||
XCH A,R2 cA 1 NOP 1
|
||||
XCH A,R3 cB 1 NOP 1
|
||||
XCH A,R4 cC 1 NOP 1
|
||||
XCH A,R5 cD 1 NOP 1
|
||||
XCH A,R6 cE 1 NOP 1
|
||||
XCH A,R7 cF 1 NOP 1
|
||||
XCH A,@R0 c6 1 NOP 1
|
||||
XCH A,@R1 c7 1 NOP 1
|
||||
XCH A,* c5 2 NOP 1
|
||||
|
||||
XCHD A,@R0 d6 1 NOP 1
|
||||
XCHD A,@R1 d7 1 NOP 1
|
||||
|
||||
XRL A,R0 68 1 NOP 1
|
||||
XRL A,R1 69 1 NOP 1
|
||||
XRL A,R2 6A 1 NOP 1
|
||||
XRL A,R3 6B 1 NOP 1
|
||||
XRL A,R4 6C 1 NOP 1
|
||||
XRL A,R5 6D 1 NOP 1
|
||||
XRL A,R6 6E 1 NOP 1
|
||||
XRL A,R7 6F 1 NOP 1
|
||||
XRL A,@R0 66 1 NOP 1
|
||||
XRL A,@R1 67 1 NOP 1
|
||||
XRL A,#* 64 2 NOP 1
|
||||
XRL A,* 65 2 NOP 1
|
||||
XRL *,A 62 2 NOP 1
|
||||
XRL *,#* 63 3 COMBINE 1
|
||||
|
||||
222
LSource/bin/TASM65.TAB
Normal file
222
LSource/bin/TASM65.TAB
Normal file
@@ -0,0 +1,222 @@
|
||||
"TASM 6502 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm65.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table for the 6502 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorported, June 1987.
|
||||
/* Note that there are two classes of extended instructions beyond
|
||||
/* the standard set. The classes are assigned bits as follows:
|
||||
/* bit 0 = standard set
|
||||
/* bit 1 = extended instructions for R65C02
|
||||
/* bit 2 = extended instructions for R65C00/21
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
ADC #* 69 2 NOP 1
|
||||
ADC (*,X) 61 2 NOP 1
|
||||
ADC (*),Y 71 2 NOP 1
|
||||
ADC (*) 72 2 NOP 2
|
||||
ADC *,X 7D 3 ZP 1
|
||||
ADC *,Y 79 3 NOP 1
|
||||
ADC * 6D 3 ZP 1
|
||||
|
||||
AND #* 29 2 NOP 1
|
||||
AND (*,X) 21 2 NOP 1
|
||||
AND (*),Y 31 2 NOP 1
|
||||
AND (*) 32 2 NOP 2
|
||||
AND *,X 3D 3 ZP 1
|
||||
AND *,Y 39 3 NOP 1
|
||||
AND * 2D 3 ZP 1
|
||||
|
||||
ASL A 0A 1 NOP 1
|
||||
ASL *,X 1E 3 ZP 1
|
||||
ASL * 0E 3 ZP 1
|
||||
|
||||
BBR0 *,* 0f 3 CR 6
|
||||
BBR1 *,* 1f 3 CR 6
|
||||
BBR2 *,* 2f 3 CR 6
|
||||
BBR3 *,* 3f 3 CR 6
|
||||
BBR4 *,* 4f 3 CR 6
|
||||
BBR5 *,* 5f 3 CR 6
|
||||
BBR6 *,* 6f 3 CR 6
|
||||
BBR7 *,* 7f 3 CR 6
|
||||
|
||||
BBS0 *,* 8f 3 CR 6
|
||||
BBS1 *,* 9f 3 CR 6
|
||||
BBS2 *,* af 3 CR 6
|
||||
BBS3 *,* bf 3 CR 6
|
||||
BBS4 *,* cf 3 CR 6
|
||||
BBS5 *,* df 3 CR 6
|
||||
BBS6 *,* ef 3 CR 6
|
||||
BBS7 *,* ff 3 CR 6
|
||||
|
||||
BCC * 90 2 R1 1
|
||||
BCS * B0 2 R1 1
|
||||
BEQ * F0 2 R1 1
|
||||
BMI * 30 2 R1 1
|
||||
BNE * D0 2 R1 1
|
||||
BPL * 10 2 R1 1
|
||||
BRA * 80 2 R1 6
|
||||
BVC * 50 2 R1 1
|
||||
BVS * 70 2 R1 1
|
||||
|
||||
BIT #* 89 2 NOP 2
|
||||
BIT *,X 3C 3 ZP 2
|
||||
BIT * 2C 3 ZP 1
|
||||
|
||||
BRK "" 00 1 NOP 1
|
||||
|
||||
CLC "" 18 1 NOP 1
|
||||
CLD "" D8 1 NOP 1
|
||||
CLI "" 58 1 NOP 1
|
||||
CLV "" B8 1 NOP 1
|
||||
|
||||
CMP #* C9 2 NOP 1
|
||||
CMP (*,X) C1 2 NOP 1
|
||||
CMP (*),Y D1 2 NOP 1
|
||||
CMP (*) D2 2 NOP 2
|
||||
CMP *,X DD 3 ZP 1
|
||||
CMP *,Y D9 3 NOP 1
|
||||
CMP * CD 3 ZP 1
|
||||
|
||||
CPX #* E0 2 NOP 1
|
||||
CPX * EC 3 ZP 1
|
||||
|
||||
CPY #* C0 2 NOP 1
|
||||
CPY * CC 3 ZP 1
|
||||
|
||||
DEC A 3A 1 NOP 2
|
||||
DEC *,X DE 3 ZP 1
|
||||
DEC * CE 3 ZP 1
|
||||
|
||||
DEX "" CA 1 NOP 1
|
||||
DEY "" 88 1 NOP 1
|
||||
|
||||
EOR #* 49 2 NOP 1
|
||||
EOR (*,X) 41 2 NOP 1
|
||||
EOR (*),Y 51 2 NOP 1
|
||||
EOR (*) 52 2 NOP 2
|
||||
EOR *,X 5D 3 ZP 1
|
||||
EOR *,Y 59 3 NOP 1
|
||||
EOR * 4D 3 ZP 1
|
||||
|
||||
INC A 1A 1 NOP 2
|
||||
INC *,X FE 3 ZP 1
|
||||
INC * EE 3 ZP 1
|
||||
|
||||
INX "" E8 1 NOP 1
|
||||
INY "" C8 1 NOP 1
|
||||
|
||||
JMP (*,X) 7C 3 NOP 2
|
||||
JMP (*) 6C 3 NOP 1
|
||||
JMP * 4C 3 NOP 1
|
||||
|
||||
JSR * 20 3 NOP 1
|
||||
|
||||
LDA #* A9 2 NOP 1
|
||||
LDA (*,X) A1 2 NOP 1
|
||||
LDA (*),Y B1 2 NOP 1
|
||||
LDA (*) B2 2 NOP 2
|
||||
LDA *,X BD 3 ZP 1
|
||||
LDA *,Y B9 3 NOP 1
|
||||
LDA * AD 3 ZP 1
|
||||
|
||||
LDX #* A2 2 NOP 1
|
||||
LDX *,Y BE 3 ZP 1
|
||||
LDX * AE 3 ZP 1
|
||||
|
||||
LDY #* A0 2 NOP 1
|
||||
LDY *,X BC 3 ZP 1
|
||||
LDY * AC 3 ZP 1
|
||||
|
||||
LSR A 4A 1 NOP 1
|
||||
LSR *,X 5E 3 ZP 1
|
||||
LSR * 4E 3 ZP 1
|
||||
|
||||
MUL "" 02 1 NOP 4 /* R65C00/21 only*/
|
||||
|
||||
NOP "" EA 1 NOP 1
|
||||
|
||||
ORA #* 09 2 NOP 1
|
||||
ORA (*,X) 01 2 NOP 1
|
||||
ORA (*),Y 11 2 NOP 1
|
||||
ORA (*) 12 2 NOP 2
|
||||
ORA *,X 1D 3 ZP 1
|
||||
ORA *,Y 19 3 NOP 1
|
||||
ORA * 0D 3 ZP 1
|
||||
|
||||
PHA "" 48 1 NOP 1
|
||||
PHP "" 08 1 NOP 1
|
||||
PHX "" DA 1 NOP 6
|
||||
PHY "" 5A 1 NOP 6
|
||||
PLA "" 68 1 NOP 1
|
||||
PLP "" 28 1 NOP 1
|
||||
PLX "" FA 1 NOP 6
|
||||
PLY "" 7A 1 NOP 6
|
||||
|
||||
RMB0 * 07 2 NOP 6
|
||||
RMB1 * 17 2 NOP 6
|
||||
RMB2 * 27 2 NOP 6
|
||||
RMB3 * 37 2 NOP 6
|
||||
RMB4 * 47 2 NOP 6
|
||||
RMB5 * 57 2 NOP 6
|
||||
RMB6 * 67 2 NOP 6
|
||||
RMB7 * 77 2 NOP 6
|
||||
|
||||
ROL A 2A 1 NOP 1
|
||||
ROL *,X 3E 3 ZP 1
|
||||
ROL * 2E 3 ZP 1
|
||||
|
||||
ROR A 6A 1 NOP 1
|
||||
ROR *,X 7E 3 ZP 1
|
||||
ROR * 6E 3 ZP 1
|
||||
|
||||
RTI "" 40 1 NOP 1
|
||||
RTS "" 60 1 NOP 1
|
||||
|
||||
SBC #* E9 2 NOP 1
|
||||
SBC (*,X) E1 2 NOP 1
|
||||
SBC (*),Y F1 2 NOP 1
|
||||
SBC (*) F2 2 NOP 2
|
||||
SBC *,X FD 3 ZP 1
|
||||
SBC *,Y F9 3 NOP 1
|
||||
SBC * ED 3 ZP 1
|
||||
|
||||
SEC "" 38 1 NOP 1
|
||||
SED "" F8 1 NOP 1
|
||||
SEI "" 78 1 NOP 1
|
||||
|
||||
SMB0 * 87 2 NOP 6
|
||||
SMB1 * 97 2 NOP 6
|
||||
SMB2 * a7 2 NOP 6
|
||||
SMB3 * b7 2 NOP 6
|
||||
SMB4 * c7 2 NOP 6
|
||||
SMB5 * d7 2 NOP 6
|
||||
SMB6 * e7 2 NOP 6
|
||||
SMB7 * f7 2 NOP 6
|
||||
|
||||
STA (*,X) 81 2 NOP 1
|
||||
STA (*),Y 91 2 NOP 1
|
||||
STA (*) 92 2 NOP 2
|
||||
STA *,X 9D 3 ZP 1
|
||||
STA *,Y 99 3 NOP 1
|
||||
STA * 8D 3 ZP 1
|
||||
|
||||
STX *,Y 96 2 ZP 1
|
||||
STX * 8E 3 ZP 1
|
||||
|
||||
STY *,X 94 2 NOP 1
|
||||
STY * 8C 3 ZP 1
|
||||
|
||||
STZ *,X 9e 3 ZP 2
|
||||
STZ * 9c 3 ZP 2
|
||||
|
||||
TAX "" AA 1 NOP 1
|
||||
TAY "" A8 1 NOP 1
|
||||
TRB * 1c 3 ZP 2
|
||||
TSB * 0c 3 ZP 2
|
||||
TSX "" BA 1 NOP 1
|
||||
TXA "" 8A 1 NOP 1
|
||||
TXS "" 9A 1 NOP 1
|
||||
TYA "" 98 1 NOP 1
|
||||
|
||||
348
LSource/bin/TASM68.TAB
Normal file
348
LSource/bin/TASM68.TAB
Normal file
@@ -0,0 +1,348 @@
|
||||
"TASM 6800-6811 Assembler"
|
||||
/****************************************************************************
|
||||
/* $Id: tasm68.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* Originally submitted by Richard P. White, June 4,1989 */
|
||||
/* Corrected and enhanced by T.N. Anderson, STI */
|
||||
/* Enhanced for the 68HC11 by George Blat, Nov 3, 1990
|
||||
/* Class bits defined as follows:
|
||||
/*
|
||||
/* bit 0 for 6800
|
||||
/* bit 1 for 6801/6803
|
||||
/* bit 2 for 68HC11
|
||||
/*
|
||||
/* Note that TASM deviates from motorola syntax for BCLR, BSET,
|
||||
/* BRCLR, and BRSET instructions. TASM requires commas between
|
||||
/* each arg. Motorola requires white space before the make and
|
||||
/* label args.
|
||||
|
||||
.MSFIRST
|
||||
|
||||
ABA "" 1B 1 NOP 1
|
||||
ABX "" 3A 1 NOP 2
|
||||
ABY "" 183A 2 NOP 4
|
||||
|
||||
ADCA #* 89 2 NOP 1
|
||||
ADCA *,Y 18A9 3 NOP 4
|
||||
ADCA *,X A9 2 NOP 1
|
||||
ADCA * B9 3 MZERO 1
|
||||
|
||||
ADCB #* C9 2 NOP 1
|
||||
ADCB *,Y 18E9 3 NOP 4
|
||||
ADCB *,X E9 2 NOP 1
|
||||
ADCB * F9 3 MZERO 1
|
||||
|
||||
ADDA #* 8B 2 NOP 1
|
||||
ADDA *,Y 18AB 3 NOP 4
|
||||
ADDA *,X AB 2 NOP 1
|
||||
ADDA * BB 3 MZERO 1
|
||||
|
||||
ADDB #* CB 2 NOP 1
|
||||
ADDB *,Y 18EB 3 NOP 4
|
||||
ADDB *,X EB 2 NOP 1
|
||||
ADDB * FB 3 MZERO 1
|
||||
|
||||
ADDD #* C3 3 SWAP 2
|
||||
ADDD *,Y 18E3 3 NOP 4
|
||||
ADDD *,X E3 2 NOP 2
|
||||
ADDD * F3 3 MZERO 2
|
||||
|
||||
ANDA #* 84 2 NOP 1
|
||||
ANDA *,Y 18A4 3 NOP 4
|
||||
ANDA *,X A4 2 NOP 1
|
||||
ANDA * B4 3 MZERO 1
|
||||
|
||||
ANDB #* C4 2 NOP 1
|
||||
ANDB *,Y 18E4 3 NOP 4
|
||||
ANDB *,X E4 2 NOP 1
|
||||
ANDB * F4 3 MZERO 1
|
||||
|
||||
ASL *,Y 1868 3 NOP 4
|
||||
ASL *,X 68 2 NOP 1
|
||||
ASL * 78 3 SWAP 1
|
||||
ASLA "" 48 1 NOP 1
|
||||
ASLB "" 58 1 NOP 1
|
||||
ASLD "" 05 1 NOP 2
|
||||
|
||||
ASR *,Y 1867 3 NOP 4
|
||||
ASR *,X 67 2 NOP 1
|
||||
ASR * 77 3 SWAP 1
|
||||
ASRA "" 47 1 NOP 1
|
||||
ASRB "" 57 1 NOP 1
|
||||
|
||||
BCC * 24 2 R1 1
|
||||
BCLR *,X,* 1D 3 COMB 4
|
||||
BCLR *,Y,* 181D 4 COMB 4
|
||||
BCLR *,#* 15 3 COMB 4 /* allow # since mask is immediate data
|
||||
BCLR *,* 15 3 COMB 4
|
||||
BCS * 25 2 R1 1
|
||||
BEQ * 27 2 R1 1
|
||||
BGE * 2C 2 R1 1
|
||||
BGT * 2E 2 R1 1
|
||||
BHI * 22 2 R1 1
|
||||
BHS * 24 2 R1 1
|
||||
BITA #* 85 2 NOP 1
|
||||
BITA *,Y 18A5 3 NOP 4
|
||||
BITA *,X A5 2 NOP 1
|
||||
BITA * B5 3 MZERO 1
|
||||
BITB #* C5 2 NOP 1
|
||||
BITB *,Y 18E5 3 NOP 4
|
||||
BITB *,X E5 2 NOP 1
|
||||
BITB * F5 3 MZERO 1
|
||||
BLE * 2F 2 R1 1
|
||||
BLO * 25 2 R1 1
|
||||
BLS * 23 2 R1 1
|
||||
BLT * 2D 2 R1 1
|
||||
BMI * 2B 2 R1 1
|
||||
BNE * 26 2 R1 1
|
||||
BPL * 2A 2 R1 1
|
||||
BRA * 20 2 R1 1
|
||||
BRCLR *,X,*,* 1F 4 3REL 4
|
||||
BRCLR *,Y,*,* 181F 5 3REL 4
|
||||
BRCLR *,*,* 13 4 3REL 4
|
||||
BRN * 21 2 R1 2 /* NOT SURE ABOUT 6803 */
|
||||
BRSET *,X,*,* 1E 4 3REL 4
|
||||
BRSET *,Y,*,* 181E 5 3REL 4
|
||||
BRSET *,*,* 12 4 3REL 4
|
||||
BSET *,X,* 1C 3 COMB 4
|
||||
BSET *,Y,* 181C 4 COMB 4
|
||||
BSET *,#* 14 3 COMB 4 /* allow #
|
||||
BSET *,* 14 3 COMB 4
|
||||
BSR * 8D 2 R1 1
|
||||
BVC * 28 2 R1 1
|
||||
BVS * 29 2 R1 1
|
||||
CBA "" 11 1 NOP 1
|
||||
CLC "" 0C 1 NOP 1
|
||||
CLI "" 0E 1 NOP 1
|
||||
CLR *,Y 186F 3 NOP 4
|
||||
CLR *,X 6F 2 NOP 1
|
||||
CLR * 7F 3 SWAP 1
|
||||
CLRA "" 4F 1 NOP 1
|
||||
CLRB "" 5F 1 NOP 1
|
||||
CLV "" 0A 1 NOP 1
|
||||
CMPA #* 81 2 NOP 1
|
||||
CMPA *,X A1 2 NOP 1
|
||||
CMPA *,Y 18A1 3 NOP 4
|
||||
CMPA * B1 3 MZERO 1
|
||||
CMPB #* C1 2 NOP 1
|
||||
CMPB *,Y 18E1 3 NOP 4
|
||||
CMPB *,X E1 2 NOP 1
|
||||
CMPB * F1 3 MZERO 1
|
||||
CMPD #* 1A83 4 SWAP 4 /* alias for CPD */
|
||||
CMPD *,X 1AA3 3 NOP 4
|
||||
CMPD *,Y CDA3 3 NOP 4
|
||||
CMPD * 1AB3 4 MZERO 4
|
||||
COM *,X 63 2 NOP 1
|
||||
COM *,Y 1863 3 NOP 4
|
||||
COM * 73 3 SWAP 1
|
||||
COMA "" 43 1 NOP 1
|
||||
COMB "" 53 1 NOP 1
|
||||
CPD #* 1A83 4 SWAP 4
|
||||
CPD *,X 1AA3 3 NOP 4
|
||||
CPD *,Y CDA3 3 NOP 4
|
||||
CPD * 1AB3 4 MZERO 4
|
||||
CPX #* 8C 3 SWAP 1
|
||||
CPX *,X AC 2 NOP 1
|
||||
CPX *,Y CDAC 3 NOP 4
|
||||
CPX * BC 3 MZERO 1
|
||||
CPY #* 188C 4 SWAP 4
|
||||
CPY *,Y 18AC 3 NOP 4
|
||||
CPY *,X 1AAC 3 NOP 4
|
||||
CPY * 18BC 4 MZERO 4
|
||||
DAA "" 19 1 NOP 1
|
||||
DEC *,Y 186A 3 NOP 4
|
||||
DEC *,X 6A 2 NOP 1
|
||||
DEC * 7A 3 SWAP 1
|
||||
DECA "" 4A 1 NOP 1
|
||||
DECB "" 5A 1 NOP 1
|
||||
DES "" 34 1 NOP 1
|
||||
DEX "" 09 1 NOP 1
|
||||
DEY "" 1809 2 NOP 4
|
||||
EORA #* 88 2 NOP 1
|
||||
EORA *,Y 18A8 3 NOP 4
|
||||
EORA *,X A8 2 NOP 1
|
||||
EORA * B8 3 MZERO 1
|
||||
EORB #* C8 2 NOP 1
|
||||
EORB *,Y 18E8 3 NOP 4
|
||||
EORB *,X E8 2 NOP 1
|
||||
EORB * F8 3 MZERO 1
|
||||
FDIV "" 03 1 NOP 4
|
||||
IDIV "" 02 1 NOP 4
|
||||
INC *,Y 186C 3 NOP 4
|
||||
INC *,X 6C 2 NOP 1
|
||||
INC * 7C 3 SWAP 1
|
||||
INCA "" 4C 1 NOP 1
|
||||
INCB "" 5C 1 NOP 1
|
||||
INS "" 31 1 NOP 1
|
||||
INX "" 08 1 NOP 1
|
||||
INY "" 1808 2 NOP 4
|
||||
JMP *,Y 186E 3 NOP 4
|
||||
JMP *,X 6E 2 NOP 1
|
||||
JMP * 7E 3 SWAP 1
|
||||
JSR *,Y 18AD 3 NOP 4
|
||||
JSR *,X AD 2 NOP 1
|
||||
JSR * BD 3 MZERO 1
|
||||
|
||||
LDAA #* 86 2 NOP 1
|
||||
LDAA *,Y 18A6 3 NOP 4
|
||||
LDAA *,X A6 2 NOP 1
|
||||
LDAA >* B6 3 SWAP 1 /* Force EXT mode */
|
||||
LDAA * B6 3 MZERO 1
|
||||
|
||||
LDAB #* C6 2 NOP 1
|
||||
LDAB *,Y 18E6 3 NOP 4
|
||||
LDAB *,X E6 2 NOP 1
|
||||
LDAB >* F6 3 SWAP 1 /* Force EXT mode */
|
||||
LDAB * F6 3 MZERO 1
|
||||
|
||||
LDD #* CC 3 SWAP 2
|
||||
LDD *,Y 18EC 3 NOP 4
|
||||
LDD *,X EC 2 NOP 2
|
||||
LDD >* FC 3 SWAP 2 /* Force EXT mode */
|
||||
LDD * FC 3 MZERO 2
|
||||
|
||||
LDS #* 8E 3 SWAP 1
|
||||
LDS *,Y 18AE 3 NOP 4
|
||||
LDS *,X AE 2 NOP 1
|
||||
LDS >* BE 3 SWAP 1 /* Force EXT mode */
|
||||
LDS * BE 3 MZERO 1
|
||||
|
||||
LDX #* CE 3 SWAP 1
|
||||
LDX *,X EE 2 NOP 1
|
||||
LDX *,Y CDEE 3 NOP 4
|
||||
LDX >* FE 3 SWAP 1 /* Force EXT mode */
|
||||
LDX * FE 3 MZERO 1
|
||||
|
||||
LDY #* 18CE 4 SWAP 4
|
||||
LDY *,Y 18EE 3 NOP 4
|
||||
LDY *,X 1AEE 3 NOP 4
|
||||
LDY >* 18FE 4 SWAP 4 /* Force EXT mode */
|
||||
LDY * 18FE 4 MZERO 4
|
||||
|
||||
LSL *,Y 1868 3 NOP 4
|
||||
LSL *,X 68 2 NOP 1 /*SAME AS ASL */
|
||||
LSL * 78 3 SWAP 1
|
||||
LSLA "" 48 1 NOP 1
|
||||
LSLB "" 58 1 NOP 1
|
||||
LSLD "" 05 1 NOP 2
|
||||
LSR *,Y 1864 3 NOP 4
|
||||
LSR *,X 64 2 NOP 1
|
||||
LSR * 74 3 SWAP 1
|
||||
LSRA "" 44 1 NOP 1
|
||||
LSRB "" 54 1 NOP 1
|
||||
LSRD "" 04 1 NOP 2
|
||||
MUL "" 3D 1 NOP 2
|
||||
NEG *,Y 1860 3 NOP 4
|
||||
NEG *,X 60 2 NOP 1
|
||||
NEG * 70 3 SWAP 1
|
||||
NEGA "" 40 1 NOP 1
|
||||
NEGB "" 50 1 NOP 1
|
||||
NOP "" 01 1 NOP 1
|
||||
ORAA #* 8A 2 NOP 1
|
||||
ORAA *,Y 18AA 3 NOP 4
|
||||
ORAA *,X AA 2 NOP 1
|
||||
ORAA * BA 3 MZERO 1
|
||||
ORAB #* CA 2 NOP 1
|
||||
ORAB *,Y 18EA 3 NOP 4
|
||||
ORAB *,X EA 2 NOP 1
|
||||
ORAB * FA 3 MZERO 1
|
||||
PSHA "" 36 1 NOP 1
|
||||
PSHB "" 37 1 NOP 1
|
||||
PSHX "" 3C 1 NOP 2
|
||||
PSHY "" 183C 2 NOP 4
|
||||
PULA "" 32 1 NOP 1
|
||||
PULB "" 33 1 NOP 1
|
||||
PULX "" 38 1 NOP 2
|
||||
PULY "" 1838 2 NOP 4
|
||||
ROL *,Y 1869 3 NOP 4
|
||||
ROL *,X 69 2 NOP 1
|
||||
ROL * 79 3 SWAP 1
|
||||
ROLA "" 49 1 NOP 1
|
||||
ROLB "" 59 1 NOP 1
|
||||
ROR *,Y 1866 3 NOP 4
|
||||
ROR *,X 66 2 NOP 1
|
||||
ROR * 76 3 SWAP 1
|
||||
RORA "" 46 1 NOP 1
|
||||
RORB "" 56 1 NOP 1
|
||||
RTI "" 3B 1 NOP 1
|
||||
RTS "" 39 1 NOP 1
|
||||
SBA "" 10 1 NOP 1
|
||||
SBCA #* 82 2 NOP 1
|
||||
SBCA *,Y 18A2 3 NOP 4
|
||||
SBCA *,X A2 2 NOP 1
|
||||
SBCA * B2 3 MZERO 1
|
||||
SBCB #* C2 2 NOP 1
|
||||
SBCB *,Y 18E2 3 NOP 4
|
||||
SBCB *,X E2 2 NOP 1
|
||||
SBCB * F2 3 MZERO 1
|
||||
SEC "" 0D 1 NOP 1
|
||||
SEI "" 0F 1 NOP 1
|
||||
SEV "" 0B 1 NOP 1
|
||||
|
||||
STAA *,Y 18A7 3 NOP 4
|
||||
STAA *,X A7 2 NOP 1
|
||||
STAA >* B7 3 SWAP 1 /* Force EXT mode */
|
||||
STAA * B7 3 MZERO 1
|
||||
|
||||
STAB *,Y 18E7 3 NOP 4
|
||||
STAB *,X E7 2 NOP 1
|
||||
STAB >* F7 3 SWAP 1 /* Force EXT mode */
|
||||
STAB * F7 3 MZERO 1
|
||||
|
||||
STD *,Y 18ED 3 NOP 4
|
||||
STD *,X ED 2 NOP 2
|
||||
STD >* FD 3 SWAP 2 /* Force EXT mode */
|
||||
STD * FD 3 MZERO 2
|
||||
|
||||
STOP "" CF 1 NOP 1
|
||||
|
||||
STS *,X AF 2 NOP 1
|
||||
STS *,Y 18AF 3 NOP 4
|
||||
STS >* BF 3 SWAP 1 /* Force EXT mode */
|
||||
STS * BF 3 MZERO 1
|
||||
|
||||
STX *,X EF 2 NOP 1
|
||||
STX *,Y CDEF 3 NOP 4
|
||||
STX >* FF 3 SWAP 1 /* Force EXT mode */
|
||||
STX * FF 3 MZERO 1
|
||||
|
||||
STY *,Y 18EF 3 NOP 4
|
||||
STY *,X 1AEF 3 NOP 4
|
||||
STY >* 18FF 4 SWAP 4 /* Force EXT mode */
|
||||
STY * 18FF 4 MZERO 4
|
||||
|
||||
SUBA #* 80 2 NOP 1
|
||||
SUBA *,Y 18A0 3 NOP 4
|
||||
SUBA *,X A0 2 NOP 1
|
||||
SUBA * B0 3 MZERO 1
|
||||
|
||||
SUBB #* C0 2 NOP 1
|
||||
SUBB *,Y 18E0 3 NOP 4
|
||||
SUBB *,X E0 2 NOP 1
|
||||
SUBB * F0 3 MZERO 1
|
||||
|
||||
SUBD #* 83 3 SWAP 2
|
||||
SUBD *,Y 18A3 3 NOP 4
|
||||
SUBD *,X A3 2 NOP 2
|
||||
SUBD * B3 3 MZERO 2
|
||||
|
||||
SWI "" 3F 1 NOP 1
|
||||
TAB "" 16 1 NOP 1
|
||||
TAP "" 06 1 NOP 1
|
||||
TBA "" 17 1 NOP 1
|
||||
TEST "" 00 1 NOP 1
|
||||
TPA "" 07 1 NOP 1
|
||||
TST *,Y 186D 3 NOP 4
|
||||
TST *,X 6D 2 NOP 1
|
||||
TST * 7D 3 SWAP 1
|
||||
TSTA "" 4D 1 NOP 1
|
||||
TSTB "" 5D 1 NOP 1
|
||||
TSX "" 30 1 NOP 1
|
||||
TSY "" 1830 2 NOP 4
|
||||
TXS "" 35 1 NOP 1
|
||||
TYS "" 1835 2 NOP 4
|
||||
WAI "" 3E 1 NOP 1
|
||||
XGDX "" 8F 1 NOP 4
|
||||
XGDY "" 188F 2 NOP 4
|
||||
/* That's all folks */
|
||||
|
||||
290
LSource/bin/TASM70.TAB
Normal file
290
LSource/bin/TASM70.TAB
Normal file
@@ -0,0 +1,290 @@
|
||||
"TASM 7000 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm70.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* Table for TMS7000 micros
|
||||
/* Note that the table does not require the 'Rnn' nomenclature
|
||||
/* for reference of locations in the register file. Any expression
|
||||
/* will do, the value of which indicates the register. This is more
|
||||
/* flexible then making an entry like "ADC R*,A".
|
||||
/*
|
||||
/* TASM has trouble with the MOVD +(B),+ instruction so
|
||||
/* we convert it to MOVD +[B],+
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
.ALTWILD+
|
||||
|
||||
ADC B,A 69 1 NOP 1
|
||||
ADC %+,A 29 2 NOP 1
|
||||
ADC %+,B 59 2 NOP 1
|
||||
ADC %+,+ 79 3 COMB 1
|
||||
ADC +,A 19 2 NOP 1
|
||||
ADC +,B 39 2 NOP 1
|
||||
ADC +,+ 49 3 COMB 1
|
||||
|
||||
ADD B,A 68 1 NOP 1
|
||||
ADD %+,A 28 2 NOP 1
|
||||
ADD %+,B 58 2 NOP 1
|
||||
ADD %+,+ 78 3 COMB 1
|
||||
ADD +,A 18 2 NOP 1
|
||||
ADD +,B 38 2 NOP 1
|
||||
ADD +,+ 48 3 COMB 1
|
||||
|
||||
AND B,A 63 1 NOP 1
|
||||
AND %+,A 23 2 NOP 1
|
||||
AND %+,B 53 2 NOP 1
|
||||
AND %+,+ 73 3 COMB 1
|
||||
AND +,A 13 2 NOP 1
|
||||
AND +,B 33 2 NOP 1
|
||||
AND +,+ 43 3 COMB 1
|
||||
|
||||
ANDP A,+ 83 2 NOP 1
|
||||
ANDP B,+ 93 2 NOP 1
|
||||
ANDP %+,+ A3 3 COMB 1
|
||||
|
||||
BTJO B,A,+ 66 2 R1 1
|
||||
BTJO %+,A,+ 26 3 CREL 1
|
||||
BTJO %+,B,+ 56 3 CREL 1
|
||||
BTJO %+,+,+ 76 4 3REL 1
|
||||
BTJO +,A,+ 16 3 CREL 1
|
||||
BTJO +,B,+ 36 3 CREL 1
|
||||
BTJO +,+,+ 46 4 3REL 1
|
||||
|
||||
|
||||
BTJOP A,+,+ 86 3 CREL 1
|
||||
BTJOP B,+,+ 96 3 CREL 1
|
||||
BTJOP %+,+,+ A6 4 3REL 1
|
||||
|
||||
BTJZ B,A,+ 67 2 R1 1
|
||||
BTJZ %+,A,+ 27 3 CREL 1
|
||||
BTJZ %+,B,+ 57 3 CREL 1
|
||||
BTJZ %+,+,+ 77 4 3REL 1
|
||||
BTJZ +,A,+ 17 3 CREL 1
|
||||
BTJZ +,B,+ 37 3 CREL 1
|
||||
BTJZ +,+,+ 47 4 3REL 1
|
||||
|
||||
BTJZP A,+,+ 87 3 CREL 1
|
||||
BTJZP B,+,+ 97 3 CREL 1
|
||||
BTJZP %+,+,+ A7 4 3REL 1
|
||||
|
||||
BR @+(B) AC 3 SWAP 1
|
||||
BR @+[B] AC 3 SWAP 1
|
||||
BR @+ 8C 3 SWAP 1
|
||||
BR *+ 9C 2 NOP 1
|
||||
|
||||
CALL @+(B) AE 3 SWAP 1
|
||||
CALL @+[B] AE 3 SWAP 1
|
||||
CALL @+ 8E 3 SWAP 1
|
||||
CALL *+ 9E 2 NOP 1
|
||||
|
||||
CLR A B5 1 NOP 1
|
||||
CLR B C5 1 NOP 1
|
||||
CLR + D5 2 NOP 1
|
||||
|
||||
CLRC "" B0 1 NOP 1
|
||||
|
||||
CMP B,A 6D 1 NOP 1
|
||||
CMP %+,A 2D 2 NOP 1
|
||||
CMP %+,B 5D 2 NOP 1
|
||||
CMP %+,+ 7D 3 COMB 1
|
||||
CMP +,A 1D 2 NOP 1
|
||||
CMP +,B 3D 2 NOP 1
|
||||
CMP +,+ 4D 3 COMB 1
|
||||
|
||||
CMPA @+(B) AD 3 SWAP 1
|
||||
CMPA @+[B] AD 3 SWAP 1
|
||||
CMPA @+ 8D 3 SWAP 1
|
||||
CMPA *+ 9D 2 NOP 1
|
||||
|
||||
DAC B,A 6E 1 NOP 1
|
||||
DAC %+,A 2E 2 NOP 1
|
||||
DAC %+,B 5E 2 NOP 1
|
||||
DAC %+,+ 7E 3 COMB 1
|
||||
DAC +,A 1E 2 NOP 1
|
||||
DAC +,B 3E 2 NOP 1
|
||||
DAC +,+ 4E 3 COMB 1
|
||||
|
||||
DEC A B2 1 NOP 1
|
||||
DEC B C2 1 NOP 1
|
||||
DEC + D2 2 NOP 1
|
||||
|
||||
DECD A BB 1 NOP 1
|
||||
DECD B CB 1 NOP 1
|
||||
DECD + DB 2 NOP 1
|
||||
|
||||
DINT "" 06 1 NOP 1
|
||||
|
||||
DJNZ A,+ BA 2 R1 1
|
||||
DJNZ B,+ CA 2 R1 1
|
||||
DJNZ +,+ DA 3 CREL 1
|
||||
|
||||
DSB B,A 6F 1 NOP 1
|
||||
DSB %+,A 2F 2 NOP 1
|
||||
DSB %+,B 5F 2 NOP 1
|
||||
DSB %+,+ 7F 3 COMB 1
|
||||
DSB +,A 1F 2 NOP 1
|
||||
DSB +,B 3F 2 NOP 1
|
||||
DSB +,+ 4F 3 COMB 1
|
||||
|
||||
EINT "" 05 1 NOP 1
|
||||
|
||||
IDLE "" 01 1 NOP 1
|
||||
|
||||
INC A B3 1 NOP 1
|
||||
INC B C3 1 NOP 1
|
||||
INC + D3 2 NOP 1
|
||||
|
||||
INV A B4 1 NOP 1
|
||||
INV B C4 1 NOP 1
|
||||
INV + D4 2 NOP 1
|
||||
|
||||
JMP + E0 2 R1 1
|
||||
|
||||
JC + E3 2 R1 1
|
||||
JEQ + E2 2 R1 1
|
||||
JGE + E5 2 R1 1
|
||||
JGT + E4 2 R1 1
|
||||
JHS + E3 2 R1 1
|
||||
JL + E7 2 R1 1
|
||||
JN + E1 2 R1 1 /+ ??
|
||||
JNC + E7 2 R1 1
|
||||
JNE + E6 2 R1 1
|
||||
JNZ + E6 2 R1 1
|
||||
JP + E4 2 R1 1
|
||||
JPZ + E5 2 R1 1
|
||||
JZ + E2 2 R1 1
|
||||
|
||||
LDA @+(B) AA 3 SWAP 1
|
||||
LDA @+[B] AA 3 SWAP 1
|
||||
LDA @+ 8A 3 SWAP 1
|
||||
LDA *+ 9A 2 NOP 1
|
||||
|
||||
LDSP "" 0D 1 NOP 1
|
||||
|
||||
MOV A,B C0 1 NOP 1
|
||||
MOV B,A 62 1 NOP 1
|
||||
MOV A,+ D0 2 NOP 1
|
||||
MOV B,+ D1 2 NOP 1
|
||||
MOV %+,A 22 2 NOP 1
|
||||
MOV %+,B 52 2 NOP 1
|
||||
MOV %+,+ 72 3 COMB 1
|
||||
MOV +,A 12 2 NOP 1
|
||||
MOV +,B 32 2 NOP 1
|
||||
MOV +,+ 42 3 COMB 1
|
||||
|
||||
MOVD %+[B],+ A8 4 CSWAP 1
|
||||
MOVD %+,+ 88 4 CSWAP 1
|
||||
MOVD +,+ 98 3 COMB 1
|
||||
|
||||
MOVP A,+ 82 2 NOP 1
|
||||
MOVP B,+ 92 2 NOP 1
|
||||
MOVP %+,+ A2 3 COMB 1
|
||||
MOVP +,A 80 2 NOP 1
|
||||
MOVP +,B 91 2 NOP 1
|
||||
|
||||
MPY B,A 6C 1 NOP 1
|
||||
MPY %+,A 2C 2 NOP 1
|
||||
MPY %+,B 5C 2 NOP 1
|
||||
MPY %+,+ 7C 3 COMB 1
|
||||
MPY +,A 1C 2 NOP 1
|
||||
MPY +,B 3C 2 NOP 1
|
||||
MPY +,+ 4C 3 COMB 1
|
||||
|
||||
NOP "" 00 1 NOP 1
|
||||
|
||||
OR B,A 64 1 NOP 1
|
||||
OR %+,A 24 2 NOP 1
|
||||
OR %+,B 54 2 NOP 1
|
||||
OR %+,+ 74 3 COMB 1
|
||||
OR +,A 14 2 NOP 1
|
||||
OR +,B 34 2 NOP 1
|
||||
OR +,+ 44 3 COMB 1
|
||||
|
||||
ORP A,+ 84 2 NOP 1
|
||||
ORP B,+ 94 2 NOP 1
|
||||
ORP %+,+ A4 3 COMB 1
|
||||
|
||||
POP A B9 1 NOP 1
|
||||
POP B C9 1 NOP 1
|
||||
POP ST 08 1 NOP 1
|
||||
POP + D9 2 NOP 1
|
||||
POPST "" 08 1 NOP 1
|
||||
|
||||
PUSH A B8 1 NOP 1
|
||||
PUSH B C8 1 NOP 1
|
||||
PUSH ST 0E 1 NOP 1
|
||||
PUSH + D8 2 NOP 1
|
||||
PUSHST "" 0E 1 NOP 1
|
||||
|
||||
RETI "" 0B 1 NOP 1
|
||||
|
||||
RETS "" 0A 1 NOP 1
|
||||
|
||||
RL A BE 1 NOP 1
|
||||
RL B CE 1 NOP 1
|
||||
RL + DE 2 NOP 1
|
||||
|
||||
RLC A BF 1 NOP 1
|
||||
RLC B CF 1 NOP 1
|
||||
RLC + DF 2 NOP 1
|
||||
|
||||
RR A BC 1 NOP 1
|
||||
RR B CC 1 NOP 1
|
||||
RR + DC 2 NOP 1
|
||||
|
||||
RRC A BD 1 NOP 1
|
||||
RRC B CD 1 NOP 1
|
||||
RRC + DD 2 NOP 1
|
||||
|
||||
SBB B,A 6B 1 NOP 1
|
||||
SBB %+,A 2B 2 NOP 1
|
||||
SBB %+,B 5B 2 NOP 1
|
||||
SBB %+,+ 7B 3 COMB 1
|
||||
SBB +,A 1B 2 NOP 1
|
||||
SBB +,B 3B 2 NOP 1
|
||||
SBB +,+ 4B 3 COMB 1
|
||||
|
||||
SETC "" 07 1 NOP 1
|
||||
|
||||
STA @+(B) AB 3 SWAP 1
|
||||
STA @+[B] AB 3 SWAP 1
|
||||
STA @+ 8B 3 SWAP 1
|
||||
STA *+ 9B 2 NOP 1
|
||||
|
||||
STSP "" 09 1 NOP 1
|
||||
|
||||
SUB B,A 6A 1 NOP 1
|
||||
SUB %+,A 2A 2 NOP 1
|
||||
SUB %+,B 5A 2 NOP 1
|
||||
SUB %+,+ 7A 3 COMB 1
|
||||
SUB +,A 1A 2 NOP 1
|
||||
SUB +,B 3A 2 NOP 1
|
||||
SUB +,+ 4A 3 COMB 1
|
||||
|
||||
SWAP A B7 1 NOP 1
|
||||
SWAP B C7 1 NOP 1
|
||||
SWAP + D7 2 NOP 1
|
||||
|
||||
TRAP + FF 1 SUB 1
|
||||
|
||||
TST A B0 1 NOP 1
|
||||
TSTA "" B0 1 NOP 1
|
||||
TST B C1 1 NOP 1
|
||||
TSTB "" C1 1 NOP 1
|
||||
|
||||
XCHB A B6 1 NOP 1
|
||||
XCHB + D6 2 NOP 1
|
||||
|
||||
XOR B,A 65 1 NOP 1
|
||||
XOR %+,A 25 2 NOP 1
|
||||
XOR %+,B 55 2 NOP 1
|
||||
XOR %+,+ 75 3 COMB 1
|
||||
XOR +,A 15 2 NOP 1
|
||||
XOR +,B 35 2 NOP 1
|
||||
XOR +,+ 45 3 COMB 1
|
||||
|
||||
XORP A,+ 85 2 NOP 1
|
||||
XORP B,+ 95 2 NOP 1
|
||||
XORP %+,+ A5 3 COMB 1
|
||||
|
||||
594
LSource/bin/TASM80.TAB
Normal file
594
LSource/bin/TASM80.TAB
Normal file
@@ -0,0 +1,594 @@
|
||||
"TASM Z80 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm80.tab 1.2 1998/02/28 14:31:22 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table
|
||||
/* for the Z80 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorporated
|
||||
/* This table authored and submitted by Carl A. Wall, VE3APY.
|
||||
/*
|
||||
/* Class bits assigned as follows:
|
||||
/* Bit-0 = Z80 (base instruction set)
|
||||
/* Bit-1 = HD64180 (extended instructions)
|
||||
/* See TASM manual for info on table structure.
|
||||
/*
|
||||
/*INSTR ARGS OP BYTES RULE CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
ADC A,(HL) 8E 1 NOP 1
|
||||
ADC A,(IX*) 8EDD 3 ZIX 1
|
||||
ADC A,(IY*) 8EFD 3 ZIX 1
|
||||
ADC A,A 8F 1 NOP 1
|
||||
ADC A,B 88 1 NOP 1
|
||||
ADC A,C 89 1 NOP 1
|
||||
ADC A,D 8A 1 NOP 1
|
||||
ADC A,E 8B 1 NOP 1
|
||||
ADC A,H 8C 1 NOP 1
|
||||
ADC A,L 8D 1 NOP 1
|
||||
ADC A,* CE 2 NOP 1
|
||||
ADC HL,BC 4AED 2 NOP 1
|
||||
ADC HL,DE 5AED 2 NOP 1
|
||||
ADC HL,HL 6AED 2 NOP 1
|
||||
ADC HL,SP 7AED 2 NOP 1
|
||||
|
||||
ADD A,(HL) 86 1 NOP 1
|
||||
ADD A,(IX*) 86DD 3 ZIX 1
|
||||
ADD A,(IY*) 86FD 3 ZIX 1
|
||||
ADD A,A 87 1 NOP 1
|
||||
ADD A,B 80 1 NOP 1
|
||||
ADD A,C 81 1 NOP 1
|
||||
ADD A,D 82 1 NOP 1
|
||||
ADD A,E 83 1 NOP 1
|
||||
ADD A,H 84 1 NOP 1
|
||||
ADD A,L 85 1 NOP 1
|
||||
ADD A,* C6 2 NOP 1
|
||||
ADD HL,BC 09 1 NOP 1
|
||||
ADD HL,DE 19 1 NOP 1
|
||||
ADD HL,HL 29 1 NOP 1
|
||||
ADD HL,SP 39 1 NOP 1
|
||||
ADD IX,BC 09DD 2 NOP 1
|
||||
ADD IX,DE 19DD 2 NOP 1
|
||||
ADD IX,IX 29DD 2 NOP 1
|
||||
ADD IX,SP 39DD 2 NOP 1
|
||||
ADD IY,BC 09FD 2 NOP 1
|
||||
ADD IY,DE 19FD 2 NOP 1
|
||||
ADD IY,IY 29FD 2 NOP 1
|
||||
ADD IY,SP 39FD 2 NOP 1
|
||||
|
||||
AND (HL) A6 1 NOP 1
|
||||
AND (IX*) A6DD 3 ZIX 1
|
||||
AND (IY*) A6FD 3 ZIX 1
|
||||
AND A A7 1 NOP 1
|
||||
AND B A0 1 NOP 1
|
||||
AND C A1 1 NOP 1
|
||||
AND D A2 1 NOP 1
|
||||
AND E A3 1 NOP 1
|
||||
AND H A4 1 NOP 1
|
||||
AND L A5 1 NOP 1
|
||||
AND * E6 2 NOP 1
|
||||
|
||||
BIT *,(HL) 46CB 2 ZBIT 1
|
||||
BIT *,(IX*) CBDD 4 ZBIT 1 0 4600
|
||||
BIT *,(IY*) CBFD 4 ZBIT 1 0 4600
|
||||
BIT *,A 47CB 2 ZBIT 1
|
||||
BIT *,B 40CB 2 ZBIT 1
|
||||
BIT *,C 41CB 2 ZBIT 1
|
||||
BIT *,D 42CB 2 ZBIT 1
|
||||
BIT *,E 43CB 2 ZBIT 1
|
||||
BIT *,H 44CB 2 ZBIT 1
|
||||
BIT *,L 45CB 2 ZBIT 1
|
||||
|
||||
CALL C,* DC 3 NOP 1
|
||||
CALL M,* FC 3 NOP 1
|
||||
CALL NC,* D4 3 NOP 1
|
||||
CALL NZ,* C4 3 NOP 1
|
||||
CALL P,* F4 3 NOP 1
|
||||
CALL PE,* EC 3 NOP 1
|
||||
CALL PO,* E4 3 NOP 1
|
||||
CALL Z,* CC 3 NOP 1
|
||||
CALL * CD 3 NOP 1
|
||||
|
||||
CCF "" 3F 1 NOP 1
|
||||
|
||||
CP (HL) BE 1 NOP 1
|
||||
CP (IX*) BEDD 3 ZIX 1
|
||||
CP (IY*) BEFD 3 ZIX 1
|
||||
CP A BF 1 NOP 1
|
||||
CP B B8 1 NOP 1
|
||||
CP C B9 1 NOP 1
|
||||
CP D BA 1 NOP 1
|
||||
CP E BB 1 NOP 1
|
||||
CP H BC 1 NOP 1
|
||||
CP L BD 1 NOP 1
|
||||
CP * FE 2 NOP 1
|
||||
CPD "" A9ED 2 NOP 1
|
||||
CPDR "" B9ED 2 NOP 1
|
||||
CPIR "" B1ED 2 NOP 1
|
||||
CPI "" A1ED 2 NOP 1
|
||||
CPL "" 2F 1 NOP 1
|
||||
|
||||
DAA "" 27 1 NOP 1
|
||||
|
||||
DEC (HL) 35 1 NOP 1
|
||||
DEC (IX*) 35DD 3 ZIX 1
|
||||
DEC (IY*) 35FD 3 ZIX 1
|
||||
DEC A 3D 1 NOP 1
|
||||
DEC B 05 1 NOP 1
|
||||
DEC BC 0B 1 NOP 1
|
||||
DEC C 0D 1 NOP 1
|
||||
DEC D 15 1 NOP 1
|
||||
DEC DE 1B 1 NOP 1
|
||||
DEC E 1D 1 NOP 1
|
||||
DEC H 25 1 NOP 1
|
||||
DEC HL 2B 1 NOP 1
|
||||
DEC IX 2BDD 2 NOP 1
|
||||
DEC IY 2BFD 2 NOP 1
|
||||
DEC L 2D 1 NOP 1
|
||||
DEC SP 3B 1 NOP 1
|
||||
DI "" F3 1 NOP 1
|
||||
DJNZ * 10 2 R1 1
|
||||
|
||||
EI "" FB 1 NOP 1
|
||||
EX (SP),HL E3 1 NOP 1
|
||||
EX (SP),IX E3DD 2 NOP 1
|
||||
EX (SP),IY E3FD 2 NOP 1
|
||||
EX AF,AF' 08 1 NOP 1
|
||||
EX DE,HL EB 1 NOP 1
|
||||
EXX "" D9 1 NOP 1
|
||||
HALT "" 76 1 NOP 1
|
||||
|
||||
IM 0 46ED 2 NOP 1
|
||||
IM 1 56ED 2 NOP 1
|
||||
IM 2 5EED 2 NOP 1
|
||||
|
||||
/* Alternate form of above
|
||||
IM0 46ED 2 NOP 1
|
||||
IM1 56ED 2 NOP 1
|
||||
IM2 5EED 2 NOP 1
|
||||
|
||||
IN A,(C) 78ED 2 NOP 1
|
||||
IN B,(C) 40ED 2 NOP 1
|
||||
IN C,(C) 48ED 2 NOP 1
|
||||
IN D,(C) 50ED 2 NOP 1
|
||||
IN E,(C) 58ED 2 NOP 1
|
||||
IN H,(C) 60ED 2 NOP 1
|
||||
IN L,(C) 68ED 2 NOP 1
|
||||
|
||||
IN A,(*) DB 2 NOP 1
|
||||
|
||||
IN0 A,(*) 38ED 3 NOP 2
|
||||
IN0 B,(*) 00ED 3 NOP 2
|
||||
IN0 C,(*) 08ED 3 NOP 2
|
||||
IN0 D,(*) 10ED 3 NOP 2
|
||||
IN0 E,(*) 18ED 3 NOP 2
|
||||
IN0 H,(*) 20ED 3 NOP 2
|
||||
IN0 L,(*) 28ED 3 NOP 2
|
||||
|
||||
INC (HL) 34 1 NOP 1
|
||||
INC (IX*) 34DD 3 ZIX 1
|
||||
INC (IY*) 34FD 3 ZIX 1
|
||||
INC A 3C 1 NOP 1
|
||||
INC B 04 1 NOP 1
|
||||
INC BC 03 1 NOP 1
|
||||
INC C 0C 1 NOP 1
|
||||
INC D 14 1 NOP 1
|
||||
INC DE 13 1 NOP 1
|
||||
INC E 1C 1 NOP 1
|
||||
INC H 24 1 NOP 1
|
||||
INC HL 23 1 NOP 1
|
||||
INC IX 23DD 2 NOP 1
|
||||
INC IY 23FD 2 NOP 1
|
||||
INC L 2C 1 NOP 1
|
||||
INC SP 33 1 NOP 1
|
||||
|
||||
|
||||
IND "" AAED 2 NOP 1
|
||||
INDR "" BAED 2 NOP 1
|
||||
INI "" A2ED 2 NOP 1
|
||||
INIR "" B2ED 2 NOP 1
|
||||
|
||||
JP (HL) E9 1 NOP 1
|
||||
JP (IX) E9DD 2 NOP 1
|
||||
JP (IY) E9FD 2 NOP 1
|
||||
JP C,* DA 3 NOP 1
|
||||
JP M,* FA 3 NOP 1
|
||||
JP NC,* D2 3 NOP 1
|
||||
JP NZ,* C2 3 NOP 1
|
||||
JP P,* F2 3 NOP 1
|
||||
JP PE,* EA 3 NOP 1
|
||||
JP PO,* E2 3 NOP 1
|
||||
JP Z,* CA 3 NOP 1
|
||||
JP * C3 3 NOP 1
|
||||
|
||||
JR C,* 38 2 R1 1
|
||||
JR NC,* 30 2 R1 1
|
||||
JR NZ,* 20 2 R1 1
|
||||
JR Z,* 28 2 R1 1
|
||||
JR * 18 2 R1 1
|
||||
|
||||
LD (BC),A 02 1 NOP 1
|
||||
LD (DE),A 12 1 NOP 1
|
||||
LD (HL),A 77 1 NOP 1
|
||||
LD (HL),B 70 1 NOP 1
|
||||
LD (HL),C 71 1 NOP 1
|
||||
LD (HL),D 72 1 NOP 1
|
||||
LD (HL),E 73 1 NOP 1
|
||||
LD (HL),H 74 1 NOP 1
|
||||
LD (HL),L 75 1 NOP 1
|
||||
LD (HL),* 36 2 NOP 1
|
||||
LD (IX*),A 77DD 3 ZIX 1
|
||||
LD (IX*),B 70DD 3 ZIX 1
|
||||
LD (IX*),C 71DD 3 ZIX 1
|
||||
LD (IX*),D 72DD 3 ZIX 1
|
||||
LD (IX*),E 73DD 3 ZIX 1
|
||||
LD (IX*),H 74DD 3 ZIX 1
|
||||
LD (IX*),L 75DD 3 ZIX 1
|
||||
LD (IX*),* 36DD 4 ZIX 1
|
||||
LD (IY*),A 77FD 3 ZIX 1
|
||||
LD (IY*),B 70FD 3 ZIX 1
|
||||
LD (IY*),C 71FD 3 ZIX 1
|
||||
LD (IY*),D 72FD 3 ZIX 1
|
||||
LD (IY*),E 73FD 3 ZIX 1
|
||||
LD (IY*),H 74FD 3 ZIX 1
|
||||
LD (IY*),L 75FD 3 ZIX 1
|
||||
LD (IY*),* 36FD 4 ZIX 1
|
||||
LD (*),A 32 3 NOP 1
|
||||
LD (*),BC 43ED 4 NOP 1
|
||||
LD (*),DE 53ED 4 NOP 1
|
||||
LD (*),HL 22 3 NOP 1
|
||||
LD (*),IX 22DD 4 NOP 1
|
||||
LD (*),IY 22FD 4 NOP 1
|
||||
LD (*),SP 73ED 4 NOP 1
|
||||
LD A,(BC) 0A 1 NOP 1
|
||||
LD A,(DE) 1A 1 NOP 1
|
||||
LD A,(HL) 7E 1 NOP 1
|
||||
LD A,(IX*) 7EDD 3 ZIX 1
|
||||
LD A,(IY*) 7EFD 3 ZIX 1
|
||||
LD A,A 7F 1 NOP 1
|
||||
LD A,B 78 1 NOP 1
|
||||
LD A,C 79 1 NOP 1
|
||||
LD A,D 7A 1 NOP 1
|
||||
LD A,E 7B 1 NOP 1
|
||||
LD A,H 7C 1 NOP 1
|
||||
LD A,I 57ED 2 NOP 1
|
||||
LD A,L 7D 1 NOP 1
|
||||
LD A,R 5FED 2 NOP 1
|
||||
LD A,(*) 3A 3 NOP 1
|
||||
LD A,* 3E 2 NOP 1
|
||||
LD B,(HL) 46 1 NOP 1
|
||||
LD B,(IX*) 46DD 3 ZIX 1
|
||||
LD B,(IY*) 46FD 3 ZIX 1
|
||||
LD B,A 47 1 NOP 1
|
||||
LD B,B 40 1 NOP 1
|
||||
LD B,C 41 1 NOP 1
|
||||
LD B,D 42 1 NOP 1
|
||||
LD B,E 43 1 NOP 1
|
||||
LD B,H 44 1 NOP 1
|
||||
LD B,L 45 1 NOP 1
|
||||
LD B,* 06 2 NOP 1
|
||||
LD BC,(*) 4BED 4 NOP 1
|
||||
LD BC,* 01 3 NOP 1
|
||||
LD C,(HL) 4E 1 NOP 1
|
||||
LD C,(IX*) 4EDD 3 ZIX 1
|
||||
LD C,(IY*) 4EFD 3 ZIX 1
|
||||
LD C,A 4F 1 NOP 1
|
||||
LD C,B 48 1 NOP 1
|
||||
LD C,C 49 1 NOP 1
|
||||
LD C,D 4A 1 NOP 1
|
||||
LD C,E 4B 1 NOP 1
|
||||
LD C,H 4C 1 NOP 1
|
||||
LD C,L 4D 1 NOP 1
|
||||
LD C,* 0E 2 NOP 1
|
||||
LD D,(HL) 56 1 NOP 1
|
||||
LD D,(IX*) 56DD 3 ZIX 1
|
||||
LD D,(IY*) 56FD 3 ZIX 1
|
||||
LD D,A 57 1 NOP 1
|
||||
LD D,B 50 1 NOP 1
|
||||
LD D,C 51 1 NOP 1
|
||||
LD D,D 52 1 NOP 1
|
||||
LD D,E 53 1 NOP 1
|
||||
LD D,H 54 1 NOP 1
|
||||
LD D,L 55 1 NOP 1
|
||||
LD D,* 16 2 NOP 1
|
||||
LD DE,(*) 5BED 4 NOP 1
|
||||
LD DE,* 11 3 NOP 1
|
||||
LD E,(HL) 5E 1 NOP 1
|
||||
LD E,(IX*) 5EDD 3 ZIX 1
|
||||
LD E,(IY*) 5EFD 3 ZIX 1
|
||||
LD E,A 5F 1 NOP 1
|
||||
LD E,B 58 1 NOP 1
|
||||
LD E,C 59 1 NOP 1
|
||||
LD E,D 5A 1 NOP 1
|
||||
LD E,E 5B 1 NOP 1
|
||||
LD E,H 5C 1 NOP 1
|
||||
LD E,L 5D 1 NOP 1
|
||||
LD E,* 1E 2 NOP 1
|
||||
LD H,(HL) 66 1 NOP 1
|
||||
LD H,(IX*) 66DD 3 ZIX 1
|
||||
LD H,(IY*) 66FD 3 ZIX 1
|
||||
LD H,A 67 1 NOP 1
|
||||
LD H,B 60 1 NOP 1
|
||||
LD H,C 61 1 NOP 1
|
||||
LD H,D 62 1 NOP 1
|
||||
LD H,E 63 1 NOP 1
|
||||
LD H,H 64 1 NOP 1
|
||||
LD H,L 65 1 NOP 1
|
||||
LD H,* 26 2 NOP 1
|
||||
LD HL,(*) 2A 3 NOP 1
|
||||
LD HL,* 21 3 NOP 1
|
||||
LD I,A 47ED 2 NOP 1
|
||||
LD IX,(*) 2ADD 4 NOP 1
|
||||
LD IX,* 21DD 4 NOP 1
|
||||
LD IY,(*) 2AFD 4 NOP 1
|
||||
LD IY,* 21FD 4 NOP 1
|
||||
LD L,(HL) 6E 1 NOP 1
|
||||
LD L,(IX*) 6EDD 3 ZIX 1
|
||||
LD L,(IY*) 6EFD 3 ZIX 1
|
||||
LD L,A 6F 1 NOP 1
|
||||
LD L,B 68 1 NOP 1
|
||||
LD L,C 69 1 NOP 1
|
||||
LD L,D 6A 1 NOP 1
|
||||
LD L,E 6B 1 NOP 1
|
||||
LD L,H 6C 1 NOP 1
|
||||
LD L,L 6D 1 NOP 1
|
||||
LD L,* 2E 2 NOP 1
|
||||
LD R,A 4FED 2 NOP 1
|
||||
LD SP,(*) 7BED 4 NOP 1
|
||||
LD SP,HL F9 1 NOP 1
|
||||
LD SP,IX F9DD 2 NOP 1
|
||||
LD SP,IY F9FD 2 NOP 1
|
||||
LD SP,* 31 3 NOP 1
|
||||
LDD "" A8ED 2 NOP 1
|
||||
LDDR "" B8ED 2 NOP 1
|
||||
LDI "" A0ED 2 NOP 1
|
||||
LDIR "" B0ED 2 NOP 1
|
||||
NEG "" 44ED 2 NOP 1
|
||||
NOP "" 00 1 NOP 1
|
||||
|
||||
MLT BC 4CED 2 NOP 2
|
||||
MLT DE 5CED 2 NOP 2
|
||||
MLT HL 6CED 2 NOP 2
|
||||
MLT SP 7CED 2 NOP 2
|
||||
|
||||
OR (HL) B6 1 NOP 1
|
||||
OR (IX*) B6DD 3 ZIX 1
|
||||
OR (IY*) B6FD 3 ZIX 1
|
||||
OR A B7 1 NOP 1
|
||||
OR B B0 1 NOP 1
|
||||
OR C B1 1 NOP 1
|
||||
OR D B2 1 NOP 1
|
||||
OR E B3 1 NOP 1
|
||||
OR H B4 1 NOP 1
|
||||
OR L B5 1 NOP 1
|
||||
OR * F6 2 NOP 1
|
||||
|
||||
OTDM "" 8BED 2 NOP 2
|
||||
OTDMR "" 9BED 2 NOP 2
|
||||
OTDR "" BBED 2 NOP 1
|
||||
OTIM "" 83ED 2 NOP 2
|
||||
OTIMR "" 93ED 2 NOP 2
|
||||
OTIR "" B3ED 2 NOP 1
|
||||
|
||||
OUT (C),A 79ED 2 NOP 1
|
||||
OUT (C),B 41ED 2 NOP 1
|
||||
OUT (C),C 49ED 2 NOP 1
|
||||
OUT (C),D 51ED 2 NOP 1
|
||||
OUT (C),E 59ED 2 NOP 1
|
||||
OUT (C),H 61ED 2 NOP 1
|
||||
OUT (C),L 69ED 2 NOP 1
|
||||
OUT (*),A D3 2 NOP 1
|
||||
|
||||
OUT0 (*),A 39ED 3 NOP 2
|
||||
OUT0 (*),B 01ED 3 NOP 2
|
||||
OUT0 (*),C 09ED 3 NOP 2
|
||||
OUT0 (*),D 11ED 3 NOP 2
|
||||
OUT0 (*),E 19ED 3 NOP 2
|
||||
OUT0 (*),H 21ED 3 NOP 2
|
||||
OUT0 (*),L 29ED 3 NOP 2
|
||||
|
||||
OUTD "" ABED 2 NOP 1
|
||||
OUTI "" A3ED 2 NOP 1
|
||||
|
||||
POP AF F1 1 NOP 1
|
||||
POP BC C1 1 NOP 1
|
||||
POP DE D1 1 NOP 1
|
||||
POP HL E1 1 NOP 1
|
||||
POP IX E1DD 2 NOP 1
|
||||
POP IY E1FD 2 NOP 1
|
||||
|
||||
PUSH AF F5 1 NOP 1
|
||||
PUSH BC C5 1 NOP 1
|
||||
PUSH DE D5 1 NOP 1
|
||||
PUSH HL E5 1 NOP 1
|
||||
PUSH IX E5DD 2 NOP 1
|
||||
PUSH IY E5FD 2 NOP 1
|
||||
|
||||
RES *,(HL) 86CB 2 ZBIT 1
|
||||
RES *,(IX*) CBDD 4 ZBIT 1 0 8600
|
||||
RES *,(IY*) CBFD 4 ZBIT 1 0 8600
|
||||
RES *,A 87CB 2 ZBIT 1
|
||||
RES *,B 80CB 2 ZBIT 1
|
||||
RES *,C 81CB 2 ZBIT 1
|
||||
RES *,D 82CB 2 ZBIT 1
|
||||
RES *,E 83CB 2 ZBIT 1
|
||||
RES *,H 84CB 2 ZBIT 1
|
||||
RES *,L 85CB 2 ZBIT 1
|
||||
|
||||
RET "" C9 1 NOP 1
|
||||
RET C D8 1 NOP 1
|
||||
RET M F8 1 NOP 1
|
||||
RET NC D0 1 NOP 1
|
||||
RET NZ C0 1 NOP 1
|
||||
RET P F0 1 NOP 1
|
||||
RET PE E8 1 NOP 1
|
||||
RET PO E0 1 NOP 1
|
||||
RET Z C8 1 NOP 1
|
||||
RETI "" 4DED 2 NOP 1
|
||||
RETN "" 45ED 2 NOP 1
|
||||
|
||||
RL (HL) 16CB 2 NOP 1
|
||||
RL (IX*) CBDD 4 ZIX 1 0 1600
|
||||
RL (IY*) CBFD 4 ZIX 1 0 1600
|
||||
RL A 17CB 2 NOP 1
|
||||
RL B 10CB 2 NOP 1
|
||||
RL C 11CB 2 NOP 1
|
||||
RL D 12CB 2 NOP 1
|
||||
RL E 13CB 2 NOP 1
|
||||
RL H 14CB 2 NOP 1
|
||||
RL L 15CB 2 NOP 1
|
||||
RLA "" 17 1 NOP 1
|
||||
|
||||
RLC (HL) 06CB 2 NOP 1
|
||||
RLC (IX*) CBDD 4 ZIX 1 0 0600
|
||||
RLC (IY*) CBFD 4 ZIX 1 0 0600
|
||||
RLC A 07CB 2 NOP 1
|
||||
RLC B 00CB 2 NOP 1
|
||||
RLC C 01CB 2 NOP 1
|
||||
RLC D 02CB 2 NOP 1
|
||||
RLC E 03CB 2 NOP 1
|
||||
RLC H 04CB 2 NOP 1
|
||||
RLC L 05CB 2 NOP 1
|
||||
RLCA "" 07 1 NOP 1
|
||||
RLD "" 6FED 2 NOP 1
|
||||
|
||||
RR (HL) 1ECB 2 NOP 1
|
||||
RR (IX*) CBDD 4 ZIX 1 0 1E00
|
||||
RR (IY*) CBFD 4 ZIX 1 0 1E00
|
||||
RR A 1FCB 2 NOP 1
|
||||
RR B 18CB 2 NOP 1
|
||||
RR C 19CB 2 NOP 1
|
||||
RR D 1ACB 2 NOP 1
|
||||
RR E 1BCB 2 NOP 1
|
||||
RR H 1CCB 2 NOP 1
|
||||
RR L 1DCB 2 NOP 1
|
||||
RRA "" 1F 1 NOP 1
|
||||
RRC (HL) 0ECB 2 NOP 1
|
||||
RRC (IX*) CBDD 4 ZIX 1 0 0E00
|
||||
RRC (IY*) CBFD 4 ZIX 1 0 0E00
|
||||
RRC A 0FCB 2 NOP 1
|
||||
RRC B 08CB 2 NOP 1
|
||||
RRC C 09CB 2 NOP 1
|
||||
RRC D 0ACB 2 NOP 1
|
||||
RRC E 0BCB 2 NOP 1
|
||||
RRC H 0CCB 2 NOP 1
|
||||
RRC L 0DCB 2 NOP 1
|
||||
RRCA "" 0F 1 NOP 1
|
||||
RRD "" 67ED 2 NOP 1
|
||||
|
||||
RST 00H C7 1 NOP 1
|
||||
RST 08H CF 1 NOP 1
|
||||
RST 10H D7 1 NOP 1
|
||||
RST 18H DF 1 NOP 1
|
||||
RST 20H E7 1 NOP 1
|
||||
RST 28H EF 1 NOP 1
|
||||
RST 30H F7 1 NOP 1
|
||||
RST 38H FF 1 NOP 1
|
||||
|
||||
/* Alternate form of above
|
||||
RST 00 C7 1 NOP 1
|
||||
RST 08 CF 1 NOP 1
|
||||
RST 10 D7 1 NOP 1
|
||||
RST 18 DF 1 NOP 1
|
||||
RST 20 E7 1 NOP 1
|
||||
RST 28 EF 1 NOP 1
|
||||
RST 30 F7 1 NOP 1
|
||||
RST 38 FF 1 NOP 1
|
||||
|
||||
SBC A,(HL) 9E 1 NOP 1
|
||||
SBC A,(IX*) 9EDD 3 ZIX 1
|
||||
SBC A,(IY*) 9EFD 3 ZIX 1
|
||||
SBC A,A 9F 1 NOP 1
|
||||
SBC A,B 98 1 NOP 1
|
||||
SBC A,C 99 1 NOP 1
|
||||
SBC A,D 9A 1 NOP 1
|
||||
SBC A,E 9B 1 NOP 1
|
||||
SBC A,H 9C 1 NOP 1
|
||||
SBC A,L 9D 1 NOP 1
|
||||
SBC HL,BC 42ED 2 NOP 1
|
||||
SBC HL,DE 52ED 2 NOP 1
|
||||
SBC HL,HL 62ED 2 NOP 1
|
||||
SBC HL,SP 72ED 2 NOP 1
|
||||
SBC A,* DE 2 NOP 1
|
||||
SCF "" 37 1 NOP 1
|
||||
|
||||
SET *,(HL) C6CB 2 ZBIT 1
|
||||
SET *,(IX*) CBDD 4 ZBIT 1 0 C600
|
||||
SET *,(IY*) CBFD 4 ZBIT 1 0 C600
|
||||
SET *,A C7CB 2 ZBIT 1
|
||||
SET *,B C0CB 2 ZBIT 1
|
||||
SET *,C C1CB 2 ZBIT 1
|
||||
SET *,D C2CB 2 ZBIT 1
|
||||
SET *,E C3CB 2 ZBIT 1
|
||||
SET *,H C4CB 2 ZBIT 1
|
||||
SET *,L C5CB 2 ZBIT 1
|
||||
|
||||
SLA (HL) 26CB 2 NOP 1
|
||||
SLA (IX*) CBDD 4 ZIX 1 0 2600
|
||||
SLA (IY*) CBFD 4 ZIX 1 0 2600
|
||||
SLA A 27CB 2 NOP 1
|
||||
SLA B 20CB 2 NOP 1
|
||||
SLA C 21CB 2 NOP 1
|
||||
SLA D 22CB 2 NOP 1
|
||||
SLA E 23CB 2 NOP 1
|
||||
SLA H 24CB 2 NOP 1
|
||||
SLA L 25CB 2 NOP 1
|
||||
|
||||
SLP "" 76ED 2 NOP 2
|
||||
|
||||
SRA (HL) 2ECB 2 NOP 1
|
||||
SRA (IX*) CBDD 4 ZIX 1 0 2E00
|
||||
SRA (IY*) CBFD 4 ZIX 1 0 2E00
|
||||
SRA A 2FCB 2 NOP 1
|
||||
SRA B 28CB 2 NOP 1
|
||||
SRA C 29CB 2 NOP 1
|
||||
SRA D 2ACB 2 NOP 1
|
||||
SRA E 2BCB 2 NOP 1
|
||||
SRA H 2CCB 2 NOP 1
|
||||
SRA L 2DCB 2 NOP 1
|
||||
|
||||
SRL (HL) 3ECB 2 NOP 1
|
||||
SRL (IX*) CBDD 4 ZIX 1 0 3E00
|
||||
SRL (IY*) CBFD 4 ZIX 1 0 3E00
|
||||
SRL A 3FCB 2 NOP 1
|
||||
SRL B 38CB 2 NOP 1
|
||||
SRL C 39CB 2 NOP 1
|
||||
SRL D 3ACB 2 NOP 1
|
||||
SRL E 3BCB 2 NOP 1
|
||||
SRL H 3CCB 2 NOP 1
|
||||
SRL L 3DCB 2 NOP 1
|
||||
|
||||
SUB (HL) 96 1 NOP 1
|
||||
SUB (IX*) 96DD 3 ZIX 1
|
||||
SUB (IY*) 96FD 3 ZIX 1
|
||||
SUB A 97 1 NOP 1
|
||||
SUB B 90 1 NOP 1
|
||||
SUB C 91 1 NOP 1
|
||||
SUB D 92 1 NOP 1
|
||||
SUB E 93 1 NOP 1
|
||||
SUB H 94 1 NOP 1
|
||||
SUB L 95 1 NOP 1
|
||||
SUB * D6 2 NOP 1
|
||||
|
||||
TST A 3CED 2 NOP 2
|
||||
TST B 04ED 2 NOP 2
|
||||
TST C 0CED 2 NOP 2
|
||||
TST D 14ED 2 NOP 2
|
||||
TST E 1CED 2 NOP 2
|
||||
TST H 24ED 2 NOP 2
|
||||
TST L 2CED 2 NOP 2
|
||||
TST (HL) 34ED 2 NOP 2
|
||||
TST * 64ED 3 NOP 2
|
||||
|
||||
TSTIO * 74ED 3 NOP 2
|
||||
|
||||
XOR (HL) AE 1 NOP 1
|
||||
XOR (IX*) AEDD 3 ZIX 1
|
||||
XOR (IY*) AEFD 3 ZIX 1
|
||||
XOR A AF 1 NOP 1
|
||||
XOR B A8 1 NOP 1
|
||||
XOR C A9 1 NOP 1
|
||||
XOR D AA 1 NOP 1
|
||||
XOR E AB 1 NOP 1
|
||||
XOR H AC 1 NOP 1
|
||||
XOR L AD 1 NOP 1
|
||||
XOR * EE 2 NOP 1
|
||||
257
LSource/bin/TASM85.TAB
Normal file
257
LSource/bin/TASM85.TAB
Normal file
@@ -0,0 +1,257 @@
|
||||
"TASM 8085 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm85.tab 1.1 1993/07/31 01:12:40 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table for the 8085 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorporated
|
||||
/* This table authored and submitted by Gary Kirk Bach.
|
||||
/*
|
||||
/*INSTR ARGS OPCODE BYTES MOD CLASS */
|
||||
/*-----------------*/
|
||||
ACI * CE 2 NOP 1
|
||||
ADC B 88 1 NOP 1
|
||||
ADC C 89 1 NOP 1
|
||||
ADC D 8A 1 NOP 1
|
||||
ADC E 8B 1 NOP 1
|
||||
ADC H 8C 1 NOP 1
|
||||
ADC L 8D 1 NOP 1
|
||||
ADC M 8E 1 NOP 1
|
||||
ADC A 8F 1 NOP 1
|
||||
ADD B 80 1 NOP 1
|
||||
ADD C 81 1 NOP 1
|
||||
ADD D 82 1 NOP 1
|
||||
ADD E 83 1 NOP 1
|
||||
ADD H 84 1 NOP 1
|
||||
ADD L 85 1 NOP 1
|
||||
ADD M 86 1 NOP 1
|
||||
ADD A 87 1 NOP 1
|
||||
ADI * C6 2 NOP 1
|
||||
ANA B A0 1 NOP 1
|
||||
ANA C A1 1 NOP 1
|
||||
ANA D A2 1 NOP 1
|
||||
ANA E A3 1 NOP 1
|
||||
ANA H A4 1 NOP 1
|
||||
ANA L A5 1 NOP 1
|
||||
ANA M A6 1 NOP 1
|
||||
ANA A A7 1 NOP 1
|
||||
ANI * E6 2 NOP 1
|
||||
CALL * CD 3 NOP 1
|
||||
CC * DC 3 NOP 1
|
||||
CM * FC 3 NOP 1
|
||||
CMA "" 2F 1 NOP 1
|
||||
CMC "" 3F 1 NOP 1
|
||||
CMP B B8 1 NOP 1
|
||||
CMP C B9 1 NOP 1
|
||||
CMP D BA 1 NOP 1
|
||||
CMP E BB 1 NOP 1
|
||||
CMP H BC 1 NOP 1
|
||||
CMP L BD 1 NOP 1
|
||||
CMP M BE 1 NOP 1
|
||||
CMP A BF 1 NOP 1
|
||||
CNC * D4 3 NOP 1
|
||||
CNZ * C4 3 NOP 1
|
||||
CP * F4 3 NOP 1
|
||||
CPE * EC 3 NOP 1
|
||||
CPI * FE 2 NOP 1
|
||||
CPO * E4 3 NOP 1
|
||||
CZ * CC 3 NOP 1
|
||||
DAA "" 27 1 NOP 1
|
||||
DAD B 09 1 NOP 1
|
||||
DAD D 19 1 NOP 1
|
||||
DAD H 29 1 NOP 1
|
||||
DAD SP 39 1 NOP 1
|
||||
DCR B 05 1 NOP 1
|
||||
DCR C 0D 1 NOP 1
|
||||
DCR D 15 1 NOP 1
|
||||
DCR E 1D 1 NOP 1
|
||||
DCR H 25 1 NOP 1
|
||||
DCR L 2D 1 NOP 1
|
||||
DCR M 35 1 NOP 1
|
||||
DCR A 3D 1 NOP 1
|
||||
DCX B 0B 1 NOP 1
|
||||
DCX D 1B 1 NOP 1
|
||||
DCX H 2B 1 NOP 1
|
||||
DCX SP 3B 1 NOP 1
|
||||
DI "" F3 1 NOP 1
|
||||
EI "" FB 1 NOP 1
|
||||
HLT "" 76 1 NOP 1
|
||||
IN * DB 2 NOP 1
|
||||
INR B 04 1 NOP 1
|
||||
INR C 0C 1 NOP 1
|
||||
INR D 14 1 NOP 1
|
||||
INR E 1C 1 NOP 1
|
||||
INR H 24 1 NOP 1
|
||||
INR L 2C 1 NOP 1
|
||||
INR M 34 1 NOP 1
|
||||
INR A 3C 1 NOP 1
|
||||
INX B 03 1 NOP 1
|
||||
INX D 13 1 NOP 1
|
||||
INX H 23 1 NOP 1
|
||||
INX SP 33 1 NOP 1
|
||||
JC * DA 3 NOP 1
|
||||
JM * FA 3 NOP 1
|
||||
JMP * C3 3 NOP 1
|
||||
JNC * D2 3 NOP 1
|
||||
JNZ * C2 3 NOP 1
|
||||
JP * F2 3 NOP 1
|
||||
JPE * EA 3 NOP 1
|
||||
JPO * E2 3 NOP 1
|
||||
JZ * CA 3 NOP 1
|
||||
LDA * 3A 3 NOP 1
|
||||
LDAX B 0A 1 NOP 1
|
||||
LDAX D 1A 1 NOP 1
|
||||
LHLD * 2A 3 NOP 1
|
||||
LXI B,* 01 3 NOP 1
|
||||
LXI D,* 11 3 NOP 1
|
||||
LXI H,* 21 3 NOP 1
|
||||
LXI SP,* 31 3 NOP 1
|
||||
MOV B,B 40 1 NOP 1
|
||||
MOV B,C 41 1 NOP 1
|
||||
MOV B,D 42 1 NOP 1
|
||||
MOV B,E 43 1 NOP 1
|
||||
MOV B,H 44 1 NOP 1
|
||||
MOV B,L 45 1 NOP 1
|
||||
MOV B,M 46 1 NOP 1
|
||||
MOV B,A 47 1 NOP 1
|
||||
MOV C,B 48 1 NOP 1
|
||||
MOV C,C 49 1 NOP 1
|
||||
MOV C,D 4A 1 NOP 1
|
||||
MOV C,E 4B 1 NOP 1
|
||||
MOV C,H 4C 1 NOP 1
|
||||
MOV C,L 4D 1 NOP 1
|
||||
MOV C,M 4E 1 NOP 1
|
||||
MOV C,A 4F 1 NOP 1
|
||||
MOV D,B 50 1 NOP 1
|
||||
MOV D,C 51 1 NOP 1
|
||||
MOV D,D 52 1 NOP 1
|
||||
MOV D,E 53 1 NOP 1
|
||||
MOV D,H 54 1 NOP 1
|
||||
MOV D,L 55 1 NOP 1
|
||||
MOV D,M 56 1 NOP 1
|
||||
MOV D,A 57 1 NOP 1
|
||||
MOV E,B 58 1 NOP 1
|
||||
MOV E,C 59 1 NOP 1
|
||||
MOV E,D 5A 1 NOP 1
|
||||
MOV E,E 5B 1 NOP 1
|
||||
MOV E,H 5C 1 NOP 1
|
||||
MOV E,L 5D 1 NOP 1
|
||||
MOV E,M 5E 1 NOP 1
|
||||
MOV E,A 5F 1 NOP 1
|
||||
MOV H,B 60 1 NOP 1
|
||||
MOV H,C 61 1 NOP 1
|
||||
MOV H,D 62 1 NOP 1
|
||||
MOV H,E 63 1 NOP 1
|
||||
MOV H,H 64 1 NOP 1
|
||||
MOV H,L 65 1 NOP 1
|
||||
MOV H,M 66 1 NOP 1
|
||||
MOV H,A 67 1 NOP 1
|
||||
MOV L,B 68 1 NOP 1
|
||||
MOV L,C 69 1 NOP 1
|
||||
MOV L,D 6A 1 NOP 1
|
||||
MOV L,E 6B 1 NOP 1
|
||||
MOV L,H 6C 1 NOP 1
|
||||
MOV L,L 6D 1 NOP 1
|
||||
MOV L,M 6E 1 NOP 1
|
||||
MOV L,A 6F 1 NOP 1
|
||||
MOV M,B 70 1 NOP 1
|
||||
MOV M,C 71 1 NOP 1
|
||||
MOV M,D 72 1 NOP 1
|
||||
MOV M,E 73 1 NOP 1
|
||||
MOV M,H 74 1 NOP 1
|
||||
MOV M,L 75 1 NOP 1
|
||||
MOV M,A 77 1 NOP 1
|
||||
MOV A,B 78 1 NOP 1
|
||||
MOV A,C 79 1 NOP 1
|
||||
MOV A,D 7A 1 NOP 1
|
||||
MOV A,E 7B 1 NOP 1
|
||||
MOV A,H 7C 1 NOP 1
|
||||
MOV A,L 7D 1 NOP 1
|
||||
MOV A,M 7E 1 NOP 1
|
||||
MOV A,A 7F 1 NOP 1
|
||||
MVI B,* 06 2 NOP 1
|
||||
MVI C,* 0E 2 NOP 1
|
||||
MVI D,* 16 2 NOP 1
|
||||
MVI E,* 1E 2 NOP 1
|
||||
MVI H,* 26 2 NOP 1
|
||||
MVI L,* 2E 2 NOP 1
|
||||
MVI M,* 36 2 NOP 1
|
||||
MVI A,* 3E 2 NOP 1
|
||||
NOP "" 00 1 NOP 1
|
||||
ORA B B0 1 NOP 1
|
||||
ORA C B1 1 NOP 1
|
||||
ORA D B2 1 NOP 1
|
||||
ORA E B3 1 NOP 1
|
||||
ORA H B4 1 NOP 1
|
||||
ORA L B5 1 NOP 1
|
||||
ORA M B6 1 NOP 1
|
||||
ORA A B7 1 NOP 1
|
||||
ORI * F6 2 NOP 1
|
||||
OUT * D3 2 NOP 1
|
||||
PCHL "" E9 1 NOP 1
|
||||
POP B C1 1 NOP 1
|
||||
POP D D1 1 NOP 1
|
||||
POP H E1 1 NOP 1
|
||||
POP PSW F1 1 NOP 1
|
||||
PUSH B C5 1 NOP 1
|
||||
PUSH D D5 1 NOP 1
|
||||
PUSH H E5 1 NOP 1
|
||||
PUSH PSW F5 1 NOP 1
|
||||
RAL "" 17 1 NOP 1
|
||||
RAR "" 1F 1 NOP 1
|
||||
RC "" D8 1 NOP 1
|
||||
RET "" C9 1 NOP 1
|
||||
RIM "" 20 1 NOP 1
|
||||
RLC "" 07 1 NOP 1
|
||||
RM "" F8 1 NOP 1
|
||||
RNC "" D0 1 NOP 1
|
||||
RNZ "" C0 1 NOP 1
|
||||
RP "" F0 1 NOP 1
|
||||
RPE "" E8 1 NOP 1
|
||||
RPO "" E0 1 NOP 1
|
||||
RRC "" 0F 1 NOP 1
|
||||
RST 0 C7 1 NOP 1
|
||||
RST 1 CF 1 NOP 1
|
||||
RST 2 D7 1 NOP 1
|
||||
RST 3 DF 1 NOP 1
|
||||
RST 4 E7 1 NOP 1
|
||||
RST 5 EF 1 NOP 1
|
||||
RST 6 F7 1 NOP 1
|
||||
RST 7 FF 1 NOP 1
|
||||
RZ "" C8 1 NOP 1
|
||||
SBB B 98 1 NOP 1
|
||||
SBB C 99 1 NOP 1
|
||||
SBB D 9A 1 NOP 1
|
||||
SBB E 9B 1 NOP 1
|
||||
SBB H 9C 1 NOP 1
|
||||
SBB L 9D 1 NOP 1
|
||||
SBB M 9E 1 NOP 1
|
||||
SBB A 9F 1 NOP 1
|
||||
SBI * DE 2 NOP 1
|
||||
SHLD * 22 3 NOP 1
|
||||
SIM "" 30 1 NOP 1
|
||||
SPHL "" F9 1 NOP 1
|
||||
STA * 32 3 NOP 1
|
||||
STAX B 02 1 NOP 1
|
||||
STAX D 12 1 NOP 1
|
||||
STC "" 37 1 NOP 1
|
||||
SUB B 90 1 NOP 1
|
||||
SUB C 91 1 NOP 1
|
||||
SUB D 92 1 NOP 1
|
||||
SUB E 93 1 NOP 1
|
||||
SUB H 94 1 NOP 1
|
||||
SUB L 95 1 NOP 1
|
||||
SUB M 96 1 NOP 1
|
||||
SUB A 97 1 NOP 1
|
||||
SUI * D6 2 NOP 1
|
||||
XCHG "" EB 1 NOP 1
|
||||
XRA B A8 1 NOP 1
|
||||
XRA C A9 1 NOP 1
|
||||
XRA D AA 1 NOP 1
|
||||
XRA E AB 1 NOP 1
|
||||
XRA H AC 1 NOP 1
|
||||
XRA L AD 1 NOP 1
|
||||
XRA M AE 1 NOP 1
|
||||
XRA A AF 1 NOP 1
|
||||
XRI * EE 2 NOP 1
|
||||
XTHL "" E3 1 NOP 1
|
||||
|
||||
393
LSource/bin/TASM96.TAB
Normal file
393
LSource/bin/TASM96.TAB
Normal file
@@ -0,0 +1,393 @@
|
||||
"TASM 8096 Assembler."
|
||||
/****************************************************************************
|
||||
/* $Id: tasm96.tab 1.5 1997/09/28 22:14:30 toma Exp $
|
||||
/****************************************************************************
|
||||
;* This is the instruction set definition table
|
||||
;* for the 8096 version of TASM.
|
||||
;* Thomas N. Anderson, Speech Technology Incorporated
|
||||
;*
|
||||
;* See TASM manual for info on table structure.
|
||||
;*
|
||||
;*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT MASK
|
||||
;*-------------------------------------------*
|
||||
; Revisions:
|
||||
; Added I7 rule for single arg direct/far (PUSH/POP)
|
||||
; Changed ADDB *,*,*[*] entry from rule I1 to I6.
|
||||
;
|
||||
; Generate opcodes high byte first/
|
||||
.MSFIRST
|
||||
.NOARGSHIFT
|
||||
;
|
||||
; Note:
|
||||
; The I1 rule uses ARGVAL for arg validation. If the combined
|
||||
; args AND ARGVAL is not equal to the combined args then an
|
||||
; error message is generated.
|
||||
;
|
||||
; The I1 rule also uses ARGOR. The value of that mask is OR'd
|
||||
; with the first byte of the args.
|
||||
;
|
||||
; ARGOR
|
||||
; BYTES CLASS |
|
||||
; | | |
|
||||
;INST ARGS OP v RULE v v ARGVAL
|
||||
;-----------------------------------------;
|
||||
;OK ADD
|
||||
ADD *,*,[*]+ 46 4 I1 1 01 00FeFeFe ;
|
||||
ADD *,*,[*] 46 4 I1 1 00 00FeFeFe ;
|
||||
ADD *,*,*[*] 47 6 I6 1 00 00FeFeFe ;
|
||||
ADD *,*,#* 45 5 I1 1 00 FeFeFFFF ;
|
||||
ADD *,[*]+ 66 3 I1 1 01 0000FFFe ; 1st arg must be even, make odd
|
||||
ADD *,[*] 66 3 I1 1 00 0000FFFe ; 1st arg must be even
|
||||
ADD *,*[*] 67 5 I6 1 00 00FFFFFF ;
|
||||
ADD *,*,* 4701 6 I3 1 00 0000FeFe ; 3rd arg may be far
|
||||
ADD *,#* 65 4 I1 1 00 00FeFFFF ; 1st arg must be even
|
||||
ADD *,* 6701 5 I2 1 00 0000FeFe ; 2nd arg may be far
|
||||
|
||||
;OK ADDB
|
||||
ADDB *,*,[*]+ 56 4 I1 1 01 00000000 ; no validation yet
|
||||
ADDB *,*,[*] 56 4 I1 1 00 00000000 ; no validation yet
|
||||
ADDB *,*,*[*] 57 6 I6 1 00 00000000 ; no validation yet
|
||||
ADDB *,*,#* 55 4 I1 1 00 00000000 ; no validation yet
|
||||
ADDB *,[*]+ 76 3 I1 1 01 0000FFFe ; 1st arg must be even, make odd
|
||||
ADDB *,[*] 76 3 I1 1 00 0000FFFe ; 1st arg must be even
|
||||
ADDB *,*[*] 77 5 I6 1 00 00FeFFFe ; 1st,3rd must be even
|
||||
ADDB *,*,* 5701 6 I3 1 00 00000000 ; 3rd arg may be far
|
||||
ADDB *,#* 75 3 I1 1 00 00FFFFFF ; odd args ok for byte operations
|
||||
ADDB *,* 7701 5 I2 1 00 00000000 ; 2nd arg may be far
|
||||
|
||||
; No three arg forms for ADDC or ADDCB
|
||||
ADDC *,[*]+ A6 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
ADDC *,[*] A6 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
ADDC *,*[*] A7 5 I6 1 00 00FFFFFF ;
|
||||
ADDC *,#* A5 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
ADDC *,* A701 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
ADDCB *,[*]+ B6 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
ADDCB *,[*] B6 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
ADDCB *,*[*] B7 5 I6 1 00 00FFFFFF ;
|
||||
ADDCB *,#* B5 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
ADDCB *,* B701 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
; OK AND
|
||||
AND *,*,[*]+ 42 4 I1 1 01 00000000 ;no validation yet
|
||||
AND *,*,[*] 42 4 I1 1 00 00000000 ;no validation yet
|
||||
AND *,*,*[*] 43 6 I6 1 00 00000000 ;no validation yet
|
||||
AND *,*,#* 41 5 I1 1 00 00000000 ;no validation yet
|
||||
AND *,[*]+ 62 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
AND *,[*] 62 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
AND *,*[*] 63 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
AND *,*,* 4301 6 I3 1 00 00000000 ;3rd arg may be far
|
||||
AND *,#* 61 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
AND *,* 6301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
ANDB *,*,[*]+ 52 4 I1 1 01 00000000 ;no validation yet
|
||||
ANDB *,*,[*] 52 4 I1 1 00 00000000 ;no validation yet
|
||||
ANDB *,*,*[*] 53 6 I6 1 00 00000000 ;no validation yet
|
||||
ANDB *,*,#* 51 4 I1 1 00 00000000 ;no validation yet
|
||||
ANDB *,[*]+ 72 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
ANDB *,[*] 72 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
ANDB *,*[*] 73 5 I6 1 00 00FFFFFF ;
|
||||
ANDB *,*,* 5301 6 I3 1 00 00000000 ;3rd arg may be far
|
||||
ANDB *,#* 71 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
ANDB *,* 7301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
BMOV *,* C1 3 I1 2 00 0000FcFF ;long word ptr to two words
|
||||
BMOVI *,* AD 3 I1 2 00 0000FcFF ;long word ptr to two words
|
||||
|
||||
BR [*] E3 2 I1 1 00 00000000 ;
|
||||
BR * 2000 2 I5 1 00 00000000 ; Same As SJMP
|
||||
|
||||
CLR * 01 2 NOP 1 00 00000000 ;
|
||||
CLRB * 11 2 NOP 1 00 00000000 ;
|
||||
CLRC "" F8 1 NOP 1 00 00000000 ;
|
||||
CLRVT "" FC 1 NOP 1 00 00000000 ;
|
||||
|
||||
CMP *,[*]+ 8A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
CMP *,[*] 8A 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
CMP *,*[*] 8B 5 I6 1 00 00FFFFFF ;
|
||||
CMP *,#* 89 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
CMP *,* 8B01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
CMPB *,[*]+ 9A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
CMPB *,[*] 9A 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
CMPB *,*[*] 9B 5 I6 1 00 00FFFFFF ;
|
||||
CMPB *,#* 99 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
CMPB *,* 9B01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
CMPL *,* C5 3 I1 2 00 0000FcFc ;long align multiple of 4
|
||||
|
||||
DEC * 05 2 NOP 1 00 00000000 ;
|
||||
DECB * 15 2 NOP 1 00 00000000 ;
|
||||
DJNZ *,* E0 3 CREL 1 00 00000000 ;
|
||||
DJNZW *,* E1 3 CREL 2 00 00000000 ;
|
||||
|
||||
DI "" FA 1 NOP 1 00 00000000 ;
|
||||
|
||||
DIVU *,[*]+ 8E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
DIVU *,[*] 8E 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
DIVU *,*[*] 8F 5 I6 1 00 0000FFFe ;1st arg must be even
|
||||
DIVU *,#* 8D 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
DIVU *,* 8F01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
DIVUB *,[*]+ 9E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
DIVUB *,[*] 9E 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
DIVUB *,*[*] 9F 5 I6 1 00 0000FFFF ;
|
||||
DIVUB *,#* 9D 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
DIVUB *,* 9F01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
DIV *,[*]+ FE8E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
DIV *,[*] FE8E 4 I1 1 00 0000FFFe ;1st arg must be even
|
||||
DIV *,*[*] FE8F 6 I6 1 00 0000FFFe ;1st arg must be even
|
||||
DIV *,#* FE8D 5 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
DIV *,* FE8F01 6 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
DIVB *,[*]+ FE9E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
DIVB *,[*] FE9E 4 I1 1 00 0000FFFe ;1st arg must be even
|
||||
DIVB *,*[*] FE9F 6 I6 1 00 0000FFFF ;
|
||||
DIVB *,#* FE9D 4 I1 1 00 00FFFFFF ;odd args ok for byte operations;
|
||||
DIVB *,* FE9F01 6 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
DPTS "" EC 1 NOP 2 00 00000000 ;
|
||||
EPTS "" ED 1 NOP 2 00 00000000 ;
|
||||
|
||||
EI "" FB 1 NOP 1 00 00000000 ;
|
||||
|
||||
EXT * 06 2 NOP 1 00 00000000 ;
|
||||
EXTB * 16 2 NOP 1 00 00000000 ;
|
||||
|
||||
IDLPD #* F6 2 NOP 2 00 00000000 ;
|
||||
|
||||
INC * 07 2 NOP 1 00 00000000 ;
|
||||
INCB * 17 2 NOP 1 00 00000000 ;
|
||||
|
||||
JC * DB 2 R1 1 00 00000000
|
||||
JNC * D3 2 R1 1 00 00000000
|
||||
JH * D9 2 R1 1 00 00000000
|
||||
JNH * D1 2 R1 1 00 00000000
|
||||
JE * DF 2 R1 1 00 00000000
|
||||
JNE * D7 2 R1 1 00 00000000
|
||||
JV * DD 2 R1 1 00 00000000
|
||||
JNV * D5 2 R1 1 00 00000000
|
||||
JGE * D6 2 R1 1 00 00000000
|
||||
JLT * DE 2 R1 1 00 00000000
|
||||
JVT * DC 2 R1 1 00 00000000
|
||||
JNVT * D4 2 R1 1 00 00000000
|
||||
JGT * D2 2 R1 1 00 00000000
|
||||
JLE * DA 2 R1 1 00 00000000
|
||||
JST * D8 2 R1 1 00 00000000
|
||||
JNST * D0 2 R1 1 00 00000000
|
||||
|
||||
JBC *,*,* 30 3 I4 1 00 00000000
|
||||
JBS *,*,* 38 3 I4 1 00 00000000
|
||||
|
||||
LJMP * E7 3 R2 1 00 00000000
|
||||
LCALL * EF 3 R2 1 00 00000000
|
||||
|
||||
LD *,[*]+ A2 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
LD *,[*] A2 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
LD *,*[*] A3 5 I6 1 00 00FFFFFF ;
|
||||
LD *,#* A1 4 I1 1 00 00FFFFFF ;
|
||||
LD *,* A301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
LDB *,[*]+ B2 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
LDB *,[*] B2 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
LDB *,*[*] B3 5 I6 1 00 00FFFFFF ;
|
||||
LDB *,#* B1 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
LDB *,* B301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
LDBSE *,[*]+ BE 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
LDBSE *,[*] BE 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
LDBSE *,*[*] BF 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
LDBSE *,#* BD 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
LDBSE *,* BF01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
LDBZE *,[*]+ AE 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
LDBZE *,[*] AE 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
LDBZE *,*[*] AF 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
LDBZE *,#* AD 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
LDBZE *,* AF01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
MULU *,*,[*]+ 4E 4 I1 1 01 00000000 ;no validation yet
|
||||
MULU *,*,[*] 4E 4 I1 1 00 00000000 ;no validation yet
|
||||
MULU *,*,*[*] 4F 6 I6 1 00 00000000 ;no validation yet
|
||||
MULU *,*,#* 4D 5 I1 1 00 00000000 ;no validation yet
|
||||
MULU *,[*]+ 6E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
MULU *,[*] 6E 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
MULU *,*[*] 6F 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
MULU *,*,* 4F01 6 I3 1 00 00000000 ;3rd arg may be far
|
||||
MULU *,#* 6D 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
MULU *,* 6F01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
|
||||
MULUB *,*,[*]+ 5E 4 I1 1 01 00000000 ;no validation yet
|
||||
MULUB *,*,[*] 5E 4 I1 1 00 00000000 ;no validation yet
|
||||
MULUB *,*,*[*] 5F 6 I6 1 00 00000000 ;no validation yet
|
||||
MULUB *,*,#* 5D 4 I1 1 00 00000000 ;no validation yet
|
||||
MULUB *,[*]+ 7E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
MULUB *,[*] 7E 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
MULUB *,*[*] 7F 5 I6 1 00 00FFFFFF ;
|
||||
MULUB *,*,* 5F01 6 I3 1 00 00000000 ;3rd arg may be far
|
||||
MULUB *,#* 7D 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
MULUB *,* 7F01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
MUL *,*,[*]+ FE4E 5 I1 1 01 00000000 ;no validation yet
|
||||
MUL *,*,[*] FE4E 5 I1 1 00 00000000 ;no validation yet
|
||||
MUL *,*,*[*] FE4F 7 I6 1 00 00000000 ;no validation yet
|
||||
MUL *,*,#* FE4D 6 I1 1 00 00000000 ;no validation yet
|
||||
MUL *,[*]+ FE6E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
MUL *,[*] FE6E 4 I1 1 00 0000FFFe ;1st arg must be even
|
||||
MUL *,*[*] FE6F 6 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
MUL *,*,* FE4F01 7 I3 1 00 00000000 ;3rd arg may be far
|
||||
MUL *,#* FE6D 5 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
MUL *,* FE6F01 6 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
MULB *,*,[*]+ FE5E 5 I1 1 01 00000000 ;no validation yet
|
||||
MULB *,*,[*] FE5E 5 I1 1 00 00000000 ;no validation yet
|
||||
MULB *,*,*[*] FE5F 7 I6 1 00 00000000 ;no validation yet
|
||||
MULB *,*,#* FE5D 5 I1 1 00 00000000 ;no validation yet
|
||||
MULB *,[*]+ FE7E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
MULB *,[*] FE7E 4 I1 1 00 0000FFFe ;1st arg must be even
|
||||
MULB *,*[*] FE7F 6 I6 1 00 00FFFFFF ;
|
||||
MULB *,*,* FE5F01 7 I3 1 00 00000000 ;3rd arg may be far
|
||||
MULB *,#* FE7D 4 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
MULB *,* FE7F01 6 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
NEG * 03 2 I1 1 00 000000FE ;arg must be even
|
||||
NEGB * 13 2 I1 1 00 000000FF ;
|
||||
|
||||
NOP "" FD 1 NOP 1 00 00000000 ;
|
||||
|
||||
NORML *,* 0F 3 I1 1 00 0000FFFF ;long align
|
||||
|
||||
NOT * 02 2 NOP 1 00 00000000 ;
|
||||
NOTB * 12 2 NOP 1 00 00000000 ;
|
||||
|
||||
OR *,[*]+ 82 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
OR *,[*] 82 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
OR *,*[*] 83 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
OR *,#* 81 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
OR *,* 8301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
ORB *,[*]+ 92 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
ORB *,[*] 92 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
ORB *,*[*] 93 5 I6 1 00 00FFFFFF ;
|
||||
ORB *,#* 91 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
ORB *,* 9301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
PUSH #* C9 3 I1 1 00 00000000 ;
|
||||
PUSH [*]+ CA 2 I1 1 01 000000Fe ;arg must be even
|
||||
PUSH [*] CA 2 I1 1 00 000000Fe ;arg must be even
|
||||
PUSH *[*] CB 4 I6 1 00 00FFFFFe ;arg must be even
|
||||
PUSH * CB01 4 I7 1 00 0000FFFe ;arg must be even
|
||||
|
||||
PUSHF "" F2 1 NOP 1 00 00000000 ;
|
||||
PUSHA "" F4 1 NOP 1 00 00000000 ;
|
||||
|
||||
POP [*]+ CE 2 I1 1 01 000000Fe ;arg must be even
|
||||
POP [*] CE 2 I1 1 00 000000Fe ;arg must be even
|
||||
POP *[*] CF 4 I6 1 00 00FFFFFE ;
|
||||
POP * CF01 4 I7 1 00 0000FFFe ;arg must be even
|
||||
|
||||
POPF "" F3 1 NOP 1 00 00000000 ;
|
||||
POPA "" F5 1 NOP 1 00 00000000 ;
|
||||
|
||||
RET "" F0 1 NOP 1 00 00000000 ;
|
||||
RST "" FF 1 NOP 1 00 00000000 ;
|
||||
|
||||
SJMP * 2000 2 I5 1 00 00000000
|
||||
SCALL * 2800 2 I5 1 00 00000000
|
||||
|
||||
SUB *,*,[*]+ 4A 4 I1 1 01 00000000 ;no validation yet
|
||||
SUB *,*,[*] 4A 4 I1 1 00 00000000 ;no validation yet
|
||||
SUB *,*,*[*] 4B 6 I6 1 00 00000000 ;no validation yet
|
||||
SUB *,*,#* 49 5 I1 1 00 00000000 ;no validation yet
|
||||
SUB *,[*]+ 6A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
SUB *,[*] 6A 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
SUB *,*[*] 6B 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
SUB *,*,* 4B01 6 I3 1 00 00000000 ;3rd arg may be far
|
||||
SUB *,#* 69 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
SUB *,* 6B01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
SUBB *,*,[*]+ 5A 4 I1 1 01 00000000 ;no validation yet
|
||||
SUBB *,*,[*] 5A 4 I1 1 00 00000000 ;no validation yet
|
||||
SUBB *,*,*[*] 5B 6 I6 1 00 00000000 ;no validation yet
|
||||
SUBB *,*,#* 59 4 I1 1 00 00000000 ;no validation yet
|
||||
SUBB *,[*]+ 7A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
SUBB *,[*] 7A 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
SUBB *,*[*] 7B 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
SUBB *,*,* 5B01 6 I3 1 00 00000000 ;3rd arg may be far
|
||||
SUBB *,#* 79 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
SUBB *,* 7B01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
SUBC *,[*]+ AA 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
SUBC *,[*] AA 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
SUBC *,*[*] AB 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
SUBC *,#* A9 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
SUBC *,* AB01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
SUBCB *,[*]+ BA 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
SUBCB *,[*] BA 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
SUBCB *,*[*] BB 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
SUBCB *,#* B9 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
SUBCB *,* BB01 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
SHL *,#* 09 3 I1 1 00 0000FE0F ; F
|
||||
SHL *,* 09 3 I1 1 00 0000FEFF ;
|
||||
SHLB *,#* 19 3 I1 1 00 0000FF0F ;
|
||||
SHLB *,* 19 3 I1 1 00 0000FFFF ;
|
||||
SHLL *,#* 0D 3 I1 1 00 0000FF0F ;
|
||||
SHLL *,* 0D 3 I1 1 00 0000FFFF ;
|
||||
|
||||
SHR *,#* 08 3 I1 1 00 0000FF0F ;word align
|
||||
SHR *,* 08 3 I1 1 00 0000FFFF ;word align
|
||||
SHRB *,#* 18 3 I1 1 00 0000FF0F ;byte align
|
||||
SHRB *,* 18 3 I1 1 00 0000FFFF ;byte align
|
||||
SHRL *,#* 0C 3 I1 1 00 0000FF0F ;long align
|
||||
SHRL *,* 0C 3 I1 1 00 0000FFFF ;long align
|
||||
|
||||
SHRA *,#* 0A 3 I1 1 00 0000FF0F ;word align
|
||||
SHRA *,* 0A 3 I1 1 00 0000FFFF ;word align
|
||||
SHRAB *,#* 1A 3 I1 1 00 0000FF0F ;byte align
|
||||
SHRAB *,* 1A 3 I1 1 00 0000FFFF ;byte align
|
||||
SHRAL *,#* 0E 3 I1 1 00 0000FF0F ;long align
|
||||
SHRAL *,* 0E 3 I1 1 00 0000FFFF ;long align
|
||||
|
||||
SETC "" F9 1 NOP 1 00 00000000 ;
|
||||
|
||||
|
||||
SKIP "" 0000 2 NOP 1 00 00000000 ;
|
||||
SKIP * 00 2 I1 1 00 00000000 ;
|
||||
|
||||
ST *,[*]+ C2 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
ST *,[*] C2 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
ST *,*[*] C3 5 I6 1 00 FFFFFFFe ;1st,3rd must be even
|
||||
ST *,* C301 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
STB *,[*]+ C6 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
STB *,[*] C6 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
STB *,*[*] C7 5 I6 1 00 FFFFFFFe ;1st,3rd must be even
|
||||
STB *,* C701 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
TRAP "" F7 1 NOP 1 00 00000000 ;
|
||||
|
||||
TIJMP *,[*],#* E2 4 I8 2 00 00FEFEFF ;
|
||||
|
||||
XCH *,*[*] 0B 5 I6 2 00 00FeFFFe ;1st,3rd must be even
|
||||
XCH *,* 0B01 5 I2 2 0C 00000000 ;2nd arg may be far
|
||||
|
||||
XCHB *,*[*] 1B 5 I6 2 00 00FFFFFF ;
|
||||
XCHB *,* 1B01 5 I2 2 0C 00000000 ;2nd arg may be far
|
||||
|
||||
XOR *,[*]+ 86 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
XOR *,[*] 86 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
XOR *,*[*] 87 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
||||
XOR *,#* 85 4 I1 1 00 00FeFFFF ;1st arg must be even
|
||||
XOR *,* 8701 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
XORB *,[*]+ 96 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
||||
XORB *,[*] 96 3 I1 1 00 0000FFFe ;1st arg must be even
|
||||
XORB *,*[*] 97 5 I6 1 00 00FFFFFF ;
|
||||
XORB *,#* 95 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
||||
XORB *,* 9701 5 I2 1 00 00000000 ;2nd arg may be far
|
||||
|
||||
|
||||
594
LSource/bin/tasm180.tab
Normal file
594
LSource/bin/tasm180.tab
Normal file
@@ -0,0 +1,594 @@
|
||||
"TASM Z180 Assembler. "
|
||||
/****************************************************************************
|
||||
/* $Id: tasm80.tab 1.2 1998/02/28 14:31:22 toma Exp $
|
||||
/****************************************************************************
|
||||
/* This is the instruction set definition table
|
||||
/* for the Z80 version of TASM.
|
||||
/* Thomas N. Anderson, Speech Technology Incorporated
|
||||
/* This table authored and submitted by Carl A. Wall, VE3APY.
|
||||
/*
|
||||
/* Class bits assigned as follows:
|
||||
/* Bit-0 = Z80 (base instruction set)
|
||||
/* Bit-1 = HD64180 (extended instructions)
|
||||
/* See TASM manual for info on table structure.
|
||||
/*
|
||||
/*INSTR ARGS OP BYTES RULE CLASS SHIFT OR */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
ADC A,(HL) 8E 1 NOP 1
|
||||
ADC A,(IX*) 8EDD 3 ZIX 1
|
||||
ADC A,(IY*) 8EFD 3 ZIX 1
|
||||
ADC A,A 8F 1 NOP 1
|
||||
ADC A,B 88 1 NOP 1
|
||||
ADC A,C 89 1 NOP 1
|
||||
ADC A,D 8A 1 NOP 1
|
||||
ADC A,E 8B 1 NOP 1
|
||||
ADC A,H 8C 1 NOP 1
|
||||
ADC A,L 8D 1 NOP 1
|
||||
ADC A,* CE 2 NOP 1
|
||||
ADC HL,BC 4AED 2 NOP 1
|
||||
ADC HL,DE 5AED 2 NOP 1
|
||||
ADC HL,HL 6AED 2 NOP 1
|
||||
ADC HL,SP 7AED 2 NOP 1
|
||||
|
||||
ADD A,(HL) 86 1 NOP 1
|
||||
ADD A,(IX*) 86DD 3 ZIX 1
|
||||
ADD A,(IY*) 86FD 3 ZIX 1
|
||||
ADD A,A 87 1 NOP 1
|
||||
ADD A,B 80 1 NOP 1
|
||||
ADD A,C 81 1 NOP 1
|
||||
ADD A,D 82 1 NOP 1
|
||||
ADD A,E 83 1 NOP 1
|
||||
ADD A,H 84 1 NOP 1
|
||||
ADD A,L 85 1 NOP 1
|
||||
ADD A,* C6 2 NOP 1
|
||||
ADD HL,BC 09 1 NOP 1
|
||||
ADD HL,DE 19 1 NOP 1
|
||||
ADD HL,HL 29 1 NOP 1
|
||||
ADD HL,SP 39 1 NOP 1
|
||||
ADD IX,BC 09DD 2 NOP 1
|
||||
ADD IX,DE 19DD 2 NOP 1
|
||||
ADD IX,IX 29DD 2 NOP 1
|
||||
ADD IX,SP 39DD 2 NOP 1
|
||||
ADD IY,BC 09FD 2 NOP 1
|
||||
ADD IY,DE 19FD 2 NOP 1
|
||||
ADD IY,IY 29FD 2 NOP 1
|
||||
ADD IY,SP 39FD 2 NOP 1
|
||||
|
||||
AND (HL) A6 1 NOP 1
|
||||
AND (IX*) A6DD 3 ZIX 1
|
||||
AND (IY*) A6FD 3 ZIX 1
|
||||
AND A A7 1 NOP 1
|
||||
AND B A0 1 NOP 1
|
||||
AND C A1 1 NOP 1
|
||||
AND D A2 1 NOP 1
|
||||
AND E A3 1 NOP 1
|
||||
AND H A4 1 NOP 1
|
||||
AND L A5 1 NOP 1
|
||||
AND * E6 2 NOP 1
|
||||
|
||||
BIT *,(HL) 46CB 2 ZBIT 1
|
||||
BIT *,(IX*) CBDD 4 ZBIT 1 0 4600
|
||||
BIT *,(IY*) CBFD 4 ZBIT 1 0 4600
|
||||
BIT *,A 47CB 2 ZBIT 1
|
||||
BIT *,B 40CB 2 ZBIT 1
|
||||
BIT *,C 41CB 2 ZBIT 1
|
||||
BIT *,D 42CB 2 ZBIT 1
|
||||
BIT *,E 43CB 2 ZBIT 1
|
||||
BIT *,H 44CB 2 ZBIT 1
|
||||
BIT *,L 45CB 2 ZBIT 1
|
||||
|
||||
CALL C,* DC 3 NOP 1
|
||||
CALL M,* FC 3 NOP 1
|
||||
CALL NC,* D4 3 NOP 1
|
||||
CALL NZ,* C4 3 NOP 1
|
||||
CALL P,* F4 3 NOP 1
|
||||
CALL PE,* EC 3 NOP 1
|
||||
CALL PO,* E4 3 NOP 1
|
||||
CALL Z,* CC 3 NOP 1
|
||||
CALL * CD 3 NOP 1
|
||||
|
||||
CCF "" 3F 1 NOP 1
|
||||
|
||||
CP (HL) BE 1 NOP 1
|
||||
CP (IX*) BEDD 3 ZIX 1
|
||||
CP (IY*) BEFD 3 ZIX 1
|
||||
CP A BF 1 NOP 1
|
||||
CP B B8 1 NOP 1
|
||||
CP C B9 1 NOP 1
|
||||
CP D BA 1 NOP 1
|
||||
CP E BB 1 NOP 1
|
||||
CP H BC 1 NOP 1
|
||||
CP L BD 1 NOP 1
|
||||
CP * FE 2 NOP 1
|
||||
CPD "" A9ED 2 NOP 1
|
||||
CPDR "" B9ED 2 NOP 1
|
||||
CPIR "" B1ED 2 NOP 1
|
||||
CPI "" A1ED 2 NOP 1
|
||||
CPL "" 2F 1 NOP 1
|
||||
|
||||
DAA "" 27 1 NOP 1
|
||||
|
||||
DEC (HL) 35 1 NOP 1
|
||||
DEC (IX*) 35DD 3 ZIX 1
|
||||
DEC (IY*) 35FD 3 ZIX 1
|
||||
DEC A 3D 1 NOP 1
|
||||
DEC B 05 1 NOP 1
|
||||
DEC BC 0B 1 NOP 1
|
||||
DEC C 0D 1 NOP 1
|
||||
DEC D 15 1 NOP 1
|
||||
DEC DE 1B 1 NOP 1
|
||||
DEC E 1D 1 NOP 1
|
||||
DEC H 25 1 NOP 1
|
||||
DEC HL 2B 1 NOP 1
|
||||
DEC IX 2BDD 2 NOP 1
|
||||
DEC IY 2BFD 2 NOP 1
|
||||
DEC L 2D 1 NOP 1
|
||||
DEC SP 3B 1 NOP 1
|
||||
DI "" F3 1 NOP 1
|
||||
DJNZ * 10 2 R1 1
|
||||
|
||||
EI "" FB 1 NOP 1
|
||||
EX (SP),HL E3 1 NOP 1
|
||||
EX (SP),IX E3DD 2 NOP 1
|
||||
EX (SP),IY E3FD 2 NOP 1
|
||||
EX AF,AF' 08 1 NOP 1
|
||||
EX DE,HL EB 1 NOP 1
|
||||
EXX "" D9 1 NOP 1
|
||||
HALT "" 76 1 NOP 1
|
||||
|
||||
IM 0 46ED 2 NOP 1
|
||||
IM 1 56ED 2 NOP 1
|
||||
IM 2 5EED 2 NOP 1
|
||||
|
||||
/* Alternate form of above
|
||||
IM0 46ED 2 NOP 1
|
||||
IM1 56ED 2 NOP 1
|
||||
IM2 5EED 2 NOP 1
|
||||
|
||||
IN A,(C) 78ED 2 NOP 1
|
||||
IN B,(C) 40ED 2 NOP 1
|
||||
IN C,(C) 48ED 2 NOP 1
|
||||
IN D,(C) 50ED 2 NOP 1
|
||||
IN E,(C) 58ED 2 NOP 1
|
||||
IN H,(C) 60ED 2 NOP 1
|
||||
IN L,(C) 68ED 2 NOP 1
|
||||
|
||||
IN A,(*) DB 2 NOP 1
|
||||
|
||||
IN0 A,(*) 38ED 3 NOP 1
|
||||
IN0 B,(*) 00ED 3 NOP 1
|
||||
IN0 C,(*) 08ED 3 NOP 1
|
||||
IN0 D,(*) 10ED 3 NOP 1
|
||||
IN0 E,(*) 18ED 3 NOP 1
|
||||
IN0 H,(*) 20ED 3 NOP 1
|
||||
IN0 L,(*) 28ED 3 NOP 1
|
||||
|
||||
INC (HL) 34 1 NOP 1
|
||||
INC (IX*) 34DD 3 ZIX 1
|
||||
INC (IY*) 34FD 3 ZIX 1
|
||||
INC A 3C 1 NOP 1
|
||||
INC B 04 1 NOP 1
|
||||
INC BC 03 1 NOP 1
|
||||
INC C 0C 1 NOP 1
|
||||
INC D 14 1 NOP 1
|
||||
INC DE 13 1 NOP 1
|
||||
INC E 1C 1 NOP 1
|
||||
INC H 24 1 NOP 1
|
||||
INC HL 23 1 NOP 1
|
||||
INC IX 23DD 2 NOP 1
|
||||
INC IY 23FD 2 NOP 1
|
||||
INC L 2C 1 NOP 1
|
||||
INC SP 33 1 NOP 1
|
||||
|
||||
|
||||
IND "" AAED 2 NOP 1
|
||||
INDR "" BAED 2 NOP 1
|
||||
INI "" A2ED 2 NOP 1
|
||||
INIR "" B2ED 2 NOP 1
|
||||
|
||||
JP (HL) E9 1 NOP 1
|
||||
JP (IX) E9DD 2 NOP 1
|
||||
JP (IY) E9FD 2 NOP 1
|
||||
JP C,* DA 3 NOP 1
|
||||
JP M,* FA 3 NOP 1
|
||||
JP NC,* D2 3 NOP 1
|
||||
JP NZ,* C2 3 NOP 1
|
||||
JP P,* F2 3 NOP 1
|
||||
JP PE,* EA 3 NOP 1
|
||||
JP PO,* E2 3 NOP 1
|
||||
JP Z,* CA 3 NOP 1
|
||||
JP * C3 3 NOP 1
|
||||
|
||||
JR C,* 38 2 R1 1
|
||||
JR NC,* 30 2 R1 1
|
||||
JR NZ,* 20 2 R1 1
|
||||
JR Z,* 28 2 R1 1
|
||||
JR * 18 2 R1 1
|
||||
|
||||
LD (BC),A 02 1 NOP 1
|
||||
LD (DE),A 12 1 NOP 1
|
||||
LD (HL),A 77 1 NOP 1
|
||||
LD (HL),B 70 1 NOP 1
|
||||
LD (HL),C 71 1 NOP 1
|
||||
LD (HL),D 72 1 NOP 1
|
||||
LD (HL),E 73 1 NOP 1
|
||||
LD (HL),H 74 1 NOP 1
|
||||
LD (HL),L 75 1 NOP 1
|
||||
LD (HL),* 36 2 NOP 1
|
||||
LD (IX*),A 77DD 3 ZIX 1
|
||||
LD (IX*),B 70DD 3 ZIX 1
|
||||
LD (IX*),C 71DD 3 ZIX 1
|
||||
LD (IX*),D 72DD 3 ZIX 1
|
||||
LD (IX*),E 73DD 3 ZIX 1
|
||||
LD (IX*),H 74DD 3 ZIX 1
|
||||
LD (IX*),L 75DD 3 ZIX 1
|
||||
LD (IX*),* 36DD 4 ZIX 1
|
||||
LD (IY*),A 77FD 3 ZIX 1
|
||||
LD (IY*),B 70FD 3 ZIX 1
|
||||
LD (IY*),C 71FD 3 ZIX 1
|
||||
LD (IY*),D 72FD 3 ZIX 1
|
||||
LD (IY*),E 73FD 3 ZIX 1
|
||||
LD (IY*),H 74FD 3 ZIX 1
|
||||
LD (IY*),L 75FD 3 ZIX 1
|
||||
LD (IY*),* 36FD 4 ZIX 1
|
||||
LD (*),A 32 3 NOP 1
|
||||
LD (*),BC 43ED 4 NOP 1
|
||||
LD (*),DE 53ED 4 NOP 1
|
||||
LD (*),HL 22 3 NOP 1
|
||||
LD (*),IX 22DD 4 NOP 1
|
||||
LD (*),IY 22FD 4 NOP 1
|
||||
LD (*),SP 73ED 4 NOP 1
|
||||
LD A,(BC) 0A 1 NOP 1
|
||||
LD A,(DE) 1A 1 NOP 1
|
||||
LD A,(HL) 7E 1 NOP 1
|
||||
LD A,(IX*) 7EDD 3 ZIX 1
|
||||
LD A,(IY*) 7EFD 3 ZIX 1
|
||||
LD A,A 7F 1 NOP 1
|
||||
LD A,B 78 1 NOP 1
|
||||
LD A,C 79 1 NOP 1
|
||||
LD A,D 7A 1 NOP 1
|
||||
LD A,E 7B 1 NOP 1
|
||||
LD A,H 7C 1 NOP 1
|
||||
LD A,I 57ED 2 NOP 1
|
||||
LD A,L 7D 1 NOP 1
|
||||
LD A,R 5FED 2 NOP 1
|
||||
LD A,(*) 3A 3 NOP 1
|
||||
LD A,* 3E 2 NOP 1
|
||||
LD B,(HL) 46 1 NOP 1
|
||||
LD B,(IX*) 46DD 3 ZIX 1
|
||||
LD B,(IY*) 46FD 3 ZIX 1
|
||||
LD B,A 47 1 NOP 1
|
||||
LD B,B 40 1 NOP 1
|
||||
LD B,C 41 1 NOP 1
|
||||
LD B,D 42 1 NOP 1
|
||||
LD B,E 43 1 NOP 1
|
||||
LD B,H 44 1 NOP 1
|
||||
LD B,L 45 1 NOP 1
|
||||
LD B,* 06 2 NOP 1
|
||||
LD BC,(*) 4BED 4 NOP 1
|
||||
LD BC,* 01 3 NOP 1
|
||||
LD C,(HL) 4E 1 NOP 1
|
||||
LD C,(IX*) 4EDD 3 ZIX 1
|
||||
LD C,(IY*) 4EFD 3 ZIX 1
|
||||
LD C,A 4F 1 NOP 1
|
||||
LD C,B 48 1 NOP 1
|
||||
LD C,C 49 1 NOP 1
|
||||
LD C,D 4A 1 NOP 1
|
||||
LD C,E 4B 1 NOP 1
|
||||
LD C,H 4C 1 NOP 1
|
||||
LD C,L 4D 1 NOP 1
|
||||
LD C,* 0E 2 NOP 1
|
||||
LD D,(HL) 56 1 NOP 1
|
||||
LD D,(IX*) 56DD 3 ZIX 1
|
||||
LD D,(IY*) 56FD 3 ZIX 1
|
||||
LD D,A 57 1 NOP 1
|
||||
LD D,B 50 1 NOP 1
|
||||
LD D,C 51 1 NOP 1
|
||||
LD D,D 52 1 NOP 1
|
||||
LD D,E 53 1 NOP 1
|
||||
LD D,H 54 1 NOP 1
|
||||
LD D,L 55 1 NOP 1
|
||||
LD D,* 16 2 NOP 1
|
||||
LD DE,(*) 5BED 4 NOP 1
|
||||
LD DE,* 11 3 NOP 1
|
||||
LD E,(HL) 5E 1 NOP 1
|
||||
LD E,(IX*) 5EDD 3 ZIX 1
|
||||
LD E,(IY*) 5EFD 3 ZIX 1
|
||||
LD E,A 5F 1 NOP 1
|
||||
LD E,B 58 1 NOP 1
|
||||
LD E,C 59 1 NOP 1
|
||||
LD E,D 5A 1 NOP 1
|
||||
LD E,E 5B 1 NOP 1
|
||||
LD E,H 5C 1 NOP 1
|
||||
LD E,L 5D 1 NOP 1
|
||||
LD E,* 1E 2 NOP 1
|
||||
LD H,(HL) 66 1 NOP 1
|
||||
LD H,(IX*) 66DD 3 ZIX 1
|
||||
LD H,(IY*) 66FD 3 ZIX 1
|
||||
LD H,A 67 1 NOP 1
|
||||
LD H,B 60 1 NOP 1
|
||||
LD H,C 61 1 NOP 1
|
||||
LD H,D 62 1 NOP 1
|
||||
LD H,E 63 1 NOP 1
|
||||
LD H,H 64 1 NOP 1
|
||||
LD H,L 65 1 NOP 1
|
||||
LD H,* 26 2 NOP 1
|
||||
LD HL,(*) 2A 3 NOP 1
|
||||
LD HL,* 21 3 NOP 1
|
||||
LD I,A 47ED 2 NOP 1
|
||||
LD IX,(*) 2ADD 4 NOP 1
|
||||
LD IX,* 21DD 4 NOP 1
|
||||
LD IY,(*) 2AFD 4 NOP 1
|
||||
LD IY,* 21FD 4 NOP 1
|
||||
LD L,(HL) 6E 1 NOP 1
|
||||
LD L,(IX*) 6EDD 3 ZIX 1
|
||||
LD L,(IY*) 6EFD 3 ZIX 1
|
||||
LD L,A 6F 1 NOP 1
|
||||
LD L,B 68 1 NOP 1
|
||||
LD L,C 69 1 NOP 1
|
||||
LD L,D 6A 1 NOP 1
|
||||
LD L,E 6B 1 NOP 1
|
||||
LD L,H 6C 1 NOP 1
|
||||
LD L,L 6D 1 NOP 1
|
||||
LD L,* 2E 2 NOP 1
|
||||
LD R,A 4FED 2 NOP 1
|
||||
LD SP,(*) 7BED 4 NOP 1
|
||||
LD SP,HL F9 1 NOP 1
|
||||
LD SP,IX F9DD 2 NOP 1
|
||||
LD SP,IY F9FD 2 NOP 1
|
||||
LD SP,* 31 3 NOP 1
|
||||
LDD "" A8ED 2 NOP 1
|
||||
LDDR "" B8ED 2 NOP 1
|
||||
LDI "" A0ED 2 NOP 1
|
||||
LDIR "" B0ED 2 NOP 1
|
||||
NEG "" 44ED 2 NOP 1
|
||||
NOP "" 00 1 NOP 1
|
||||
|
||||
MLT BC 4CED 2 NOP 1
|
||||
MLT DE 5CED 2 NOP 1
|
||||
MLT HL 6CED 2 NOP 1
|
||||
MLT SP 7CED 2 NOP 1
|
||||
|
||||
OR (HL) B6 1 NOP 1
|
||||
OR (IX*) B6DD 3 ZIX 1
|
||||
OR (IY*) B6FD 3 ZIX 1
|
||||
OR A B7 1 NOP 1
|
||||
OR B B0 1 NOP 1
|
||||
OR C B1 1 NOP 1
|
||||
OR D B2 1 NOP 1
|
||||
OR E B3 1 NOP 1
|
||||
OR H B4 1 NOP 1
|
||||
OR L B5 1 NOP 1
|
||||
OR * F6 2 NOP 1
|
||||
|
||||
OTDM "" 8BED 2 NOP 1
|
||||
OTDMR "" 9BED 2 NOP 1
|
||||
OTDR "" BBED 2 NOP 1
|
||||
OTIM "" 83ED 2 NOP 1
|
||||
OTIMR "" 93ED 2 NOP 1
|
||||
OTIR "" B3ED 2 NOP 1
|
||||
|
||||
OUT (C),A 79ED 2 NOP 1
|
||||
OUT (C),B 41ED 2 NOP 1
|
||||
OUT (C),C 49ED 2 NOP 1
|
||||
OUT (C),D 51ED 2 NOP 1
|
||||
OUT (C),E 59ED 2 NOP 1
|
||||
OUT (C),H 61ED 2 NOP 1
|
||||
OUT (C),L 69ED 2 NOP 1
|
||||
OUT (*),A D3 2 NOP 1
|
||||
|
||||
OUT0 (*),A 39ED 3 NOP 1
|
||||
OUT0 (*),B 01ED 3 NOP 1
|
||||
OUT0 (*),C 09ED 3 NOP 1
|
||||
OUT0 (*),D 11ED 3 NOP 1
|
||||
OUT0 (*),E 19ED 3 NOP 1
|
||||
OUT0 (*),H 21ED 3 NOP 1
|
||||
OUT0 (*),L 29ED 3 NOP 1
|
||||
|
||||
OUTD "" ABED 2 NOP 1
|
||||
OUTI "" A3ED 2 NOP 1
|
||||
|
||||
POP AF F1 1 NOP 1
|
||||
POP BC C1 1 NOP 1
|
||||
POP DE D1 1 NOP 1
|
||||
POP HL E1 1 NOP 1
|
||||
POP IX E1DD 2 NOP 1
|
||||
POP IY E1FD 2 NOP 1
|
||||
|
||||
PUSH AF F5 1 NOP 1
|
||||
PUSH BC C5 1 NOP 1
|
||||
PUSH DE D5 1 NOP 1
|
||||
PUSH HL E5 1 NOP 1
|
||||
PUSH IX E5DD 2 NOP 1
|
||||
PUSH IY E5FD 2 NOP 1
|
||||
|
||||
RES *,(HL) 86CB 2 ZBIT 1
|
||||
RES *,(IX*) CBDD 4 ZBIT 1 0 8600
|
||||
RES *,(IY*) CBFD 4 ZBIT 1 0 8600
|
||||
RES *,A 87CB 2 ZBIT 1
|
||||
RES *,B 80CB 2 ZBIT 1
|
||||
RES *,C 81CB 2 ZBIT 1
|
||||
RES *,D 82CB 2 ZBIT 1
|
||||
RES *,E 83CB 2 ZBIT 1
|
||||
RES *,H 84CB 2 ZBIT 1
|
||||
RES *,L 85CB 2 ZBIT 1
|
||||
|
||||
RET "" C9 1 NOP 1
|
||||
RET C D8 1 NOP 1
|
||||
RET M F8 1 NOP 1
|
||||
RET NC D0 1 NOP 1
|
||||
RET NZ C0 1 NOP 1
|
||||
RET P F0 1 NOP 1
|
||||
RET PE E8 1 NOP 1
|
||||
RET PO E0 1 NOP 1
|
||||
RET Z C8 1 NOP 1
|
||||
RETI "" 4DED 2 NOP 1
|
||||
RETN "" 45ED 2 NOP 1
|
||||
|
||||
RL (HL) 16CB 2 NOP 1
|
||||
RL (IX*) CBDD 4 ZIX 1 0 1600
|
||||
RL (IY*) CBFD 4 ZIX 1 0 1600
|
||||
RL A 17CB 2 NOP 1
|
||||
RL B 10CB 2 NOP 1
|
||||
RL C 11CB 2 NOP 1
|
||||
RL D 12CB 2 NOP 1
|
||||
RL E 13CB 2 NOP 1
|
||||
RL H 14CB 2 NOP 1
|
||||
RL L 15CB 2 NOP 1
|
||||
RLA "" 17 1 NOP 1
|
||||
|
||||
RLC (HL) 06CB 2 NOP 1
|
||||
RLC (IX*) CBDD 4 ZIX 1 0 0600
|
||||
RLC (IY*) CBFD 4 ZIX 1 0 0600
|
||||
RLC A 07CB 2 NOP 1
|
||||
RLC B 00CB 2 NOP 1
|
||||
RLC C 01CB 2 NOP 1
|
||||
RLC D 02CB 2 NOP 1
|
||||
RLC E 03CB 2 NOP 1
|
||||
RLC H 04CB 2 NOP 1
|
||||
RLC L 05CB 2 NOP 1
|
||||
RLCA "" 07 1 NOP 1
|
||||
RLD "" 6FED 2 NOP 1
|
||||
|
||||
RR (HL) 1ECB 2 NOP 1
|
||||
RR (IX*) CBDD 4 ZIX 1 0 1E00
|
||||
RR (IY*) CBFD 4 ZIX 1 0 1E00
|
||||
RR A 1FCB 2 NOP 1
|
||||
RR B 18CB 2 NOP 1
|
||||
RR C 19CB 2 NOP 1
|
||||
RR D 1ACB 2 NOP 1
|
||||
RR E 1BCB 2 NOP 1
|
||||
RR H 1CCB 2 NOP 1
|
||||
RR L 1DCB 2 NOP 1
|
||||
RRA "" 1F 1 NOP 1
|
||||
RRC (HL) 0ECB 2 NOP 1
|
||||
RRC (IX*) CBDD 4 ZIX 1 0 0E00
|
||||
RRC (IY*) CBFD 4 ZIX 1 0 0E00
|
||||
RRC A 0FCB 2 NOP 1
|
||||
RRC B 08CB 2 NOP 1
|
||||
RRC C 09CB 2 NOP 1
|
||||
RRC D 0ACB 2 NOP 1
|
||||
RRC E 0BCB 2 NOP 1
|
||||
RRC H 0CCB 2 NOP 1
|
||||
RRC L 0DCB 2 NOP 1
|
||||
RRCA "" 0F 1 NOP 1
|
||||
RRD "" 67ED 2 NOP 1
|
||||
|
||||
RST 00H C7 1 NOP 1
|
||||
RST 08H CF 1 NOP 1
|
||||
RST 10H D7 1 NOP 1
|
||||
RST 18H DF 1 NOP 1
|
||||
RST 20H E7 1 NOP 1
|
||||
RST 28H EF 1 NOP 1
|
||||
RST 30H F7 1 NOP 1
|
||||
RST 38H FF 1 NOP 1
|
||||
|
||||
/* Alternate form of above
|
||||
RST 00 C7 1 NOP 1
|
||||
RST 08 CF 1 NOP 1
|
||||
RST 10 D7 1 NOP 1
|
||||
RST 18 DF 1 NOP 1
|
||||
RST 20 E7 1 NOP 1
|
||||
RST 28 EF 1 NOP 1
|
||||
RST 30 F7 1 NOP 1
|
||||
RST 38 FF 1 NOP 1
|
||||
|
||||
SBC A,(HL) 9E 1 NOP 1
|
||||
SBC A,(IX*) 9EDD 3 ZIX 1
|
||||
SBC A,(IY*) 9EFD 3 ZIX 1
|
||||
SBC A,A 9F 1 NOP 1
|
||||
SBC A,B 98 1 NOP 1
|
||||
SBC A,C 99 1 NOP 1
|
||||
SBC A,D 9A 1 NOP 1
|
||||
SBC A,E 9B 1 NOP 1
|
||||
SBC A,H 9C 1 NOP 1
|
||||
SBC A,L 9D 1 NOP 1
|
||||
SBC HL,BC 42ED 2 NOP 1
|
||||
SBC HL,DE 52ED 2 NOP 1
|
||||
SBC HL,HL 62ED 2 NOP 1
|
||||
SBC HL,SP 72ED 2 NOP 1
|
||||
SBC A,* DE 2 NOP 1
|
||||
SCF "" 37 1 NOP 1
|
||||
|
||||
SET *,(HL) C6CB 2 ZBIT 1
|
||||
SET *,(IX*) CBDD 4 ZBIT 1 0 C600
|
||||
SET *,(IY*) CBFD 4 ZBIT 1 0 C600
|
||||
SET *,A C7CB 2 ZBIT 1
|
||||
SET *,B C0CB 2 ZBIT 1
|
||||
SET *,C C1CB 2 ZBIT 1
|
||||
SET *,D C2CB 2 ZBIT 1
|
||||
SET *,E C3CB 2 ZBIT 1
|
||||
SET *,H C4CB 2 ZBIT 1
|
||||
SET *,L C5CB 2 ZBIT 1
|
||||
|
||||
SLA (HL) 26CB 2 NOP 1
|
||||
SLA (IX*) CBDD 4 ZIX 1 0 2600
|
||||
SLA (IY*) CBFD 4 ZIX 1 0 2600
|
||||
SLA A 27CB 2 NOP 1
|
||||
SLA B 20CB 2 NOP 1
|
||||
SLA C 21CB 2 NOP 1
|
||||
SLA D 22CB 2 NOP 1
|
||||
SLA E 23CB 2 NOP 1
|
||||
SLA H 24CB 2 NOP 1
|
||||
SLA L 25CB 2 NOP 1
|
||||
|
||||
SLP "" 76ED 2 NOP 1
|
||||
|
||||
SRA (HL) 2ECB 2 NOP 1
|
||||
SRA (IX*) CBDD 4 ZIX 1 0 2E00
|
||||
SRA (IY*) CBFD 4 ZIX 1 0 2E00
|
||||
SRA A 2FCB 2 NOP 1
|
||||
SRA B 28CB 2 NOP 1
|
||||
SRA C 29CB 2 NOP 1
|
||||
SRA D 2ACB 2 NOP 1
|
||||
SRA E 2BCB 2 NOP 1
|
||||
SRA H 2CCB 2 NOP 1
|
||||
SRA L 2DCB 2 NOP 1
|
||||
|
||||
SRL (HL) 3ECB 2 NOP 1
|
||||
SRL (IX*) CBDD 4 ZIX 1 0 3E00
|
||||
SRL (IY*) CBFD 4 ZIX 1 0 3E00
|
||||
SRL A 3FCB 2 NOP 1
|
||||
SRL B 38CB 2 NOP 1
|
||||
SRL C 39CB 2 NOP 1
|
||||
SRL D 3ACB 2 NOP 1
|
||||
SRL E 3BCB 2 NOP 1
|
||||
SRL H 3CCB 2 NOP 1
|
||||
SRL L 3DCB 2 NOP 1
|
||||
|
||||
SUB (HL) 96 1 NOP 1
|
||||
SUB (IX*) 96DD 3 ZIX 1
|
||||
SUB (IY*) 96FD 3 ZIX 1
|
||||
SUB A 97 1 NOP 1
|
||||
SUB B 90 1 NOP 1
|
||||
SUB C 91 1 NOP 1
|
||||
SUB D 92 1 NOP 1
|
||||
SUB E 93 1 NOP 1
|
||||
SUB H 94 1 NOP 1
|
||||
SUB L 95 1 NOP 1
|
||||
SUB * D6 2 NOP 1
|
||||
|
||||
TST A 3CED 2 NOP 1
|
||||
TST B 04ED 2 NOP 1
|
||||
TST C 0CED 2 NOP 1
|
||||
TST D 14ED 2 NOP 1
|
||||
TST E 1CED 2 NOP 1
|
||||
TST H 24ED 2 NOP 1
|
||||
TST L 2CED 2 NOP 1
|
||||
TST (HL) 34ED 2 NOP 1
|
||||
TST * 64ED 3 NOP 1
|
||||
|
||||
TSTIO * 74ED 3 NOP 1
|
||||
|
||||
XOR (HL) AE 1 NOP 1
|
||||
XOR (IX*) AEDD 3 ZIX 1
|
||||
XOR (IY*) AEFD 3 ZIX 1
|
||||
XOR A AF 1 NOP 1
|
||||
XOR B A8 1 NOP 1
|
||||
XOR C A9 1 NOP 1
|
||||
XOR D AA 1 NOP 1
|
||||
XOR E AB 1 NOP 1
|
||||
XOR H AC 1 NOP 1
|
||||
XOR L AD 1 NOP 1
|
||||
XOR * EE 2 NOP 1
|
||||
BIN
RomDsk/cfg_n8vem_cvdu/1200.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/1200.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/38400.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/38400.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/9600.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/9600.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/FLASHZ.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/FLASHZ.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/LDTIM.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/LDTIM.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/RTC.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/RTC.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/T5.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/T5.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/XM.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/XM.COM
Normal file
Binary file not shown.
BIN
RomDsk/cfg_n8vem_cvdu/XM5.COM
Normal file
BIN
RomDsk/cfg_n8vem_cvdu/XM5.COM
Normal file
Binary file not shown.
@@ -113,7 +113,7 @@ Asm 'bootrom'
|
||||
Asm 'bootapp'
|
||||
Asm 'loader'
|
||||
Asm 'pgzero'
|
||||
Asm 'bnk1'
|
||||
Asm 'hbios'
|
||||
Asm 'hbfill'
|
||||
Asm 'romfill'
|
||||
|
||||
@@ -124,8 +124,8 @@ Asm 'romfill'
|
||||
Concat 'cp.bin','dos.bin','cbios.bin' 'os.bin'
|
||||
Concat 'prefix.bin','os.bin' $SysImgFile
|
||||
Concat 'pgzero.bin','bootrom.bin','syscfg.bin','loader.bin','romfill.bin','dbgmon.bin','os.bin','hbfill.bin' 'rom0.bin'
|
||||
Concat 'pgzero.bin','bootrom.bin','syscfg.bin','loader.bin','bnk1.bin' 'rom1.bin'
|
||||
Concat 'bootapp.bin','syscfg.bin','loader.bin','bnk1.bin','dbgmon.bin','os.bin' $LoaderFile
|
||||
Concat 'pgzero.bin','bootrom.bin','syscfg.bin','loader.bin','hbios.bin' 'rom1.bin'
|
||||
Concat 'bootapp.bin','syscfg.bin','loader.bin','hbios.bin','dbgmon.bin','os.bin' $LoaderFile
|
||||
|
||||
# Create the RomDisk image
|
||||
|
||||
|
||||
381
Source/ansi.asm
Normal file
381
Source/ansi.asm
Normal file
@@ -0,0 +1,381 @@
|
||||
; ansi.asm 12/3/2012 dwg - changed polarity of conditional jump for normal processing
|
||||
|
||||
; Status: Still very experimental, either doesn't work or is buggy
|
||||
|
||||
; WBW: BOGUS EQUATE TO GET MODULE TO BUILD FOR NON-N8 HARDWARE
|
||||
; NEEDS TO BE FIXED BEFORE IT WILL WORK FOR ANYTHING OTHER THAN N8
|
||||
#IF (!N8VENABLE)
|
||||
#DEFINE N8V_OFFSET PANIC
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
;==================================================================================================
|
||||
; ANSI EMULATION MODULE
|
||||
;==================================================================================================
|
||||
;
|
||||
|
||||
; The ANSI handler is a superset of the TTY handler in that is does simple
|
||||
; processing of control characters such as CR, LF... But in addition is Hasbro
|
||||
; a state machine driven escape sequence parser that accepts parameters and
|
||||
; command characters and builds a table of data required to perform the indicated
|
||||
; operation.
|
||||
|
||||
; For instance, a screen clear escaper sequence such as <esc>[2J is parsed as
|
||||
; a leading CSI ()escape which places us in state1 (waiting for [ ). When the
|
||||
; next character arrives and turns out to be [, the parser's next state is
|
||||
; state2.
|
||||
|
||||
; State2 processing is a little more complex. If the next character is a numeral,
|
||||
; it is placed in the parameter1 buffer and the next state is state3 (collecting
|
||||
; parameter1).
|
||||
|
||||
; State3 processing implies that the buffer already has 1 byte of a parameter in
|
||||
; the parameter1 buffer. If the next character is a semi-colon, that implies that
|
||||
; the parameter1 buffer is complete and the next state should be state4. If the
|
||||
; next byte is a numeral, it is appended to the parameter1 buffer and we stay INC
|
||||
; state3. If the nect character is a semi-colon, that indicates the parameter1 is
|
||||
; complete and we need to enter state4 to begin collection of parameter2. If the
|
||||
; next character is neither a numeral or a semi-colon, then it needs
|
||||
; to be decoded as a command. Commands result in the calling of low-level driver
|
||||
; functions to perform the indicated operation. Subsequently we return to state0.
|
||||
|
||||
; State4 processing implies we are collecting parameter2 data. If the next byte
|
||||
; is a numeral, it is assigned to the parameter2 buffer. In this case we go to
|
||||
; state5 which is used to finish collection of parameter2.
|
||||
|
||||
; State5 processing is for collecting additional parameter2 bytes to be appended
|
||||
; to the parameter2 buffer. When a non-numeral arrives, that implies that parameter2
|
||||
; is complete and the new character is either a semi-colon or the awaited command
|
||||
; character. If it is a semi-colon, that would imply the existance of a parameter3,
|
||||
; which may or may not be supported in this implementation. If it is the command
|
||||
; character, then the propper low-level driver calls need to be invoked to perform
|
||||
; the desired operations on the video screen.
|
||||
|
||||
; Once state5 is complete, we re-enter state0.
|
||||
|
||||
ANSI_ERR1 .EQU 1
|
||||
|
||||
|
||||
ANSI_CMD_DISP:
|
||||
LD A,B
|
||||
CP 'J'
|
||||
JR ANSI_CMD_NOT_CRTCLR
|
||||
|
||||
; THIS IS THE CRTCLR FUNCTIONAL CODE
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
LD DE,0 ; row 0 column 0
|
||||
LD B,BF_VDASCP ; FUNCTION IS SET CURSOR POSITION
|
||||
CALL EMU_VDADISP ; CALL THE VIDEO HARDWARE DRIVER
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
LD DE,0 ; row 0 column 0
|
||||
LD B,BF_VDAQRY ; FUNCTION IS QUERY FOR SCREEN SIZE
|
||||
LD HL,0 ; WE DO NOT WANT A COPY OF THE CHARACTER BITMAP DATA
|
||||
CALL EMU_VDADISP ; PERFORM THE QUERY FUNCTION
|
||||
; on return, D=row count, E=column count
|
||||
; for the fill call, we need hl=number of chars to fill
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
LD E,' ' ; fill with spaces
|
||||
;
|
||||
LD A,(ANSI_ROWS) ; given A = number of rows
|
||||
CALL N8V_OFFSET ; return HL = num_rows * num_cols
|
||||
;
|
||||
LD B,BF_VDAFIL ; FUNCTION IS FILL
|
||||
CALL EMU_VDADISP ; PERFORM THE QUERY FUNCTION
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
XOR A
|
||||
RET ; return SUCCESS to caller
|
||||
;
|
||||
ANSI_CMD_NOT_CRTCLR:
|
||||
|
||||
CP 66h ; is it cursor position?
|
||||
JR ANSI_CMD_NOT_CRTLC
|
||||
|
||||
ANSI_CMD_NOT_CRTLC:
|
||||
|
||||
; since only the crtclr and crtlc are supported right now...
|
||||
; any other command is an error
|
||||
CALL PANIC ; A has the unknown command byte
|
||||
|
||||
;------------------------------------------------------------------------------------
|
||||
ANSI_IS_NUMERAL:
|
||||
RET
|
||||
|
||||
;------------------------------------------------------------------------------------
|
||||
ANSI_IS_ALPHA:
|
||||
RET
|
||||
;------------------------------------------------------------------------------------
|
||||
ANSI_MARSHALL_PARM1:
|
||||
RET
|
||||
;------------------------------------------------------------------------------------
|
||||
ANSI_MARSHALL_PARM2:
|
||||
RET
|
||||
;------------------------------------------------------------------------------------
|
||||
ANSI_PROC_COMMAND:
|
||||
RET
|
||||
;------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
ANSI_STATE1:
|
||||
; Waiting for [
|
||||
; (the only valid character to follow an ESC would be the [ )
|
||||
; (if we get something else, we go back to state0 and begin again)
|
||||
LD A,B
|
||||
CP '['
|
||||
JR NZ,ANSI_STATE1_ERR ; if not the expected [, go around
|
||||
LD HL,ANSI_STATE2 ; having found the [, set the next state
|
||||
LD (ANSI_STATE),HL ; to state2 (waiting for a parm1 char).
|
||||
XOR A ; set retcode to SUCCESS
|
||||
RET ; and return to caller
|
||||
ANSI_STATE1_ERR:
|
||||
LD HL,ANSI_STATE0
|
||||
LD (ANSI_STATE),HL ; set next state to state 0
|
||||
LD A,ANSI_ERR1 ; "state1 expected [ not found"
|
||||
RET
|
||||
|
||||
;------------------------------------------------------------------------------------
|
||||
|
||||
ANSI_STATE2:
|
||||
; waiting for parm1
|
||||
LD A,B
|
||||
CALL ANSI_IS_NUMERAL
|
||||
JR NZ,ANSI_STATE2_NOT_NUMERAL
|
||||
CALL ANSI_MARSHALL_PARM1
|
||||
XOR A ; set SUCCESS return code
|
||||
RET
|
||||
ANSI_STATE2_NOT_NUMERAL:
|
||||
LD A,B
|
||||
CP 59 ; semi-colon
|
||||
JR NZ,ANSI_STATE2_NOT_SEMI
|
||||
LD HL,ANSI_STATE3
|
||||
LD (ANSI_STATE),HL ; set next state to waiting for parm2
|
||||
XOR A
|
||||
RET ; return SUCCESS
|
||||
ANSI_STATE2_NOT_SEMI:
|
||||
; if it is not a semi, or a numeral, it must be a command char
|
||||
LD HL,ANSI_STATE0 ; after we do the command dispatcher, the
|
||||
LD (ANSI_STATE),HL ; next state we will want is the default state
|
||||
JP ANSI_CMD_DISP
|
||||
|
||||
ANSI_INIT:
|
||||
PRTS("ANSI: RESET$")
|
||||
;
|
||||
JR ANSI_INI ; REUSE THE INI FUNCTION BELOW
|
||||
;
|
||||
|
||||
ANSI_STATE3:
|
||||
; waiting for parm2
|
||||
LD A,B
|
||||
CALL ANSI_IS_NUMERAL
|
||||
JR NZ,ANSI_STATE3_NOT_NUMERAL
|
||||
CALL ANSI_MARSHALL_PARM2
|
||||
XOR A
|
||||
RET
|
||||
ANSI_STATE3_NOT_NUMERAL:
|
||||
LD A,B
|
||||
CALL ANSI_PROC_COMMAND
|
||||
LD HL,ANSI_STATE0
|
||||
LD (ANSI_STATE),HL
|
||||
RET
|
||||
;
|
||||
;
|
||||
ANSI_DISPATCH:
|
||||
LD A,B ; GET REQUESTED FUNCTION
|
||||
AND $0F ; ISOLATE SUB-FUNCTION
|
||||
JR Z,ANSI_IN ; $30
|
||||
DEC A
|
||||
JR Z,ANSI_OUT ; $31
|
||||
DEC A
|
||||
JR Z,ANSI_IST ; $32
|
||||
DEC A
|
||||
JR Z,ANSI_OST ; $33
|
||||
DEC A
|
||||
JR Z,ANSI_CFG ; $34
|
||||
CP 8
|
||||
JR Z,ANSI_INI ; $38
|
||||
CP 9
|
||||
JR Z,ANSI_QRY ; $39
|
||||
CALL PANIC
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_IN:
|
||||
LD B,BF_VDAKRD ; SET FUNCTION TO KEYBOARD READ
|
||||
JP EMU_VDADISP ; CHAIN TO VDA DISPATCHER
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_OUT:
|
||||
LD HL,(ANSI_STATE)
|
||||
JP (HL)
|
||||
|
||||
;; CALL ANSI_DOCHAR ; HANDLE THE CHARACTER (EMULATION ENGINE)
|
||||
;; XOR A ; SIGNAL SUCCESS
|
||||
;; RET
|
||||
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_IST:
|
||||
LD B,BF_VDAKST ; SET FUNCTION TO KEYBOARD STATUS
|
||||
JP EMU_VDADISP ; CHAIN TO VDA DISPATCHER
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_OST:
|
||||
XOR A ; ZERO ACCUM
|
||||
INC A ; A := $FF TO SIGNAL OUTPUT BUFFER READY
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_CFG:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_INI:
|
||||
LD HL,ANSI_STATE0 ; load the address of the default state function
|
||||
LD (ANSI_STATE),HL ; and place it in the ANSI_STATE variable for later.
|
||||
|
||||
LD B,BF_VDAQRY ; FUNCTION IS QUERY
|
||||
LD HL,0 ; WE DO NOT WANT A COPY OF THE CHARACTER BITMAP DATA
|
||||
CALL EMU_VDADISP ; PERFORM THE QUERY FUNCTION
|
||||
LD (ANSI_DIM),DE ; SAVE THE SCREEN DIMENSIONS RETURNED
|
||||
LD DE,0 ; DE := 0, CURSOR TO HOME POSITION 0,0
|
||||
LD (ANSI_POS),DE ; SAVE CURSOR POSITION
|
||||
LD B,BF_VDARES ; SET FUNCTION TO RESET
|
||||
JP EMU_VDADISP ; RESET VDA AND RETURN
|
||||
;
|
||||
;
|
||||
;
|
||||
ANSI_QRY:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
|
||||
; This is probably the best place to insert a state sensitive
|
||||
; dispatcher for handling ANSI escape sequences. Ansi sequences
|
||||
; are unusual because they contain a number of parameters
|
||||
; subsequently followed by a command character that comes last.
|
||||
|
||||
; It is wise to create a list of supported sequences so we know
|
||||
; before writing the parser what the most complex sequence will
|
||||
; consist of.
|
||||
|
||||
; RomWBW utilities written by Douglas Goodall only use several
|
||||
; sequences. A screen clear, and a cursor position.
|
||||
;
|
||||
; crtclr() uses <esc>[2J
|
||||
; crtlc() uses <esc>[<line>;<column><0x66>
|
||||
|
||||
; Programs such as wordstar use more complex operations.
|
||||
;
|
||||
;
|
||||
;; ANSI_DOCHAR:
|
||||
ANSI_STATE0:
|
||||
; ANSI_STATE0 is the default state where random output characters May
|
||||
; be normal visible characters, a control character such as BS, CR, LF...
|
||||
; or a CSI such as an escape character (27).
|
||||
|
||||
|
||||
LD A,E ; CHARACTER TO PROCESS
|
||||
CP 8 ; BACKSPACE
|
||||
JR Z,ANSI_BS
|
||||
CP 12 ; FORMFEED
|
||||
JR Z,ANSI_FF
|
||||
CP 13 ; CARRIAGE RETURN
|
||||
JR Z,ANSI_CR
|
||||
CP 10 ; LINEFEED
|
||||
JR Z,ANSI_LF
|
||||
|
||||
CP 27 ; ESCAPE ; This is the hook into the escape handler
|
||||
JR NZ,ANSI_NOT_ESC ; go around if not CSI
|
||||
LD HL,ANSI_STATE1
|
||||
LD (ANSI_STATE),HL
|
||||
XOR A ; setup SUCCESS as return status
|
||||
RET
|
||||
ANSI_NOT_ESC:
|
||||
|
||||
CP 32 ; COMPARE TO SPACE (FIRST PRINTABLE CHARACTER)
|
||||
RET C ; SWALLOW OTHER CONTROL CHARACTERS
|
||||
|
||||
; A reg has next character from BIOS CONOUT
|
||||
LD B,BF_VDAWRC
|
||||
CALL EMU_VDADISP ; SPIT OUT THE RAW CHARACTER
|
||||
|
||||
LD A,(ANSI_COL) ; GET CUR COL
|
||||
INC A ; INCREMENT
|
||||
LD (ANSI_COL),A ; SAVE IT
|
||||
LD DE,(ANSI_DIM) ; GET SCREEN DIMENSIONS
|
||||
CP E ; COMPARE TO COLS IN LINE
|
||||
RET C ; NOT PAST END OF LINE, ALL DONE
|
||||
CALL ANSI_CR ; CARRIAGE RETURN
|
||||
JR ANSI_LF ; LINEFEED AND RETURN
|
||||
;
|
||||
ANSI_FF:
|
||||
LD DE,0 ; PREPARE TO HOME CURSOR
|
||||
LD (ANSI_POS),DE ; SAVE NEW CURSOR POSITION
|
||||
CALL ANSI_XY ; EXECUTE
|
||||
LD DE,(ANSI_DIM) ; GET SCREEN DIMENSIONS
|
||||
LD H,D ; SET UP TO MULTIPLY ROWS BY COLS
|
||||
CALL MULT8 ; HL := H * E TO GET TOTAL SCREEN POSITIONS
|
||||
LD E,' ' ; FILL SCREEN WITH BLANKS
|
||||
LD B,BF_VDAFIL ; SET FUNCTION TO FILL
|
||||
CALL EMU_VDADISP ; PERFORM FILL
|
||||
JR ANSI_XY ; HOME CURSOR AND RETURN
|
||||
;
|
||||
ANSI_BS:
|
||||
LD DE,(ANSI_POS) ; GET CURRENT ROW/COL IN DE
|
||||
LD A,E ; GET CURRENT COLUMN
|
||||
CP 1 ; COMPARE TO COLUMN 1
|
||||
RET C ; LESS THAN 1, NOTHING TO DO
|
||||
DEC E ; POINT TO PREVIOUS COLUMN
|
||||
LD (ANSI_POS),DE ; SAVE NEW COLUMN VALUE
|
||||
CALL ANSI_XY ; MOVE CURSOR TO NEW TARGET COLUMN
|
||||
LD E,' ' ; LOAD A SPACE CHARACTER
|
||||
LD B,BF_VDAWRC ; SET FUNCTION TO WRITE CHARACTER
|
||||
CALL EMU_VDADISP ; OVERWRITE WITH A SPACE CHARACTER
|
||||
JR ANSI_XY ; NEED TO MOVE CURSOR BACK TO NEW TARGET COLUMN
|
||||
;
|
||||
ANSI_CR:
|
||||
XOR A ; ZERO ACCUM
|
||||
LD (ANSI_COL),A ; COL := 0
|
||||
JR ANSI_XY ; REPOSITION CURSOR AND RETURN
|
||||
;
|
||||
ANSI_LF:
|
||||
LD A,(ANSI_ROW) ; GET CURRENT ROW
|
||||
INC A ; BUMP TO NEXT
|
||||
LD (ANSI_ROW),A ; SAVE IT
|
||||
LD DE,(ANSI_DIM) ; GET SCREEN DIMENSIONS
|
||||
CP D ; COMPARE TO SCREEN ROWS
|
||||
JR C,ANSI_XY ; NOT PAST END, ALL DONE
|
||||
DEC D ; D NOW HAS MAX ROW NUM (ROWS - 1)
|
||||
SUB D ; A WILL NOW HAVE NUM LINES TO SCROLL
|
||||
LD E,A ; LINES TO SCROLL -> E
|
||||
LD B,BF_VDASCR ; SET FUNCTION TO SCROLL
|
||||
CALL EMU_VDADISP ; DO THE SCROLLING
|
||||
LD A,(ANSI_ROWS) ; GET SCREEN ROW COUNT
|
||||
DEC A ; A NOW HAS LAST ROW
|
||||
LD (ANSI_ROW),A ; SAVE IT
|
||||
JR ANSI_XY ; RESPOSITION CURSOR AND RETURN
|
||||
;
|
||||
ANSI_XY:
|
||||
LD DE,(ANSI_POS) ; GET THE DESIRED CURSOR POSITION
|
||||
LD B,BF_VDASCP ; SET FUNCTIONT TO SET CURSOR POSITION
|
||||
JP EMU_VDADISP ; REPOSITION CURSOR
|
||||
;
|
||||
; The ANSI_STATE variable (word) contains the
|
||||
; address of the next state function
|
||||
ANSI_STATE .DW ANSI_STATE0 ; by default, ANSI_STATE0
|
||||
;
|
||||
ANSI_POS:
|
||||
ANSI_COL .DB 0 ; CURRENT COLUMN - 0 BASED
|
||||
ANSI_ROW .DB 0 ; CURRENT ROW - 0 BASED
|
||||
;
|
||||
ANSI_DIM:
|
||||
ANSI_COLS .DB 80 ; NUMBER OF COLUMNS ON SCREEN
|
||||
ANSI_ROWS .DB 24 ; NUMBER OF ROWS ON SCREEN
|
||||
502
Source/bnk1.asm
502
Source/bnk1.asm
@@ -1,502 +0,0 @@
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; BANK1
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
|
||||
; bnk1.asm 5/23/2012 dwg Beta 4 - Enhanced SYS_GETCFG and SYS_SETCFG
|
||||
|
||||
|
||||
.ORG 1000H
|
||||
;
|
||||
; INCLUDE GENERIC STUFF
|
||||
;
|
||||
#INCLUDE "std.asm"
|
||||
;
|
||||
;==================================================================================================
|
||||
; BANK 1 ENTRY / JUMP TABLE
|
||||
;==================================================================================================
|
||||
;
|
||||
; THIS IS THE ENTRY DISPATCH POINT FOR BANK1
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
JP INITSYS
|
||||
JP BIOS_DISPATCH
|
||||
;
|
||||
;==================================================================================================
|
||||
; SYSTEM INITIALIZATION
|
||||
;==================================================================================================
|
||||
;
|
||||
; AT THIS POINT, IT IS ASSUMED WE ARE OPERATING FROM RAM PAGE 1
|
||||
;
|
||||
INITSYS:
|
||||
;
|
||||
; INSTALL HBIOS PROXY IN UPPER MEMORY
|
||||
;
|
||||
LD HL,HB_IMG
|
||||
LD DE,HB_LOC
|
||||
LD BC,HB_SIZ
|
||||
LDIR
|
||||
;
|
||||
LD HL,$8000 ; DEFAULT DISK XFR BUF ADDRESS
|
||||
LD (DIOBUF),HL ; SAVE IT
|
||||
;
|
||||
#IF (PLATFORM != PLT_N8)
|
||||
IN A,(RTC) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER
|
||||
; LD A,40H ; *DEBUG* SIMULATE JUMPER OPEN
|
||||
; LD A,00H ; *DEBUG* SIMULATE JUMPER SHORTED
|
||||
AND 40H ; ISOLATE BIT 6
|
||||
JR Z,INITSYS1 ; IF BIT6=0, SHORTED, USE ALT CONSOLE
|
||||
LD A,DEFCON ; LOAD DEF CONSOLE DEVICE CODE
|
||||
JR INITSYS2 ; CONTINUE
|
||||
INITSYS1:
|
||||
LD A,ALTCON ; LOAD ALT CONSOLE DEVICE CODE
|
||||
INITSYS2:
|
||||
LD (CONDEV),A ; SET THE ACTIVE CONSOLE DEVICE
|
||||
#ENDIF
|
||||
;
|
||||
; PERFORM DEVICE INITIALIZATION
|
||||
;
|
||||
#IF (UARTENABLE)
|
||||
CALL UART_INIT
|
||||
#ENDIF
|
||||
#IF (VDUENABLE)
|
||||
CALL VDU_INIT
|
||||
#ENDIF
|
||||
#IF (PRPENABLE)
|
||||
CALL PRP_INIT
|
||||
#ENDIF
|
||||
#IF (PPPENABLE)
|
||||
CALL PPP_INIT
|
||||
#ENDIF
|
||||
#IF (DSKYENABLE)
|
||||
CALL DSKY_INIT
|
||||
#ENDIF
|
||||
#IF (FDENABLE)
|
||||
CALL FD_INIT
|
||||
#ENDIF
|
||||
#IF (IDEENABLE)
|
||||
CALL IDE_INIT
|
||||
#ENDIF
|
||||
#IF (PPIDEENABLE)
|
||||
CALL PPIDE_INIT
|
||||
#ENDIF
|
||||
#IF (SDENABLE)
|
||||
CALL SD_INIT
|
||||
#ENDIF
|
||||
#IF (HDSKENABLE)
|
||||
CALL HDSK_INIT
|
||||
#ENDIF
|
||||
;
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; IDLE
|
||||
;==================================================================================================
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
IDLE:
|
||||
#IF (FDENABLE)
|
||||
CALL FD_IDLE
|
||||
#ENDIF
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; BIOS FUNCTION DISPATCHER
|
||||
;==================================================================================================
|
||||
;
|
||||
; MAIN BIOS FUNCTION
|
||||
; B: FUNCTION
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
BIOS_DISPATCH:
|
||||
LD A,B ; REQUESTED FUNCTION IS IN B
|
||||
CP BF_CIO + $10
|
||||
JR C,CIO_DISPATCH
|
||||
CP BF_DIO + $10
|
||||
JR C,DIO_DISPATCH
|
||||
CP BF_CLK + $10
|
||||
JR C,CLK_DISPATCH
|
||||
CP BF_VDU + $10
|
||||
JR C,CRT_DISPATCH
|
||||
|
||||
CP BF_SYS ; SKIP TO BF_SYS VALUE AT $F0
|
||||
CALL C,PANIC ; PANIC IF LESS THAN BF_SYS
|
||||
JR SYS_DISPATCH ; OTHERWISE SYS CALL
|
||||
CALL PANIC ; THIS SHOULD NEVER BE REACHED
|
||||
;
|
||||
; SETUP AND CALL CHARACTER DRIVER
|
||||
; B: FUNCTION
|
||||
; C: DEVICE/UNIT
|
||||
; E: CHARACTER IN/OUT
|
||||
;
|
||||
CIO_DISPATCH:
|
||||
LD A,C ; REQUESTED DEVICE/UNIT IS IN C
|
||||
AND $F0 ; ISOLATE THE DEVICE PORTION
|
||||
#IF (UARTENABLE)
|
||||
CP CIODEV_UART
|
||||
JP Z,UART_DISPATCH
|
||||
#ENDIF
|
||||
#IF (PRPENABLE & PRPCONENABLE)
|
||||
CP CIODEV_PRPCON
|
||||
JP Z,PRPCON_DISPATCH
|
||||
#ENDIF
|
||||
#IF (PPPENABLE & PPPCONENABLE)
|
||||
CP CIODEV_PPPCON
|
||||
JP Z,PPPCON_DISPATCH
|
||||
#ENDIF
|
||||
#IF (VDUENABLE)
|
||||
CP CIODEV_VDU
|
||||
JP Z,VDU_DISPATCH
|
||||
#ENDIF
|
||||
CALL PANIC
|
||||
;
|
||||
;
|
||||
;
|
||||
DIO_DISPATCH:
|
||||
LD A,B
|
||||
|
||||
; DIO FUNCTIONS STARTING AT $18 ARE COMMON
|
||||
; AND DO NOT DISPATCH TO DRIVERS
|
||||
CP $18
|
||||
JR NC,DIO_COMMON
|
||||
|
||||
; DISPATCH FUCNTION TO APPROPRIATE DRIVER
|
||||
AND $0F ;
|
||||
|
||||
; HACK TO FILL IN HSTTRK AND HSTSEC
|
||||
; BUT ONLY FOR READ/WRITE FUNCTION CALLS
|
||||
; ULTIMATELY, HSTTRK AND HSTSEC ARE TO BE REMOVED
|
||||
CP 2
|
||||
JR NC,DIO_DISPATCH1
|
||||
LD (HSTTRK),HL
|
||||
LD (HSTSEC),DE
|
||||
DIO_DISPATCH1:
|
||||
LD A,C ; REQUESTED DEVICE/UNIT IS IN C
|
||||
LD (HSTDSK),A ; TEMP HACK TO FILL IN HSTDSK
|
||||
AND $F0 ; ISOLATE THE DEVICE PORTION
|
||||
#IF (FDENABLE)
|
||||
CP DIODEV_FD
|
||||
JP Z,FD_DISPATCH
|
||||
#ENDIF
|
||||
#IF (IDEENABLE)
|
||||
CP DIODEV_IDE
|
||||
JP Z,IDE_DISPATCH
|
||||
#ENDIF
|
||||
#IF (PPIDEENABLE)
|
||||
CP DIODEV_PPIDE
|
||||
JP Z,PPIDE_DISPATCH
|
||||
#ENDIF
|
||||
#IF (SDENABLE)
|
||||
CP DIODEV_SD
|
||||
JP Z,SD_DISPATCH
|
||||
#ENDIF
|
||||
#IF (PRPENABLE & PRPSDENABLE)
|
||||
CP DIODEV_PRPSD
|
||||
JP Z,PRPSD_DISPATCH
|
||||
#ENDIF
|
||||
#IF (PPPENABLE & PPPSDENABLE)
|
||||
CP DIODEV_PPPSD
|
||||
JP Z,PPPSD_DISPATCH
|
||||
#ENDIF
|
||||
#IF (HDSKENABLE)
|
||||
CP DIODEV_HDSK
|
||||
JP Z,HDSK_DISPATCH
|
||||
#ENDIF
|
||||
CALL PANIC
|
||||
;
|
||||
; HANDLE COMMON DISK FUNCTIONS (NOT DEVICE DRIVER SPECIFIC)
|
||||
;
|
||||
DIO_COMMON:
|
||||
SUB $18
|
||||
JR Z,DIO_GBA
|
||||
DEC A
|
||||
JR Z,DIO_SBA
|
||||
CALL PANIC
|
||||
;
|
||||
; DISK: GET BUFFER ADDRESS
|
||||
;
|
||||
DIO_GBA:
|
||||
LD HL,(DIOBUF)
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; DISK: SET BUFFER ADDRESS
|
||||
;
|
||||
DIO_SBA:
|
||||
BIT 7,H ; IS HIGH ORDER BIT SET?
|
||||
CALL Z,PANIC ; IF NOT, ADR IS IN LOWER 32K, NOT ALLOWED!!!
|
||||
LD (DIOBUF),HL
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
CLK_DISPATCH:
|
||||
CALL PANIC
|
||||
;
|
||||
;
|
||||
;
|
||||
CRT_DISPATCH:
|
||||
CALL PANIC
|
||||
;
|
||||
;
|
||||
;
|
||||
SYS_DISPATCH:
|
||||
LD A,B
|
||||
CP BF_SYSGETCFG
|
||||
JR Z,SYS_GETCFG
|
||||
CP BF_SYSSETCFG
|
||||
JR Z,SYS_SETCFG
|
||||
CP BF_SYSBNKCPY
|
||||
JR Z,SYS_BNKCPY
|
||||
CALL PANIC
|
||||
;
|
||||
SYS_GETCFG:
|
||||
LD HL,$0200 ; SETUP SOURCE OF CONFIG DATA
|
||||
LD BC,$0100 ; SIZE OF CONFIG DATA
|
||||
LDIR ; COPY IT
|
||||
RET
|
||||
;
|
||||
SYS_SETCFG:
|
||||
LD HL,$0200 ; SETUP SOURCE OF CONFIG DATA
|
||||
LD BC,$0100
|
||||
EX DE,HL
|
||||
LDIR
|
||||
RET
|
||||
;
|
||||
SYS_BNKCPY:
|
||||
LD A,C ; BANK SELECTION TO A
|
||||
PUSH IX
|
||||
POP BC ; BC = BYTE COUNT TO COPY
|
||||
JP $FF03 ; JUST PASS CONTROL TO HBIOS STUB IN UPPER MEMORY
|
||||
;
|
||||
; COMMON ROUTINE THAT IS CALLED BY CHARACTER IO DRIVERS WHEN
|
||||
; AN IDLE CONDITION IS DETECTED (WAIT FOR INPUT/OUTPUT)
|
||||
;
|
||||
CIO_IDLE:
|
||||
LD HL,IDLECOUNT ; POINT TO IDLE COUNT
|
||||
DEC (HL) ; 256 TIMES?
|
||||
CALL Z,IDLE ; RUN IDLE PROCESS EVERY 256 ITERATIONS
|
||||
XOR A ; SIGNAL NO CHAR READY
|
||||
RET ; AND RETURN
|
||||
;
|
||||
;==================================================================================================
|
||||
; DEVICE DRIVERS
|
||||
;==================================================================================================
|
||||
;
|
||||
#IF (UARTENABLE)
|
||||
ORG_UART .EQU $
|
||||
#INCLUDE "uart.asm"
|
||||
SIZ_UART .EQU $ - ORG_UART
|
||||
.ECHO "UART occupies "
|
||||
.ECHO SIZ_UART
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (VDUENABLE)
|
||||
ORG_VDU .EQU $
|
||||
#INCLUDE "vdu.asm"
|
||||
SIZ_VDU .EQU $ - ORG_VDU
|
||||
.ECHO "VDU occupies "
|
||||
.ECHO SIZ_VDU
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PRPENABLE)
|
||||
ORG_PRP .EQU $
|
||||
#INCLUDE "prp.asm"
|
||||
SIZ_PRP .EQU $ - ORG_PRP
|
||||
.ECHO "PRP occupies "
|
||||
.ECHO SIZ_PRP
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PPPENABLE)
|
||||
ORG_PPP .EQU $
|
||||
#INCLUDE "ppp.asm"
|
||||
SIZ_PPP .EQU $ - ORG_PPP
|
||||
.ECHO "PPP occupies "
|
||||
.ECHO SIZ_PPP
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (FDENABLE)
|
||||
ORG_FD .EQU $
|
||||
#INCLUDE "fd.asm"
|
||||
SIZ_FD .EQU $ - ORG_FD
|
||||
.ECHO "FD occupies "
|
||||
.ECHO SIZ_FD
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
|
||||
#IF (IDEENABLE)
|
||||
ORG_IDE .EQU $
|
||||
#INCLUDE "ide.asm"
|
||||
SIZ_IDE .EQU $ - ORG_IDE
|
||||
.ECHO "IDE occupies "
|
||||
.ECHO SIZ_IDE
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
|
||||
#IF (PPIDEENABLE)
|
||||
ORG_PPIDE .EQU $
|
||||
#INCLUDE "ppide.asm"
|
||||
SIZ_PPIDE .EQU $ - ORG_PPIDE
|
||||
.ECHO "PPIDE occupies "
|
||||
.ECHO SIZ_PPIDE
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
|
||||
#IF (SDENABLE)
|
||||
ORG_SD .EQU $
|
||||
#INCLUDE "sd.asm"
|
||||
SIZ_SD .EQU $ - ORG_SD
|
||||
.ECHO "SD occupies "
|
||||
.ECHO SIZ_SD
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
|
||||
#IF (HDSKENABLE)
|
||||
ORG_HDSK .EQU $
|
||||
#INCLUDE "hdsk.asm"
|
||||
SIZ_HDSK .EQU $ - ORG_HDSK
|
||||
.ECHO "HDSK occupies "
|
||||
.ECHO SIZ_HDSK
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#DEFINE CIOMODE_CONSOLE
|
||||
#DEFINE DSKY_KBD
|
||||
#INCLUDE "util.asm"
|
||||
;
|
||||
;;;;#INCLUDE "memmgr.asm"
|
||||
;
|
||||
;==================================================================================================
|
||||
; BANK ONE GLOBAL DATA
|
||||
;==================================================================================================
|
||||
;
|
||||
CONDEV .DB DEFCON
|
||||
;
|
||||
IDLECOUNT .DB 0
|
||||
;
|
||||
HSTDSK .DB 0 ; DISK IN BUFFER
|
||||
HSTTRK .DW 0 ; TRACK IN BUFFER
|
||||
HSTSEC .DW 0 ; SECTOR IN BUFFER
|
||||
;
|
||||
DIOBUF .DW $FD00 ; PTR TO 512 BYTE DISK XFR BUFFER
|
||||
;
|
||||
;==================================================================================================
|
||||
; FILL REMAINDER OF BANK
|
||||
;==================================================================================================
|
||||
;
|
||||
SLACK: .EQU (7F00H - $)
|
||||
.FILL SLACK,0FFH
|
||||
;
|
||||
.ECHO "BNK1 space remaining: "
|
||||
.ECHO SLACK
|
||||
.ECHO " bytes.\n"
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS UPPER MEMORY STUB
|
||||
;==================================================================================================
|
||||
;
|
||||
; THE FOLLOWING CODE IS RELOCATED TO THE TOP PAGE IN MEMORY TO HANDLE INVOCATION DISPATCHING
|
||||
;
|
||||
HB_IMG .EQU $
|
||||
.ORG HB_LOC
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS DISPATCH
|
||||
;==================================================================================================
|
||||
;
|
||||
; DISPATCH JUMP TABLE FOR UPPER MEMORY HBIOS FUNCTIONS
|
||||
;
|
||||
JP HB_INIT
|
||||
JP HB_BNKCPY
|
||||
;
|
||||
; MEMORY MANAGER
|
||||
;
|
||||
#INCLUDE "memmgr.asm"
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS BOOT ROUTINE
|
||||
;==================================================================================================
|
||||
;
|
||||
; SETUP RST 08 TO HANDLE MAIN BIOS FUNCTIONS
|
||||
;
|
||||
HB_INIT:
|
||||
LD A,0C3H ; $C3 = JP
|
||||
LD (8H),A
|
||||
LD HL,HB_ENTRY
|
||||
LD (9H),HL
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS BNKCPY ROUTINE
|
||||
;==================================================================================================
|
||||
;
|
||||
; SELECT A DESIGNATED RAM/ROM BANK INTO LOWER 32K, THEN PERFORM A BULK MEMORY COPY
|
||||
; A: BANK SELECTION (BIT 7: 1=RAM/0=ROM, BITS 0-6: BANK NUMBER)
|
||||
; DE: DESTINATION ADDRESS
|
||||
; HL: SOURCE ADDRESS
|
||||
; BC: COUNT OF BYTES TO COPY;
|
||||
;
|
||||
HB_BNKCPY:
|
||||
BIT 7,A ; CHECK BIT 7
|
||||
JR NZ,HB_BNKCPY1 ; RAM PAGE
|
||||
;
|
||||
CALL ROMPG ; SELECT ROM PAGE
|
||||
JR HB_BNKCPY2 ; GO TO COMMON STUFF
|
||||
;
|
||||
HB_BNKCPY1:
|
||||
RES 7,A ; CLEAR BIT 7
|
||||
CALL RAMPG ; SELECT RAM PAGE AND FALL THRU
|
||||
;
|
||||
HB_BNKCPY2:
|
||||
LDIR ; DO THE COPY
|
||||
LD A,1 ; RESELECT RAM PAGE 1
|
||||
CALL RAMPG ; DO IT
|
||||
RET ; BACK TO LOWER MEMORY
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS ENTRY FOR RST 08 PROCESSING
|
||||
;==================================================================================================
|
||||
;
|
||||
; ENTRY POINT FOR BIOS FUNCTIONS (TARGET OF RST 08)
|
||||
;
|
||||
HB_ENTRY:
|
||||
LD (STACKSAV),SP ; SAVE ORIGINAL STACK FRAME
|
||||
LD SP,STACK ; SETUP NEW STACK FRAME
|
||||
|
||||
PGRAMF(1) ; MAP RAM PAGE 1 INTO LOWER 32K
|
||||
|
||||
CALL 1003H ; CALL BANK 1 HBIOS FUNCTION DISPATCHER
|
||||
|
||||
PUSH AF ; SAVE AF (FUNCTION RETURN)
|
||||
PGRAMF(0) ; MAP RAM PAGE 0 INTO LOWER 32K
|
||||
POP AF ; RESTORE AF
|
||||
|
||||
LD SP,(STACKSAV) ; RESTORE ORIGINAL STACK FRAME
|
||||
|
||||
RET ; RETURN TO CALLER
|
||||
;
|
||||
; PRIVATE DATA
|
||||
;
|
||||
STACKSAV .DW 0
|
||||
;
|
||||
; JUST FOR FUN, PRIVATE STACK IS LOCATED AT TOP OF MEMORY...
|
||||
;
|
||||
STACK .EQU 0
|
||||
;
|
||||
;
|
||||
;
|
||||
HB_SLACK .EQU (HB_END - $)
|
||||
.ECHO "STACK space remaining: "
|
||||
.ECHO HB_SLACK
|
||||
.ECHO " bytes.\n"
|
||||
;
|
||||
.FILL HB_SLACK,0FFH
|
||||
;
|
||||
.END
|
||||
@@ -9,11 +9,17 @@
|
||||
;
|
||||
#INCLUDE "std.asm"
|
||||
;
|
||||
.ORG 0100H
|
||||
.ORG $100
|
||||
;
|
||||
DI ; NO INTERRUPTS
|
||||
IM 1 ; INTERRUPT MODE 1
|
||||
|
||||
LD SP,$FF00 ; START WITH SP BELOW HBIOS PROXY LOCATION
|
||||
;
|
||||
; LD BC,0
|
||||
;XXX:
|
||||
; DJNZ XXX
|
||||
; DEC C
|
||||
; JR NZ,XXX
|
||||
;
|
||||
; PERFORM MINIMAL Z180 SPECIFIC INITIALIZATION
|
||||
;
|
||||
@@ -38,31 +44,47 @@
|
||||
LD A,(RAMSIZE - 64) >> 2
|
||||
OUT0 (CPU_CBR),A ; COMMON BASE = LAST (TOP) BANK
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
; EMIT FIRST SIGN OF LIFE TO SERIAL PORT
|
||||
;
|
||||
CALL XIO_INIT ; INIT SERIAL PORT
|
||||
LD HL,STR_BOOT ; POINT TO MESSAGE
|
||||
CALL XIO_OUTS ; SAY HELLO
|
||||
;
|
||||
; RELOCATE MONITOR/OS CODE FROM 8000H TO C000H
|
||||
; - HBIOS PROXY AT $FF00 IS OVERLAID, BUT WE DON'T CARE
|
||||
; ABOUT IT ANYMORE, IT WILL BE REFRESHED DURING HBIOS
|
||||
; INIT LATER.
|
||||
;
|
||||
LD HL,8000H ; COPY MEMORY FROM 8000
|
||||
LD DE,0C000H ; TO C000
|
||||
LD BC,4000H ; COPY 16K
|
||||
; NOTE: STACK IS WIPED OUT, STACK IS ASSUMED TO BE EMPTY HERE!!!!
|
||||
;
|
||||
LD HL,$8000 ; COPY MEMORY FROM 8000
|
||||
LD DE,$C000 ; TO C000
|
||||
LD BC,$4000 ; COPY 16K
|
||||
LDIR
|
||||
;
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
; COPY FIRST $1000 BYTES TO $8000 (UPPER, NON-BANKED MEMORY)
|
||||
; THIS INCLUDES OURSELVES AND THE LOADER CODE
|
||||
;
|
||||
;
|
||||
; RELOCATE BOOT PHASE 2 AND LOADER CODE FROM 0000H TO 8000H
|
||||
;
|
||||
LD HL,0000H ; COPY MEMORY FROM 0000
|
||||
LD DE,8000H ; TO 8000H
|
||||
LD BC,1000H ; COPY 1000H BYTES
|
||||
LD HL,$0000 ; COPY MEMORY FROM 0000
|
||||
LD DE,$8000 ; TO 8000H
|
||||
LD BC,$1000 ; COPY 1000H BYTES
|
||||
LDIR
|
||||
;
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
JP PHASE2 ; JUMP TO PHASE 2 BOOT IN UPPER MEMORY
|
||||
;
|
||||
STR_BOOT .DB "Boot$"
|
||||
;
|
||||
; IMBED DIRECT SERIAL I/O ROUTINES
|
||||
;
|
||||
#INCLUDE "xio.asm"
|
||||
;
|
||||
;______________________________________________________________________________________________________________________
|
||||
;
|
||||
; THIS IS THE PHASE 2 CODE THAT MUST EXECUTE IN UPPER MEMORY
|
||||
@@ -70,14 +92,14 @@
|
||||
.ORG $ + $8000 ; WE ARE NOW EXECUTING IN UPPER MEMORY
|
||||
;
|
||||
PHASE2:
|
||||
LD SP,9000H ; INIT BOOT STACK
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
; COPY RAMPG0 TO RAMPG1
|
||||
;
|
||||
LD HL,0000H ; HL = LOCATION IN LOMEM TO COPY FROM/TO
|
||||
LD HL,0 ; HL = LOCATION IN LOMEM TO COPY FROM/TO
|
||||
LOOP:
|
||||
LD DE,09000H ; DE = BUFFER ADDRESS
|
||||
LD BC,1000H ; BYTES TO COPY (4K CHUNKS)
|
||||
LD DE,$9000 ; DE = BUFFER ADDRESS
|
||||
LD BC,$1000 ; BYTES TO COPY (4K CHUNKS)
|
||||
PUSH BC ; SAVE COPY SIZE
|
||||
PUSH DE ; SAVE COPY DEST
|
||||
PUSH HL ; SAVE COPY SOURCE
|
||||
@@ -92,18 +114,21 @@ LOOP:
|
||||
LDIR ; COPY BUFFER -> RAM
|
||||
EX DE,HL ; GET LOMEM POINTER BACK TO HL
|
||||
LD A,H ; HIGH BYTE OF POINTER TO A
|
||||
CP 80H ; HIGH BYTE WILL BE 80H WHEN WE ARE DONE
|
||||
CP $80 ; HIGH BYTE WILL BE 80H WHEN WE ARE DONE
|
||||
JP NZ,LOOP ; IF NOT DONE, LOOP TO DO NEXT 4K CHUNK
|
||||
;
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
; INITIALIZE HBIOS AND JUMP TO LOADER
|
||||
;
|
||||
LD A,1 ; SETUP TO SELECT PAGE 1
|
||||
CALL RAMPG ; SELECT RAM PAGE 1 (WHICH IS NOW LOADED WITH BNK1 CODE)
|
||||
CALL 1000H ; CALL HBIOS INITIALIZATION
|
||||
CALL RAMPGZ ; MAKE SURE RAM PAGE ZERO IS MAPPED TO LOWER 32K
|
||||
CALL 0FF00H ; CALL HBIOS PROXY INITIALIZATION
|
||||
; CALL HBIOS HARDWARE INITIALIZATION
|
||||
CALL $1000 ; CALL HBIOS INITIALIZATION
|
||||
;
|
||||
JP 8400H ; JUMP TO LOADER
|
||||
; CALL HBIOS PROXY INITIALIZATION
|
||||
CALL RAMPGZ ; MAKE SURE RAM PAGE ZERO IS MAPPED TO LOWER 32K
|
||||
CALL $FF20 ; CALL HBIOS PROXY INITIALIZATION
|
||||
;
|
||||
JP $8400 ; JUMP TO LOADER
|
||||
;______________________________________________________________________________________________________________________
|
||||
;
|
||||
; NOTE THAT MEMORY MANAGER CODE IS IN UPPER MEMORY!
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
;
|
||||
#INCLUDE "std.asm"
|
||||
;
|
||||
.ORG 0100H
|
||||
.ORG $100
|
||||
;
|
||||
DI ; NO INTERRUPTS
|
||||
IM 1 ; INTERRUPT MODE 1
|
||||
|
||||
LD SP,$FF00 ; START WITH SP BELOW HBIOS PROXY LOCATION
|
||||
;
|
||||
; PERFORM MINIMAL Z180 SPECIFIC INITIALIZATION
|
||||
;
|
||||
@@ -31,14 +31,19 @@
|
||||
OUT0 (CPU_DCNTL),A
|
||||
|
||||
; MMU SETUP
|
||||
LD A,80H
|
||||
LD A,$80
|
||||
OUT0 (CPU_CBAR),A ; SETUP FOR 32K/32K BANK CONFIG
|
||||
XOR A
|
||||
OUT0 (CPU_BBR),A ; BANK BASE = 0
|
||||
LD A,(RAMSIZE - 64) >> 2
|
||||
OUT0 (CPU_CBR),A ; COMMON BASE = LAST (TOP) BANK
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
; EMIT FIRST SIGN OF LIFE TO SERIAL PORT
|
||||
;
|
||||
CALL XIO_INIT ; INIT SERIAL PORT
|
||||
LD HL,STR_BOOT ; POINT TO MESSAGE
|
||||
CALL XIO_OUTS ; SAY HELLO
|
||||
;
|
||||
; COPY ENTIRE CONTENTS OF ROM BANK 0 TO HI RAM
|
||||
; THIS INCLUDES OURSELVES AND THE LOADER CODE
|
||||
@@ -46,13 +51,23 @@
|
||||
; BECAUSE IT WILL BE REFRESHED DURING HBIOS
|
||||
; INIT LATER.
|
||||
;
|
||||
LD HL,0000H ; COPY MEMORY FROM LOMEM (0000H)
|
||||
LD DE,8000H ; TO HIMEM (8000H)
|
||||
LD BC,8000H ; COPY ENTIRE BANK, 8000H BYTES
|
||||
; NOTE: STACK IS WIPED OUT, STACK IS ASSUMED TO BE EMPTY HERE!!!!
|
||||
;
|
||||
LD HL,$0000 ; COPY MEMORY FROM LOMEM (0000H)
|
||||
LD DE,$8000 ; TO HIMEM (8000H)
|
||||
LD BC,$8000 ; COPY ENTIRE BANK, 8000H BYTES
|
||||
LDIR
|
||||
;
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
JP PHASE2 ; JUMP TO PHASE 2 BOOT IN UPPER MEMORY
|
||||
;
|
||||
STR_BOOT .DB "Boot$"
|
||||
;
|
||||
; IMBED DIRECT SERIAL I/O ROUTINES
|
||||
;
|
||||
#INCLUDE "xio.asm"
|
||||
;
|
||||
;______________________________________________________________________________________________________________________
|
||||
;
|
||||
; THIS IS THE PHASE 2 CODE THAT MUST EXECUTE IN UPPER MEMORY
|
||||
@@ -60,14 +75,14 @@
|
||||
.ORG $ + $8000 ; WE ARE NOW EXECUTING IN UPPER MEMORY
|
||||
;
|
||||
PHASE2:
|
||||
LD SP,9000H ; INIT BOOT STACK
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
; COPY ROMPG1 TO RAMPG1
|
||||
;
|
||||
LD HL,0000H ; HL = LOCATION IN LOMEM TO COPY FROM/TO
|
||||
LD HL,0 ; HL = LOCATION IN LOMEM TO COPY FROM/TO
|
||||
LOOP:
|
||||
LD DE,09000H ; DE = BUFFER ADDRESS
|
||||
LD BC,1000H ; BYTES TO COPY (4K CHUNKS)
|
||||
LD DE,$9000 ; DE = BUFFER ADDRESS
|
||||
LD BC,$1000 ; BYTES TO COPY (4K CHUNKS)
|
||||
PUSH BC ; SAVE COPY SIZE
|
||||
PUSH DE ; SAVE COPY DEST
|
||||
PUSH HL ; SAVE COPY SOURCE
|
||||
@@ -82,18 +97,21 @@ LOOP:
|
||||
LDIR ; COPY BUFFER -> RAM
|
||||
EX DE,HL ; GET LOMEM POINTER BACK TO HL
|
||||
LD A,H ; HIGH BYTE OF POINTER TO A
|
||||
CP 80H ; HIGH BYTE WILL BE 80H WHEN WE ARE DONE
|
||||
CP $80 ; HIGH BYTE WILL BE $80 WHEN WE ARE DONE
|
||||
JP NZ,LOOP ; IF NOT DONE, LOOP TO DO NEXT 4K CHUNK
|
||||
;
|
||||
CALL XIO_DOT ; MARK PROGRESS
|
||||
;
|
||||
; INITIALIZE HBIOS AND JUMP TO LOADER
|
||||
;
|
||||
LD A,1 ; SETUP TO SELECT PAGE 1
|
||||
CALL RAMPG ; SELECT RAM PAGE 1 (WHICH IS NOW LOADED WITH BNK1 CODE)
|
||||
CALL 1000H ; CALL HBIOS INITIALIZATION
|
||||
CALL RAMPGZ ; MAKE SURE RAM PAGE ZERO IS MAPPED TO LOWER 32K
|
||||
CALL 0FF00H ; CALL HBIOS PROXY INITIALIZATION
|
||||
; CALL HBIOS HARDWARE INITIALIZATION
|
||||
CALL $1000 ; CALL HBIOS INITIALIZATION
|
||||
;
|
||||
JP 8400H ; JUMP TO LOADER
|
||||
; CALL HBIOS PROXY INITIALIZATION
|
||||
CALL RAMPGZ ; MAKE SURE RAM PAGE ZERO IS MAPPED TO LOWER 32K
|
||||
CALL $FF20 ; CALL HBIOS PROXY INITIALIZATION
|
||||
;
|
||||
JP $8400 ; JUMP TO LOADER
|
||||
;______________________________________________________________________________________________________________________
|
||||
;
|
||||
; NOTE THAT MEMORY MANAGER CODE IS IN UPPER MEMORY!
|
||||
@@ -104,6 +122,6 @@ LOOP:
|
||||
; PAD OUT REMAINDER OF PAGE
|
||||
;
|
||||
.ORG $ - $8000 ; ORG BACK TO LOWER MEMORY
|
||||
.FILL $0200 - $,$FF ; PAD OUT REMAINDER OF PAGE
|
||||
.FILL $200 - $,$FF ; PAD OUT REMAINDER OF PAGE
|
||||
;
|
||||
.END
|
||||
|
||||
@@ -118,9 +118,9 @@ GOCPM:
|
||||
; SETUP DISK XFR BUFFER LOCATION
|
||||
LD HL,SECBUF
|
||||
LD (BUFADR),HL
|
||||
LD B,BF_DIOSBA
|
||||
LD B,BF_DIOSETBUF
|
||||
RST 08
|
||||
|
||||
|
||||
LD A,0C3H ; LOAD A WITH 'JP' INSTRUCTION (USED BELOW)
|
||||
|
||||
; CPU RESET / RST 0 -> WARM START CP/M
|
||||
@@ -214,7 +214,7 @@ CONIO:
|
||||
;
|
||||
LD A,(IOBYTE) ; GET IOBYTE
|
||||
AND $03 ; ISOLATE RELEVANT IOBYTE BITS FOR CONSOLE
|
||||
OR $00 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0B
|
||||
OR $00 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C
|
||||
JP CIO_DISP
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
@@ -262,7 +262,7 @@ PUNCHIO:
|
||||
RLCA
|
||||
RLCA
|
||||
AND $03 ; ISOLATE RELEVANT IOBYTE BITS FOR PUN:
|
||||
OR $08 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0B
|
||||
OR $08 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C
|
||||
JP CIO_DISP
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
@@ -288,7 +288,7 @@ READERIO:
|
||||
RRCA ; SHIFT RELEVANT BITS TO BITS 0-1
|
||||
RRCA
|
||||
AND $03 ; ISOLATE RELEVANT IOBYTE BITS FOR RDR:
|
||||
OR $04 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0B
|
||||
OR $04 ; PUT LOGICAL DEVICE IN BITS 2-3 (CON:=$00, RDR:=$04, PUN:=$08, LST:=$0C
|
||||
JP CIO_DISP
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
@@ -310,8 +310,7 @@ CIOST:
|
||||
;
|
||||
OR A ; SET FLAGS
|
||||
RET Z ; NO CHARACTERS WAITING (IST) OR OUTPUT BUF FULL (OST)
|
||||
XOR A
|
||||
DEC A ; $FF SIGNALS READY TO READ (IST) OR WRITE (OST)
|
||||
OR 0FFH ; $FF SIGNALS READY TO READ (IST) OR WRITE (OST)
|
||||
RET
|
||||
;__________________________________________________________________________________________________
|
||||
SELDSK:
|
||||
@@ -986,9 +985,7 @@ NUL_OUT:
|
||||
;
|
||||
NUL_IST:
|
||||
NUL_OST:
|
||||
; LD A,$FF
|
||||
XOR A ; A=0
|
||||
DEC A ; A=$FF & NZ SET
|
||||
OR $FF ; A=$FF & NZ SET
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
@@ -1445,14 +1442,13 @@ STR_SEC .DB " SEC=$"
|
||||
; DATA
|
||||
;==================================================================================================
|
||||
;
|
||||
STR_BANNER .DB "\r\n", OSLBL, " for ", PLATFORM_NAME, "\r\n"
|
||||
.DB "CBIOS v", BIOSVER, " ("
|
||||
STR_BANNER .DB OSLBL, " for ", PLATFORM_NAME, " (CBIOS v", BIOSVER, ")$"
|
||||
VAR_LOC .DB VARIANT
|
||||
.DB "-"
|
||||
TST_LOC .DB TIMESTAMP, ")", DSKYLBL, VDULBL, FDLBL, IDELBL, PPIDELBL, SDLBL, PRPLBL, PPPLBL, "\r\n$"
|
||||
TST_LOC .DB TIMESTAMP
|
||||
;
|
||||
STR_INITRAMDISK .DB "\r\nFormatting RAMDISK...$"
|
||||
STR_READONLY .DB "\r\nCBIOS Error: Read Only Drive$"
|
||||
STR_STALE .DB "\r\nCBIOS Error: Stale Drive$"
|
||||
STR_READONLY .DB "\r\nCBIOS Err: Read Only Drive$"
|
||||
STR_STALE .DB "\r\nCBIOS Err: Stale Drive$"
|
||||
;
|
||||
SECADR: .DW 0 ; ADDRESS OF SECTOR IN ROM/RAM PAGE
|
||||
DEFDRIVE .DB 0 ; DEFAULT DRIVE
|
||||
@@ -1940,7 +1936,7 @@ DSK_CNT .EQU DPH_CNT
|
||||
; MAP LOGICAL TO PHYSICAL DEVICES
|
||||
;
|
||||
LD_TTY .EQU CIODEV_UART
|
||||
LD_CRT .EQU CIODEV_VDU
|
||||
LD_CRT .EQU CIODEV_CRT
|
||||
LD_BAT .EQU CIODEV_BAT
|
||||
LD_UC1 .EQU CIODEV_UART
|
||||
LD_PTR .EQU CIODEV_UART
|
||||
@@ -1957,7 +1953,10 @@ LD_UC1 .SET CIODEV_UART + 1
|
||||
#ENDIF
|
||||
;
|
||||
#IF (VDUENABLE)
|
||||
LD_CRT .SET CIODEV_VDU
|
||||
LD_CRT .SET CIODEV_CRT
|
||||
#ENDIF
|
||||
#IF (N8VENABLE)
|
||||
LD_CRT .SET CIODEV_CRT
|
||||
#ENDIF
|
||||
#IF (PRPENABLE & PRPCONENABLE)
|
||||
LD_CRT .SET CIODEV_PRPCON
|
||||
@@ -2030,15 +2029,11 @@ INIT:
|
||||
|
||||
#IF (PLATFORM != PLT_N8)
|
||||
IN A,(RTC) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER
|
||||
; LD A,40H ; *DEBUG* SIMULATE JUMPER OPEN
|
||||
; LD A,00H ; *DEBUG* SIMULATE JUMPER SHORTED
|
||||
AND 40H ; ISOLATE BIT 6
|
||||
JR Z,INIT1 ; IF BIT6=0, SHORTED, USE ALT IOBYTE
|
||||
LD A,DEFIOBYTE ; LOAD DEF IOBYTE VALUE
|
||||
JR INIT2 ; CONTINUE
|
||||
INIT1:
|
||||
BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE
|
||||
LD A,DEFIOBYTE ; ASSUME WE WANT DEFAULT IOBYTE VALUE
|
||||
JR NZ,INIT1 ; IF BIT6=1, NOT SHORTED, CONTINUE WITH DEFAULT
|
||||
LD A,ALTIOBYTE ; LOAD ALT IOBYTE VALUE
|
||||
INIT2:
|
||||
INIT1:
|
||||
LD (IOBYTE),A ; SET THE ACTIVE IOBYTE
|
||||
#ENDIF
|
||||
|
||||
@@ -2048,8 +2043,10 @@ INIT2:
|
||||
LD (CDISK),A ; SETUP CDISK
|
||||
|
||||
; STARTUP MESSAGE
|
||||
CALL NEWLINE
|
||||
LD DE,STR_BANNER
|
||||
CALL WRITESTR
|
||||
CALL NEWLINE
|
||||
|
||||
; SAVE COMMAND PROCESSOR TO CACHE IN RAM1
|
||||
LD A,1
|
||||
@@ -2064,6 +2061,8 @@ INIT2:
|
||||
CALL BLKRES ; RESET DISK (DE)BLOCKING ALGORITHM
|
||||
CALL MD_INIT ; INITIALIZE MEMORY DISK DRIVER (RAM/ROM)
|
||||
|
||||
CALL NEWLINE
|
||||
|
||||
; STARTUP CPM
|
||||
JP GOCPM
|
||||
;
|
||||
@@ -2114,6 +2113,7 @@ DEFDRV2:
|
||||
; WE HAVE A MATCH MATCHED, RECORD NEW DEFAULT DRIVE
|
||||
LD A,C ; C HAS MATCHING DRIVE, MOVE TO A
|
||||
LD (DEFDRIVE),A ; SAVE IT
|
||||
;
|
||||
RET
|
||||
;
|
||||
.FILL (256 - ($ - INIT)),0 ; FILL REMAINDER OF PAGE
|
||||
|
||||
@@ -9,10 +9,10 @@ CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS
|
||||
;
|
||||
PLATFORM .EQU PLT_N8 ; PLT_N8VEM, PLT_ZETA, PLT_N8
|
||||
;
|
||||
DIOPLT .EQU 0 ; DEPRECATED
|
||||
;
|
||||
DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_VDU, DIODEV_PRPCON
|
||||
ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
DEFVDA .EQU VDADEV_N8V ; DEFAULT VDA (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_7220, VDADEV_N8V)
|
||||
DEFEMU .EQU EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
|
||||
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
|
||||
@@ -25,10 +25,10 @@ UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRU
|
||||
UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY)
|
||||
UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!)
|
||||
;
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU SERVICES (YOU MUST HAVE THE HARDWARE!)
|
||||
VDUMODE .EQU VDUMODE_VDU ; VDUMODE_NONE, VDUMODE_VDU, VDUMODE_N8, VDUMODE_CVDU (ONLY VDUPLT_VDU IMPLEMENTED!)
|
||||
;
|
||||
BIOSSIZE .EQU 0100H ; AMOUNT OF SPACE WITHIN BIOS AREA TO RESERVE FOR DATA
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
|
||||
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
|
||||
UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
|
||||
N8VENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
|
||||
;
|
||||
DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE)
|
||||
ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
@@ -78,7 +78,15 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
|
||||
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
;
|
||||
BOOTTYPE: .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD
|
||||
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
|
||||
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242
|
||||
KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE)
|
||||
;
|
||||
TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT
|
||||
ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT
|
||||
;
|
||||
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
|
||||
BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT
|
||||
;
|
||||
|
||||
@@ -9,10 +9,10 @@ CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS
|
||||
;
|
||||
PLATFORM .EQU PLT_N8 ; PLT_N8VEM, PLT_ZETA, PLT_N8
|
||||
;
|
||||
DIOPLT .EQU 0 ; DEPRECATED
|
||||
;
|
||||
DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_VDU, DIODEV_PRPCON
|
||||
ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
DEFVDA .EQU VDADEV_N8V ; DEFAULT VDA (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_7220, VDADEV_N8V)
|
||||
DEFEMU .EQU EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
|
||||
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
|
||||
@@ -25,10 +25,10 @@ UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRU
|
||||
UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY)
|
||||
UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!)
|
||||
;
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU SERVICES (YOU MUST HAVE THE HARDWARE!)
|
||||
VDUMODE .EQU VDUMODE_VDU ; VDUMODE_NONE, VDUMODE_VDU, VDUMODE_N8, VDUMODE_CVDU (ONLY VDUPLT_VDU IMPLEMENTED!)
|
||||
;
|
||||
BIOSSIZE .EQU 0100H ; AMOUNT OF SPACE WITHIN BIOS AREA TO RESERVE FOR DATA
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
|
||||
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
|
||||
UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
|
||||
N8VENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
|
||||
;
|
||||
DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE)
|
||||
ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
@@ -78,7 +78,15 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
|
||||
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
;
|
||||
BOOTTYPE: .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD
|
||||
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
|
||||
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242
|
||||
KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE)
|
||||
;
|
||||
TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT
|
||||
ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT
|
||||
;
|
||||
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
|
||||
BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT
|
||||
;
|
||||
|
||||
@@ -9,10 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS
|
||||
;
|
||||
PLATFORM .EQU PLT_N8VEM ; PLT_N8VEM, PLT_ZETA, PLT_N8
|
||||
;
|
||||
DIOPLT .EQU 0 ; DEPRECATED
|
||||
;
|
||||
DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_VDU, DIODEV_PRPCON
|
||||
ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_UPD7220, VDADEV_N8V)
|
||||
DEFEMU .EQU EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
|
||||
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
|
||||
@@ -25,10 +25,10 @@ UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRU
|
||||
UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY)
|
||||
UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!)
|
||||
;
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU SERVICES (YOU MUST HAVE THE HARDWARE!)
|
||||
VDUMODE .EQU VDUMODE_VDU ; VDUMODE_NONE, VDUMODE_VDU, VDUMODE_N8, VDUMODE_CVDU (ONLY VDUPLT_VDU IMPLEMENTED!)
|
||||
;
|
||||
BIOSSIZE .EQU 0100H ; AMOUNT OF SPACE WITHIN BIOS AREA TO RESERVE FOR DATA
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
|
||||
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
|
||||
UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
|
||||
N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
|
||||
;
|
||||
DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE)
|
||||
ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
@@ -78,7 +78,15 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
|
||||
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
;
|
||||
BOOTTYPE: .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
|
||||
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
|
||||
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242
|
||||
KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE)
|
||||
;
|
||||
TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT
|
||||
ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT
|
||||
;
|
||||
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
|
||||
BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT
|
||||
;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user