Detta jobbade jag med för länge sedan. Nu är det din tur att också få jobba lite.
Har du tillgång ett lämpligt fysiskt exemplar löser sig problemet på någon sekund. Annars är det nog penna och papper som gäller och det kan ta lite längre tid.
Lös följande för att få fram något som du kan checka koordinaterna med.
.TITLE COORDS
.PSECT DATA, NOEXE, LONG
VAR1:
.quad ^D4393755672607
VAR2:
.quad ^D2203318354177
VAR3:
.long ^D1048580
.long ^D918099
.long ^D51511319
VAR4:
.blkb 24
VAR5:
.long 6
.PSECT BUFFERS, NOEXE, LONG
SHOW_RESULT:
.ascid /N!UL !UL.!UL E!UL !UL.!UL/
FAODESC:
.long 160
.address -
FAOBUF
FAOBUF:
.blkb 160
FAOLEN:
.blkw 1
.blkw 1
.PSECT IO, NOEXE
TTCHAN:
.word 0
.PSECT STRINGS, NOEXE, LONG
SYSOUTPUT:
.ascid /SYS$OUTPUT/
;
.PSECT MAIN, EXE, LONG
.ENTRY COORDS,^M<>
$ASSIGN_S -
CHAN=TTCHAN,-
DEVNAM=SYSOUTPUT
;
moval VAR1, R2
moval VAR2, R3
moval VAR3, R5
moval VAR4, R7
movl VAR5, R9
LOOP:
movzbl (R3)+, R4
movzwl (R2)[R4], R8
movzwl (R5)+, R6
xorl3 R6, R8, (R7)+
sobgtr R9, LOOP
;
$FAOL_S CTRSTR=SHOW_RESULT,-
OUTLEN=FAOLEN,-
OUTBUF=FAODESC,-
PRMLST=VAR4
$QIOW_S CHAN=TTCHAN,-
FUNC=#IO$_WRITEVBLK,-
P1=FAOBUF,-
P2=FAOLEN
$EXIT_S
.END COORDS