{"id":409,"date":"2011-12-02T22:39:03","date_gmt":"2011-12-02T20:39:03","guid":{"rendered":"http:\/\/lallafa.de\/blog\/?p=409"},"modified":"2011-12-02T22:39:03","modified_gmt":"2011-12-02T20:39:03","slug":"running-the-amiga-sas-c-6-58-compiler-with-vamos","status":"publish","type":"post","link":"https:\/\/lallafa.de\/blog\/2011\/12\/running-the-amiga-sas-c-6-58-compiler-with-vamos\/","title":{"rendered":"Running the Amiga SAS C 6.58 compiler with vamos"},"content":{"rendered":"<p>Well, the vamos project is progressing really, really well&#8230; And while I&#8217;m working at bringing more and more native Amiga tools to life on my Mac, I almost overlooked the first major milestone (and actually its primary initial goal) of the project: running the SAS C Compiler&#8230;<\/p>\n<p>This posts interrupts the rather technical series of articles describing the internals of vamos and simply shows you how to actually <strong>use<\/strong> vamos the way its intended to be \ud83d\ude09<\/p>\n<p>Fasten your seatbelts, grab your old SAS C compiler disks and read on!<\/p>\n<h3><!--more-->1. Installing SAS C in P-UAE<\/h3>\n<p>First thing we need to get the SAS C installation files including the Amiga binaries, the headers and libraries.<\/p>\n<p>I actually own(!) the SAS C compiler 6.50 package (really impressive boxing and lots to read ;)) and the contained disks were captured to ADF disk images with my <a href=\"http:\/\/www.kryoflux.com\/\">kryoflux device<\/a>. (And no, don&#8217;t ask me for the disk images!)<\/p>\n<p>Then I took my all-time-ready P-UAE (<a href=\"https:\/\/github.com\/GnoStiC\/PUAE\">src<\/a> or <a href=\"http:\/\/www.binarydevotion.com\/\">precompiled<\/a>) emulation setup with a classic OS 3.9 and installed the disks there.<\/p>\n<p>I use a host-based virtual directory for <strong>DH1:<\/strong> called <strong>Shared:<\/strong> and the SAS compiler was installed there.<\/p>\n<p>BTW: Do not forget to install the <a href=\"http:\/\/www.warped.com\/amiga\/\">latest update of the SAS C 6.5 series<\/a> found on the net&#8230;<\/p>\n<p>After this step I already had the necessary files for vamos residing on my Mac hard drive. (The <strong>Shared: <\/strong>volume is pointing to <strong>~\/amiga\/shared<\/strong> on the Mac &#8211; keep this in mind to understand the following vamos setup)<\/p>\n<p>If everything works out then your directory something like this:<\/p>\n<pre>chris@thaum:~\/amiga\/shared$ ls -la sc\r\ntotal 160\r\ndrwxr-xr-x\u00c2\u00a0 28 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 952 24 Okt 18:11 .\/\r\ndrwxr-xr-x\u00c2\u00a0 34 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1156 26 Nov 16:42 ..\/\r\n-rwxr-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 5045\u00c2\u00a0 1 Okt\u00c2\u00a0 1993 READ.ME*\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 838 13 Jan\u00c2\u00a0 2011 READ.ME.info*\r\n-rwxr-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0 21515 27 Feb\u00c2\u00a0 1995 Read.Me.6.55*\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 838 13 Jan\u00c2\u00a0 2011 Read.Me.6.55.info*\r\ndrwxr-xr-x\u00c2\u00a0 53 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1802 25 Jun 12:58 c\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 c.info*\r\ndrwxr-xr-x\u00c2\u00a0 11 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 374 13 Jan\u00c2\u00a0 2011 cxxinclude\/\r\ndrwxr-xr-x\u00c2\u00a0\u00c2\u00a0 4 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 136 13 Jan\u00c2\u00a0 2011 env\/\r\ndrwxr-xr-x\u00c2\u00a0 48 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1632 16 Nov 21:32 examples\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 examples.info*\r\ndrwxr-xr-x\u00c2\u00a0 32 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1088 13 Jan\u00c2\u00a0 2011 extras\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 extras.info*\r\ndrwxr-xr-x\u00c2\u00a0 18 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 612 13 Jan\u00c2\u00a0 2011 help\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 help.info*\r\ndrwxr-xr-x\u00c2\u00a0 18 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 612 13 Jan\u00c2\u00a0 2011 icons\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 icons.info*\r\ndrwxr-xr-x\u00c2\u00a0 56 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1904 13 Jan\u00c2\u00a0 2011 include\/\r\ndrwxr-xr-x\u00c2\u00a0 34 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1156 13 Jan\u00c2\u00a0 2011 lib\/\r\ndrwxr-xr-x\u00c2\u00a0 13 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 442 13 Jan\u00c2\u00a0 2011 libs\/\r\n-rwxr-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 5935 13 Jan\u00c2\u00a0 2011 read.me.6.58*\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 838 13 Jan\u00c2\u00a0 2011 read.me.6.58.info*\r\ndrwxr-xr-x\u00c2\u00a0 31 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0 1054 13 Jan\u00c2\u00a0 2011 rexx\/\r\ndrwxr-xr-x\u00c2\u00a0 28 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 952 13 Jan\u00c2\u00a0 2011 source\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 source.info*\r\ndrwxr-xr-x\u00c2\u00a0\u00c2\u00a0 8 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 272 13 Jan\u00c2\u00a0 2011 starter_project\/\r\n-rw-r-xr-x\u00c2\u00a0\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 628 13 Jan\u00c2\u00a0 2011 starter_project.info*<\/pre>\n<h3>2. Setting up vamos<\/h3>\n<p>I won&#8217;t go into detail on how to compile, install vamos on your machine &#8211; have a look at my <a title=\"amitools\" href=\"http:\/\/lallafa.de\/blog\/amitools\/\">amitools<\/a> page for this.<\/p>\n<p>Here we will write a config file for vamos that defines the mapping of the Mac paths to Amiga volumes and also adds the assigns SAS C will need to run.<\/p>\n<p>I added a file called <strong>.vamosrc<\/strong> to my $HOME directory (this is the default location where vamos will look for this file. You can also store this file at any place and use the -c command line option to select the config file):<\/p>\n<pre># .vamosrc - vamos config file for SAS C compiler\r\n[volumes]\r\nwb310=~\/amiga\/wb310\r\nsc=~\/amiga\/shared\/sc\r\n\r\n[assigns]\r\ninclude=sc:include\r\nlib=sc:lib\r\nt=root:tmp\r\n\r\n[path]\r\npath=sc:c,wb310:c\r\n<\/pre>\n<p>Let&#8217;s have a closer look of whats described here:<\/p>\n<ul>\n<li>The first section called <strong>volumes<\/strong> in the file describes the Mac Path to Amiga Volume mapping. Each entry gives a Amiga volume defined inside vamos (and visible to Amiga programs running inside vamos) and maps them to a native Mac Path. In my config the volumes <strong>wb310:<\/strong> and <strong>sc:<\/strong> are defined. (Use absolute paths here to make the config work from any location) The wb310: isn&#8217;t actually used in this example but having Workbench files handy is always a good idea (for later use of vamos)<\/li>\n<li>The next section <strong>assigns <\/strong> defines assigns inside vamos, like AmigaDOS does itself. Assign mapping always references Amiga paths on the right side and never native (Mac) paths! Furthermore, an assign must map either to another assign (optional plus path) or to an absolute path with volume. Relative paths are not allowed here. SAS C needs assigns for the headers (<strong>include:<\/strong>) and the link libraries (<strong>lib:<\/strong>). The last assign maps the temp dir of AmigaDOS as SAS C stores some files there temporarly. <strong>t:<\/strong> is mapped via the <strong>root:<\/strong> volume that is always defined in vamos and points to the file system root (\/). So this assign actually points to \/tmp&#8230;<\/li>\n<li>The last section <strong>path<\/strong> gives &#8212; similar to AmigaDOS &#8212; the search path for binaries. Again, only absolute Amiga paths are allowed. The path is searched in vamos whenever a binary is given on the command line&#8230; very handy we will see soon&#8230;<\/li>\n<\/ul>\n<h3>3. Run sc for the first time<\/h3>\n<p>With the config in place and vamos in your path, you can already call the SAS C compiler called <strong>sc<\/strong> from any place on your mac (Remember: vamos will look in your Amiga path for the binaries):<\/p>\n<pre>chris@thaum:~$ vamos sc\r\n20:51:58.301\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 path:WARNING:\u00c2\u00a0 ami_to_sys_path: ami_path='env:sc\/scoptions' -&gt; abs_path='env:sc\/scoptions' -&gt; no resolved paths!\r\nSAS\/C Amiga Compiler 6.58\r\nCopyright (c) 1988-1995 SAS Institute Inc.\r\n20:51:58.322\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 lib:WARNING:\u00c2\u00a0 [\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 exec.library]\u00c2\u00a0 ? CALL:\u00c2\u00a0 324 Signal( task[a1]=108b4, signalSet[d0]=8000 ) from PC=020062 -&gt; d0=0 (default)\r\n20:51:58.322\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 lib:WARNING:\u00c2\u00a0 [\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 exec.library]\u00c2\u00a0 ? CALL:\u00c2\u00a0 252 Remove( node[a1]=2014c ) from PC=01ff36 -&gt; d0=0 (default)\r\nError\u00c2\u00a0 : No files to compile\r\n20:51:58.328\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 lib:WARNING:\u00c2\u00a0 [\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 exec.library]\u00c2\u00a0 ? CALL:\u00c2\u00a0 252 Remove( node[a1]=2014c ) from PC=01ff36 -&gt; d0=0 (default)<\/pre>\n<p>The compiler is already running &#8212; only vamos mocks about some currently un-emulated (but harmless) library calls. You can make vamos quiet with the -q switch:<\/p>\n<pre>chris@thaum:~$ vamos -q sc\r\nSAS\/C Amiga Compiler 6.58\r\nCopyright (c) 1988-1995 SAS Institute Inc.\r\nError\u00c2\u00a0 : No files to compile<\/pre>\n<p>Ah, that&#8217;s the SAS C I remember \ud83d\ude09 (Note: vamos options are placed before the Amiga binary. All options following the binary are passed to the Amiga program!)<\/p>\n<p>Now we need a little program to test compile. Open your favorite editor (<a href=\"http:\/\/macromates.com\/\">TextMate<\/a> here) and enter the world famous &#8220;hello, world!&#8221; snippet:<\/p>\n<pre>\/* hello.c - say no more ;)*\/\r\n#include &lt;stdio.h&gt;\r\n\r\nint main(int argc, char **argv)\r\n{\r\n\u00c2\u00a0\u00c2\u00a0 printf(\"hello, world!\\n\");\r\n\u00c2\u00a0\u00c2\u00a0 return 0;\r\n}<\/pre>\n<p>Let&#8217;s compile it:<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/test_code$ vamos -q sc hello.c\r\nSAS\/C Amiga Compiler 6.58\r\nCopyright (c) 1988-1995 SAS Institute Inc.<\/pre>\n<p>Hmm, not much to say here&#8230; But look what happened:<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/test_code$ ls -la hello.o \r\n-rw-r--r--\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0 236\u00c2\u00a0 2 Dez 20:59 hello.o\r\nchris@thaum:~\/Projects\/amitools.git\/test_code$ file hello.o\r\nhello.o: AmigaOS object\/library data<\/pre>\n<p>yay! Your first SAS C compiled binary &#8212; and it was compiled on a Mac!!<\/p>\n<h3>4. Link and Run<\/h3>\n<p>Now we need to link our object file to get a program suitable for your Amiga.<\/p>\n<p>The linker in SAS C is called <strong>slink<\/strong> and also ready to run on vamos:<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/test_code$ vamos -q slink\r\nError 607: No FROM\/ROOT files specified\r\n<\/pre>\n<p>Ok, it needs some options to perform its task&#8230; (The Error is not from vamos but from slink)<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/test_code$ vamos -q slink from lib:c.o hello.o to hello lib lib:sc.lib lib:amiga.lib\r\nSlink - Version 6.58\r\nCopyright (c) 1988-1995 SAS Institute, Inc.\u00c2\u00a0 All Rights Reserved.\r\n\r\n\r\nSLINK Complete - Maximum code size = 5384 ($00001508) bytes\r\n\r\nFinal output file size = 5396 ($00001514) bytes\r\n<\/pre>\n<p>I love it (now that it works ;))&#8230; slink just created an Amiga LoadSeg()able binary:<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/test_code$ ls -la hello\r\n-rwxr-xr-x\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0 5396\u00c2\u00a0 2 Dez 21:06 hello*\r\nchris@thaum:~\/Projects\/amitools.git\/test_code$ file hello\r\nhello: AmigaOS loadseg()ble executable\/binary\r\n<\/pre>\n<p>Now comes the funny part:<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/test_code$ vamos .\/hello\r\nhello, world!<\/pre>\n<p>Of, course! vamos can also run the created binary&#8230; If you don&#8217;t believe it try yourself, take hello to P-UAE or even better to the real(tm) machine&#8230;<\/p>\n<h3>5. Some more complex code<\/h3>\n<p>You can of course compile larger (aka &#8220;real&#8221;) code as well.<\/p>\n<p>Just try one of the examples SAS C ships:<\/p>\n<pre>&gt; cd ~\/amiga\/shared\/sc\/examples\/amiproc\r\n&gt; vamos -q sc amiproc.c simple.c\r\n&gt; vamos -q slink from lib:c.o simple.o amiproc.o lib lib:sc.lib lib:amiga.lib\r\n&gt; ls -la simple\r\n-rwxr-xr-x\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0 6768\u00c2\u00a0 2 Dez 21:15 simple*\r\n&gt; file simple\r\nsimple: AmigaOS loadseg()ble executable\/binary<\/pre>\n<p>Note: this binary does not run on vamos but needs UAE or a real machine&#8230;<\/p>\n<p>BTW: If you want to know how well vamos performs running the compiler then call it with the -v switch and have a look at the last lines:<\/p>\n<pre>chris@thaum:~\/Projects\/amitools.git\/sc\/examples\/amiproc$ vamos -v sc amiproc.c simple.c\r\n21:24:13.888\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 read config file: \/Users\/chris\/.vamosrc\r\n21:24:13.888\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 setting up main memory with 1024 KiB RAM: top=100000\r\n21:24:13.905\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 setting up m68k\r\n21:24:13.906\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 start cpu: 0016bc\r\n...\r\n21:24:21.504\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 done (410454570 cycles in cpu time 2.3453s -&gt; 54.02 MHz (30.87 %), trap time 5.2531s (69.13 %), total time 7.5984s)\r\n21:24:21.505\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 exit code=0\r\n<\/pre>\n<p>Quite impressive compiling on a 54 MHz m68k&#8230; The trap time currently spent in the Python emulation has lots of potential for further optimization. But hey, first of all its running and then we think about getting it running real fast \ud83d\ude09<\/p>\n<p>With sc and slink running fairly well&#8230; Now what&#8217;s still missing to have a full featured cross compiler environment with a vamos-ed SAS C compiler?<\/p>\n<h3>6. What&#8217;s still missing?<\/h3>\n<p>Currently vamos has no ability to execute child processes. This is used in sc if you wan to link directly (sc bla.c to bla &#8230;). This is also the main reason why smake is a NOP right now&#8230;<\/p>\n<p>I am currently working on this issue and I think with smake up and running the most important tools are available to start serious cross development with SAS C on the Mac&#8230;<\/p>\n<p>Probably, lots of other things are still not working as well&#8230; So if you find something that currently breaks in sc and slink then I&#8217;d really be happy if you drop me a note&#8230; (Beta testers hoorray! \ud83d\ude09<\/p>\n<p>Always enjoy vamos now with SAS C on your Mac \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, the vamos project is progressing really, really well&#8230; And while I&#8217;m working at bringing more and more native Amiga tools to life on my Mac, I almost overlooked the first major milestone (and actually its primary initial goal) of &hellip; <a href=\"https:\/\/lallafa.de\/blog\/2011\/12\/running-the-amiga-sas-c-6-58-compiler-with-vamos\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,6,9,12],"tags":[],"class_list":["post-409","post","type-post","status-publish","format-standard","hentry","category-amiga","category-mac-stuff","category-software","category-vamos"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/piBMF-6B","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":7,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions"}],"predecessor-version":[{"id":416,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions\/416"}],"wp:attachment":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/media?parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/categories?post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/tags?post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}