Groups | Search | Server Info | Login | Register
Groups > comp.lang.pascal.borland > #244
| From | Robert Prins <robert@prino.org> |
|---|---|
| Newsgroups | comp.lang.pascal.borland |
| Subject | Re: Turbo Pascal 6.0 editor sources |
| Date | 2025-08-20 22:21 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <10857e4$gk9r$1@dont-email.me> (permalink) |
| References | <1084n25$cou9$1@dont-email.me> |
On 2025-08-20 14:45, Noon wrote:
> Hello community,
>
> I just wanted to let you know that the Internet recovered the sources of Turbo
> Pascal 6.0. I haven't tried to compile them yet, but they look complete:
> https://archive.org/details/tpascal
>
> What's interesting is that the compiler contains an opcode generator for x86
> assembly commands - which potentially could pave the way to extend the
> integrated assembler by 386 commands or above.
>
> I hope that Borland Pascal 7 will appear at some point as well, as this would
> open up the world for the community to extend their favourite compilers!
I've had these for probably two or more decades. Also never tried to
recompile/reassemble them, but I did (and still do, somewhere...) have a program
to actually modify the builtin BASM hash table to include some 386(+)
instructions, but using 386(+) code is also possible using const's to define
opcodes and use them via db/dw/dd. Extending the assembler to actually handle
the new addressing modes of 386(+) instructions will probably be pretty hard.
It would be far more useful to have the source for Virtual Pascal, and work with
that one, although given that that compiler is also written in pretty much
uncommented x86 assembler (now how do I know that...), it will be just as hard,
but probably far more useful, right now I'm using it with lots of db/dw/dd codes
post Pentium instructions, like (wrapping lines)
{ cmovg edi, eax } db $0f,$4f,$f8
{ cmovg edi, esi } db $0f,$4f,$fe
{ movq [ebx + offset lift_list.sum.km], mm0 } db $0f,$7f,$83; dd offset
lift_list.sum.km
{ movq mm0, sum.km } db $0f,$6f,$05; dd offset
sum.km
{ movq sum.km, mm0 } db $0f,$7f,$05; dd offset
sum.km
{ paddd mm0, [ebx + offset lift_list.dtv.km] } db $0f,$fe,$43,offset
lift_list.dtv.km
{ vmovdqu [eax + ecx], ymm0 } db $c5,$fe,$6f,$04,$08
{ vmovdqu [edi + 32], ymm1 } db $c5,$fe,$7f,$4f,32
{ vmovdqu [edi + eax], ymm0 } db $c5,$fe,$7f,$04,$07
{ vmovdqu [edi], ymm0 } db $c5,$fe,$7f,$07
{ vmovdqu [edx + offset minmax.max.km], xmm0 } db $c5,$fa,$7f,$42,offset
minmax.max.km
{ vmovdqu swaits, ymm0 } db $c5,$fe,$7f,$05; dd
offset swaits
{ vmovdqu xmm0, [edx + offset minmax.min.km] } db $c5,$fa,$6f,$42,offset
minmax.min.km
{ vmovdqu ymm0, [esi + eax] } db $c5,$fe,$6f,$04,$06
{ vmovdqu ymm0, [esi] } db $c5,$fe,$6f,$06
{ vmovdqu ymm1, [esi + 32] } db $c5,$fe,$6f,$4e,32
{ vpmaxsd xmm0, xmm0, [ecx + offset minmax.max.km] } db
$c4,$e2,$79,$3d,$41,offset minmax.max.km
{ vpminsd xmm0, xmm0, [ecx + offset minmax.min.km] } db
$c4,$e2,$79,$39,$41,offset minmax.min.km
{ vpxor xmm0, xmm0, xmm0 } db $c5,$f9,$ef,$c0
generating the byte-code via <https://defuse.ca/online-x86-assembler.htm>
Robert
--
Robert AH Prins
robert(a)prino(d)org
The hitchhiking grandfather - https://prino.neocities.org/
Some REXX code for use on z/OS - https://prino.neocities.org/zOS/zOS-Tools.html
Back to comp.lang.pascal.borland | Previous | Next — Previous in thread | Next in thread | Find similar
Turbo Pascal 6.0 editor sources Noon <noon@gmx.de> - 2025-08-20 16:45 +0200
Re: Turbo Pascal 6.0 editor sources Robert Prins <robert@prino.org> - 2025-08-20 22:21 +0000
Re: Turbo Pascal 6.0 editor sources Noon <noon@gmx.de> - 2025-08-30 22:41 +0200
Re: Turbo Pascal 6.0 editor sources Robert Prins <robert@prino.org> - 2025-09-01 18:45 +0000
csiph-web